Compare commits

...

7 Commits

Author SHA1 Message Date
Federico Hernandez
bcdcbeeea0 Preparing release
- Updating dist documentation
- Release date in man pages
2009-10-21 22:53:26 +02:00
Pietro Cerutti
469cafa053 Make run_all more portable.
- Changed shebang for portability
- Fix date command for FreeBSD

Signed-off-by: Federico Hernandez <ultrafredde@gmail.com>
2009-10-21 22:20:32 +02:00
Pietro Cerutti
fdb359c180 Fix confirm() to handle EOF
Signed-off-by: Federico Hernandez <ultrafredde@gmail.com>
2009-10-21 22:19:37 +02:00
Paul Beckingham
b3d40b2554 Portability - Haiku R1/alpha1
- Added necessary include files and edits in order to build task on
  Haiku R1/alpha1.
2009-09-27 17:02:20 -04:00
Federico Hernandez
fba076a0d0 Bumped version number to 1.8.3 2009-09-07 16:13:37 +02:00
Paul Beckingham
3ef844de5f Packaging
- Adding updated package files for OSX, from the 1.8.2 release.
2009-09-07 09:51:20 -04:00
Federico Hernandez
bb45d91ddb Added sha1 of 1.8.2 to ChangLog 2009-09-07 15:41:51 +02:00
20 changed files with 68 additions and 62 deletions

View File

@@ -1,7 +1,12 @@
------ current release --------------------------- ------ current release ---------------------------
1.8.2 (9/7/2009) 1.8.3 (10/21/2009)
+ Added support for Haiku R1/alpha1
------ old releases ------------------------------
1.8.2 (9/7/2009) f243f0ed443ecd7dde779de8a6525222591024db
+ Added feature #282 that returns useful exit codes to the shell. Now a + Added feature #282 that returns useful exit codes to the shell. Now a
script can detect whether no tasks were returned by a report (thanks to script can detect whether no tasks were returned by a report (thanks to
Pietro Cerutti). Pietro Cerutti).
@@ -14,8 +19,6 @@
+ Fixed bug #288 which failed to propagate rc file overrides on the command + Fixed bug #288 which failed to propagate rc file overrides on the command
line to the default command (thanks to Zach Frazier). line to the default command (thanks to Zach Frazier).
------ old releases ------------------------------
1.8.1 (8/20/2009) 35792e7874d2bb664abb1a0a67960b7fe7e0fccf 1.8.1 (8/20/2009) 35792e7874d2bb664abb1a0a67960b7fe7e0fccf
+ Fixed bug #231 that broke the build on OpenBSD 32-bit due to a time_t + Fixed bug #231 that broke the build on OpenBSD 32-bit due to a time_t
and int collision (thanks to Pietro Cerutti). and int collision (thanks to Pietro Cerutti).

1
NEWS
View File

@@ -26,6 +26,7 @@ Task has been built and tested on the following configurations:
- OpenBSD 4.5 - OpenBSD 4.5
- FreeBSD - FreeBSD
- Cygwin 1.5 - Cygwin 1.5
- Haiku R1/alpha1
While Task has undergone testing, bugs are sure to remain. If you encounter a While Task has undergone testing, bugs are sure to remain. If you encounter a
bug, please enter a new issue at: bug, please enter a new issue at:

View File

@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script. # Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61) AC_PREREQ(2.61)
AC_INIT(task, 1.8.2, support@taskwarrior.org) AC_INIT(task, 1.8.3, support@taskwarrior.org)
CFLAGS="${CFLAGS=}" CFLAGS="${CFLAGS=}"
CXXFLAGS="${CXXFLAGS=}" CXXFLAGS="${CXXFLAGS=}"

View File

@@ -1,4 +1,4 @@
.TH task-tutorial 5 2009-09-07 "task 1.8.2" "User Manuals" .TH task-tutorial 5 2009-10-21 "task 1.8.3" "User Manuals"
.SH NAME .SH NAME
task-tutorial \- A tutorial for the task(1) command line todo manager. task-tutorial \- A tutorial for the task(1) command line todo manager.

View File

@@ -1,4 +1,4 @@
.TH task 1 2009-09-07 "task 1.8.2" "User Manuals" .TH task 1 2009-10-21 "task 1.8.3" "User Manuals"
.SH NAME .SH NAME
task \- A command line todo manager. task \- A command line todo manager.

