Merge branch '1.8.3'

This commit is contained in:
Federico Hernandez 2009-10-22 22:02:32 +02:00
commit de50b2902c
20 changed files with 67 additions and 61 deletions

View file

@ -1,6 +1,11 @@
------ current release ---------------------------
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
script can detect whether no tasks were returned by a report (thanks to
@ -14,8 +19,6 @@
+ Fixed bug #288 which failed to propagate rc file overrides on the command
line to the default command (thanks to Zach Frazier).
------ old releases ------------------------------
1.8.1 (8/20/2009) 35792e7874d2bb664abb1a0a67960b7fe7e0fccf
+ Fixed bug #231 that broke the build on OpenBSD 32-bit due to a time_t
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
- FreeBSD
- Cygwin 1.5
- Haiku R1/alpha1
While Task has undergone testing, bugs are sure to remain. If you encounter a
bug, please enter a new issue at:

View file

@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
AC_INIT(task, 1.8.2, support@taskwarrior.org)
AC_INIT(task, 1.8.3, support@taskwarrior.org)
CFLAGS="${CFLAGS=}"
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
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
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
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 <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "Context.h"
#include "Timer.h"
#include "text.h"

View file

@ -29,6 +29,7 @@
#include <time.h>
#include <assert.h>
#include <stdlib.h>
#include <ctype.h>
#include "Date.h"
#include "text.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.
case 'm':
if (i >= mdy.length () ||
! ::isdigit (mdy[i]))
! isdigit (mdy[i]))
{
throw std::string ("\"") + mdy + "\" is not a valid date.";
}
if (i + 1 < mdy.length () &&
(mdy[i + 0] == '0' || mdy[i + 0] == '1') &&
::isdigit (mdy[i + 1]))
isdigit (mdy[i + 1]))
{
month = ::atoi (mdy.substr (i, 2).c_str ());
i += 2;
@ -103,14 +104,14 @@ Date::Date (const std::string& mdy, const std::string& format /* = "m/d/Y" */)
case 'd':
if (i >= mdy.length () ||
! ::isdigit (mdy[i]))
! isdigit (mdy[i]))
{
throw std::string ("\"") + mdy + "\" is not a valid date.";
}
if (i + 1 < mdy.length () &&
(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 ());
i += 2;
@ -125,8 +126,8 @@ Date::Date (const std::string& mdy, const std::string& format /* = "m/d/Y" */)
// Double digit.
case 'y':
if (i + 1 >= mdy.length () ||
! ::isdigit (mdy[i + 0]) ||
! ::isdigit (mdy[i + 1]))
! isdigit (mdy[i + 0]) ||
! isdigit (mdy[i + 1]))
{
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':
if (i + 1 >= mdy.length () ||
! ::isdigit (mdy[i + 0]) ||
! ::isdigit (mdy[i + 1]))
! isdigit (mdy[i + 0]) ||
! isdigit (mdy[i + 1]))
{
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':
if (i + 1 >= mdy.length () ||
! ::isdigit (mdy[i + 0]) ||
! ::isdigit (mdy[i + 1]))
! isdigit (mdy[i + 0]) ||
! isdigit (mdy[i + 1]))
{
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.
case 'Y':
if (i + 3 >= mdy.length () ||
! ::isdigit (mdy[i + 0]) ||
! ::isdigit (mdy[i + 1]) ||
! ::isdigit (mdy[i + 2]) ||
! ::isdigit (mdy[i + 3]))
! isdigit (mdy[i + 0]) ||
! isdigit (mdy[i + 1]) ||
! isdigit (mdy[i + 2]) ||
! isdigit (mdy[i + 3]))
{
throw std::string ("\"") + mdy + "\" is not a valid date.";
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +1,4 @@
#! /bin/bash
#! /bin/sh
date > all.log
@ -14,7 +14,7 @@ END=`tail -1 all.log`
OS=`uname`
case $OS in
Darwin)
Darwin | FreeBSD)
STARTEPOCH=`date -j -f "%a %b %d %T %Z %Y" "${START}" "+%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;
for (int i = 0; i < (int) data.length (); ++i)
{
if (::isdigit (data[i]))
if (isdigit (data[i]))
end = i;
if (data[i] == '.')
@ -227,11 +227,11 @@ std::string commify (const std::string& data)
int consecutiveDigits = 0;
for (; i >= 0; --i)
{
if (::isdigit (data[i]))
if (isdigit (data[i]))
{
result += data[i];
if (++consecutiveDigits == 3 && i && ::isdigit (data[i - 1]))
if (++consecutiveDigits == 3 && i && isdigit (data[i - 1]))
{
result += ',';
consecutiveDigits = 0;
@ -251,11 +251,11 @@ std::string commify (const std::string& data)
int consecutiveDigits = 0;
for (; i >= 0; --i)
{
if (::isdigit (data[i]))
if (isdigit (data[i]))
{
result += data[i];
if (++consecutiveDigits == 3 && i && ::isdigit (data[i - 1]))
if (++consecutiveDigits == 3 && i && isdigit (data[i - 1]))
{
result += ',';
consecutiveDigits = 0;
@ -279,8 +279,8 @@ std::string lowerCase (const std::string& input)
{
std::string output = input;
for (int i = 0; i < (int) input.length (); ++i)
if (::isupper (input[i]))
output[i] = ::tolower (input[i]);
if (isupper (input[i]))
output[i] = tolower (input[i]);
return output;
}
@ -290,8 +290,8 @@ std::string upperCase (const std::string& input)
{
std::string output = input;
for (int i = 0; i < (int) input.length (); ++i)
if (::islower (input[i]))
output[i] = ::toupper (input[i]);
if (islower (input[i]))
output[i] = toupper (input[i]);
return output;
}
@ -302,7 +302,7 @@ std::string ucFirst (const std::string& input)
std::string output = input;
if (output.length () > 0)
output[0] = ::toupper (output[0]);
output[0] = toupper (output[0]);
return output;
}
@ -352,7 +352,7 @@ void guess (
bool digitsOnly (const std::string& input)
{
for (size_t i = 0; i < input.length (); ++i)
if (!::isdigit (input[i]))
if (!isdigit (input[i]))
return false;
return true;
@ -362,7 +362,7 @@ bool digitsOnly (const std::string& input)
bool noSpaces (const std::string& input)
{
for (size_t i = 0; i < input.length (); ++i)
if (::isspace (input[i]))
if (isspace (input[i]))
return false;
return true;

View file

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