View File

@@ -1,4 +1,4 @@
.TH taskrc 5 2009-09-07 "task 1.8.2" "User Manuals" .TH taskrc 5 2009-10-21 "task 1.8.3" "User Manuals"
.SH NAME .SH NAME
taskrc \- Configuration file for the task(1) command taskrc \- Configuration file for the task(1) command

View File

@@ -1 +1 @@
<pkg-contents spec="1.12"><f n="task" o="paul" g="staff" p="33261" pt="/Users/paul/task.git/package-config/osx/binary/task" m="false" t="file"/></pkg-contents> <pkg-contents spec="1.12"><f n="task" o="root" g="wheel" p="33261" pt="/Users/paul/task.git/package-config/osx/binary/task" m="false" t="file"><mod>group</mod><mod>owner</mod></f></pkg-contents>

View File

@@ -1 +1 @@
<pkgref spec="1.12" uuid="C71026FD-E252-42CD-89C3-2F6F087AAF17"><config><identifier>com.beckingham.task180.task.pkg</identifier><version>1.8.0</version><description></description><post-install type="none"/><requireAuthorization/><installFrom mod="true">/Users/paul/task.git/package-config/osx/binary/task</installFrom><installTo mod="true" relocatable="true">/usr/local/bin</installTo><flags><followSymbolicLinks/></flags><packageStore type="internal"></packageStore><mod>parent</mod><mod>locationType</mod><mod>relocatable</mod><mod>version</mod><mod>installTo.path</mod><mod>installTo</mod></config><contents><file-list>01task-contents.xml</file-list><filter>/CVS$</filter><filter>/\.svn$</filter><filter>/\.cvsignore$</filter><filter>/\.cvspass$</filter><filter>/\.DS_Store$</filter></contents></pkgref> <pkgref spec="1.12" uuid="C71026FD-E252-42CD-89C3-2F6F087AAF17"><config><identifier>com.beckingham.task182.task.pkg</identifier><version>1.8.2</version><description></description><post-install type="none"/><requireAuthorization/><installFrom mod="true">/Users/paul/task.git/package-config/osx/binary/task</installFrom><installTo mod="true" relocatable="true">/usr/local/bin</installTo><flags><followSymbolicLinks/></flags><packageStore type="internal"></packageStore><mod>installTo</mod><mod>locationType</mod><mod>relocatable</mod><mod>identifier</mod><mod>parent</mod><mod>version</mod><mod>installTo.path</mod></config><contents><file-list>01task-contents.xml</file-list><filter>/CVS$</filter><filter>/\.svn$</filter><filter>/\.cvsignore$</filter><filter>/\.cvspass$</filter><filter>/\.DS_Store$</filter></contents></pkgref>

View File

@@ -1 +1 @@
<pkmkdoc spec="1.12"><properties><title>Task 1.8.0</title><build>/Users/paul/Desktop/task-1.8.0.pkg</build><organization>com.beckingham</organization><userSees ui="easy"/><min-target os="3"/><domain anywhere="true" system="true"/></properties><distribution><versions min-spec="1.000000"/><scripts></scripts></distribution><contents><choice title="task" id="choice0" starts_selected="true" starts_enabled="true" starts_hidden="false"><pkgref id="com.beckingham.task180.task.pkg"/><choice-reqs><requirement id="tosv" operator="ge" value="'10.5.0'" selected="no" enabled="no" hidden="unchanged" startSelected="unchanged" startEnabled="unchanged" startHidden="unchanged"/></choice-reqs></choice></contents><resources bg-scale="proportional" bg-align="center"><locale lang="en"><resource mod="true" type="license">/Users/paul/task.git/package-config/osx/binary/COPYING.txt</resource><resource mod="true" type="readme">/Users/paul/task.git/package-config/osx/binary/README.txt</resource></locale></resources><flags/><item type="file">01task.xml</item><mod>properties.title</mod><mod>properties.anywhereDomain</mod><mod>properties.systemDomain</mod></pkmkdoc> <pkmkdoc spec="1.12"><properties><title>Task 1.8.2</title><build>/Users/paul/Desktop/task-1.8.2.pkg</build><organization>com.beckingham</organization><userSees ui="both"/><min-target os="3"/><domain anywhere="true" system="true"/></properties><distribution><versions min-spec="1.000000"/><scripts></scripts></distribution><contents><choice title="task" id="choice0" starts_selected="true" starts_enabled="true" starts_hidden="false"><pkgref id="com.beckingham.task182.task.pkg"/><choice-reqs><requirement id="tosv" operator="ge" value="'10.6.0'" selected="no" enabled="no" hidden="unchanged" startSelected="unchanged" startEnabled="unchanged" startHidden="unchanged"/></choice-reqs></choice></contents><resources bg-scale="proportional" bg-align="center"><locale lang="en"><resource mod="true" type="license">/Users/paul/task.git/package-config/osx/binary/COPYING.txt</resource><resource mod="true" type="readme">/Users/paul/task.git/package-config/osx/binary/README.txt</resource></locale></resources><flags/><item type="file">01task.xml</item><mod>properties.title</mod><mod>properties.customizeOption</mod><mod>properties.anywhereDomain</mod><mod>properties.systemDomain</mod></pkmkdoc>

View File

@@ -30,6 +30,7 @@
#include <pwd.h> #include <pwd.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <unistd.h>
#include "Context.h" #include "Context.h"
#include "Timer.h" #include "Timer.h"
#include "text.h" #include "text.h"

View File

@@ -29,6 +29,7 @@
#include <time.h> #include <time.h>
#include <assert.h> #include <assert.h>
#include <stdlib.h> #include <stdlib.h>
#include <ctype.h>
#include "Date.h" #include "Date.h"
#include "text.h" #include "text.h"
#include "util.h" #include "util.h"
@@ -82,14 +83,14 @@ Date::Date (const std::string& mdy, const std::string& format /* = "m/d/Y" */)
// Single or double digit. // Single or double digit.
case 'm': case 'm':
if (i >= mdy.length () || if (i >= mdy.length () ||
! ::isdigit (mdy[i])) ! isdigit (mdy[i]))
{ {
throw std::string ("\"") + mdy + "\" is not a valid date."; throw std::string ("\"") + mdy + "\" is not a valid date.";
} }
if (i + 1 < mdy.length () && if (i + 1 < mdy.length () &&
(mdy[i + 0] == '0' || mdy[i + 0] == '1') && (mdy[i + 0] == '0' || mdy[i + 0] == '1') &&
::isdigit (mdy[i + 1])) isdigit (mdy[i + 1]))
{ {
month = ::atoi (mdy.substr (i, 2).c_str ()); month = ::atoi (mdy.substr (i, 2).c_str ());
i += 2; i += 2;
@@ -103,14 +104,14 @@ Date::Date (const std::string& mdy, const std::string& format /* = "m/d/Y" */)
case 'd': case 'd':
if (i >= mdy.length () || if (i >= mdy.length () ||
! ::isdigit (mdy[i])) ! isdigit (mdy[i]))
{ {
throw std::string ("\"") + mdy + "\" is not a valid date."; throw std::string ("\"") + mdy + "\" is not a valid date.";
} }
if (i + 1 < mdy.length () && if (i + 1 < mdy.length () &&
(mdy[i + 0] == '0' || mdy[i + 0] == '1' || mdy[i + 0] == '2' || mdy[i + 0] == '3') && (mdy[i + 0] == '0' || mdy[i + 0] == '1' || mdy[i + 0] == '2' || mdy[i + 0] == '3') &&
::isdigit (mdy[i + 1])) isdigit (mdy[i + 1]))
{ {
day = ::atoi (mdy.substr (i, 2).c_str ()); day = ::atoi (mdy.substr (i, 2).c_str ());
i += 2; i += 2;
@@ -125,8 +126,8 @@ Date::Date (const std::string& mdy, const std::string& format /* = "m/d/Y" */)
// Double digit. // Double digit.
case 'y': case 'y':
if (i + 1 >= mdy.length () || if (i + 1 >= mdy.length () ||
! ::isdigit (mdy[i + 0]) || ! isdigit (mdy[i + 0]) ||
! ::isdigit (mdy[i + 1])) ! isdigit (mdy[i + 1]))
{ {
throw std::string ("\"") + mdy + "\" is not a valid date."; throw std::string ("\"") + mdy + "\" is not a valid date.";
} }
@@ -137,8 +138,8 @@ Date::Date (const std::string& mdy, const std::string& format /* = "m/d/Y" */)
case 'M': case 'M':
if (i + 1 >= mdy.length () || if (i + 1 >= mdy.length () ||
! ::isdigit (mdy[i + 0]) || ! isdigit (mdy[i + 0]) ||
! ::isdigit (mdy[i + 1])) ! isdigit (mdy[i + 1]))
{ {
throw std::string ("\"") + mdy + "\" is not a valid date."; throw std::string ("\"") + mdy + "\" is not a valid date.";
} }
@@ -149,8 +150,8 @@ Date::Date (const std::string& mdy, const std::string& format /* = "m/d/Y" */)
case 'D': case 'D':
if (i + 1 >= mdy.length () || if (i + 1 >= mdy.length () ||
! ::isdigit (mdy[i + 0]) || ! isdigit (mdy[i + 0]) ||
! ::isdigit (mdy[i + 1])) ! isdigit (mdy[i + 1]))
{ {
throw std::string ("\"") + mdy + "\" is not a valid date."; throw std::string ("\"") + mdy + "\" is not a valid date.";
} }
@@ -162,10 +163,10 @@ Date::Date (const std::string& mdy, const std::string& format /* = "m/d/Y" */)
// Quadruple digit. // Quadruple digit.
case 'Y': case 'Y':
if (i + 3 >= mdy.length () || if (i + 3 >= mdy.length () ||
! ::isdigit (mdy[i + 0]) || ! isdigit (mdy[i + 0]) ||
! ::isdigit (mdy[i + 1]) || ! isdigit (mdy[i + 1]) ||
! ::isdigit (mdy[i + 2]) || ! isdigit (mdy[i + 2]) ||
! ::isdigit (mdy[i + 3])) ! isdigit (mdy[i + 3]))
{ {
throw std::string ("\"") + mdy + "\" is not a valid date."; throw std::string ("\"") + mdy + "\" is not a valid date.";
} }

View File

@@ -243,7 +243,7 @@ bool Nibbler::getInt (int& result)
++i; ++i;
} }
while (i < mInput.length () && ::isdigit (mInput[i])) while (i < mInput.length () && isdigit (mInput[i]))
++i; ++i;
if (i > mCursor) if (i > mCursor)
@@ -260,7 +260,7 @@ bool Nibbler::getInt (int& result)
bool Nibbler::getUnsignedInt (int& result) bool Nibbler::getUnsignedInt (int& result)
{ {
std::string::size_type i = mCursor; std::string::size_type i = mCursor;
while (i < mInput.length () && ::isdigit (mInput[i])) while (i < mInput.length () && isdigit (mInput[i]))
++i; ++i;
if (i > mCursor) if (i > mCursor)

View File

@@ -153,7 +153,7 @@ bool Sequence::validId (const std::string& input) const
return false; return false;
for (size_t i = 0; i < input.length (); ++i) for (size_t i = 0; i < input.length (); ++i)
if (!::isdigit (input[i])) if (!isdigit (input[i]))
return false; return false;
return true; return true;

View File

@@ -876,7 +876,7 @@ void Table::sort (std::vector <int>& order)
if (gap > 1) if (gap > 1)
{ {
gap = (int) ((float)gap / 1.3); gap = (int) ((float)gap / 1.3);
if (gap == 10 or gap == 9) if (gap == 10 || gap == 9)
gap = 11; gap = 11;
} }

View File

@@ -52,7 +52,7 @@ Timer::~Timer ()
<< mDescription << mDescription
<< " " << " "
<< std::setprecision (6) << std::setprecision (6)
<< std::fixed // << std::fixed
<< ((end.tv_sec - mStart.tv_sec) + ((end.tv_usec - mStart.tv_usec ) << ((end.tv_sec - mStart.tv_sec) + ((end.tv_usec - mStart.tv_usec )
/ 1000000.0)) / 1000000.0))
<< " sec"; << " sec";

View File

@@ -106,16 +106,16 @@ static fileType determineFileType (const std::vector <std::string>& lines)
{ {
if ( lines[i][0] == 'x' && if ( lines[i][0] == 'x' &&
lines[i][1] == ' ' && lines[i][1] == ' ' &&
::isdigit (lines[i][2]) && isdigit (lines[i][2]) &&
::isdigit (lines[i][3]) && isdigit (lines[i][3]) &&
::isdigit (lines[i][4]) && isdigit (lines[i][4]) &&
::isdigit (lines[i][5]) && isdigit (lines[i][5]) &&
lines[i][6] == '-' && lines[i][6] == '-' &&
::isdigit (lines[i][7]) && isdigit (lines[i][7]) &&
::isdigit (lines[i][8]) && isdigit (lines[i][8]) &&
lines[i][9] == '-' && lines[i][9] == '-' &&
::isdigit (lines[i][10]) && isdigit (lines[i][10]) &&
::isdigit (lines[i][11])) isdigit (lines[i][11]))
return todo_sh_2_0; return todo_sh_2_0;
} }
@@ -126,13 +126,13 @@ static fileType determineFileType (const std::vector <std::string>& lines)
// +project // +project
if (words[w].length () > 1 && if (words[w].length () > 1 &&
words[w][0] == '+' && words[w][0] == '+' &&
::isalnum (words[w][1])) isalnum (words[w][1]))
return todo_sh_2_0; return todo_sh_2_0;
// @context // @context
if (words[w].length () > 1 && if (words[w].length () > 1 &&
words[w][0] == '@' && words[w][0] == '@' &&
::isalnum (words[w][1])) isalnum (words[w][1]))
return todo_sh_2_0; return todo_sh_2_0;
} }
} }

View File

@@ -1400,9 +1400,9 @@ std::string renderMonths (
row = 0; row = 0;
// Loop through days in month and add to table. // Loop through days in month and add to table.
for (int d = 1; d <= daysInMonth.at (mpl); ++d) for (int d = 1; d <= daysInMonth[mpl]; ++d)
{ {
Date temp (months.at (mpl), d, years.at (mpl)); Date temp (months[mpl], d, years[mpl]);
int dow = temp.dayOfWeek (); int dow = temp.dayOfWeek ();
int woy = temp.weekOfYear (weekStart); int woy = temp.weekOfYear (weekStart);
@@ -1420,9 +1420,9 @@ std::string renderMonths (
table.addCell (row, thisCol, d); table.addCell (row, thisCol, d);
if ((context.config.get ("color", true) || context.config.get (std::string ("_forcecolor"), false)) && if ((context.config.get ("color", true) || context.config.get (std::string ("_forcecolor"), false)) &&
today.day () == d && today.day () == d &&
today.month () == months.at (mpl) && today.month () == months[mpl] &&
today.year () == years.at (mpl)) today.year () == years[mpl])
table.setCellFg (row, thisCol, Text::cyan); table.setCellFg (row, thisCol, Text::cyan);
foreach (task, all) foreach (task, all)
@@ -1434,8 +1434,8 @@ std::string renderMonths (
if ((context.config.get ("color", true) || context.config.get (std::string ("_forcecolor"), false)) && if ((context.config.get ("color", true) || context.config.get (std::string ("_forcecolor"), false)) &&
due.day () == d && due.day () == d &&
due.month () == months.at (mpl) && due.month () == months[mpl] &&
due.year () == years.at (mpl)) due.year () == years[mpl])
{ {
table.setCellFg (row, thisCol, Text::black); table.setCellFg (row, thisCol, Text::black);
table.setCellBg (row, thisCol, due < today ? Text::on_red : Text::on_yellow); table.setCellBg (row, thisCol, due < today ? Text::on_red : Text::on_yellow);
@@ -1447,7 +1447,7 @@ std::string renderMonths (
int eow = 6; int eow = 6;
if (weekStart == 1) if (weekStart == 1)
eow = 0; eow = 0;
if (dow == eow && d < daysInMonth.at (mpl)) if (dow == eow && d < daysInMonth[mpl])
row++; row++;
} }
} }

View File

@@ -1,4 +1,4 @@
#! /bin/bash #! /bin/sh
date > all.log date > all.log
@@ -14,7 +14,7 @@ END=`tail -1 all.log`
OS=`uname` OS=`uname`
case $OS in case $OS in
Darwin) Darwin | FreeBSD)
STARTEPOCH=`date -j -f "%a %b %d %T %Z %Y" "${START}" "+%s"` STARTEPOCH=`date -j -f "%a %b %d %T %Z %Y" "${START}" "+%s"`
ENDEPOCH=`date -j -f "%a %b %d %T %Z %Y" "${END}" "+%s"` ENDEPOCH=`date -j -f "%a %b %d %T %Z %Y" "${END}" "+%s"`
;; ;;

View File

@@ -209,7 +209,7 @@ std::string commify (const std::string& data)
int i; int i;
for (int i = 0; i < (int) data.length (); ++i) for (int i = 0; i < (int) data.length (); ++i)
{ {
if (::isdigit (data[i])) if (isdigit (data[i]))
end = i; end = i;
if (data[i] == '.') if (data[i] == '.')
@@ -227,11 +227,11 @@ std::string commify (const std::string& data)
int consecutiveDigits = 0; int consecutiveDigits = 0;
for (; i >= 0; --i) for (; i >= 0; --i)
{ {
if (::isdigit (data[i])) if (isdigit (data[i]))
{ {
result += data[i]; result += data[i];
if (++consecutiveDigits == 3 && i && ::isdigit (data[i - 1])) if (++consecutiveDigits == 3 && i && isdigit (data[i - 1]))
{ {
result += ','; result += ',';
consecutiveDigits = 0; consecutiveDigits = 0;
@@ -251,11 +251,11 @@ std::string commify (const std::string& data)
int consecutiveDigits = 0; int consecutiveDigits = 0;
for (; i >= 0; --i) for (; i >= 0; --i)
{ {
if (::isdigit (data[i])) if (isdigit (data[i]))
{ {
result += data[i]; result += data[i];
if (++consecutiveDigits == 3 && i && ::isdigit (data[i - 1])) if (++consecutiveDigits == 3 && i && isdigit (data[i - 1]))
{ {
result += ','; result += ',';
consecutiveDigits = 0; consecutiveDigits = 0;
@@ -279,8 +279,8 @@ std::string lowerCase (const std::string& input)
{ {
std::string output = input; std::string output = input;
for (int i = 0; i < (int) input.length (); ++i) for (int i = 0; i < (int) input.length (); ++i)
if (::isupper (input[i])) if (isupper (input[i]))
output[i] = ::tolower (input[i]); output[i] = tolower (input[i]);
return output; return output;
} }
@@ -290,8 +290,8 @@ std::string upperCase (const std::string& input)
{ {
std::string output = input; std::string output = input;
for (int i = 0; i < (int) input.length (); ++i) for (int i = 0; i < (int) input.length (); ++i)
if (::islower (input[i])) if (islower (input[i]))
output[i] = ::toupper (input[i]); output[i] = toupper (input[i]);
return output; return output;
} }
@@ -302,7 +302,7 @@ std::string ucFirst (const std::string& input)
std::string output = input; std::string output = input;
if (output.length () > 0) if (output.length () > 0)
output[0] = ::toupper (output[0]); output[0] = toupper (output[0]);
return output; return output;
} }
@@ -352,7 +352,7 @@ void guess (
bool digitsOnly (const std::string& input) bool digitsOnly (const std::string& input)
{ {
for (size_t i = 0; i < input.length (); ++i) for (size_t i = 0; i < input.length (); ++i)
if (!::isdigit (input[i])) if (!isdigit (input[i]))
return false; return false;
return true; return true;
@@ -362,7 +362,7 @@ bool digitsOnly (const std::string& input)
bool noSpaces (const std::string& input) bool noSpaces (const std::string& input)
{ {
for (size_t i = 0; i < input.length (); ++i) for (size_t i = 0; i < input.length (); ++i)
if (::isspace (input[i])) if (isspace (input[i]))
return false; return false;
return true; return true;

View File

@@ -64,7 +64,7 @@ bool confirm (const std::string& question)
<< " "; << " ";
std::getline (std::cin, answer); std::getline (std::cin, answer);
answer = lowerCase (trim (answer)); answer = std::cin.eof() ? "no" : lowerCase (trim (answer));
} }
while (answer != "y" && // TODO i18n while (answer != "y" && // TODO i18n
answer != "ye" && // TODO i18n answer != "ye" && // TODO i18n