From f0048395fb7d64d7fe4ae2149ab0f5baf734dd09 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 14 Apr 2013 11:29:46 -0400 Subject: [PATCH 001/173] L10N Utility - Combined three l10n utiity scripts into one, which can now do the following: - Automatically locate all the localized string files. - Look for missing strings in the localized string files. - Point out strings that are not used in the code. - Count strings. - Warn when strings are unchanged across languages. - Exit with a status code, so it can be used in unit tests. - Thanks to Wim Schuermann and Fidel Mato for providing code and ideas. --- ChangeLog | 4 + scripts/utils/l10n | 172 +++++++++++++++++++++++++++++++++++ scripts/utils/verify_l10n | 59 ------------ scripts/utils/verify_strings | 57 ------------ 4 files changed, 176 insertions(+), 116 deletions(-) create mode 100755 scripts/utils/l10n delete mode 100755 scripts/utils/verify_l10n delete mode 100755 scripts/utils/verify_strings diff --git a/ChangeLog b/ChangeLog index 2093ec52c..abe1bc965 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17,6 +17,8 @@ Features up and needs a sync. + Supports IPv4 and IPv6 server addresses. + Began fr-FR localization. + + Merged three l10n utility scripts into one tools, scripts/utils/l10n, which + will help the translation effort. Bugs + #1196 Now builds on Hurd (thanks to Jakub Wilk). @@ -29,6 +31,8 @@ Bugs Steve Rader). + #1247 Tests now create a local dir, rather than use the insecure /tmp dir (thanks to Jakub Wilk). + + #1249 Build system now recognizes GNU/Hurd and GNU/kFreeBSD (thanks to Jakub + Wilk). + Fixed bug so that 'limit:page' now considers footnote messages. ------ old releases ------------------------------ diff --git a/scripts/utils/l10n b/scripts/utils/l10n new file mode 100755 index 000000000..60cd9c8f4 --- /dev/null +++ b/scripts/utils/l10n @@ -0,0 +1,172 @@ +#! /usr/bin/env python -tt +################################################################################ +## taskwarrior - a command line task list manager. +## +## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## +## Permission is hereby granted, free of charge, to any person obtaining a copy +## of this software and associated documentation files (the "Software"), to deal +## in the Software without restriction, including without limitation the rights +## to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +## copies of the Software, and to permit persons to whom the Software is +## furnished to do so, subject to the following conditions: +## +## The above copyright notice and this permission notice shall be included +## in all copies or substantial portions of the Software. +## +## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +## OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +## THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +## OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +## SOFTWARE. +## +## http://www.opensource.org/licenses/mit-license.php +## +################################################################################ + +from __future__ import print_function +from __future__ import unicode_literals + +import os +import sys +import argparse +import re +import fnmatch + +def find_localizations(source): + '''Finds all [a-z][a-z]-[A-Z][A-Z].h files in the source tree.''' + found = [] + for path, dirs, files in os.walk(source, topdown=True, onerror=None, followlinks=False): + found.extend(map(lambda x: os.path.join(path, x), + fnmatch.filter(files, '[a-z][a-z]-[A-Z][A-Z].h'))) + return found + +def read_file(translations, file): + '''Reads all the localized strings from a file.''' + translations[file] = {} + with open(file, 'r') as fh: + for match in re.findall(r'^\s*#define\s+(STRING_[^\s]+)(\s|\\)+"([^"]*)"', fh.read(), re.MULTILINE): + translations[file][match[0]] = match[2] + +def is_present(translations, file, string): + '''Determines if the string is defined in a translation.''' + return string in translations[file] + +def used_in_source(source, string): + '''Determines if the string is used in the source.''' + command = "git grep %s %s | grep -v [a-z][a-z]-[A-Z][A-Z].h >/dev/null 2>&1" % (string, source) + return True if os.system(command) == 0 else False + +def is_translated(translations, file, string): + '''Determines whether the string is the same in the base version as in the + translation, indicating work needed.''' + if file == base: + return True + elif string not in translations[base]: + return True + elif string not in translations[file]: + return False + else: + return bool(translations[file][string] != translations[base][string]) + +def main(args): + '''Processes all the localized files.''' + errors = 0 + translations = {} + + for file in args.files: + # Verify all files exist. + if not os.path.exists(file): + raise Exception("Localized file '%s' not readable." % file) + read_file(translations, file) + + strings = set() + for file in translations: + for string in translations[file]: + strings.add(string) + + if len(strings) == 0: + if not args.quiet: + print("There are no localized strings found.") + errors = 1 + + # Get length of longest string ID. + longest_string = len(max(strings, key=len)) + + # Display info. + if not args.quiet: + print('Scanning in', args.source) + print() + + # Print header line. + files = map(lambda x: os.path.basename(x), args.files) + if not args.quiet: + print('%-*s %s' % (longest_string, 'String ID', ' '.join(files))) + print('-' * longest_string, ' '.join(['-------'] * len(files))) + + for string in sorted(strings): + # assess status of 'string': + # - clean + + line = '' + line_errors = 0 + for file in args.files: + message = ' ' + if is_present(translations, file, string): + if is_translated(translations, file, string): + message = ' Ok ' + else: + message = ' TODO ' + else: + message = ' Missing' + line_errors = 1 + + line += message + + if args.all or line_errors != 0: + if args.search: + if used_in_source(args.source, string): + if not args.quiet: + print('%-*s' % (longest_string, string), line, sep='') + else: + if not args.quiet: + print('%-*s' % (longest_string, string), line, sep='') + line_errors = 1 + else: + if not args.quiet: + print('%-*s' % (longest_string, string), line, sep='') + + if line_errors: + errors = 1 + + if not args.quiet: + print('-' * longest_string, ' '.join(['-------'] * len(files))) + print('%-*s' % (longest_string, 'Total'), end='') + for file in args.files: + print('%8d' % len(translations[file]), end='') + print() + + sys.exit(errors) + +if __name__ == "__main__": + usage="""Utility for checking localized string status across translations.""" + + parser = argparse.ArgumentParser(description=usage) + parser.add_argument('--source', action='store', required=True, help='The source code tree.') + parser.add_argument('--all', action='store_true', help='Show all string IDs.') + parser.add_argument('--search', action='store_true', help='Search source for use.') + parser.add_argument('--quiet', action='store_true', help='Produces no output.') + args = parser.parse_args() + + if args.source: + args.files = find_localizations(args.source) + + base = filter(lambda x: x.endswith('en-US.h'), args.files)[0] + + try: + main(args) + except Exception as msg: + print('Error:', msg) + diff --git a/scripts/utils/verify_l10n b/scripts/utils/verify_l10n deleted file mode 100755 index a148e36c2..000000000 --- a/scripts/utils/verify_l10n +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/env python -################################################################################ -## taskwarrior - a command line task list manager. -## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. -## -## Permission is hereby granted, free of charge, to any person obtaining a copy -## of this software and associated documentation files (the "Software"), to deal -## in the Software without restriction, including without limitation the rights -## to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -## copies of the Software, and to permit persons to whom the Software is -## furnished to do so, subject to the following conditions: -## -## The above copyright notice and this permission notice shall be included -## in all copies or substantial portions of the Software. -## -## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -## OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -## THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -## OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -## SOFTWARE. -## -## http://www.opensource.org/licenses/mit-license.php -## -################################################################################ - -import sys -import re - -if len(sys.argv) < 3: - print "Usage:", sys.argv[0], "file1 file2 ..." - sys.exit() - -translations = {} -missing = {} -for file in sys.argv[1:]: - with open(file, 'r') as f: - translations[file] = set() - missing[file] = set() - # Treat empty strings ("") as a missing entry - because they are just that. - for m in re.findall(r'^\s*#define\s(STRING_[^\s]+)(\s|\\)+"([^"]+)"', f.read(), re.MULTILINE): - translations[file].add(m[0]) - -for file in translations: - for entry in translations[file]: - for other_translation in translations: - if entry not in translations[other_translation]: - missing[other_translation].add(entry) - -for file in missing: - if len(missing[file]) > 0: - print "--- %s --- missing defines:" % file - for i in sorted(list(missing[file])): - print i - else: - print "--- %s --- is ok." % file - diff --git a/scripts/utils/verify_strings b/scripts/utils/verify_strings deleted file mode 100755 index b6fc05b66..000000000 --- a/scripts/utils/verify_strings +++ /dev/null @@ -1,57 +0,0 @@ -#! /usr/bin/perl -################################################################################ -## taskwarrior - a command line task list manager. -## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. -## -## Permission is hereby granted, free of charge, to any person obtaining a copy -## of this software and associated documentation files (the "Software"), to deal -## in the Software without restriction, including without limitation the rights -## to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -## copies of the Software, and to permit persons to whom the Software is -## furnished to do so, subject to the following conditions: -## -## The above copyright notice and this permission notice shall be included -## in all copies or substantial portions of the Software. -## -## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -## OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -## THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -## OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -## SOFTWARE. -## -## http://www.opensource.org/licenses/mit-license.php -## -################################################################################ - -use strict; -use warnings; - -# Use the en-US.h file, or whatever was specified on the command line. -my $file = scalar @ARGV ? shift @ARGV : 'en-US.h'; - -# Find all the defined strings. -my @strings; -if (open my $fh, '<', $file) -{ - while (my $line = <$fh>) - { - push @strings, $1 if $line =~ /\#define\s+(STRING_\S+)/; - } - - close $fh; -} - -# Recursively search for all the defined strings, reporting those that are not -# used. -for my $string (@strings) -{ - print "$string is not used\n" - if `git grep $string | grep -v [a-z][a-z]-[A-Z][A-Z].h` eq ''; -} - -exit 0; - -################################################################################ From fefe94424653a555d49f23968a428238b8d87fee Mon Sep 17 00:00:00 2001 From: YBSAR Date: Wed, 17 Apr 2013 15:55:15 +0200 Subject: [PATCH 002/173] Translated date-related strings into French. --- src/fr-FR.h | 66 ++++++++++++++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/src/fr-FR.h b/src/fr-FR.h index fa7b6e42f..1f86778a6 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -549,51 +549,51 @@ #define STRING_CONTEXT_SHADOW_UPDATE "[Shadow file '{1}' updated.]" // Date -#define STRING_DATE_INVALID_FORMAT "'{1}' is not a valid date in the '{2}' format." -#define STRING_DATE_BAD_WEEKSTART "The 'weekstart' configuration variable may only contain 'Sunday' or 'Monday'." +#define STRING_DATE_INVALID_FORMAT "'{1}' n'est pas une date au format '{2}'." +#define STRING_DATE_BAD_WEEKSTART "La variable de configuration 'weekstart' ne peut contenir que 'dimanche' ou 'lundi'." #define STRING_DATE_TOO_MUCH "The date is too far into the future." -#define STRING_DATE_JANUARY_LONG "january" -#define STRING_DATE_FEBRUARY_LONG "february" -#define STRING_DATE_MARCH_LONG "march" -#define STRING_DATE_APRIL_LONG "april" -#define STRING_DATE_MAY_LONG "may" -#define STRING_DATE_JUNE_LONG "june" -#define STRING_DATE_JULY_LONG "july" -#define STRING_DATE_AUGUST_LONG "august" -#define STRING_DATE_SEPTEMBER_LONG "september" -#define STRING_DATE_OCTOBER_LONG "october" -#define STRING_DATE_NOVEMBER_LONG "november" -#define STRING_DATE_DECEMBER_LONG "december" +#define STRING_DATE_JANUARY_LONG "janvier" +#define STRING_DATE_FEBRUARY_LONG "février" +#define STRING_DATE_MARCH_LONG "mars" +#define STRING_DATE_APRIL_LONG "avril" +#define STRING_DATE_MAY_LONG "mai" +#define STRING_DATE_JUNE_LONG "juin" +#define STRING_DATE_JULY_LONG "juillet" +#define STRING_DATE_AUGUST_LONG "août" +#define STRING_DATE_SEPTEMBER_LONG "septembre" +#define STRING_DATE_OCTOBER_LONG "octobre" +#define STRING_DATE_NOVEMBER_LONG "novembre" +#define STRING_DATE_DECEMBER_LONG "décembre" #define STRING_DATE_JANUARY_SHORT "jan" -#define STRING_DATE_FEBRUARY_SHORT "feb" +#define STRING_DATE_FEBRUARY_SHORT "fév" #define STRING_DATE_MARCH_SHORT "mar" -#define STRING_DATE_APRIL_SHORT "apr" -#define STRING_DATE_MAY_SHORT "may" +#define STRING_DATE_APRIL_SHORT "avr" +#define STRING_DATE_MAY_SHORT "mai" #define STRING_DATE_JUNE_SHORT "jun" #define STRING_DATE_JULY_SHORT "jul" -#define STRING_DATE_AUGUST_SHORT "aug" +#define STRING_DATE_AUGUST_SHORT "aoû" #define STRING_DATE_SEPTEMBER_SHORT "sep" #define STRING_DATE_OCTOBER_SHORT "oct" #define STRING_DATE_NOVEMBER_SHORT "nov" -#define STRING_DATE_DECEMBER_SHORT "dec" +#define STRING_DATE_DECEMBER_SHORT "déc" -#define STRING_DATE_SUNDAY_LONG "sunday" -#define STRING_DATE_MONDAY_LONG "monday" -#define STRING_DATE_TUESDAY_LONG "tuesday" -#define STRING_DATE_WEDNESDAY_LONG "wednesday" -#define STRING_DATE_THURSDAY_LONG "thursday" -#define STRING_DATE_FRIDAY_LONG "friday" -#define STRING_DATE_SATURDAY_LONG "saturday" +#define STRING_DATE_SUNDAY_LONG "dimanche" +#define STRING_DATE_MONDAY_LONG "lundi" +#define STRING_DATE_TUESDAY_LONG "mardi" +#define STRING_DATE_WEDNESDAY_LONG "mercredi" +#define STRING_DATE_THURSDAY_LONG "jeudi" +#define STRING_DATE_FRIDAY_LONG "vendredi" +#define STRING_DATE_SATURDAY_LONG "samedi" -#define STRING_DATE_SUNDAY_SHORT "sun" -#define STRING_DATE_MONDAY_SHORT "mon" -#define STRING_DATE_TUESDAY_SHORT "tue" -#define STRING_DATE_WEDNESDAY_SHORT "wed" -#define STRING_DATE_THURSDAY_SHORT "thu" -#define STRING_DATE_FRIDAY_SHORT "fri" -#define STRING_DATE_SATURDAY_SHORT "sat" +#define STRING_DATE_SUNDAY_SHORT "dim" +#define STRING_DATE_MONDAY_SHORT "lun" +#define STRING_DATE_TUESDAY_SHORT "mar" +#define STRING_DATE_WEDNESDAY_SHORT "mer" +#define STRING_DATE_THURSDAY_SHORT "jeu" +#define STRING_DATE_FRIDAY_SHORT "ven" +#define STRING_DATE_SATURDAY_SHORT "sam" // dependency #define STRING_DEPEND_BLOCKED "Task {1} is blocked by:" From f6ef9249b84223cf3b3db1bc381b81a4e1c902c0 Mon Sep 17 00:00:00 2001 From: Fidel Mato Date: Sun, 28 Apr 2013 19:27:35 +0200 Subject: [PATCH 003/173] L10N translated new (in 2.3.0) es-ES.h STRING_s - Translated 17 strings, mostly STRING_CMD_SYNC_* - Also new strings from tasksh, usage message included. --- src/es-ES.h | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/src/es-ES.h b/src/es-ES.h index 20e6f40df..fe7207283 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -243,6 +243,7 @@ #define STRING_CMD_STATS_PROJECTS "Proyectos" #define STRING_CMD_STATS_DATA_SIZE "Tamaño de datos" #define STRING_CMD_STATS_UNDO_TXNS "Transacciones deshacer" +#define STRING_CMD_STATS_BACKLOG "Sincroniza transacciones atrasadas" #define STRING_CMD_STATS_TAGGED "Tareas marcadas" #define STRING_CMD_STATS_OLDEST "Tarea más antigua" #define STRING_CMD_STATS_NEWEST "Tarea más reciente" @@ -255,7 +256,7 @@ #define STRING_CMD_STATS_DESC_LEN "Longitud media de desc" #define STRING_CMD_STATS_CHARS "{1} caracteres" -#define STRING_CMD_STATS_LAST_SYNCH "Última sincronización con el servidor" +#define STRING_CMD_STATS_LAST_SYNC "Ültima sincronización del servidor" #define STRING_CMD_STATS_BLOCKED "Tareas bloqueadas" #define STRING_CMD_STATS_BLOCKING "Tareas bloqueantes" #define STRING_CMD_REPORTS_USAGE "Lista todos los informes soportados" @@ -406,12 +407,26 @@ #define STRING_CMD_IMPORT_NOT_JSON "No es un objeto JSON: {1}" #define STRING_CMD_IMPORT_NO_DESC "La anotación carece de descripción: {1}" #define STRING_CMD_IMPORT_NO_ENTRY "La anotación carece de fecha de entrada: {1}" -#define STRING_CMD_SHELL_USAGE "Lanza un entorno de comandos interactivo" #define STRING_CMD_SHELL_HELP1 "Escriba un comando de task (como 'list'), o pulse 'Enter'." #define STRING_CMD_SHELL_HELP2 "No hace falta incluir el propio comando 'task'." #define STRING_CMD_SHELL_HELP3 "Escriba 'quit' (o 'bye', 'exit') para terminar la sesión." -#define STRING_CMD_SYNCH_USAGE "Sincroniza datos con el Servidor Task" -#define STRING_CMD_SYNCH_NO_SERVER "El Servidor Task no está configurado." + +#define STRING_CMD_SYNC_USAGE "Sincroniza datos con el Servidor Task" +#define STRING_CMD_SYNC_NO_SERVER "El Servidor Task no está configurado." +#define STRING_CMD_SYNC_BAD_CRED "Credenciales del Servidor Task incorrectas." +#define STRING_CMD_SYNC_ADD " añade {1} '{2}'" +#define STRING_CMD_SYNC_MOD "modifica {1} '{2}'" +#define STRING_CMD_SYNC_PROGRESS "Sincronizando con {1}" +#define STRING_CMD_SYNC_SUCCESS0 "Sincronización correcta." +#define STRING_CMD_SYNC_SUCCESS1 "Sincronización correcta. {1} cambios enviados." +#define STRING_CMD_SYNC_SUCCESS2 "Sincronización correcta. {1} cambios recibidos." +#define STRING_CMD_SYNC_SUCCESS3 "Sincronización correcta. {1} cambios enviados, {2} cambios recibidos." +#define STRING_CMD_SYNC_SUCCESS_NOP "Sincronización correcta. No hay cambios" +#define STRING_CMD_SYNC_FAIL_ACCOUNT "Sincronización fallida. O bien sus credenciales son incorrectas, o su cuenta de Servidor Task no está habilitada." +#define STRING_CMD_SYNC_FAIL_ERROR "Sincronización fallida. El Servidor Task devolvió error: {1} {2}" +#define STRING_CMD_SYNC_FAIL_CONNECT "Sincronización fallida. No se pudo conectar con el Servidor Task." +#define STRING_CMD_SYNC_BAD_SERVER "Sincronización fallida. Ajuste de configuración '{1}' incorrecto" + #define STRING_CMD_DIAG_USAGE "Detalles de plataforma, construcción y entorno" #define STRING_CMD_DIAG_PLATFORM "Plataforma" #define STRING_CMD_DIAG_UNKNOWN "" @@ -546,7 +561,6 @@ #define STRING_CONTEXT_SHADOW_C "La variable de configuración 'shadow.file' está ajustada a " "sobreescribrir sus tareas completadas. Por favor, cambie esto." #define STRING_CONTEXT_SHADOW_U "La variable de configuración 'shadow.file' está ajustada a " "sobreescribrir su registro de deshacer. Por favor, cambie esto." #define STRING_CONTEXT_SHADOW_B "La variable de configuración 'shadow.file' está ajustada a " "sobreescribrir su archivo backlog. Por favor, cambie esto." -#define STRING_CONTEXT_SHADOW_S "La variable de configuración 'shadow.file' está ajustada a " "sobreescribrir su archivo synch.key. Por favor, cambie esto." #define STRING_CONTEXT_SHADOW_UPDATE "[Archivo shadow '{1}' actualizado.]" // Date @@ -997,5 +1011,14 @@ #define STRING_UTIL_KIBIBYTES "KiB" #define STRING_UTIL_BYTES "B" +// shell +#define STRING_SHELL_USAGE \ + "Uso: tasksh [] Ejecuta los comandos task contenidos en , si se indica;\n" \ + " si no, lanza un entorno interactivo de comandos task.\n" \ + " tasksh --version Muestra la versión de task.\n" \ + " tasksh --help Muestra esta ayuda.\n" + +#define STRING_SHELL_NO_FILE "El fichero de entrada no existe.\n" + #endif From 6981893a2e92b93fc1a91275ca8eedb4828501f2 Mon Sep 17 00:00:00 2001 From: Haitham Gad Date: Sun, 28 Apr 2013 22:04:33 -0400 Subject: [PATCH 004/173] Disallowing tasksh to start in interactive mode (not in batch mode) if no ~/.taskrc exists --- src/shell/main.cpp | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/shell/main.cpp b/src/shell/main.cpp index b3b73eeba..eb827e3e6 100644 --- a/src/shell/main.cpp +++ b/src/shell/main.cpp @@ -94,27 +94,34 @@ int main (int argc, const char** argv) } } - // if a file is given, read from it + // If a file is given, read from it std::ifstream fin; if (read_from_file) { fin.open (argv[1]); } - // commands may be redirected too + // Commands may be redirected too std::istream &in = read_from_file ? fin : std::cin; - // Begining initilaization - context.initialize (0, NULL); + if (Readline::interactiveMode (in)) + { + // Begining initilaization + if (context.initialize (0, NULL)) + { + return -1; + } - // Display some kind of welcome message. - Color bold (Color::nocolor, Color::nocolor, false, true, false); + // Display some kind of welcome message. + Color bold (Color::nocolor, Color::nocolor, false, true, false); - std::cout << (context.color () ? bold.colorize (PACKAGE_STRING) : PACKAGE_STRING) - << " shell\n\n" - << STRING_CMD_SHELL_HELP1 << '\n' - << STRING_CMD_SHELL_HELP2 << '\n' - << STRING_CMD_SHELL_HELP3 << "\n\n"; + std::cout << (context.color () ? bold.colorize (PACKAGE_STRING) + : PACKAGE_STRING) + << " shell\n\n" + << STRING_CMD_SHELL_HELP1 << '\n' + << STRING_CMD_SHELL_HELP2 << '\n' + << STRING_CMD_SHELL_HELP3 << "\n\n"; + } // Make a copy because context.clear will delete them. std::string permanent_overrides; From 1b405e4975ee23e986c07655c6f9b717d5c15659 Mon Sep 17 00:00:00 2001 From: Tullio Facchinetti Date: Thu, 2 May 2013 12:12:51 +0200 Subject: [PATCH 005/173] Italian translation. --- CMakeLists.txt | 1 + cmake.h.in | 1 + src/i18n.h | 2 + src/it-IT.h | 996 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 1000 insertions(+) create mode 100644 src/it-IT.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c5805a3a..bb6724bea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -132,6 +132,7 @@ set (LANGUAGE_EN_US 1) set (LANGUAGE_ES_ES 2) set (LANGUAGE_DE_DE 3) set (LANGUAGE_FR_FR 4) +set (LANGUAGE_IT_IT 5) message ("-- Configuring cmake.h") configure_file ( diff --git a/cmake.h.in b/cmake.h.in index cd2be5e70..27dfdd908 100644 --- a/cmake.h.in +++ b/cmake.h.in @@ -18,6 +18,7 @@ #define LANGUAGE_ES_ES ${LANGUAGE_ES_ES} #define LANGUAGE_FR_FR ${LANGUAGE_FR_FR} #define LANGUAGE_DE_DE ${LANGUAGE_DE_DE} +#define LANGUAGE_IT_IT ${LANGUAGE_IT_IT} /* git information */ #cmakedefine HAVE_COMMIT diff --git a/src/i18n.h b/src/i18n.h index 5df5ca3c8..232395d60 100644 --- a/src/i18n.h +++ b/src/i18n.h @@ -51,6 +51,8 @@ #include #elif PACKAGE_LANGUAGE == LANGUAGE_DE_DE #include +#elif PACKAGE_LANGUAGE == LANGUAGE_IT_IT +#include #endif #define CCOLOR_BOLD 500 diff --git a/src/it-IT.h b/src/it-IT.h new file mode 100644 index 000000000..4a2e32c41 --- /dev/null +++ b/src/it-IT.h @@ -0,0 +1,996 @@ +//////////////////////////////////////////////////////////////////////////////// +// taskwarrior - a command line task list manager. +// +// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// +// http://www.opensource.org/licenses/mit-license.php +// +//////////////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////////////// +// +// This file contains all the strings that should be localized. If a string is +// *not* in this file, then either: +// (a) it should not be localized, or +// (b) you have found a bug - please report it +// +// Strings that should be localized: +// - text output that the user sees +// +// Strings that should NOT be localized: +// - .taskrc configuration variable names +// - command names +// - extension function names +// - certain literals associated with parsing +// - debug strings +// - attribute names +// - modifier names +// - logical operators (and, or, xor) +// +// Rules: +// - Localized strings should not in general contain leading or trailing +// white space, including \n, thus allowing the code to compose strings. +// - Retain the tense of the original string. +// - Retain the same degree of verbosity of the original string. +// +//////////////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////////////// +// +// Translators: +// 1. Copy this file (en-US.h) to a new file with the target locale as the +// file name. Using German as an example, do this: +// +// cp en-US.h de-DE.h +// +// 2. Modify all the strings below. +// i.e. change "Unknown error." to "Unbekannter Fehler.". +// +// 3. Add your new translation to the task.git/src/i18n.h file, if necessary, +// by inserting: +// +// #elif PACKAGE_LANGUAGE == LANGUAGE_DE_DE +// #include +// +// 4. Add your new language to task.git/CMakeLists.txt, making sure that +// number is unique: +// +// set (LANGUAGE_DE_DE 3) +// +// 5. Add your new language to task.git/cmake.h.in: +// +// #define LANGUAGE_DE_DE ${LANGUAGE_DE_DE} +// +// 6. Build your localized Taskwarrior with these commands: +// +// cd task.git +// cmake -D LANGUAGE=3 . +// make +// +// 7. Submit your translation to support@taskwarrior.org, where it will be +// shared with others. +// +//////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDED_STRINGS +#define INCLUDED_STRINGS +#define L10N // Localization complete. + +// Note that for English, the following two lines are not displayed. For all +// other localizations, these lines will appear in the output of the 'version' +// and 'diagnostics' commands. +// +// DO NOT include a copyright in the translation. +// +#define STRING_LOCALIZATION_DESC "Traduzione in Italiano" +#define STRING_LOCALIZATION_AUTHOR "Tradotto in Italiano da Tullio Facchinetti." + +// A3 +#define STRING_A3_ALTERNATE_RC "Uso del file .taskrc alternativo {1}" +#define STRING_A3_ALTERNATE_DATA "Uso di data.location alternativa {1}" +#define STRING_A3_OVERRIDE_RC "Modifica configurazione rc.{1}:{2}" +#define STRING_A3_OVERRIDE_PROBLEM "Problema di modifica: {1}" +#define STRING_A3_UNKNOWN_ATTMOD "Errore: modificatore di attributo non riconosciuto '{1}'." +#define STRING_A3_MISMATCHED_PARENS "Mancata corrispondenza nell'uso delle parentesi nell'espressione" +#define STRING_A3_PATTERN_GARBAGE "Carattere(i) non riconosciuto(i) alla fine del pattern." +#define STRING_A3_MALFORMED_PATTERN "Pattern malformato." +#define STRING_A3_MALFORMED_ID "ID malformato." +#define STRING_A3_MALFORMED_UUID "UUID malformato." +#define STRING_A3_ID_AFTER_HYPHEN "ID non riconosciuto dopo il trattino." +#define STRING_A3_RANGE_INVERTED "Intervallo invertito 'alto-basso' invece di 'basso-alto'" +#define STRING_A3_UUID_AFTER_COMMA "UUID non riconosciuto dopo la virgola." + +// Color +#define STRING_COLOR_UNRECOGNIZED "Il colore '{1}' non è riconosciuto." + +// columns/Col* +#define STRING_COLUMN_BAD_NAME "Nome di colonna '{1}' non riconosciuto." +#define STRING_COLUMN_BAD_FORMAT "Formato di colonna '{1}.{2}' non riconosciuto" +#define STRING_COLUMN_LABEL_TASKS "Task" +#define STRING_COLUMN_LABEL_DEP "Dipendenze" +#define STRING_COLUMN_LABEL_DEP_S "Dip" +#define STRING_COLUMN_LABEL_DESC "Descrizione" +#define STRING_COLUMN_LABEL_DUE "Scadenza" +#define STRING_COLUMN_LABEL_END "Fine" +#define STRING_COLUMN_LABEL_ENTERED "Inserito" +#define STRING_COLUMN_LABEL_COUNT "Conteggio" +#define STRING_COLUMN_LABEL_COMPLETE "Completato" +#define STRING_COLUMN_LABEL_MOD "Modificato" +#define STRING_COLUMN_LABEL_ADDED "Aggiunto" +#define STRING_COLUMN_LABEL_AGE "Età" +#define STRING_COLUMN_LABEL_ID "ID" +#define STRING_COLUMN_LABEL_PRI "Pri" +#define STRING_COLUMN_LABEL_PRIORITY "Priorità" +#define STRING_COLUMN_LABEL_PROJECT "Progetto" +#define STRING_COLUMN_LABEL_UNTIL "Fino a" +#define STRING_COLUMN_LABEL_WAIT "Attesa" +#define STRING_COLUMN_LABEL_WAITING "Attesa fino" +#define STRING_COLUMN_LABEL_RECUR "Period" +#define STRING_COLUMN_LABEL_RECUR_L "Periodico" +#define STRING_COLUMN_LABEL_START "Inizio" +#define STRING_COLUMN_LABEL_STARTED "Iniziati" +#define STRING_COLUMN_LABEL_ACTIVE "A" +#define STRING_COLUMN_LABEL_STATUS "Stato" +#define STRING_COLUMN_LABEL_STAT "St" +#define STRING_COLUMN_LABEL_STAT_PE "Da fare" +#define STRING_COLUMN_LABEL_STAT_CO "Completati" +#define STRING_COLUMN_LABEL_STAT_DE "Cancellati" +#define STRING_COLUMN_LABEL_STAT_WA "In attesa" +#define STRING_COLUMN_LABEL_STAT_RE "Periodicamente" +#define STRING_COLUMN_LABEL_STAT_P "P" +#define STRING_COLUMN_LABEL_STAT_C "C" +#define STRING_COLUMN_LABEL_STAT_D "D" +#define STRING_COLUMN_LABEL_STAT_W "W" +#define STRING_COLUMN_LABEL_STAT_R "R" +#define STRING_COLUMN_LABEL_TAGS "Tags" +#define STRING_COLUMN_LABEL_TAG "Tag" +#define STRING_COLUMN_LABEL_UUID "UUID" +#define STRING_COLUMN_LABEL_URGENCY "Urgenza" +#define STRING_COLUMN_LABEL_NAME "Nome" +#define STRING_COLUMN_LABEL_VALUE "Valore" +#define STRING_COLUMN_LABEL_MASK "Maschera" +#define STRING_COLUMN_LABEL_MASK_IDX "Indice Maschera" +#define STRING_COLUMN_LABEL_PARENT "Task genitore" +#define STRING_COLUMN_LABEL_DATE "Data" +#define STRING_COLUMN_LABEL_COLUMN "Colonna" +#define STRING_COLUMN_LABEL_STYLES "Formati Supportati" +#define STRING_COLUMN_LABEL_EXAMPLES "Esempio" +#define STRING_COLUMN_LABEL_SCHED "Fissato" +#define STRING_COLUMN_LABEL_UDA "Nome" +#define STRING_COLUMN_LABEL_TYPE "Tipo" +#define STRING_COLUMN_LABEL_LABEL "Etichetta" +#define STRING_COLUMN_LABEL_VALUES "Valori consentiti" +#define STRING_COLUMN_LABEL_UDACOUNT "Conteggio Uso" +#define STRING_COLUMN_LABEL_ORPHAN "UDA Orfano" + +// Column Examples +#define STRING_COLUMN_EXAMPLES_TAGS "casa @faccende next" +#define STRING_COLUMN_EXAMPLES_PROJ "casa.giardino" +#define STRING_COLUMN_EXAMPLES_PAR "casa" +#define STRING_COLUMN_EXAMPLES_IND " casa.giardino" +#define STRING_COLUMN_EXAMPLES_DESC "Spostare i vestiti sul gancio più basso" +#define STRING_COLUMN_EXAMPLES_ANNO1 "Immediatamente prima di pranzo" +#define STRING_COLUMN_EXAMPLES_ANNO2 "Se si sta giocando la partita questo pomeriggio" +#define STRING_COLUMN_EXAMPLES_ANNO3 "Prima di scrivere la lettera a casa" +#define STRING_COLUMN_EXAMPLES_ANNO4 "Se non si va a tagliare i capelli" + +// commands/Cmd* +#define STRING_CMD_CONFLICT "Report personalizzato '{1}' provoca conflitto con un comando standard." +#define STRING_CMD_VERSION_USAGE "Mostra il numero di versione di taskwarrior" +#define STRING_CMD_VERSION_USAGE2 "Mostra solo il numero di versione di taskwarrior" +#define STRING_CMD_VERSION_MIT "Taskwarrior può essere copiato solo nei termini della licenza MIT, reperibile nei sorgenti di taskwarrior." +#define STRING_CMD_VERSION_DOCS "La documentazione di taskwarrior è consultabile con 'man task', 'man taskrc', 'man task-tutorial', 'man task-color', 'man task-sync', 'man task-faq' o presso http://taskwarrior.org" +#define STRING_CMD_VERSION_BUILT "{1} {2} generato per " +#define STRING_CMD_VERSION_UNKNOWN "sconosciuto" +#define STRING_CMD_VERSION_COPY "Copyright (C) 2006 - 2013 P. Beckingham, F. Hernandez." +#define STRING_CMD_LOGO_USAGE "Mostra il logo di Taskwarrior" +#define STRING_CMD_LOGO_COLOR_REQ "Il comando logo richiede l'abilitazione del supporto ai colori." +#define STRING_CMD_EXEC_USAGE "Esegue comandi e script esterni" +#define STRING_CMD_URGENCY_USAGE "Mostra l'urgenza di un task" +#define STRING_CMD_URGENCY_RESULT "task {1} urgenza {2}" +#define STRING_CMD_ADD_USAGE "Aggiunge un nuovo task" +#define STRING_CMD_ADD_FEEDBACK "Task {1} creato." +#define STRING_CMD_ADD_BAD_ATTRIBUTE "Attributo '{1}' non riconosciuto." +#define STRING_CMD_LOG_USAGE "Aggiunge un nuovo task già completato" +#define STRING_CMD_LOG_NO_RECUR "Task periodici non possono essere registrati." +#define STRING_CMD_LOG_NO_WAITING "Task in attesa non possono essere registrati." +#define STRING_CMD_LOG_LOGGED "Task registrato." +#define STRING_CMD_IDS_USAGE_RANGE "Mostra gli ID dei task corrispondenti, come intervallo" +#define STRING_CMD_IDS_USAGE_LIST "Mostra gli ID dei task corrispondenti, in forma di lista" +#define STRING_CMD_IDS_USAGE_ZSH "Mostra gli ID e le descrizioni dei task corrispondenti" +#define STRING_CMD_UDAS_USAGE "Mostra tutti i dettagli degli UDA definiti" +#define STRING_CMD_UDAS_COMPL_USAGE "Mostra gli UDA definiti per il completamento" +#define STRING_CMD_UUIDS_USAGE_RANGE "Mostra gli UUID dei task corrispondenti, come lista separata da virgole" +#define STRING_CMD_UUIDS_USAGE_LIST "Mostra gli UUID dei task corrispondenti, come lista" +#define STRING_CMD_UUIDS_USAGE_ZSH "Mostra gli UUID e le descrizioni dei task corrispondenti" +#define STRING_CMD_EXPORT_USAGE "Esporta i task in formato JSON" +#define STRING_CMD_INFO_USAGE "Mostra tutti i dati e i metadati" +#define STRING_CMD_INFO_BLOCKED "Questo task è bloccato da" +#define STRING_CMD_INFO_BLOCKING "Questo task sta bloccando" +#define STRING_CMD_INFO_UNTIL "Fino a" +#define STRING_CMD_INFO_MODIFICATION "Modifica" +#define STRING_CMD_INFO_TOTAL_ACTIVE "Tempo totale di attività" +#define STRING_CMD_INFO_MODIFIED "Ultima modifica" +#define STRING_CMD_UNDO_USAGE "Ritorna alla più recente modifica di un task" +#define STRING_CMD_UNDO_MODS "Il comando undo non ammette ulteriori modifiche al task." +#define STRING_CMD_STATS_USAGE "Mostra le statistiche sul task" +#define STRING_CMD_STATS_CATEGORY "Categoria" +#define STRING_CMD_STATS_DATA "Dati" +#define STRING_CMD_STATS_TOTAL "Totale" +#define STRING_CMD_STATS_ANNOTATIONS "Annotazioni" +#define STRING_CMD_STATS_UNIQUE_TAGS "Tag univoci" +#define STRING_CMD_STATS_PROJECTS "Progetti" +#define STRING_CMD_STATS_DATA_SIZE "Dimensione dati" +#define STRING_CMD_STATS_UNDO_TXNS "Transazioni di undo" +#define STRING_CMD_STATS_BACKLOG "Sincronizza le transazioni di backlog" +#define STRING_CMD_STATS_TAGGED "Task taggati" +#define STRING_CMD_STATS_OLDEST "Task più vecchio" +#define STRING_CMD_STATS_NEWEST "Task più recente" +#define STRING_CMD_STATS_USED_FOR "Task usati per" +#define STRING_CMD_STATS_ADD_EVERY "Task aggiunti ogni" +#define STRING_CMD_STATS_COMP_EVERY "Task completati ogni" +#define STRING_CMD_STATS_DEL_EVERY "Task cancellati ogni" +#define STRING_CMD_STATS_AVG_PEND "Tempo medio di attesa" +#define STRING_CMD_STATS_DESC_LEN "Lunghezza media delle descrizioni" +#define STRING_CMD_STATS_CHARS "{1} caratteri" +#define STRING_CMD_STATS_LAST_SYNCH "Ultima sincronizzazione" +#define STRING_CMD_STATS_BLOCKED "Task bloccati" +#define STRING_CMD_STATS_BLOCKING "Task bloccanti" +#define STRING_CMD_REPORTS_USAGE "Lista dei report supportati" +#define STRING_CMD_REPORTS_REPORT "Report" +#define STRING_CMD_REPORTS_DESC "Descrizione" +#define STRING_CMD_REPORTS_SUMMARY "{1} report" +#define STRING_CMD_TAGS_USAGE "Mostra la lista di tutti i tag utilizzati" +#define STRING_CMD_COMTAGS_USAGE "Mostra solo una lista dei tag utilizzati, per autocompletamento" +#define STRING_CMD_TAGS_SINGLE "1 tag" +#define STRING_CMD_TAGS_PLURAL "{1} tag" +#define STRING_CMD_TAGS_NO_TAGS "Nessun tag." +#define STRING_CMD_HISTORY_USAGE_M "Mostra un report dello storico dei task, per mese" +#define STRING_CMD_HISTORY_YEAR "Anno" +#define STRING_CMD_HISTORY_MONTH "Mese" +#define STRING_CMD_HISTORY_ADDED "Aggiunto" +#define STRING_CMD_HISTORY_COMP "Completato" +#define STRING_CMD_HISTORY_DEL "Cancellato" +#define STRING_CMD_HISTORY_NET "Bilancio" +#define STRING_CMD_HISTORY_USAGE_A "Mostra un report dello storico dei task, per anno" +#define STRING_CMD_HISTORY_AVERAGE "Media" +#define STRING_CMD_HISTORY_LEGEND "Legenda: {1}, {2}, {3}" +#define STRING_CMD_HISTORY_LEGEND_A "Legenda: + aggiunto, X completato, - cancellato" +#define STRING_CMD_GHISTORY_USAGE_M "Mostra un report grafico dello storico dei task, per mese" +#define STRING_CMD_GHISTORY_USAGE_A "Mostra un report grafico dello storico dei task, per anno" +#define STRING_CMD_GHISTORY_YEAR "Anno" +#define STRING_CMD_GHISTORY_MONTH "Mese" +#define STRING_CMD_GHISTORY_NUMBER "Aggiunti/Completati/Cancellati" + +#define STRING_CMD_DONE_USAGE "Contrassegna il task specificato come completato" +#define STRING_CMD_DONE_CONFIRM "Completare il task {1} '{2}'?" +#define STRING_CMD_DONE_TASK "Task completato {1} '{2}'." +#define STRING_CMD_DONE_NO "Task non completato." +#define STRING_CMD_DONE_NOTPEND "Il task {1} '{2}' non è ne' pendente ne' in attesa." +#define STRING_CMD_DONE_1 "Completato {1} task." +#define STRING_CMD_DONE_N "Completati {1} task." + +#define STRING_CMD_PROJECTS_USAGE "Mostra tutti i nomi di progetto utilizzati" +#define STRING_CMD_PROJECTS_USAGE_2 "Mostra solo i nomi di progetto utilizzati" +#define STRING_CMD_PROJECTS_NO "Nessun progetto." +#define STRING_CMD_PROJECTS_PRI_N "Pri:Nessuna" +#define STRING_CMD_PROJECTS_PRI_H "Pri:H" +#define STRING_CMD_PROJECTS_PRI_M "Pri:M" +#define STRING_CMD_PROJECTS_PRI_L "Pri:L" +#define STRING_CMD_PROJECTS_NONE "(nessuno)" +#define STRING_CMD_PROJECTS_SUMMARY "{1} progetto" +#define STRING_CMD_PROJECTS_SUMMARY2 "{1} progetti" +#define STRING_CMD_PROJECTS_TASK "({1} task)" +#define STRING_CMD_PROJECTS_TASKS "({1} task)" +#define STRING_CMD_SUMMARY_USAGE "Mostra un report dello stato dei task per progetto" +#define STRING_CMD_SUMMARY_PROJECT "Progetto" +#define STRING_CMD_SUMMARY_REMAINING "Rimanenti" +#define STRING_CMD_SUMMARY_AVG_AGE "Età media" +#define STRING_CMD_SUMMARY_COMPLETE "Completi" +#define STRING_CMD_SUMMARY_NONE "(nessuno)" +#define STRING_CMD_COUNT_USAGE "Conteggia task corrispondenti" + +#define STRING_CMD_UDAS_NO "Nessun UDA definito." +#define STRING_CMD_UDAS_SUMMARY "{1} UDA definito" +#define STRING_CMD_UDAS_SUMMARY2 "{1} UDAs defined" +#define STRING_CMD_UDAS_ORPHAN "{1} UDA orfano" +#define STRING_CMD_UDAS_ORPHANS "{1} UDA orfani" + +#define STRING_CMD_DELETE_USAGE "Cancella il task specificato" +#define STRING_CMD_DELETE_CONFIRM "Cancellare permanentemente il task {1} '{2}'?" +#define STRING_CMD_DELETE_TASK "Cancellazione del task {1} '{2}'." +#define STRING_CMD_DELETE_TASK_R "Cancellazione del task periodico {1} '{2}'." +#define STRING_CMD_DELETE_CONFIRM_R "Questo è un task periodico. Cancellare tutti i task pendenti associati a queso task?" +#define STRING_CMD_DELETE_NO "Task non cancellato." +#define STRING_CMD_DELETE_NOT_DEL "Il task {1} '{2}' non può essere elminato." +#define STRING_CMD_DELETE_1 "Task {1} cancellato." +#define STRING_CMD_DELETE_N "Task {1} cancellati." + +#define STRING_CMD_DUPLICATE_USAGE "Duplica il task specificato" +#define STRING_CMD_DUPLICATE_REC "Nota: il task {1} genera task periodici. Il task duplicato anche." +#define STRING_CMD_DUPLICATE_NON_REC "Nota: il task {1} era un task periodico. Il task duplicato non lo è." +#define STRING_CMD_DUPLICATE_CONFIRM "Duplicare il task {1} '{2}'?" +#define STRING_CMD_DUPLICATE_TASK "Duplicated task {1} '{2}'." +#define STRING_CMD_DUPLICATE_NO "Task non duplicato" +#define STRING_CMD_DUPLICATE_1 "Task {1} duplicato." +#define STRING_CMD_DUPLICATE_N "Task {1} duplicati." + +#define STRING_CMD_START_USAGE "Contrassegna i task specificati come avviati" +#define STRING_CMD_START_NO "Task non avviato." +#define STRING_CMD_START_ALREADY "Task {1} '{2}' già avviati." +#define STRING_CMD_START_TASK "Avvio task {1} '{2}'." +#define STRING_CMD_START_CONFIRM "Avviare task {1} '{2}'?" +#define STRING_CMD_START_1 "Task {1} avviato." +#define STRING_CMD_START_N "Task {1} avviati." + +#define STRING_CMD_STOP_USAGE "Rimuove il tempo di 'avvio' dal task" +#define STRING_CMD_STOP_NO "Task non fermato." +#define STRING_CMD_STOP_ALREADY "Task {1} '{2}' non fermato." +#define STRING_CMD_STOP_TASK "Sto fermando il task {1} '{2}'." +#define STRING_CMD_STOP_CONFIRM "Fermare task {1} '{2}'?" +#define STRING_CMD_STOP_1 "Task {1} fermato." +#define STRING_CMD_STOP_N "Task {1} fermati." + +#define STRING_CMD_APPEND_USAGE "Aggiunge testo alla fine di una descrizione di un task esistente" +#define STRING_CMD_APPEND_1 "Aggiunta al task {1}." +#define STRING_CMD_APPEND_N "Aggiunte ai task {1}." +#define STRING_CMD_APPEND_TASK "Aggiunta al task {1} '{2}'." +#define STRING_CMD_APPEND_TASK_R "Aggiunta al task periodico {1} '{2}'." +#define STRING_CMD_APPEND_CONFIRM_R "Questo è un task periodico. Aggiungere il testo alla fine della descrizione di tutti i task associati?" +#define STRING_CMD_APPEND_CONFIRM "Aggiungere alla fine della descrizione del task {1} '{2}'?" +#define STRING_CMD_APPEND_NO "Aggiunta non effettuata." + +#define STRING_CMD_PREPEND_USAGE "Aggiunge testo all'inizio di una descrizione di un task esistente" +#define STRING_CMD_PREPEND_1 "Aggiunta al task {1}." +#define STRING_CMD_PREPEND_N "Aggiunte ai task {1}." +#define STRING_CMD_PREPEND_TASK "Aggiunta al task {1} '{2}'." +#define STRING_CMD_PREPEND_TASK_R "Aggiunta al task periodico {1} '{2}'." +#define STRING_CMD_PREPEND_CONFIRM_R "Questo è un task periodico. Aggiungere il testo all'inizio della descrizione di tutti i task associati?" +#define STRING_CMD_PREPEND_CONFIRM "Aggiungere all'inizio della descrizione del task {1} '{2}'?" +#define STRING_CMD_PREPEND_NO "Aggiunta non effettuata." + +#define STRING_CMD_ANNO_USAGE "Aggiunge una annotazione a un task esistente" +#define STRING_CMD_ANNO_CONFIRM "Aggiungere una annotazione al task {1} '{2}'?" +#define STRING_CMD_ANNO_TASK "Aggiunta al task {1} '{2}'." +#define STRING_CMD_ANNO_TASK_R "Aggiunta al task periodico {1} '{2}'." +#define STRING_CMD_ANNO_CONFIRM_R "Questo è un task periodico. Aggiungere una annotazione a tutti i task associati?" +#define STRING_CMD_ANNO_NO "Aggiunta non effettuata." +#define STRING_CMD_ANNO_1 "Aggiunta al task {1}." +#define STRING_CMD_ANNO_N "Aggiunte ai task {1}." + +#define STRING_CMD_COLUMNS_USAGE "Tutte le colonne e gli stili di formattazione" +#define STRING_CMD_COLUMNS_NOTE "* significa formato di default, quindi opzionale. Per esempio, 'due' e 'due.formatted' sono equivalenti." +#define STRING_CMD_COLUMNS_USAGE2 "Mostra solo una lista delle colonne supportate" +#define STRING_CMD_COLUMNS_ARGS "Può essere specificata solo una stringa di ricerca." + +#define STRING_CMD_DENO_USAGE "Cancella una annotazione" +#define STRING_CMD_DENO_WORDS "Una stringa di annotazione deve essere fornita." +#define STRING_CMD_DENO_NONE "Il task specificato non ha annotazioni che possano essere cancellate." +#define STRING_CMD_DENO_CONFIRM "Denotare il task {1} '{2}'?" +#define STRING_CMD_DENO_FOUND "Annotazione '{1}' trovata e cancellata." +#define STRING_CMD_DENO_NOMATCH "Nessuna annotazione da cancellare trovata per '{1}'." +#define STRING_CMD_DENO_NO "Annotazione non rimossa." +#define STRING_CMD_DENO_1 "Annotazione rimossa da task {1}." +#define STRING_CMD_DENO_N "Annotazioni rimosse da task {1}." + +#define STRING_CMD_IMPORT_USAGE "Importa file JSON" +#define STRING_CMD_IMPORT_SUMMARY "Importati {1} task." +#define STRING_CMD_IMPORT_NOFILE "Specificare il file da importare." +#define STRING_CMD_IMPORT_FILE "Importazione di '{1}'" +#define STRING_CMD_IMPORT_NOT_JSON "Non è un oggetto JSON: {1}" +#define STRING_CMD_IMPORT_NO_DESC "Annotazione senza descrizione: {1}" +#define STRING_CMD_IMPORT_NO_ENTRY "Annotazione senza data di immissione: {1}" +#define STRING_CMD_SHELL_USAGE "Esegue una shell interattiva" +#define STRING_CMD_SHELL_HELP1 "Inserisci un comando (es. 'list'), o premi 'Enter'." +#define STRING_CMD_SHELL_HELP2 "Non è necessario includere il comando 'task'." +#define STRING_CMD_SHELL_HELP3 "Inserisci 'quit' (o 'bye', 'exit') per terminare la sessione." +#define STRING_CMD_SYNC_USAGE "Sincronizza i dati con il Task Server" +#define STRING_CMD_SYNC_NO_SERVER "Task Server non configurato." +#define STRING_CMD_SYNC_BAD_CRED "Credenziali del Task Server malformate." +#define STRING_CMD_SYNC_ADD " aggiunto {1} '{2}'" +#define STRING_CMD_SYNC_MOD "modificato {1} '{2}'" +#define STRING_CMD_SYNC_PROGRESS "Sincronizzazione con {1}" +#define STRING_CMD_SYNC_SUCCESS0 "Sincronizzazione effettuata." +#define STRING_CMD_SYNC_SUCCESS1 "Sincronizzazione effettuata. {1} modifiche caricate." +#define STRING_CMD_SYNC_SUCCESS2 "Sincronizzazione effettuata. {1} modifiche scaricate." +#define STRING_CMD_SYNC_SUCCESS3 "Sincronizzazione effettuata. {1} modifiche caricate, {2} modifiche scaricate." +#define STRING_CMD_SYNC_SUCCESS_NOP "Sincronizzazione effettuata. Nessuna modifica." +#define STRING_CMD_SYNC_FAIL_ACCOUNT "Sincronizzazione fallita. Credenziali non corrette o Task Server non abilitato." +#define STRING_CMD_SYNC_FAIL_ERROR "Sincronizzazione fallita. Il Task Server ha ritornato l'errore: {1} {2}" +#define STRING_CMD_SYNC_FAIL_CONNECT "Sincronizzazione fallita. Impossibile connettersi al Task Server." +#define STRING_CMD_SYNC_BAD_SERVER "Sincronizzazione fallita. Impostazione di configurazione '{1}' malformata" +#define STRING_CMD_SYNCH_USAGE "Sincronizza i dati con il Task Server" +#define STRING_CMD_SYNCH_NO_SERVER "Il Task Server non è configurato." +#define STRING_CMD_DIAG_USAGE "Dettagli su piattaforma, build e ambiente" +#define STRING_CMD_DIAG_PLATFORM "Piattaforma" +#define STRING_CMD_DIAG_UNKNOWN "" +#define STRING_CMD_DIAG_COMPILER "Compilatore" +#define STRING_CMD_DIAG_VERSION "Versione" +#define STRING_CMD_DIAG_CAPS "Caps" +#define STRING_CMD_DIAG_FEATURES "Caratteristiche della Build" +#define STRING_CMD_DIAG_BUILT "Generato" +#define STRING_CMD_DIAG_COMMIT "Commit" +#define STRING_CMD_DIAG_FOUND "(trovato)" +#define STRING_CMD_DIAG_MISSING "(mancante)" +#define STRING_CMD_DIAG_ENABLED "Abilitato" +#define STRING_CMD_DIAG_DISABLED "Disabilitato" +#define STRING_CMD_DIAG_CONFIG "Configurazione" +#define STRING_CMD_DIAG_EXTERNAL "Utility esterne" +#define STRING_CMD_DIAG_TESTS "Test" +#define STRING_CMD_DIAG_UUID_GOOD "Generati 1000 UUID unici." +#define STRING_CMD_DIAG_UUID_BAD "Fallimento - UUID duplicato all'iterazione {1}" +#define STRING_CMD_DIAG_UUID_SCAN "Valutati {1} task per duplicazione UUID:" +#define STRING_CMD_DIAG_UUID_DUP "Trovato duplicato {1}" +#define STRING_CMD_DIAG_UUID_NO_DUP "Nessun duplicato trovato" +#define STRING_CMD_DIAG_NONE "-nessuno-" +#define STRING_CMD_PUSH_USAGE "Carica i file locali all'URL" +#define STRING_CMD_PUSH_SAME "Impossibile caricare i file se sorgente e destinazione coincidono." +#define STRING_CMD_PUSH_NONLOCAL "L'uri '{1}' non è una directory locale." +#define STRING_CMD_PUSH_TRANSFERRED "Task locali trasferiti su {1}" +#define STRING_CMD_PUSH_NO_URI "Nessun uri è stato specificato per il caricamento. Specificare o l'uri di una directory .task remota, oppure creare la voce 'push.default.uri' nel file .taskrc." +#define STRING_CMD_PULL_USAGE "Scaricati file dall'URL" +#define STRING_CMD_PULL_SAME "Impossibile scaricare i file se sorgente e destinazione coincidono." +#define STRING_CMD_PULL_TRANSFERRED "Task locali trasferiti da {1}" +#define STRING_CMD_PULL_NO_URI "Nessun uri è stato specificato per lo scaricamento. Specificare o l'uri di una directory .task remota, oppure creare la voce 'pull.default.uri' nel file .taskrc." +#define STRING_CMD_PULL_MISSING "Almeno uno dei file di database in '{1}' non è presente." +#define STRING_CMD_PULL_NOT_DIR "L'uri '{1}' non è una directory. Dimenticato il carattere '/'?" +#define STRING_CMD_HCOMMANDS_USAGE "Genera la lista di tutti i comandi, per autocompletamento" +#define STRING_CMD_ZSHCOMMANDS_USAGE "Genera la lista di tutti i comandi, per autocompletamento in zsh" +#define STRING_CMD_ALIASES_USAGE "Genera la lista di tutti gli alias, per autocompletamento" +#define STRING_CMD_INSTALL_USAGE "Installa estensioni e script esterni" + +#define STRING_CMD_MODIFY_USAGE1 "Modifica il task esistente usando gli argomenti specificati." +#define STRING_CMD_MODIFY_NO_DUE "Impossibile specificare un task periodico senza una data di scadenza." +#define STRING_CMD_MODIFY_REM_DUE "Impossibile eliminare una scadenza da un task periodico" +#define STRING_CMD_MODIFY_REC_ALWAYS "Impossibile rimuovere un evento da un task periodico." +#define STRING_CMD_MODIFY_TASK "Modifica del task {1} '{2}'." +#define STRING_CMD_MODIFY_TASK_R "Modifica del task periodico {1} '{2}'." +#define STRING_CMD_MODIFY_1 "Task {1} modificato." +#define STRING_CMD_MODIFY_N "Task {1} modificati." +#define STRING_CMD_MODIFY_NO "Task non modificato." +#define STRING_CMD_MODIFY_CONFIRM "Modificare il task {1} '{2}'?" +#define STRING_CMD_MODIFY_RECUR "Questo è un task periodico. Modificare tutti i task associati?" +#define STRING_CMD_MODIFY_NEED_TEXT "Testo aggiunti da specificare." + +#define STRING_CMD_COLOR_USAGE "Tutti i colori, un esempio, o una legenda" +#define STRING_CMD_COLOR_HERE "Coloti in uso:" +#define STRING_CMD_COLOR_COLOR "Colore" +#define STRING_CMD_COLOR_DEFINITION "Definizione" +#define STRING_CMD_COLOR_EXPLANATION "Usare questo comando per vedere come i colori sono visualizzati sul terminale in uso." +#define STRING_CMD_COLOR_16 "16-colori in uso (supporto per sottolineatura, grassetto, e sfondo):" +#define STRING_CMD_COLOR_256 "256-colori in uso (supporto per sottolineatura):" +#define STRING_CMD_COLOR_YOURS "Esempio:" +#define STRING_CMD_COLOR_BASIC "Colori base" +#define STRING_CMD_COLOR_EFFECTS "Effetti" +#define STRING_CMD_COLOR_CUBE "Cubo dei colori RGB" +#define STRING_CMD_COLOR_RAMP "Rampa dei grigi" +#define STRING_CMD_COLOR_TRY "Provare eseguendo '{1}'." +#define STRING_CMD_COLOR_OFF "Il colore è attualmente disabilitato nel file .taskrc. Per abilitarlo, rimuovi la linea 'color=off', o cambia 'off' in 'on'." +#define STRING_CMD_CONFIG_USAGE "Modifica le impostazioni nella configurazione dei task" +#define STRING_CMD_CONFIG_CONFIRM "Sei sicuro di voler cambiare il valore di '{1}' da '{2}' a '{3}'?" +#define STRING_CMD_CONFIG_CONFIRM2 "Sei sicuro di voler aggiungere '{1}' con valore '{2}'?" +#define STRING_CMD_CONFIG_CONFIRM3 "Sei sicuro di voler rimuovere '{1}'?" +#define STRING_CMD_CONFIG_NO_ENTRY "Nessuna voce '{1}' trovata." +#define STRING_CMD_CONFIG_FILE_MOD "File di configurazione {1} modificato." +#define STRING_CMD_CONFIG_NO_CHANGE "Nessuna modifica apportata." +#define STRING_CMD_CONFIG_NO_NAME "Specificare il nome di una variabile di configurazione da modificare." +#define STRING_CMD_HCONFIG_USAGE "Elenca le variabili di configurazione supportate, per autocompletamento" +#define STRING_CMD_CUSTOM_MISMATCH "Differente numero di colonne ed etichette per il report '{1}'." +#define STRING_CMD_CUSTOM_OLD_SORT "Campo di ordinamento '{1}' deprecato. Prego modificarlo in '{2}'." +#define STRING_CMD_CUSTOM_OLD_FIELD "Campo di report '{1}' deprecato. Prego modificarlo in '{2}'." +#define STRING_CMD_CUSTOM_SHOWN "{1} mostrato" +#define STRING_CMD_CUSTOM_COUNT "1 task" +#define STRING_CMD_CUSTOM_COUNTN "{1} task" +#define STRING_CMD_CUSTOM_TRUNCATED "troncato alla linea {1}" +#define STRING_CMD_TIMESHEET_USAGE "Sommario settimanale dei task completati e avviati" +#define STRING_CMD_TIMESHEET_STARTED "Avviati ({1} task)" +#define STRING_CMD_TIMESHEET_DONE "Completati ({1} task)" +#define STRING_CMD_MERGE_USAGE "Unisce i file remoti con i file locali" +#define STRING_CMD_MERGE_COMPLETE "Unione completata." +#define STRING_CMD_MERGE_CONFIRM "Caricare le modifiche effettuate in seguito all'unione su '{1}'?" +#define STRING_CMD_MERGE_NO_URI "Nessun uri è stato specificato per l'unione. Specificare o l'uri di una directory .task remota, oppure creare la voce 'merge.default.uri' nel file .taskrc." +#define STRING_CMD_BURN_USAGE_M "Mostra un grafico del lavoro da svolgere, per mese" +#define STRING_CMD_BURN_USAGE_W "Mostra un grafico del lavoro da svolgere, per settimana" +#define STRING_CMD_BURN_USAGE_D "Mostra un grafico del lavoro da svolgere, per giorno" +#define STRING_CMD_BURN_TITLE "Lavoro da svolgere" +#define STRING_CMD_BURN_TOO_SMALL "Finestra troppo piccola per mostrare il grafico." +#define STRING_CMD_BURN_DAILY "Giornaliero" +#define STRING_CMD_BURN_WEEKLY "Settimanale" +#define STRING_CMD_BURN_MONTHLY "Mensile" +#define STRING_CMD_BURN_STARTED "Avviato" // Must be 7 or fewer characters +#define STRING_CMD_BURN_DONE "Chiuso" // Must be 7 or fewer characters +#define STRING_CMD_BURN_PENDING "Da fare" // Must be 7 or fewer characters +#define STRING_CMD_BURN_NO_CONVERGE "No convergenza" +#define STRING_CMD_HELP_USAGE "Mostra questo testo di aiuto" +#define STRING_CMD_HELP_USAGE_LABEL "Uso:" +#define STRING_CMD_HELP_USAGE_DESC "Esegue rc.default.command, se specificato." +#define STRING_CMD_HELP_ALIASED "Sinonimo: '{1}'" +#define STRING_CMD_CAL_USAGE "Mostra un calendario, con i task da svolgere marcati" +#define STRING_CMD_CAL_BAD_MONTH "L'argomento '{1}' non è un mese valido." +#define STRING_CMD_CAL_BAD_ARG "Impossibile riconosce l'argomento '{1}'." +#define STRING_CMD_CAL_LABEL_DATE "Data" +#define STRING_CMD_CAL_LABEL_HOL "Festività" +#define STRING_CMD_CAL_SUN_MON "La variabile di configurazione 'weekstart' può solo contenere i valori 'Domenica' or 'Lunedì'." +#define STRING_CMD_EDIT_USAGE "Esegue un editor per la modifica diretta di un task" + +// Config +#define STRING_CONFIG_OVERNEST "File di configurazione annidato più di 10 livelli - deve trattarsi di un errore." +#define STRING_CONFIG_READ_INCLUDE "Impossibile leggere il file di inclusione '{1}'." +#define STRING_CONFIG_INCLUDE_PATH "E` possibile includere solo file con percorso assoluto, non '{1}'" +#define STRING_CONFIG_BAD_ENTRY "Voce malformata '{1}' nel file di configurazione." +#define STRING_CONFIG_BAD_WRITE "Impossibile scrivere su'{1}'." +#define STRING_CONFIG_DEPRECATED_US "Il file .taskrc contiene impostazioni di colore che usano sottolineature deprecate. Verificare:" +#define STRING_CONFIG_DEPRECATED_COL "Il file .taskrc contiene report con nomi di colonna deprecati. Verificare entry_time, start_time o end_time in:" +#define STRING_CONFIG_DEPRECATED_VAR "Il file .taskrc contiene variabili deprecate:" + +// Context +#define STRING_CONTEXT_CREATE_RC "Un file di configurazione non può essere trovato in {1}\n\nSi desidera la creazione di un file di esempio {2}, in modo che taskwarrior possa procedere?" +#define STRING_CONTEXT_NEED_RC "Impossibile procedere senza rc file." +#define STRING_CONTEXT_RC_OVERRIDE "Modifica TASKRC: {1}" +#define STRING_CONTEXT_DATA_OVERRIDE "Modifica TASKDATA: {1}" +#define STRING_CONTEXT_SHADOW_P "Variabile di configurazione 'shadow.file' impostata a " "sovrascrittura dei task pendenti. Si prega di modificarla." +#define STRING_CONTEXT_SHADOW_C "Variabile di configurazione 'shadow.file' impostata a " "sovrascrittura dei task completati. Si preda di modificarla." +#define STRING_CONTEXT_SHADOW_U "Variabile di configurazione 'shadow.file' impostata a " "sovrascrittura del log di undo. Si prega di modificarla." +#define STRING_CONTEXT_SHADOW_B "Variabile di configurazione 'shadow.file' impostata a " "sovrascrittura del file di backlog. Si prega di modificarla." +#define STRING_CONTEXT_SHADOW_S "Variabile di configurazione 'shadow.file' impostata a " "sovrascrittura del file synch.key. Si prega di modificarla." +#define STRING_CONTEXT_SHADOW_UPDATE "[Shadow file '{1}' aggiornato.]" + +// Date +#define STRING_DATE_INVALID_FORMAT "'{1}' non è una data valida nel formato '{2}'." +#define STRING_DATE_BAD_WEEKSTART "La variabile di configurazione 'weekstart' può solo contenere 'Domenica' o 'Lunedì'." +#define STRING_DATE_TOO_MUCH "La data è troppo avanti nel futuro." + +#define STRING_DATE_JANUARY_LONG "gennaio" +#define STRING_DATE_FEBRUARY_LONG "febbraio" +#define STRING_DATE_MARCH_LONG "marzo" +#define STRING_DATE_APRIL_LONG "aprile" +#define STRING_DATE_MAY_LONG "maggio" +#define STRING_DATE_JUNE_LONG "giugno" +#define STRING_DATE_JULY_LONG "luglio" +#define STRING_DATE_AUGUST_LONG "agosto" +#define STRING_DATE_SEPTEMBER_LONG "settembre" +#define STRING_DATE_OCTOBER_LONG "ottobre" +#define STRING_DATE_NOVEMBER_LONG "novembre" +#define STRING_DATE_DECEMBER_LONG "decembre" + +#define STRING_DATE_JANUARY_SHORT "gen" +#define STRING_DATE_FEBRUARY_SHORT "feb" +#define STRING_DATE_MARCH_SHORT "mar" +#define STRING_DATE_APRIL_SHORT "apr" +#define STRING_DATE_MAY_SHORT "mag" +#define STRING_DATE_JUNE_SHORT "giu" +#define STRING_DATE_JULY_SHORT "lug" +#define STRING_DATE_AUGUST_SHORT "ago" +#define STRING_DATE_SEPTEMBER_SHORT "set" +#define STRING_DATE_OCTOBER_SHORT "ott" +#define STRING_DATE_NOVEMBER_SHORT "nov" +#define STRING_DATE_DECEMBER_SHORT "dic" + +#define STRING_DATE_SUNDAY_LONG "domenica" +#define STRING_DATE_MONDAY_LONG "lunedì" +#define STRING_DATE_TUESDAY_LONG "martedì" +#define STRING_DATE_WEDNESDAY_LONG "mercoledì" +#define STRING_DATE_THURSDAY_LONG "giovedì" +#define STRING_DATE_FRIDAY_LONG "venerdì" +#define STRING_DATE_SATURDAY_LONG "sabato" + +#define STRING_DATE_SUNDAY_SHORT "dom" +#define STRING_DATE_MONDAY_SHORT "lun" +#define STRING_DATE_TUESDAY_SHORT "mar" +#define STRING_DATE_WEDNESDAY_SHORT "mer" +#define STRING_DATE_THURSDAY_SHORT "gio" +#define STRING_DATE_FRIDAY_SHORT "ven" +#define STRING_DATE_SATURDAY_SHORT "sab" + +// dependency +#define STRING_DEPEND_BLOCKED "Il task {1} è bloccato da:" +#define STRING_DEPEND_BLOCKING "e sta bloccando:" +#define STRING_DEPEND_FIX_CHAIN "Si desidera riparare la catena delle dipendenze?" + +// DOM +#define STRING_DOM_UNKNOWN "" +#define STRING_DOM_UNREC "DOM: Impossibile ottenere il nome non riconosciuto '{1}'." +#define STRING_DOM_CANNOT_SET "DOM: Impossibile impostare '{1}'." + +// Duration +#define STRING_DURATION_UNRECOGNIZED "La durata '{1}' non è valida, con nità corrette come '3days'." + +// E9 +#define STRING_E9_UNSUPPORTED "Operatore non supportato '{1}'." +#define STRING_E9_NO_OPERANDS "Non ci sono operandi per l'operatore '{1}'." +#define STRING_E9_INSUFFICIENT_OP "Non ci sono abbastanza operandi per l'operatore '{1}'." +#define STRING_E9_MORE_OP "Trovati operandi in eccesso." + +// edit +#define STRING_EDIT_NO_CHANGES "Nessuna modifica riscontrata." +#define STRING_EDIT_NO_EDITS "Nessuna modifica effettuata." +#define STRING_EDIT_COMPLETE "Modifica completa." +#define STRING_EDIT_LAUNCHING "Esecuzione di '{1}' ora..." +#define STRING_EDIT_CHANGES "Modifiche rilevate." +#define STRING_EDIT_UNPARSEABLE "Taskwarrior non può gestire le modifiche. Provare di nuovo?" +#define STRING_EDIT_UNWRITABLE "La directory data.location non è scrivibile." +#define STRING_EDIT_TAG_SEP "Separare i tag con spazi; es.: tag1 tag2" +#define STRING_EDIT_DEP_SEP "Le dipendenze dovrebbero consistere in una lista separata da virgole di ID/UUID o intervalli di ID, senza spazi." +#define STRING_EDIT_UDA_SEP "User Defined Attribute" +#define STRING_EDIT_UDA_ORPHAN_SEP "User Defined Attribute orfani" +#define STRING_EDIT_END "Fine" + +#define STRING_EDIT_PROJECT_MOD "Progetto modificato." +#define STRING_EDIT_PROJECT_DEL "Progetto cancellato." +#define STRING_EDIT_PRIORITY_MOD "Progetto modificato." +#define STRING_EDIT_PRIORITY_DEL "Priorità cancellata." +#define STRING_EDIT_DESC_MOD "Descrizione modificata." +#define STRING_EDIT_DESC_REMOVE_ERR "Impossibile rimuovere la descrizione." +#define STRING_EDIT_ENTRY_REMOVE_ERR "Impossibile rimuovere la data di creazione." +#define STRING_EDIT_ENTRY_MOD "Data di creazione modificata." +#define STRING_EDIT_START_MOD "Data di inizio modificata." +#define STRING_EDIT_START_DEL "Data di inizio rimossa." +#define STRING_EDIT_END_MOD "Data di fine modificata." +#define STRING_EDIT_END_DEL "Data di fine rimossa." +#define STRING_EDIT_END_SET_ERR "Impossibile impostare la data di chiusura del task pendente." +#define STRING_EDIT_SCHED_MOD "Data di schedulazione modificata." +#define STRING_EDIT_SCHED_DEL "Data di schedulazione rimossa." +#define STRING_EDIT_DUE_MOD "Scadenza modificata." +#define STRING_EDIT_DUE_DEL "Scadenza rimossa." +#define STRING_EDIT_DUE_DEL_ERR "Impossibile rimuovere la data di scadenza di un task periodico." +#define STRING_EDIT_UNTIL_MOD "Data 'Fino a' modificata." +#define STRING_EDIT_UNTIL_DEL "Data 'Fino a' rimossa." +#define STRING_EDIT_RECUR_MOD "Ricorrenza periodica modificata." +#define STRING_EDIT_RECUR_DEL "Ricorrenza periodica rimossa." +#define STRING_EDIT_RECUR_DUE_ERR "Un task periodico deve avere una data di scadenza." +#define STRING_EDIT_RECUR_ERR "Durata del task periodico non valida." +#define STRING_EDIT_WAIT_MOD "Data di attesa modificata." +#define STRING_EDIT_WAIT_DEL "Data di attesa rimossa." +#define STRING_EDIT_PARENT_MOD "UUID genitore modificato." +#define STRING_EDIT_PARENT_DEL "UUID genitore rimosso." +#define STRING_EDIT_UDA_MOD "UDA {1} modificato." +#define STRING_EDIT_UDA_DEL "UDA {1} cancellato." + +// These four blocks can be replaced, but the number of lines must not change. +#define STRING_EDIT_HEADER_1 "Il comando 'task edit' permette di modificare ogni aspetto di un task" +#define STRING_EDIT_HEADER_2 "utilizzando un editor di testo. Segue la rappresentazione dei dettagli di un task." +#define STRING_EDIT_HEADER_3 "Modificare quanto desiderato, e quando si salva e si esce dall'editor," +#define STRING_EDIT_HEADER_4 "taskwarrior leggerà il file, determinando ciò che è cambiato, e applicherà" +#define STRING_EDIT_HEADER_5 "le modifiche. Se si esce dall'editor senza salvare o effettuare" +#define STRING_EDIT_HEADER_6 "modifiche, taskwarrior non farà alcunché." + +#define STRING_EDIT_HEADER_7 "Le linee che iniziano con # rappresentano dati che non possono essere modificati, come l'ID." +#define STRING_EDIT_HEADER_8 "Se si è troppo creativi con le modifiche, taskwarrior aprirà" +#define STRING_EDIT_HEADER_9 "nuovamente l'editor per un secondo tentativo." + +#define STRING_EDIT_HEADER_10 "Se ci si trova in un ciclo senza fine, continuando a editare lo stesso file," +#define STRING_EDIT_HEADER_11 "si chiuda semplicemente l'editor senza effettuare modifiche. Taskwarrior" +#define STRING_EDIT_HEADER_12 "se ne accorgerà e terminerà l'editing." + +#define STRING_EDIT_HEADER_13 "Le annotazioni sono del tipo: -- e possono essere in numero arbitrario." +#define STRING_EDIT_HEADER_14 "Il separatore ' -- ' tra la data e il campo di teso non dovrebbe essere rimosso." +#define STRING_EDIT_HEADER_15 "Una linea preimpostata per aggiungere una annotazione è stata aggiunta per comodità." + +// Maintain the same spacing. +#define STRING_EDIT_TABLE_HEADER_1 "Nome Dati modificabili" +#define STRING_EDIT_TABLE_HEADER_2 "----------------- ----------------------------------------------------" + +// Errors +// TODO Move each of these to appropriate section. +#define STRING_ERROR_PREFIX "Errore: " +#define STRING_UNKNOWN_ERROR "Errore sconosciuto." +#define STRING_NO_HOME "Impossibile leggere la home directory dal file passwd" +#define STRING_TRIVIAL_INPUT "Specificare un comando o un task da modificare" +#define STRING_ASSUME_INFO "Nessun comando specificato - si assume 'information'." +#define STRING_INFINITE_LOOP "Sostituzione terminata poiché più di {1} modifiche sono state fatte - protezione da ciclo infinito" +#define STRING_UDA_TYPE "Gli User defined attribute possono solo essere di tipo 'string', 'date', 'duration' o 'numeric'." +#define STRING_UDA_TYPE_MISSING "uda.{1}.type non trovato. L'UDA '{1}' deve avere un tipo specificato." +#define STRING_UDA_NUMERIC "Il valore '{1}' non è un valore numerico valido." +#define STRING_UDA_COLLISION "L'UDA '{1}' ha lo stesso nome di un attributo di sistema, e ciò non è permesso." +#define STRING_INVALID_MOD "L'attributo '{1}' non ammette un valore pari a '{2}'." +#define STRING_INVALID_SORT_COL "La colonna '{1}' non è un campo di ordinamento valido." + +// Feedback +#define STRING_FEEDBACK_NO_TASKS "Nessun task." +#define STRING_FEEDBACK_NO_TASKS_SP "Nessun task specificat." +#define STRING_FEEDBACK_NO_MATCH "Nessuna corrispondenza." +#define STRING_FEEDBACK_TASKS_SINGLE "(1 task)" +#define STRING_FEEDBACK_TASKS_PLURAL "({1} task)" +#define STRING_FEEDBACK_DELETED "{1} sarà cancellato." +#define STRING_FEEDBACK_DEP_SET "Le dipendenze saranno impostate a '{1}'." +#define STRING_FEEDBACK_DEP_MOD "Le dipendenze saranno modificate da '{1}' in '{2}'." +#define STRING_FEEDBACK_DEP_DEL "Dipendenze '{1}' cancellate." +#define STRING_FEEDBACK_DEP_WAS_SET "Dipendenze impostate a '{1}'." +#define STRING_FEEDBACK_DEP_WAS_MOD "Dipendenze cambiate da '{1}' a '{2}'." +#define STRING_FEEDBACK_ATT_SET "{1} sarà impostata a '{2}'." +#define STRING_FEEDBACK_ATT_MOD "{1} sarà modificata da '{2}' a '{3}'." +#define STRING_FEEDBACK_ATT_DEL "{1} cancellato." +#define STRING_FEEDBACK_ATT_DEL_DUR "{1} cancellato (durata: {2})." +#define STRING_FEEDBACK_ATT_WAS_SET "{1} impostata a '{2}'." +#define STRING_FEEDBACK_ATT_WAS_MOD "{1} modificata da '{2}' a '{3}'." +#define STRING_FEEDBACK_ANN_ADD "Annotazione di '{1}' aggiunta." +#define STRING_FEEDBACK_ANN_DEL "Annotazione '{1}' cancellata." +#define STRING_FEEDBACK_ANN_WAS_MOD "Annotazione modificata in '{1}'." +#define STRING_FEEDBACK_NOP "Nessuna modifica sarà apportata." +#define STRING_FEEDBACK_WAS_NOP "Nessuna modifica apportata." +#define STRING_FEEDBACK_TAG_NOCOLOR "Il tag speciale 'nocolor' disabilita le regole dei colori per questo task." +#define STRING_FEEDBACK_TAG_NONAG "Il tag speciale 'nonag' eviterà problemi quando il task è modificato." +#define STRING_FEEDBACK_TAG_NOCAL "Il tag speciale 'nocal' manterrà il task fuori dal report 'calendar'." +#define STRING_FEEDBACK_TAG_NEXT "Il tag speciale 'next' aumenterà l'urgenza di questo task in modo che appaia nel report 'next'." +#define STRING_FEEDBACK_UNBLOCKED "Sbloccato {1} '{2}'." +#define STRING_FEEDBACK_EXPIRED "Il task {1} '{2}' è scaduto ed è stato eliminato" + +// File +#define STRING_FILE_PERMS "Taskwarrior non dispone dei permessi corretti per '{1}'." + +// helpers +#define STRING_HELPER_PROJECT_CHANGE "Il progetto '{1}' è stato modificat." +#define STRING_HELPER_PROJECT_COMPL "Il progetto '{1}' è {2}% completo" +#define STRING_HELPER_PROJECT_REM "({1} di {2} task rimanenti)." + +// interactive +#define STRING_INTERACTIVE_WIDTH "Context::getWidth: determinata larghezza di {1} caratteri" +#define STRING_INTERACTIVE_HEIGHT "Context::getHeight: determinata altezza di {1} caratteri" + +// JSON +#define STRING_JSON_MISSING_VALUE "Errore: mancato valore dopo ',' alla posizione {1}" +#define STRING_JSON_MISSING_VALUE2 "Errore: mancato valore alla posizione {1}" +#define STRING_JSON_MISSING_BRACKET "Errore: mancato ']' alla posizione {1}" +#define STRING_JSON_MISSING_BRACE "Errore: mancato '}' alla posizione {1}" +#define STRING_JSON_MISSING_COLON "Errore: mancato ':' alla posizione {1}" +#define STRING_JSON_MISSING_OPEN "Errore: atteso '{' o '[' alla posizione {1}" +#define STRING_JSON_EXTRA_CHARACTERS "Errore: caratteri in eccesso alla posizione {1}" + +// Legacy +#define STRING_LEGACY_FEATURE "Nota: la funzionalità '{1}' è deprecata." + +// Record +#define STRING_RECORD_EMPTY "Voce vuota in ingresso." +#define STRING_RECORD_JUNK_AT_EOL "Carattere non riconosciuto a fine riga." +#define STRING_RECORD_NOT_FF4 "Voce non riconosciuta come formato 4." + +// 'show' command +#define STRING_CMD_SHOW "Mostra i sottoinsiemi di variabili di configurazione" +#define STRING_CMD_SHOW_ARGS "Solo 'all' può essere specificata come stringa di ricerca." +#define STRING_CMD_SHOW_NONE "Variabile di configurazione non corrispondente." +#define STRING_CMD_SHOW_UNREC "Il file .taskrc contiene variabili non riconosciute:" +#define STRING_CMD_SHOW_DIFFER "Alcune variabili in .taskrc hanno valore diverso dal default." +#define STRING_CMD_SHOW_HOOKS "Il file .taskrc contiene script di aggancio mancanti o non leggibili:" +#define STRING_CMD_SHOW_EMPTY "Errore di configurazione: .taskrc è vuoto." +#define STRING_CMD_SHOW_DIFFER_COLOR "Evidenziate sopra in {1}." +#define STRING_CMD_SHOW_CONFIG_ERROR "Errore di configurazione: {1} contiene un valore non riconosciuto '{2}'." +#define STRING_CMD_SHOW_NO_LOCATION "Errore di configurazione: data.location non specificato in .taskrc." +#define STRING_CMD_SHOW_LOC_EXIST "Errore di configurazione: data.location contiene una directory che non esiste o non è leggibile." +#define STRING_CMD_SHOW_CONF_VAR "Variabile di configurazione" +#define STRING_CMD_SHOW_CONF_VALUE "Valore" +#define STRING_CMD_SHOWRAW "Mostra le impostazioni di configurazione in formato processabile" + +// Task +#define STRING_TASK_NO_FF1 "Taskwarrior non supporta più il formato di file 1, usato tra il 27 Novembre 2006 e il 31 Dicembre 2007." +#define STRING_TASK_PARSE_ANNO_BRACK "Parentesi di annotazione mancanti." +#define STRING_TASK_PARSE_ATT_BRACK "Parentesi di attributo mancanti." +#define STRING_TASK_PARSE_TAG_BRACK "Parentesi di tag mancanti." +#define STRING_TASK_PARSE_TOO_SHORT "Linea troppo breve." +#define STRING_TASK_PARSE_UNREC_FF "Formato di file non riconosciuto." +#define STRING_TASK_DEPEND_ITSELF "Un task non può dipendere da sè stesso." +#define STRING_TASK_DEPEND_MISS_CREA "Impossibile creare la dipendenza dal task {1} - non trovato." +#define STRING_TASK_DEPEND_MISS_DEL "Impossibile cancellare la dipendenza dal task {1} - non trovato." +#define STRING_TASK_DEPEND_DUP "Task {1} già dipende da {2}." +#define STRING_TASK_DEPEND_CIRCULAR "Dipendenza circolare riscontrata ed evitata." +#define STRING_TASK_VALID_DESC "Un task deve avere una descrizione." +#define STRING_TASK_VALID_BLANK "Impossibile aggiungere un task vuoto." +#define STRING_TASK_VALID_BEFORE "Warning: data '{1}' con valore successivo alla data '{2}'." +#define STRING_TASK_VALID_REC_DUE "Un task periodico deve avere una data di scadenza." +#define STRING_TASK_VALID_RECUR "Il valore di periodicità '{1}' non è valido." +#define STRING_TASK_VALID_PRIORITY "I valori di priorità possono essere 'H', 'M' o 'L', non '{1}'." +#define STRING_TASK_SAFETY_VALVE "Questo comando non ha filtro, e modificherà tutti i task. Sicuro?" +#define STRING_TASK_SAFETY_FAIL "Prevenuta l'esecuzione del comando." + +// Taskmod +#define STRING_TASKMOD_BAD_INIT "Taskmod::getUuid(): oggetto Task non inizializzato." +#define STRING_TASKMOD_TIME "tempo " +#define STRING_TASKMOD_OLD "vecchio " +#define STRING_TASKMOD_NEW "nuovo " + +// TDB2 +#define STRING_TDB2_PARSE_ERROR " in {1} alla linea {2}" +#define STRING_TDB2_UUID_NOT_UNIQUE "Impossibile aggiungere il task in quanto l'uuid '{1}' non è unico." +#define STRING_TDB2_UNDO_TIMESTAMP "Problema di lettura del timestamp dal file undo.data." +#define STRING_TDB2_UNREADABLE "Impossibile leggere '{1}'." +#define STRING_TDB2_UNWRITABLE "Impossibile scrivere '{1}'." +#define STRING_TDB2_NO_CHANGES "Nessuna modifica da unire." +#define STRING_TDB2_REMOTE_CHANGE "Trovata modifica remota a {1} \"{2}\"" +#define STRING_TDB2_LOCAL_CHANGE "Mantenute le modifiche locali a {1} \"{2}\"" +#define STRING_TDB2_MISSING "Mancante {1} \"{2}\"" +#define STRING_TDB2_MERGING "Unione di nuovi task remoti {1} \"{2}\"" +#define STRING_TDB2_UP_TO_DATE "Il database è aggiornato, unione non necessaria." +#define STRING_TDB2_NO_UNDO "Nessuna transazione memorizzata da ripristinare." +#define STRING_TDB2_LAST_MOD "L'ultima modifica è stat effettuata {1}" +#define STRING_TDB2_UNDO_PRIOR "Valori precedenti" +#define STRING_TDB2_UNDO_CURRENT "Valori correnti" +#define STRING_TDB2_DIFF_PREV "--- stato precedente" // Same length +#define STRING_TDB2_DIFF_PREV_DESC "L'undo ripristinerà questo stato" // || +#define STRING_TDB2_DIFF_CURR "+++ stato corrente " // Same length +#define STRING_TDB2_DIFF_CURR_DESC "Modifiche effettuate {1}" +#define STRING_TDB2_UNDO_CONFIRM "Il comando undo non è reversibile. Sicuro di voler ripristinare lo stato precedente?" +#define STRING_TDB2_MISSING_UUID "Impossibile individuare l'UUID nel task da ripristinare." +#define STRING_TDB2_REVERTED "Modifiche al task ripristinate." +#define STRING_TDB2_REMOVED "Task rimosso." +#define STRING_TDB2_UNDO_COMPLETE "Undo completato." +#define STRING_TDB2_MISSING_TASK "Task con UUID {1} non trovato nei dati." +#define STRING_TDB2_UNDO_IMPOSSIBLE "Nessun undo possibile." + +// text + // A comma-separated list of commands is appended. +#define STRING_TEXT_AMBIGUOUS "Ambiguo {1} '{2}' - può essere uno di " + +// Transport +#define STRING_TRANSPORT_NORUN "Impossibile eseguire '{1}'. E` installato e disponibile in $PATH?" +#define STRING_TRANSPORT_NOFORK "Impossibile eseguire '{1}': {2}. Risorse di sistema esaurite?" +#define STRING_TRANSPORT_URI_NODIR "L'uri '{1}' non appare essere una directory." +#define STRING_TRANSPORT_CURL_URI "Usando il protocollo 'curl', l'uri deve contenere il nome di un host." +#define STRING_TRANSPORT_CURL_WILDCD "Usando il protocollo 'curl', i caratteri jolly non sono supportati." +#define STRING_TRANSPORT_CURL_FAIL "Curl ha fallito, vedi l'output precedente." +#define STRING_TRANSPORT_RSYNC_URI "Usando il protocollo 'rsync', l'uri deve contenere un nome di host." +#define STRING_TRANSPORT_RSYNC_FAIL "rsync ha fallito, vedi l'output precedente." +#define STRING_TRANSPORT_SSH_URI "Usando il protocollo 'ssh', l'uri deve contenere un nome di host." +#define STRING_TRANSPORT_SSH_FAIL "ssh ha fallito, vedi l'output precedente." +#define STRING_TRANSPORT_SHELL_NOPATH "Usando il protocollo 'sh+cp' per la copia di più file, un percorso deve essere specificato." +#define STRING_TRANSPORT_SHELL_FAIL "Comando di shell ha fallito, vedi l'output precedente." + +// Uri +#define STRING_URI_QUOTES "Impossibile parsare l'uri '{1}', uso errato del singolo apice." +#define STRING_URI_BAD_FORMAT "L'uri '{1}' non è nel formato atteso." + +// utf8 +#define STRING_UTF8_INVALID_CP_REP "Rappresentazione non valida del codepoint." +#define STRING_UTF8_INVALID_CP "Codepoint Unicode non valido." + +// View +#define STRING_VIEW_TOO_SMALL "Il report ha larghezza minima di {1} e non entra nella larghezza disponibile di {2}." + +// Usage text. This is an exception, and contains \n characters and formatting. +#define STRING_CMD_HELP_TEXT \ + "La documentazione di Taskwarrior può essere consultata con 'man task', 'man taskrc', 'man " \ + "task-tutorial', 'man task-color', 'man task-faq', 'man task-synch o presso " \ + "http://taskwarrior.org\n" \ + "\n" \ + "La forma generale del comando è:\n" \ + " task [] []\n" \ + "\n" \ + " considte di zero o più condizioni sui task da selezionare, " \ + "come:\n" \ + " task \n" \ + " task 28 \n" \ + " task +weekend \n" \ + " task project:Home due.before:today \n" \ + " task ebeeab00-ccf8-464b-8b58-f7f2d606edfb \n" \ + "\n" \ + "Di default, i filtri sono combinati implicitamente con un operatore 'and', ma " \ + "'or' e 'xor' possono essere usati includendo le parentesi:\n" \ + " task '(/[Cc]at|[Dd]og/ or /[0-9]+/)' \n" \ + "\n" \ + "Un filtro può far riferimento a task specifici usando gli ID o UUID. Per specificare " \ + "più task una delle seguenti forme può essere usata:\n" \ + " task 1,2,3 delete\n" \ + " task 1-3 info\n" \ + " task 1,2-5,19 modify pri:H\n" \ + " task 4-7 ebeeab00-ccf8-464b-8b58-f7f2d606edfb info\n" \ + "\n" \ + " consiste di zero o più modifiche da applicare ai task selezionati, " \ + "come:\n" \ + " task project:Home\n" \ + " task +weekend +garden due:tomorrow\n" \ + " task Description/annotation text\n" \ + "\n" \ + "I tag sono parole arbitrarie, in quantità a discrezione dell'utente:\n" \ + " +tag Il + aggiunge il tag\n" \ + " -tag Il - rimuove il tag\n" \ + "\n" \ + "Gli attributi standard sono:\n" \ + " description: Testo di descrizione del task\n" \ + " status: Stato del task - pending, completed, deleted, waiting\n" \ + " project: Nome del progetto\n" \ + " priority: Priorità\n" \ + " due: Scadenza\n" \ + " recur: Frequenza di un task periodico\n" \ + " until: Data oltre la quale il task non è più valido\n" \ + " limit: Numero di righe desiderate in un report, o 'pagina'\n" \ + " wait: Data dalla quale un task diviene pending\n" \ + " entry: Data di creazione del task\n" \ + " end: Data di completamento/cancellazione del task\n" \ + " start: Data di inizio del task\n" \ + " scheduled: Data prevista per l'avvio del task\n" \ + " depends: Altri task dai quali dipende il task\n" \ + "\n" \ + "I modificatori rendono i filtri più precisi. Modificatori supportati sono:\n" \ + " before (sinomimi: under, below)\n" \ + " after (sinomimi: over, above)\n" \ + " none\n" \ + " any\n" \ + " is (sinomimo: equals)\n" \ + " isnt (sinomimo: not)\n" \ + " has (sinomimo: contains)\n" \ + " hasnt\n" \ + " startswith (sinomimo: left)\n" \ + " endswith (sinomimo: right)\n" \ + " word\n" \ + " noword\n" \ + "\n" \ + "Sono supportati i seguenti operatori:\n" \ + " and or xor Operatori logici\n" \ + " < <= = != >= > Operatori relazionali\n" \ + " ( ) Precedenza\n" \ + "\n" \ + " task due.before:eom priority.not:L list\n" \ + " task '(due < eom or priority != L)' list\n" \ + "\n" \ + "Il file .taskrc di default può essere reimpostato con:\n" \ + " task ... rc: ...\n" \ + " task ... rc:~/.alt_taskrc ...\n" \ + "\n" \ + "I valori di default nel file .taskrc possono essere modificati con:\n" \ + " task ... rc.= ...\n" \ + " task rc.color=off list\n" \ + "\n" \ + "Ogni comando o attributo può essere abbreviato se l'abbreviazione è unica:\n" \ + " task list project:Home\n" \ + " task li pro:Home\n" \ + "\n" \ + "Talune descrizioni richiedono i caratteri di escape per non confondere la shell:\n" \ + " task add \"quoted ' quote\"\n" \ + " task add escaped \\' quote\n" \ + "\n" \ + "L'argomento -- comunica a taskwarrior di trattare i rimanenti argomenti come descrizione, anche " \ + "se coincidono con attributi o task:\n" \ + " task add -- project:Home needs scheduling\n" \ + "\n" \ + "Diversi caratteri hanno significato speciale per la shell, incluso:\n" \ + " $ ! ' \" ( ) ; \\ ` * ? { } [ ] < > | & % # ~\n" \ + "\n" + +/* + To be included later, before the 'precendence' line. + + " + - Addition, subtraction\n" \ + " ! Inversion\n" \ + " ~ !~ Match, no match\n" \ +*/ + +// util +#define STRING_UTIL_CONFIRM_YN " (si/no) " +#define STRING_UTIL_CONFIRM_YES "si" +#define STRING_UTIL_CONFIRM_YES_U "Si" +#define STRING_UTIL_CONFIRM_NO "no" +#define STRING_UTIL_CONFIRM_ALL "tutti" +#define STRING_UTIL_CONFIRM_ALL_U "Tutti" +#define STRING_UTIL_CONFIRM_QUIT "esci" +#define STRING_UTIL_GIBIBYTES "Gb" +#define STRING_UTIL_MEBIBYTES "Mb" +#define STRING_UTIL_KIBIBYTES "Kb" +#define STRING_UTIL_BYTES "B" + +// shell +#define STRING_SHELL_USAGE \ + "Uso: tasksh [] Esegue i comandi all'interno di se fornito,\n" \ + " oppure avvia la shell interattiva.\n" \ + " tasksh --version Stampa la versione di task.\n" \ + " tasksh --help Stampa questo aiuto.\n" + +#define STRING_SHELL_NO_FILE "Il file di input non esiste.\n" + +#endif + From c00d49e233f46d93861b0912eb07a8ebe23322a8 Mon Sep 17 00:00:00 2001 From: Tullio Facchinetti Date: Thu, 2 May 2013 13:42:34 +0200 Subject: [PATCH 006/173] Fixed some few inconsistencies in IT translation strings (removed old strings). --- src/it-IT.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/it-IT.h b/src/it-IT.h index 4a2e32c41..eefea24dc 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -251,7 +251,7 @@ #define STRING_CMD_STATS_AVG_PEND "Tempo medio di attesa" #define STRING_CMD_STATS_DESC_LEN "Lunghezza media delle descrizioni" #define STRING_CMD_STATS_CHARS "{1} caratteri" -#define STRING_CMD_STATS_LAST_SYNCH "Ultima sincronizzazione" +#define STRING_CMD_STATS_LAST_SYNC "Ultima sincronizzazione" #define STRING_CMD_STATS_BLOCKED "Task bloccati" #define STRING_CMD_STATS_BLOCKING "Task bloccanti" #define STRING_CMD_REPORTS_USAGE "Lista dei report supportati" @@ -398,7 +398,6 @@ #define STRING_CMD_IMPORT_NOT_JSON "Non è un oggetto JSON: {1}" #define STRING_CMD_IMPORT_NO_DESC "Annotazione senza descrizione: {1}" #define STRING_CMD_IMPORT_NO_ENTRY "Annotazione senza data di immissione: {1}" -#define STRING_CMD_SHELL_USAGE "Esegue una shell interattiva" #define STRING_CMD_SHELL_HELP1 "Inserisci un comando (es. 'list'), o premi 'Enter'." #define STRING_CMD_SHELL_HELP2 "Non è necessario includere il comando 'task'." #define STRING_CMD_SHELL_HELP3 "Inserisci 'quit' (o 'bye', 'exit') per terminare la sessione." @@ -417,8 +416,6 @@ #define STRING_CMD_SYNC_FAIL_ERROR "Sincronizzazione fallita. Il Task Server ha ritornato l'errore: {1} {2}" #define STRING_CMD_SYNC_FAIL_CONNECT "Sincronizzazione fallita. Impossibile connettersi al Task Server." #define STRING_CMD_SYNC_BAD_SERVER "Sincronizzazione fallita. Impostazione di configurazione '{1}' malformata" -#define STRING_CMD_SYNCH_USAGE "Sincronizza i dati con il Task Server" -#define STRING_CMD_SYNCH_NO_SERVER "Il Task Server non è configurato." #define STRING_CMD_DIAG_USAGE "Dettagli su piattaforma, build e ambiente" #define STRING_CMD_DIAG_PLATFORM "Piattaforma" #define STRING_CMD_DIAG_UNKNOWN "" @@ -550,7 +547,6 @@ #define STRING_CONTEXT_SHADOW_C "Variabile di configurazione 'shadow.file' impostata a " "sovrascrittura dei task completati. Si preda di modificarla." #define STRING_CONTEXT_SHADOW_U "Variabile di configurazione 'shadow.file' impostata a " "sovrascrittura del log di undo. Si prega di modificarla." #define STRING_CONTEXT_SHADOW_B "Variabile di configurazione 'shadow.file' impostata a " "sovrascrittura del file di backlog. Si prega di modificarla." -#define STRING_CONTEXT_SHADOW_S "Variabile di configurazione 'shadow.file' impostata a " "sovrascrittura del file synch.key. Si prega di modificarla." #define STRING_CONTEXT_SHADOW_UPDATE "[Shadow file '{1}' aggiornato.]" // Date From bc49cb8e77351b37c7c5823cc4724cef06d793a5 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Thu, 2 May 2013 17:58:57 -0400 Subject: [PATCH 007/173] Documentation - Added it-IT translation details. --- AUTHORS | 1 + ChangeLog | 3 +++ NEWS | 1 + 3 files changed, 5 insertions(+) diff --git a/AUTHORS b/AUTHORS index 9fa393fd5..aed2af047 100644 --- a/AUTHORS +++ b/AUTHORS @@ -85,6 +85,7 @@ The following submitted code, packages or analysis, and deserve special thanks: Jakub Wilk Russell Steicke YBSAR + Tullio Facchinetti Thanks to the following, who submitted detailed bug reports and excellent suggestions: diff --git a/ChangeLog b/ChangeLog index abe1bc965..13ad62895 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17,6 +17,7 @@ Features up and needs a sync. + Supports IPv4 and IPv6 server addresses. + Began fr-FR localization. + + Complete it-IT localization. + Merged three l10n utility scripts into one tools, scripts/utils/l10n, which will help the translation effort. @@ -29,6 +30,8 @@ Bugs 'Y-M-D' (thanks to Robin Björklin). + #1222 The 'summary' report now obeys the 'color.label' setting (thanks to Steve Rader). + + #1235 The 'shell' command can now start in non-interactive mode without a + .taskrc file (thanks to Haitham Gad). + #1247 Tests now create a local dir, rather than use the insecure /tmp dir (thanks to Jakub Wilk). + #1249 Build system now recognizes GNU/Hurd and GNU/kFreeBSD (thanks to Jakub diff --git a/NEWS b/NEWS index a9d1f87ea..541ab214e 100644 --- a/NEWS +++ b/NEWS @@ -4,6 +4,7 @@ New Features in taskwarrior 2.3.0 - New task server sync capabilities. - New shell with Readline support. - The 'dateformat' settings now default to the ISO-8601 standard of 'Y-M-D'. + - Italian translation. New commands in taskwarrior 2.3.0 From ebaf09cbe0ecd38972411a1dc91859c67d20b927 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 4 May 2013 07:36:53 -0400 Subject: [PATCH 008/173] Enhancement - The 'due' urgency component is now calculated at a higher resolution. --- ChangeLog | 1 + src/Task.cpp | 38 ++++++--------- test/urgency.t | 124 ++++++++++++++++++++++++++++--------------------- 3 files changed, 88 insertions(+), 75 deletions(-) diff --git a/ChangeLog b/ChangeLog index 13ad62895..cd7bc2f5e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,6 +20,7 @@ Features + Complete it-IT localization. + Merged three l10n utility scripts into one tools, scripts/utils/l10n, which will help the translation effort. + + The 'due' urgency component now uses seconds, not days, in the calculation. Bugs + #1196 Now builds on Hurd (thanks to Jakub Wilk). diff --git a/src/Task.cpp b/src/Task.cpp index 933b29f8b..2cdb0a4c4 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -1585,36 +1585,28 @@ float Task::urgency_next () const } //////////////////////////////////////////////////////////////////////////////// +// +// Past Present Future +// Overdue Due Due +// +// -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 days +// +// <-- 1.0 linear 0.2 --> +// capped capped +// +// float Task::urgency_due () const { if (has ("due")) { Date now; Date due (get_date ("due")); - int days_overdue = (now - due) / 86400; - if (days_overdue >= 7) return 1.0; // 7 days ago - else if (days_overdue >= 6) return 0.96; - else if (days_overdue >= 5) return 0.92; - else if (days_overdue >= 4) return 0.88; - else if (days_overdue >= 3) return 0.84; - else if (days_overdue >= 2) return 0.80; - else if (days_overdue >= 1) return 0.76; - else if (days_overdue >= 0) return 0.72; - else if (days_overdue >= -1) return 0.68; - else if (days_overdue >= -2) return 0.64; - else if (days_overdue >= -3) return 0.60; - else if (days_overdue >= -4) return 0.56; - else if (days_overdue >= -5) return 0.52; - else if (days_overdue >= -6) return 0.48; - else if (days_overdue >= -7) return 0.44; - else if (days_overdue >= -8) return 0.40; - else if (days_overdue >= -9) return 0.36; - else if (days_overdue >= -10) return 0.32; - else if (days_overdue >= -11) return 0.28; - else if (days_overdue >= -12) return 0.24; - else if (days_overdue >= -13) return 0.20; - else return 0.16; // two weeks from now + // Map a range of 21 days to the value 0.2 - 1.0 + float days_overdue = (now - due) / 86400.0; + if (days_overdue >= 7.0) return 1.0; // < 1 wk ago + else if (days_overdue >= -14.0) return ((days_overdue + 14.0) * 0.8 / 21.0) + 0.2; + else return 0.2; // > 2 wks } return 0.0; diff --git a/test/urgency.t b/test/urgency.t index 1a82d1088..849acf1da 100755 --- a/test/urgency.t +++ b/test/urgency.t @@ -28,7 +28,22 @@ use strict; use warnings; -use Test::More tests => 49; +use Test::More tests => 32; + +sub in_range +{ + my ($value, $low, $high, $message) = @_; + + if ($value >= $low && $value <= $high) + { + pass ($message); + } + else + { + diag ("Expected '$value' to be in the range $low --> $high"); + fail ($message); + } +} # Create the rc file. if (open my $fh, '>', 'urgency.rc') @@ -162,12 +177,6 @@ $output = qx{../src/task rc:urgency.rc 1 _urgency 2>&1}; like ($output, qr/urgency 10$/ms, 'blocking = 10'); # due -# -# days overdue, capped at 7 -> 0.8 - 1.0 -# due today -> 0.7 -# days until due, capped at 14 -> 0.4 - 0.6 -# has due date -> 0.3 -# no due date -> 0.0 qx{../src/task rc:urgency.rc add 9a due:-10d 2>&1}; # task 18 qx{../src/task rc:urgency.rc add 9b due:-7d 2>&1}; # task 19 @@ -202,93 +211,104 @@ like ($output, qr/urgency 10$/ms, 'due:-10d = 10'); $output = qx{../src/task rc:urgency.rc 19 _urgency 2>&1}; like ($output, qr/urgency 10$/ms, 'due:-7d = 10'); -# due: 9.6 (due:-6d) +# due: ~9.6 (due:-6d) $output = qx{../src/task rc:urgency.rc 20 _urgency 2>&1}; -like ($output, qr/urgency 9.6/ms, 'due:-6d = 9.6'); +my ($value) = $output =~ /urgency\s([0-9.]+)/; +in_range ($value, 9, 10, 'due:-6d = 9 - 10'); -# due: 9.2 (due:-5d) +=pod + +# due: 8.64 (due:-5d) $output = qx{../src/task rc:urgency.rc 21 _urgency 2>&1}; -like ($output, qr/urgency 9.2/ms, 'due:-5d = 9.2'); +like ($output, qr/urgency 8.64/ms, 'due:-5d = 8.64'); -# due: 8.8 (due:-4d) +# due: 8.18 (due:-4d) $output = qx{../src/task rc:urgency.rc 22 _urgency 2>&1}; -like ($output, qr/urgency 8.8/ms, 'due:-4d = 8.8'); +like ($output, qr/urgency 8.18/ms, 'due:-4d = 8.18'); -# due: 8.4 (due:-3d) +# due: 7.73 (due:-3d) $output = qx{../src/task rc:urgency.rc 23 _urgency 2>&1}; -like ($output, qr/urgency 8.4/ms, 'due:-3d = 8.4'); +like ($output, qr/urgency 7.73/ms, 'due:-3d = 7.73'); -# due: 8 (due:-2d) +# due: 7.27 (due:-2d) $output = qx{../src/task rc:urgency.rc 24 _urgency 2>&1}; -like ($output, qr/urgency 8/ms, 'due:-2d = 8'); +like ($output, qr/urgency 7.27/ms, 'due:-2d = 7.27'); -# due: 7.6 (due:-1d) +# due: 6.82 (due:-1d) $output = qx{../src/task rc:urgency.rc 25 _urgency 2>&1}; -like ($output, qr/urgency 7.6/ms, 'due:-1d = 7.6'); +like ($output, qr/urgency 6.82/ms, 'due:-1d = 6.82'); -# due: 7.2 (due:now) +=cut + +# due: ~7.53 (due:now) $output = qx{../src/task rc:urgency.rc 26 _urgency 2>&1}; -like ($output, qr/urgency 7.2$/ms, 'due:now = 7.2'); +($value) = $output =~ /urgency\s([0-9.]+)/; +in_range ($value, 7, 8, 'due:now = 7 - 8'); -# due: 6.8 (due:1d) +=pod + +# due: 5.89 (due:1d) $output = qx{../src/task rc:urgency.rc 27 _urgency 2>&1}; -like ($output, qr/urgency 6.8/ms, 'due:1d = 6.8'); +like ($output, qr/urgency 5.89/ms, 'due:1d = 5.89'); -# due: 6.4 (due:2d) +# due: 5.44(due:2d) $output = qx{../src/task rc:urgency.rc 28 _urgency 2>&1}; -like ($output, qr/urgency 6.4/ms, 'due:2d = 6.4'); +like ($output, qr/urgency 5.44/ms, 'due:2d = 5.44'); -# due: 6 (due:3d) +# due: 4.98 (due:3d) $output = qx{../src/task rc:urgency.rc 29 _urgency 2>&1}; -like ($output, qr/urgency 6/ms, 'due:3d = 6'); +like ($output, qr/urgency 4.98/ms, 'due:3d = 4.98'); -# due: 5.6 (due:4d) +# due: 4.53 (due:4d) $output = qx{../src/task rc:urgency.rc 30 _urgency 2>&1}; -like ($output, qr/urgency 5.6/ms, 'due:4d = 5.6'); +like ($output, qr/urgency 4.53/ms, 'due:4d = 4.53'); -# due: 5.2 (due:5d) +# due: 4.07 (due:5d) $output = qx{../src/task rc:urgency.rc 31 _urgency 2>&1}; -like ($output, qr/urgency 5.2/ms, 'due:5d = 5.2'); +like ($output, qr/urgency 4.07/ms, 'due:5d = 4.07'); -# due: 4.8 (due:6d) +# due: 3.62 (due:6d) $output = qx{../src/task rc:urgency.rc 32 _urgency 2>&1}; -like ($output, qr/urgency 4.8/ms, 'due:6d = 4.8'); +like ($output, qr/urgency 3.62/ms, 'due:6d = 3.62'); -# due: 4.4 (due:7d) +# due: 3.16 (due:7d) $output = qx{../src/task rc:urgency.rc 33 _urgency 2>&1}; -like ($output, qr/urgency 4.4/ms, 'due:7d = 4.4'); +like ($output, qr/urgency 3.16/ms, 'due:7d = 3.16'); -# due: 4 (due:8d) +# due: 2.71 (due:8d) $output = qx{../src/task rc:urgency.rc 34 _urgency 2>&1}; -like ($output, qr/urgency 4/ms, 'due:8d = 4'); +like ($output, qr/urgency 2.71/ms, 'due:8d = 2.71'); -# due: 3.6 (due:9d) +# due: 2.25 (due:9d) $output = qx{../src/task rc:urgency.rc 35 _urgency 2>&1}; -like ($output, qr/urgency 3.6/ms, 'due:9d = 3.6'); +like ($output, qr/urgency 2.25/ms, 'due:9d = 2.25'); -# due: 3.2 (due:10d) +# due: 1.8 (due:10d) $output = qx{../src/task rc:urgency.rc 36 _urgency 2>&1}; -like ($output, qr/urgency 3.2/ms, 'due:10d = 3.2'); +like ($output, qr/urgency 1.8/ms, 'due:10d = 1.8'); -# due: 2.8 (due:11d) +# due: 1.34 (due:11d) $output = qx{../src/task rc:urgency.rc 37 _urgency 2>&1}; -like ($output, qr/urgency 2.8/ms, 'due:11d = 2.8'); +like ($output, qr/urgency 1.34/ms, 'due:11d = 1.34'); -# due: 2.4 (due:12d) +# due: 0.89 (due:12d) $output = qx{../src/task rc:urgency.rc 38 _urgency 2>&1}; -like ($output, qr/urgency 2.4/ms, 'due:12d = 2.4'); +like ($output, qr/urgency 0.89/ms, 'due:12d = 0.89'); -# due: 2 (due:13d) +=cut + +# due: >2 (due:13d) $output = qx{../src/task rc:urgency.rc 39 _urgency 2>&1}; -like ($output, qr/urgency 2/ms, 'due:13d = 2'); +($value) = $output =~ /urgency\s([0-9.]+)/; +in_range ($value, 2, 3, 'due:13d = 2 - 3'); -# due: 1.6 (due:14d) +# due: 2 (due:14d) $output = qx{../src/task rc:urgency.rc 40 _urgency 2>&1}; -like ($output, qr/urgency 1.6/ms, 'due:14d = 1.6'); +like ($output, qr/urgency 2/ms, 'due:14d = 2'); -# due: 1.6 (due:20d) +# due: 2 (due:20d) $output = qx{../src/task rc:urgency.rc 41 _urgency 2>&1}; -like ($output, qr/urgency 1.6$/ms, 'due:20d = 1.6'); +like ($output, qr/urgency 2$/ms, 'due:20d = 2'); # user.project: 10 (pro:PROJECT) + 10 (project) qx{../src/task rc:urgency.rc add 10a project:PROJECT 2>&1}; # task 42 @@ -313,7 +333,7 @@ like ($output, qr/urgency 5$/ms, 'scheduled past = 5'); # urgency values between 0 and 1 qx {../src/task rc:urgency.rc add 13 pri:H 2>&1}; $output = qx{../src/task rc:urgency.rc rc.urgency.priority.coefficient:0.01234 46 info 2>&1}; -like ($output, qr/Urgency 0.01$/ms, 'near-zero urgency is truncated'); +like ($output, qr/Urgency 0\.01$/ms, 'near-zero urgency is truncated'); # Cleanup. unlink qw(pending.data completed.data undo.data backlog.data urgency.rc); From a1132f0028d585c48eb3109d563d0a19158e956d Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 5 May 2013 08:33:52 -0400 Subject: [PATCH 009/173] Code Cleanup - Cmake was not updating HAVE_ST_BIRTHTIME. - NIBBLER_FEATURE_DATE was not properly applied everywhere. - FEATURE_COLOR was not properly set. - Some source files failed to include cmake.h, and therefore were not properly - Removed inefficient use of std::string::substr for guaranteed single character strings. - Integrated Directory::cd. - Integrated File::ctime, ::btime. - Integrated Path::operator+. - Integrated Nibbler::getDigit{2,4,6}. - Integrated HighResTimer. enabling/disabling code. - All Path objects now expanded internally to absolute form. - Modified unit tests to accomodate absolute paths. - Merged new nibbler.t.cpp tests. - Made various methods const. - Includes removed from some files, added to others. --- cmake.h.in | 3 ++ src/A3.cpp | 2 ++ src/Color.h | 2 ++ src/Date.cpp | 2 ++ src/Date.h | 2 +- src/Directory.cpp | 10 +++++-- src/Directory.h | 5 ++-- src/E9.cpp | 1 + src/File.cpp | 27 +++++++++++++++++- src/File.h | 4 ++- src/Nibbler.cpp | 65 +++++++++++++++++++++++++++++++++++++++++++- src/Nibbler.h | 7 ++++- src/Path.cpp | 29 +++++++++++++++++++- src/Path.h | 2 +- src/Timer.cpp | 37 +++++++++++++++++++++++++ src/Timer.h | 20 ++++++++++++++ test/color.err.t | 4 +-- test/directory.t.cpp | 14 +++++----- test/feature.1013.t | 8 +++--- test/file.t.cpp | 6 ++-- test/nibbler.t.cpp | 26 +++++++++++++++--- test/path.t.cpp | 7 +++-- test/problems | 2 +- test/shadow.t | 8 +++--- 24 files changed, 254 insertions(+), 39 deletions(-) diff --git a/cmake.h.in b/cmake.h.in index 27dfdd908..73d03b535 100644 --- a/cmake.h.in +++ b/cmake.h.in @@ -61,6 +61,9 @@ /* Found timegm */ #cmakedefine HAVE_TIMEGM +/* Found st.st_birthtime struct member */ +#cmakedefine HAVE_ST_BIRTHTIME + /* Found get_current_dir_name */ #cmakedefine HAVE_GET_CURRENT_DIR_NAME diff --git a/src/A3.cpp b/src/A3.cpp index 625af770b..4b9e73f8e 100644 --- a/src/A3.cpp +++ b/src/A3.cpp @@ -1575,6 +1575,7 @@ bool A3::is_dom (Nibbler& n, Arg& arg) //////////////////////////////////////////////////////////////////////////////// bool A3::is_date (Nibbler& n, std::string& result) { +#ifdef NIBBLER_FEATURE_DATE std::string date_format = context.config.get ("dateformat"); std::string::size_type start = n.save (); time_t t; @@ -1586,6 +1587,7 @@ bool A3::is_date (Nibbler& n, std::string& result) } n.restore (); +#endif return false; } diff --git a/src/Color.h b/src/Color.h index 7d4e90b87..1f7a0bcb3 100644 --- a/src/Color.h +++ b/src/Color.h @@ -30,6 +30,8 @@ #include +#define FEATURE_COLOR 1 + //////////////////////////////////////////////////////////////////////////////// #define _COLOR_INVERSE 0x00400000 // Inverse attribute. #define _COLOR_256 0x00200000 // 256-color mode. diff --git a/src/Date.cpp b/src/Date.cpp index 29aaff2eb..114662f24 100644 --- a/src/Date.cpp +++ b/src/Date.cpp @@ -133,8 +133,10 @@ Date::Date (const std::string& input, const std::string& format /* = "m/d/Y" */) // Parse a formatted date. Nibbler n (input); +#ifdef NIBBLER_FEATURE_DATE if (n.getDate (format, _t) && n.depleted ()) return; +#endif // Parse an ISO date. if (n.getDateISO (_t) && n.depleted ()) diff --git a/src/Date.h b/src/Date.h index 4bd0342f8..dfd28186c 100644 --- a/src/Date.h +++ b/src/Date.h @@ -29,9 +29,9 @@ #define INCLUDED_DATE #include +#include #include - class Date; class Date diff --git a/src/Directory.cpp b/src/Directory.cpp index b666d11b3..481a6427c 100644 --- a/src/Directory.cpp +++ b/src/Directory.cpp @@ -91,13 +91,13 @@ bool Directory::create () } //////////////////////////////////////////////////////////////////////////////// -bool Directory::remove () +bool Directory::remove () const { return remove_directory (_data); } //////////////////////////////////////////////////////////////////////////////// -bool Directory::remove_directory (const std::string& dir) +bool Directory::remove_directory (const std::string& dir) const { DIR* dp = opendir (dir.c_str ()); if (dp != NULL) @@ -191,6 +191,12 @@ bool Directory::up () return false; } +//////////////////////////////////////////////////////////////////////////////// +bool Directory::cd () const +{ + return chdir (_data.c_str ()) == 0 ? true : false; +} + //////////////////////////////////////////////////////////////////////////////// void Directory::list ( const std::string& base, diff --git a/src/Directory.h b/src/Directory.h index dd03c21ad..a0dd33acf 100644 --- a/src/Directory.h +++ b/src/Directory.h @@ -43,17 +43,18 @@ public: Directory& operator= (const Directory&); virtual bool create (); - virtual bool remove (); + virtual bool remove () const; std::vector list (); std::vector listRecursive (); static std::string cwd (); bool up (); + bool cd () const; private: void list (const std::string&, std::vector &, bool); - bool remove_directory (const std::string&); + bool remove_directory (const std::string&) const; }; #endif diff --git a/src/E9.cpp b/src/E9.cpp index fe77b682c..1119a0383 100644 --- a/src/E9.cpp +++ b/src/E9.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/File.cpp b/src/File.cpp index e44a8d730..e7b5abea7 100644 --- a/src/File.cpp +++ b/src/File.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -101,7 +102,7 @@ bool File::create () } //////////////////////////////////////////////////////////////////////////////// -bool File::remove () +bool File::remove () const { return unlink (_data.c_str ()) == 0 ? true : false; } @@ -335,6 +336,30 @@ time_t File::mtime () const return 0; } +//////////////////////////////////////////////////////////////////////////////// +time_t File::ctime () const +{ + struct stat s; + if (!stat (_data.c_str (), &s)) + return s.st_ctime; + + return 0; +} + +//////////////////////////////////////////////////////////////////////////////// +time_t File::btime () const +{ + struct stat s; + if (!stat (_data.c_str (), &s)) +#ifdef HAVE_ST_BIRTHTIME + return s.st_birthtime; +#else + return s.st_ctime; +#endif + + return 0; +} + //////////////////////////////////////////////////////////////////////////////// bool File::create (const std::string& name) { diff --git a/src/File.h b/src/File.h index d6d7b4c49..ffbec1ab9 100644 --- a/src/File.h +++ b/src/File.h @@ -46,7 +46,7 @@ public: File& operator= (const File&); virtual bool create (); - virtual bool remove (); + virtual bool remove () const; bool open (); bool openAndLock (); @@ -69,6 +69,8 @@ public: virtual mode_t mode (); virtual size_t size () const; virtual time_t mtime () const; + virtual time_t ctime () const; + virtual time_t btime () const; static bool create (const std::string&); static std::string read (const std::string&); diff --git a/src/Nibbler.cpp b/src/Nibbler.cpp index bc0c5d8af..33b32c5ed 100644 --- a/src/Nibbler.cpp +++ b/src/Nibbler.cpp @@ -294,6 +294,69 @@ bool Nibbler::getDigit (int& result) return false; } +//////////////////////////////////////////////////////////////////////////////// +bool Nibbler::getDigit6 (int& result) +{ + std::string::size_type i = _cursor; + if (i < _length && + _length - i >= 6) + { + if (isdigit (_input[i + 0]) && + isdigit (_input[i + 1]) && + isdigit (_input[i + 2]) && + isdigit (_input[i + 3]) && + isdigit (_input[i + 4]) && + isdigit (_input[i + 5])) + { + result = strtoimax (_input.substr (_cursor, 6).c_str (), NULL, 10); + _cursor += 6; + return true; + } + } + + return false; +} + +//////////////////////////////////////////////////////////////////////////////// +bool Nibbler::getDigit4 (int& result) +{ + std::string::size_type i = _cursor; + if (i < _length && + _length - i >= 4) + { + if (isdigit (_input[i + 0]) && + isdigit (_input[i + 1]) && + isdigit (_input[i + 2]) && + isdigit (_input[i + 3])) + { + result = strtoimax (_input.substr (_cursor, 4).c_str (), NULL, 10); + _cursor += 4; + return true; + } + } + + return false; +} + +//////////////////////////////////////////////////////////////////////////////// +bool Nibbler::getDigit2 (int& result) +{ + std::string::size_type i = _cursor; + if (i < _length && + _length - i >= 2) + { + if (isdigit (_input[i + 0]) && + isdigit (_input[i + 1])) + { + result = strtoimax (_input.substr (_cursor, 2).c_str (), NULL, 10); + _cursor += 2; + return true; + } + } + + return false; +} + //////////////////////////////////////////////////////////////////////////////// bool Nibbler::getInt (int& result) { @@ -716,7 +779,6 @@ bool Nibbler::getDateISO (time_t& t) } //////////////////////////////////////////////////////////////////////////////// -#ifdef NIBBLER_FEATURE_DATE // Parse the longest integer using the next 'limit' characters of 'result' // following position 'i' (when strict is true, the number of digits must be // equal to limit). @@ -758,6 +820,7 @@ bool Nibbler::parseDigits(std::string::size_type& i, } //////////////////////////////////////////////////////////////////////////////// +#ifdef NIBBLER_FEATURE_DATE bool Nibbler::getDate (const std::string& format, time_t& t) { std::string::size_type i = _cursor; diff --git a/src/Nibbler.h b/src/Nibbler.h index eeb6bf276..dbf2304a0 100644 --- a/src/Nibbler.h +++ b/src/Nibbler.h @@ -28,6 +28,8 @@ #ifndef INCLUDED_NIBBLER #define INCLUDED_NIBBLER +#include + #define NIBBLER_FEATURE_DATE //#undef NIBBLER_FEATURE_DATE @@ -63,6 +65,9 @@ public: bool getN (const int, std::string&); bool getQuoted (char, std::string&, bool quote = false); bool getDigit (int&); + bool getDigit6 (int&); + bool getDigit4 (int&); + bool getDigit2 (int&); bool getInt (int&); bool getHex (int&); bool getUnsignedInt (int&); @@ -76,8 +81,8 @@ public: bool getUUID (std::string&); bool getPartialUUID (std::string&); bool getDateISO (time_t&); -#ifdef NIBBLER_FEATURE_DATE bool parseDigits(std::string::size_type&, int&, unsigned int, bool strict = true); +#ifdef NIBBLER_FEATURE_DATE bool getDate (const std::string&, time_t&); #endif bool getOneOf (const std::vector &, std::string&); diff --git a/src/Path.cpp b/src/Path.cpp index a934cbed8..80786bb3b 100644 --- a/src/Path.cpp +++ b/src/Path.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -88,6 +89,13 @@ bool Path::operator== (const Path& other) return _data == other._data; } +//////////////////////////////////////////////////////////////////////////////// +Path& Path::operator+= (const std::string& dir) +{ + _data += "/" + dir; + return *this; +} + //////////////////////////////////////////////////////////////////////////////// Path::operator std::string () const { @@ -153,7 +161,7 @@ bool Path::is_directory () const //////////////////////////////////////////////////////////////////////////////// bool Path::is_absolute () const { - if (_data.length () && _data.substr (0, 1) == "/") + if (_data.length () && _data[0] == '/') return true; return false; @@ -197,6 +205,8 @@ bool Path::rename (const std::string& new_name) // ~ --> /home/user // ~foo/x --> /home/foo/s // ~/x --> /home/foo/x +// ./x --> $PWD/x +// x --> $PWD/x std::string Path::expand (const std::string& in) { std::string copy = in; @@ -234,6 +244,23 @@ std::string Path::expand (const std::string& in) } } + // Relative paths + else if (in.length () > 2 && + in.substr (0, 2) == "./") + { + char buf[PATH_MAX]; + getcwd (buf, PATH_MAX - 1); + copy = std::string (buf) + "/" + in.substr (2); + } + else if (in.length () > 1 && + in[0] != '.' && + in[0] != '/') + { + char buf[PATH_MAX]; + getcwd (buf, PATH_MAX - 1); + copy = std::string (buf) + "/" + in; + } + return copy; } diff --git a/src/Path.h b/src/Path.h index 4dabb1266..6436ab3d3 100644 --- a/src/Path.h +++ b/src/Path.h @@ -28,7 +28,6 @@ #ifndef INCLUDED_PATH #define INCLUDED_PATH -#include #include #include @@ -42,6 +41,7 @@ public: Path& operator= (const Path&); bool operator== (const Path&); + Path& operator+= (const std::string&); operator std::string () const; std::string name () const; diff --git a/src/Timer.cpp b/src/Timer.cpp index c106a7408..ad974f36c 100644 --- a/src/Timer.cpp +++ b/src/Timer.cpp @@ -112,3 +112,40 @@ void Timer::subtract (unsigned long value) } //////////////////////////////////////////////////////////////////////////////// +HighResTimer::HighResTimer () +{ + _start.tv_sec = 0; + _start.tv_usec = 0; + + _stop.tv_sec = 0; + _stop.tv_usec = 0; +} + +//////////////////////////////////////////////////////////////////////////////// +HighResTimer::~HighResTimer () +{ +} + +//////////////////////////////////////////////////////////////////////////////// +void HighResTimer::start () +{ + gettimeofday (&_start, NULL); +} + +//////////////////////////////////////////////////////////////////////////////// +void HighResTimer::stop () +{ + gettimeofday (&_stop, NULL); +} + +//////////////////////////////////////////////////////////////////////////////// +double HighResTimer::total () const +{ + if (_stop.tv_sec > 0 || _stop.tv_usec > 0) + return (_stop.tv_sec - _start.tv_sec) + + (_stop.tv_usec - _start.tv_usec) / 1000000.0; + + return 0.0; +} + +//////////////////////////////////////////////////////////////////////////////// diff --git a/src/Timer.h b/src/Timer.h index 5218441a6..ce8843c1d 100644 --- a/src/Timer.h +++ b/src/Timer.h @@ -31,6 +31,7 @@ #include #include +// Timer is a scope-activated timer that dumps to std::cout at end of scope. class Timer { public: @@ -52,6 +53,25 @@ private: unsigned long _total; }; +// HighResTimer is a stop watch with microsecond resolution. +class HighResTimer +{ +public: + HighResTimer (); + ~HighResTimer (); + HighResTimer (const HighResTimer&); + HighResTimer& operator= (const HighResTimer&); + + void start (); + void stop (); + double total () const; + +private: + struct timeval _start; + struct timeval _stop; +}; + + #endif //////////////////////////////////////////////////////////////////////////////// diff --git a/test/color.err.t b/test/color.err.t index f1224c9ec..83390565f 100755 --- a/test/color.err.t +++ b/test/color.err.t @@ -46,8 +46,8 @@ if (open my $fh, '>', 'color.rc') # Test the errors colors my $output = qx{../src/task rc:color.rc rc.debug:on add due:__ 2>&1 >/dev/null}; like ($output, qr/^\033\[33mThe\ duration\ '__'\ was\ not\ recognized\ as\ valid,\ with\ correct\ units\ like\ '3days'\.\033\[0m$/xms, 'color.error'); -like ($output, qr/^\033\[32mTimer\ Config::load\ \(color.rc\) .* \033\[0m$/xms, 'color.debug'); -like ($output, qr/^\033\[34mUsing\ alternate\ .taskrc\ file\ color.rc\033\[0m$/xms, 'color.header'); +like ($output, qr/^\033\[32mTimer\ Config::load\ \(.+color.rc\) .* \033\[0m$/xms, 'color.debug'); +like ($output, qr/^\033\[34mUsing\ alternate\ .taskrc\ file\ /xms, 'color.header'); like ($output, qr/^\033\[31mConfiguration\ override\ rc.debug:on\033\[0m$/xms, 'color.footnote'); # Cleanup. diff --git a/test/directory.t.cpp b/test/directory.t.cpp index 444272268..6408dcad2 100644 --- a/test/directory.t.cpp +++ b/test/directory.t.cpp @@ -51,17 +51,17 @@ int main (int argc, char** argv) // Directory (const Directory&); Directory d3 (d2); - t.is (d3._data, "tmp", "Directory (Directory&)"); + t.is (d3._data, Directory::cwd () + "/tmp", "Directory (Directory&)"); // Directory (const std::string&); Directory d4 ("tmp/test_directory"); // Directory& operator= (const Directory&); Directory d5 = d4; - t.is (d5._data, "tmp/test_directory", "Directory::operator="); + t.is (d5._data, Directory::cwd () + "/tmp/test_directory", "Directory::operator="); // operator (std::string) const; - t.is ((std::string) d3, "tmp", "Directory::operator (std::string) const"); + t.is ((std::string) d3, Directory::cwd () + "/tmp", "Directory::operator (std::string) const"); // virtual bool create (); t.ok (d5.create (), "Directory::create tmp/test_directory"); @@ -77,15 +77,15 @@ int main (int argc, char** argv) std::vector files = d5.list (); std::sort (files.begin (), files.end ()); t.is ((int)files.size (), 2, "Directory::list 1 file"); - t.is (files[0], "tmp/test_directory/dir", "file[0] is tmp/test_directory/dir"); - t.is (files[1], "tmp/test_directory/f0", "file[1] is tmp/test_directory/f0"); + t.is (files[0], Directory::cwd () + "/tmp/test_directory/dir", "file[0] is tmp/test_directory/dir"); + t.is (files[1], Directory::cwd () + "/tmp/test_directory/f0", "file[1] is tmp/test_directory/f0"); // std::vector listRecursive (); files = d5.listRecursive (); std::sort (files.begin (), files.end ()); t.is ((int)files.size (), 2, "Directory::list 1 file"); - t.is (files[0], "tmp/test_directory/dir/f1", "file is tmp/test_directory/dir/f1"); - t.is (files[1], "tmp/test_directory/f0", "file is tmp/test_directory/f0"); + t.is (files[0], Directory::cwd () + "/tmp/test_directory/dir/f1", "file is tmp/test_directory/dir/f1"); + t.is (files[1], Directory::cwd () + "/tmp/test_directory/f0", "file is tmp/test_directory/f0"); // virtual bool remove (); t.ok (File::remove (d5._data + "/f0"), "File::remove tmp/test_directory/f0"); diff --git a/test/feature.1013.t b/test/feature.1013.t index 178368ade..6c95e4516 100755 --- a/test/feature.1013.t +++ b/test/feature.1013.t @@ -49,9 +49,9 @@ like ($stderr, qr/^The duration '__' was not recognized as valid, with correct u # Check that headers are sent to standard error $stdout = qx{../src/task rc:outerr.rc list 2> /dev/null}; -unlike ($stdout, qr/^Using alternate .taskrc file outerr.rc$/ms, 'Headers are not sent to stdout'); +unlike ($stdout, qr/^Using alternate .taskrc file .+outerr.rc$/ms, 'Headers are not sent to stdout'); $stderr = qx{../src/task rc:outerr.rc list 2>&1 >/dev/null}; -like ($stderr, qr/^Using alternate .taskrc file outerr.rc$/ms, 'Headers are sent to stderr'); +like ($stderr, qr/^Using alternate .taskrc file .+outerr.rc$/ms, 'Headers are sent to stderr'); # Check that footnotes are sent to standard error $stdout = qx{../src/task rc:outerr.rc rc.debug:on list 2> /dev/null}; @@ -61,9 +61,9 @@ like ($stderr, qr/^Configuration override rc.debug:on$/ms, 'Footnotes are sent t # Check that debugs are sent to standard error $stdout = qx{../src/task rc:outerr.rc rc.debug:on list 2> /dev/null}; -unlike ($stdout, qr/^Timer Config::load \(outerr.rc\) /ms, 'Debugs are not sent to stdout'); +unlike ($stdout, qr/^Timer Config::load \(.+outerr.rc\) /ms, 'Debugs are not sent to stdout'); $stderr = qx{../src/task rc:outerr.rc rc.debug:on list 2>&1 >/dev/null}; -like ($stderr, qr/^Timer Config::load \(outerr.rc\) /ms, 'Debugs are sent to stderr'); +like ($stderr, qr/^Timer Config::load \(.+outerr.rc\) /ms, 'Debugs are sent to stderr'); # Cleanup. unlink qw(pending.data completed.data undo.data backlog.data outerr.rc); diff --git a/test/file.t.cpp b/test/file.t.cpp index 4bddc2df4..e6684658b 100644 --- a/test/file.t.cpp +++ b/test/file.t.cpp @@ -47,7 +47,7 @@ int main (int argc, char** argv) t.ok (File::remove ("tmp/file.t.txt"), "File::remove tmp/file.t.txt good"); // operator (std::string) const; - t.is ((std::string) f6, "tmp/file.t.txt", "File::operator (std::string) const"); + t.is ((std::string) f6, Directory::cwd () + "/tmp/file.t.txt", "File::operator (std::string) const"); t.ok (File::create ("tmp/file.t.create"), "File::create tmp/file.t.create good"); t.ok (File::remove ("tmp/file.t.create"), "File::remove tmp/file.t.create good"); @@ -56,7 +56,7 @@ int main (int argc, char** argv) t.is (f6.name (), "file.t.txt", "File::basename tmp/file.t.txt --> file.t.txt"); // dirname (std::string) const; - t.is (f6.parent (), "tmp", "File::dirname tmp/file.t.txt --> /tmp"); + t.is (f6.parent (), Directory::cwd () + "/tmp", "File::dirname tmp/file.t.txt --> tmp"); // bool rename (const std::string&); File f7 ("tmp/file.t.2.txt"); @@ -64,7 +64,7 @@ int main (int argc, char** argv) f7.close (); t.ok (f7.rename ("tmp/file.t.3.txt"), "File::rename did not fail"); - t.is (f7._data, "tmp/file.t.3.txt", "File::rename stored new name"); + t.is (f7._data, Directory::cwd () + "/tmp/file.t.3.txt", "File::rename stored new name"); t.ok (f7.exists (), "File::rename new file exists"); t.ok (f7.remove (), "File::remove tmp/file.t.3.txt good"); t.notok (f7.exists (), "File::remove new file no longer exists"); diff --git a/test/nibbler.t.cpp b/test/nibbler.t.cpp index 68bb9431f..9f4326a82 100644 --- a/test/nibbler.t.cpp +++ b/test/nibbler.t.cpp @@ -39,15 +39,15 @@ int main (int argc, char** argv) { #ifdef NIBBLER_FEATURE_DATE #ifdef NIBBLER_FEATURE_REGEX - UnitTest t (396); + UnitTest t (402); #else - UnitTest t (372); + UnitTest t (378); #endif #else #ifdef NIBBLER_FEATURE_REGEX - UnitTest t (346); + UnitTest t (338); #else - UnitTest t (322); + UnitTest t (314); #endif #endif @@ -258,6 +258,24 @@ int main (int argc, char** argv) t.is (i, 2, " '2x' : getDigit () -> 2"); t.notok (n.getDigit (i), " 'x' : getDigit () -> false"); + // bool getDigit6 (int&); + t.diag ("Nibbler::getDigit6"); + n = Nibbler ("654321"); + t.ok (n.getDigit6 (i), " 654321 : getDigit6 () -> true"); + t.is (i, 654321, " 654321 : getDigit6 () -> 654321"); + + // bool getDigit4 (int&); + t.diag ("Nibbler::getDigit4"); + n = Nibbler ("4321"); + t.ok (n.getDigit4 (i), " 4321 : getDigit4 () -> true"); + t.is (i, 4321, " 4321 : getDigit4 () -> 4321"); + + // bool getDigit2 (int&); + t.diag ("Nibbler::getDigit2"); + n = Nibbler ("21"); + t.ok (n.getDigit2 (i), " 21 : getDigit2 () -> true"); + t.is (i, 21, " 21 : getDigit2 () -> 21"); + // bool getInt (int&); t.diag ("Nibbler::getInt"); n = Nibbler ("123 -4"); diff --git a/test/path.t.cpp b/test/path.t.cpp index 026938f8a..08e9a71a8 100644 --- a/test/path.t.cpp +++ b/test/path.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include Context context; @@ -37,11 +38,11 @@ int main (int argc, char** argv) // Path (); Path p0; - t.ok (p0._data == "", "Path::Path"); + t.is (p0._data, "", "Path::Path"); // Path (const Path&); Path p1 = Path ("foo"); - t.ok (p1._data == "foo", "Path::operator="); + t.is (p1._data, Directory::cwd () + "/foo", "Path::operator="); // Path (const std::string&); Path p2 ("~"); @@ -106,7 +107,7 @@ int main (int argc, char** argv) // bool is_absolute () const; t.notok (p0.is_absolute (), "'' !is_absolute"); - t.notok (p1.is_absolute (), "foo !is_absolute"); + t.ok (p1.is_absolute (), "foo is_absolute"); t.ok (p2.is_absolute (), "~ is_absolute (after expansion)"); t.ok (p3.is_absolute (), "/tmp is_absolute"); t.ok (p4.is_absolute (), "/a/b/c/file.ext is_absolute"); diff --git a/test/problems b/test/problems index 7dfada892..8f8586901 100755 --- a/test/problems +++ b/test/problems @@ -1,4 +1,4 @@ -#! /usr/bin/env perl +#!/usr/bin/env perl use strict; use warnings; diff --git a/test/shadow.t b/test/shadow.t index 602b4db01..4c13de4e2 100755 --- a/test/shadow.t +++ b/test/shadow.t @@ -43,16 +43,16 @@ if (open my $fh, '>', 'shadow.rc') } my $output = qx{../src/task rc:shadow.rc add one 2>&1 >/dev/null}; -like ($output, qr/\[Shadow file '\.\/shadow\.txt' updated\.\]/, 'shadow file updated on add'); +like ($output, qr/\[Shadow file '.+\/shadow\.txt' updated\.\]/, 'shadow file updated on add'); $output = qx{../src/task rc:shadow.rc list 2>&1 >/dev/null}; -unlike ($output, qr/\[Shadow file '\.\/shadow\.txt' updated\.\]/, 'shadow file not updated on list'); +unlike ($output, qr/\[Shadow file '.+\/shadow\.txt' updated\.\]/, 'shadow file not updated on list'); $output = qx{../src/task rc:shadow.rc 1 delete 2>&1 >/dev/null}; -like ($output, qr/\[Shadow file '\.\/shadow\.txt' updated\.\]/, 'shadow file updated on delete'); +like ($output, qr/\[Shadow file '.+\/shadow\.txt' updated\.\]/, 'shadow file updated on delete'); $output = qx{../src/task rc:shadow.rc list 2>&1 >/dev/null}; -unlike ($output, qr/\[Shadow file '\.\/shadow\.txt' updated\.\]/, 'shadow file not updated on list'); +unlike ($output, qr/\[Shadow file '.+\/shadow\.txt' updated\.\]/, 'shadow file not updated on list'); # Inspect the shadow file. my $file = slurp ('./shadow.txt'); From 56eab7da0d121efc5fb99ac79c263c6ec34a5679 Mon Sep 17 00:00:00 2001 From: Thomas Date: Tue, 7 May 2013 13:46:10 -0400 Subject: [PATCH 010/173] Added ability for UDAs to have a default value. --- src/Task.cpp | 37 +++++++++++++++++++ src/commands/CmdUDAs.cpp | 8 +++-- src/en-US.h | 1 + src/es-ES.h | 1 + src/fr-FR.h | 1 + src/it-IT.h | 1 + test/uda_defaults.t | 76 ++++++++++++++++++++++++++++++++++++++++ 7 files changed, 123 insertions(+), 2 deletions(-) create mode 100755 test/uda_defaults.t diff --git a/src/Task.cpp b/src/Task.cpp index 2cdb0a4c4..917ad1a59 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -1260,6 +1260,43 @@ void Task::validate (bool applyDefault /* = true */) context.columns["due"]->validate (defaultDue)) set ("due", Date (defaultDue).toEpoch ()); } + + // If a UDA has a default value in the configuration, + // override with uda.(uda).default, if not specified + if (applyDefault) + { // Gather a list of all UDAs with a .default value + std::vector names; + context.config.all (names); + + std::vector udas; + std::vector ::iterator name; + for (name = names.begin (); name != names.end (); ++name) + { + if (name->substr (0, 4) == "uda." && + name->find (".default") != std::string::npos) + { + std::string::size_type period = name->find ('.', 4); + if (period != std::string::npos) + udas.push_back (name->substr (4, period - 4)); + } + } + + if (udas.size ()) + { // For each of those, setup the default value on the task now, + // of course only if we don't have one on the command line already + std::vector ::iterator uda; + for (uda = udas.begin (); uda != udas.end (); ++uda) + { + std::string type = context.config.get ("uda." + *uda + ".type"); + std::string defVal = context.config.get ("uda." + *uda + ".default"); + + // If the default is empty, and we already have a value, skip it + if (defVal != "" && get (*uda) == "") + set(*uda,defVal); + } + } + } + // 2) To provide suitable warnings about odd states diff --git a/src/commands/CmdUDAs.cpp b/src/commands/CmdUDAs.cpp index 0d9f73f65..9d8fbb291 100644 --- a/src/commands/CmdUDAs.cpp +++ b/src/commands/CmdUDAs.cpp @@ -77,13 +77,15 @@ int CmdUDAs::execute (std::string& output) { std::sort (udas.begin (), udas.end ()); - // Render a list of UDA name, type and label. + // Render a list of UDA name, type, label, allowed values, + // possible default value, and finally the usage count. ViewText view; view.width (context.getWidth ()); view.add (Column::factory ("string", STRING_COLUMN_LABEL_UDA)); view.add (Column::factory ("string", STRING_COLUMN_LABEL_TYPE)); view.add (Column::factory ("string", STRING_COLUMN_LABEL_LABEL)); view.add (Column::factory ("string", STRING_COLUMN_LABEL_VALUES)); + view.add (Column::factory ("string", STRING_COLUMN_LABEL_DEFAULT)); view.add (Column::factory ("string", STRING_COLUMN_LABEL_UDACOUNT)); std::vector ::iterator uda; @@ -92,6 +94,7 @@ int CmdUDAs::execute (std::string& output) std::string type = context.config.get ("uda." + *uda + ".type"); std::string label = context.config.get ("uda." + *uda + ".label"); std::string values = context.config.get ("uda." + *uda + ".values"); + std::string defval = context.config.get ("uda." + *uda + ".default"); if (label == "") label = *uda; @@ -107,7 +110,8 @@ int CmdUDAs::execute (std::string& output) view.set (row, 1, type); view.set (row, 2, label); view.set (row, 3, values); - view.set (row, 4, count); + view.set (row, 4, defval); + view.set (row, 5, count); } out << optionalBlankLine () diff --git a/src/en-US.h b/src/en-US.h index f19199c2e..0e1bad8ce 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -176,6 +176,7 @@ #define STRING_COLUMN_LABEL_UDA "Name" #define STRING_COLUMN_LABEL_TYPE "Type" #define STRING_COLUMN_LABEL_LABEL "Label" +#define STRING_COLUMN_LABEL_DEFAULT "Default" #define STRING_COLUMN_LABEL_VALUES "Allowed Values" #define STRING_COLUMN_LABEL_UDACOUNT "Usage Count" #define STRING_COLUMN_LABEL_ORPHAN "Orphan UDA" diff --git a/src/es-ES.h b/src/es-ES.h index fe7207283..d1a276b99 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -178,6 +178,7 @@ #define STRING_COLUMN_LABEL_UDA "Nombre" #define STRING_COLUMN_LABEL_TYPE "Tipo" #define STRING_COLUMN_LABEL_LABEL "Etiqueta" +#define STRING_COLUMN_LABEL_DEFAULT "Defecto" #define STRING_COLUMN_LABEL_VALUES "Valores permitidos" #define STRING_COLUMN_LABEL_UDACOUNT "Recuento de uso" #define STRING_COLUMN_LABEL_ORPHAN "UDA huérfano" diff --git a/src/fr-FR.h b/src/fr-FR.h index 1f86778a6..b892d7c6c 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -176,6 +176,7 @@ #define STRING_COLUMN_LABEL_UDA "Name" #define STRING_COLUMN_LABEL_TYPE "Type" #define STRING_COLUMN_LABEL_LABEL "Label" +#define STRING_COLUMN_LABEL_DEFAULT "Default" #define STRING_COLUMN_LABEL_VALUES "Allowed Values" #define STRING_COLUMN_LABEL_UDACOUNT "Usage Count" #define STRING_COLUMN_LABEL_ORPHAN "Orphan UDA" diff --git a/src/it-IT.h b/src/it-IT.h index eefea24dc..36af326ff 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -177,6 +177,7 @@ #define STRING_COLUMN_LABEL_UDA "Nome" #define STRING_COLUMN_LABEL_TYPE "Tipo" #define STRING_COLUMN_LABEL_LABEL "Etichetta" +#define STRING_COLUMN_LABEL_DEFAULT "Predefinito" #define STRING_COLUMN_LABEL_VALUES "Valori consentiti" #define STRING_COLUMN_LABEL_UDACOUNT "Conteggio Uso" #define STRING_COLUMN_LABEL_ORPHAN "UDA Orfano" diff --git a/test/uda_defaults.t b/test/uda_defaults.t new file mode 100755 index 000000000..ebf378d61 --- /dev/null +++ b/test/uda_defaults.t @@ -0,0 +1,76 @@ +#! /usr/bin/env perl +################################################################################ +## taskwarrior - a command line task list manager. +## +## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## +## Permission is hereby granted, free of charge, to any person obtaining a copy +## of this software and associated documentation files (the "Software"), to deal +## in the Software without restriction, including without limitation the rights +## to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +## copies of the Software, and to permit persons to whom the Software is +## furnished to do so, subject to the following conditions: +## +## The above copyright notice and this permission notice shall be included +## in all copies or substantial portions of the Software. +## +## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +## OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +## THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +## OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +## SOFTWARE. +## +## http://www.opensource.org/licenses/mit-license.php +## +################################################################################ + +use strict; +use warnings; +use Test::More tests => 5; + +# Create the rc file. +if (open my $fh, '>', 'uda.rc') +{ + print $fh "data.location=.\n", + "confirmation=off\n", + "uda.smell.type=string\n", + "uda.smell.label=Smell\n", + "uda.smell.values=weak,strong\n", + "uda.smell.default=weak\n", + "uda.size.type=numeric\n", + "uda.size.label=Size\n", + "report.uda.description=UDA Test\n", + "report.uda.columns=id,smell,size,description\n", + "report.uda.sort=id\n", + "report.uda.labels=ID,Smell,Size,Description\n"; + close $fh; + ok (-r 'uda.rc', 'Created uda.rc'); +} + +# Add task with nondefault UDA +qx{../src/task rc:uda.rc add one smell:strong 2>&1}; + +# Add task without a UDA value, checking for usage of the default +qx{../src/task rc:uda.rc add two 2>&1}; + +# Add a task with a UDA that has no default, ensure it is entered fine +qx{../src/task rc:uda.rc add three size:10 2>&1}; + +my $output = qx{../src/task rc:uda.rc uda 2>&1}; +like ($output, qr/1\s+strong\s+one/, 'UDA nondefault stored'); +like ($output, qr/2\s+weak\s+two/, 'UDA default stored'); +like ($output, qr/3\s+weak\s+10\s+three/, 'UDA without default stored'); + + +# Cleanup. +unlink qw(pending.data completed.data undo.data backlog.data uda.rc); +ok (! -r 'pending.data' && + ! -r 'completed.data' && + ! -r 'undo.data' && + ! -r 'backlog.data' && + ! -r 'uda.rc', 'Cleanup'); + +exit 0; + From 157699cbdeb3e98c50552deaafbdc1810ad15e98 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 7 May 2013 16:20:47 -0400 Subject: [PATCH 011/173] Feature #1256 Follow-up - Extended unit tests to cover 'add' failures. - Removed whitespace at EOL. - Updated ChangeLog, AUTHORS, NEWS. - Updated taskrc.5.in. - Updated CmdShow to allow new config settings. --- AUTHORS | 1 + ChangeLog | 1 + NEWS | 1 + doc/man/taskrc.5.in | 7 +++++++ src/Task.cpp | 25 +++++++++++++------------ src/commands/CmdShow.cpp | 1 + src/commands/CmdUDAs.cpp | 2 +- test/uda_defaults.t | 13 ++++++++----- 8 files changed, 33 insertions(+), 18 deletions(-) diff --git a/AUTHORS b/AUTHORS index aed2af047..dd2df9f33 100644 --- a/AUTHORS +++ b/AUTHORS @@ -86,6 +86,7 @@ The following submitted code, packages or analysis, and deserve special thanks: Russell Steicke YBSAR Tullio Facchinetti + Thomas Sullivan Thanks to the following, who submitted detailed bug reports and excellent suggestions: diff --git a/ChangeLog b/ChangeLog index cd7bc2f5e..087eaec08 100644 --- a/ChangeLog +++ b/ChangeLog @@ -11,6 +11,7 @@ Features + #1227 A new 'verify_l10n' utility ensures the localizations are in sync (thanks to Wim Schuermann). + #1250 Support out-of-tree test runs (thanks to Jakub Wilk). + + #1256 Supports default values for UDA fields (thanks to Thomas Sullivan). + Stores un-synched transactions in /backlog.data. + Adds a new 'synchronize' command to sync data with a task server. + Adds a new 'sync' verbosity token, which will reminds when a backlog builds diff --git a/NEWS b/NEWS index 541ab214e..4e0cce091 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,7 @@ New Features in taskwarrior 2.3.0 - New shell with Readline support. - The 'dateformat' settings now default to the ISO-8601 standard of 'Y-M-D'. - Italian translation. + - UDA fields now allow default values. New commands in taskwarrior 2.3.0 diff --git a/doc/man/taskrc.5.in b/doc/man/taskrc.5.in index d4c7723d1..e6e2c2fb6 100644 --- a/doc/man/taskrc.5.in +++ b/doc/man/taskrc.5.in @@ -1139,6 +1139,13 @@ Provides a default due date for the .I task add command, if you don't specify one. The default is blank. +.TP +.B +uda..default=... +Provides default values for UDA fields when using the +.I task add +command, if you don't specify values. The default is blank. + .TP .B default.command=next diff --git a/src/Task.cpp b/src/Task.cpp index 917ad1a59..4563947a1 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -1260,14 +1260,15 @@ void Task::validate (bool applyDefault /* = true */) context.columns["due"]->validate (defaultDue)) set ("due", Date (defaultDue).toEpoch ()); } - - // If a UDA has a default value in the configuration, - // override with uda.(uda).default, if not specified + + // If a UDA has a default value in the configuration, + // override with uda.(uda).default, if not specified. if (applyDefault) - { // Gather a list of all UDAs with a .default value + { + // Gather a list of all UDAs with a .default value std::vector names; context.config.all (names); - + std::vector udas; std::vector ::iterator name; for (name = names.begin (); name != names.end (); ++name) @@ -1280,9 +1281,10 @@ void Task::validate (bool applyDefault /* = true */) udas.push_back (name->substr (4, period - 4)); } } - + if (udas.size ()) - { // For each of those, setup the default value on the task now, + { + // For each of those, setup the default value on the task now, // of course only if we don't have one on the command line already std::vector ::iterator uda; for (uda = udas.begin (); uda != udas.end (); ++uda) @@ -1291,12 +1293,11 @@ void Task::validate (bool applyDefault /* = true */) std::string defVal = context.config.get ("uda." + *uda + ".default"); // If the default is empty, and we already have a value, skip it - if (defVal != "" && get (*uda) == "") - set(*uda,defVal); + if (defVal != "" && get (*uda) == "") + set (*uda, defVal); } } - } - + } // 2) To provide suitable warnings about odd states @@ -1457,7 +1458,7 @@ float Task::urgency_c () const value += fabsf (urgencyBlockingCoefficient) > epsilon ? (urgency_blocking () * urgencyBlockingCoefficient) : 0.0; value += fabsf (urgencyAgeCoefficient) > epsilon ? (urgency_age () * urgencyAgeCoefficient) : 0.0; -/* +/* // Very useful for debugging urgency problems. std::cout << "# Urgency for " << get ("uuid") << ":\n" << "# pri " << (urgency_priority () * urgencyPriorityCoefficient) << "\n" diff --git a/src/commands/CmdShow.cpp b/src/commands/CmdShow.cpp index c757a8c84..04c3187c8 100644 --- a/src/commands/CmdShow.cpp +++ b/src/commands/CmdShow.cpp @@ -238,6 +238,7 @@ int CmdShow::execute (std::string& output) i->substr (0, 5) != "pull." && i->substr (0, 6) != "merge." && i->substr (0, 4) != "uda." && + i->substr (0, 4) != "default." && i->substr (0, 21) != "urgency.user.project." && i->substr (0, 17) != "urgency.user.tag." && i->substr (0, 12) != "urgency.uda.") diff --git a/src/commands/CmdUDAs.cpp b/src/commands/CmdUDAs.cpp index 9d8fbb291..64fd10bef 100644 --- a/src/commands/CmdUDAs.cpp +++ b/src/commands/CmdUDAs.cpp @@ -85,7 +85,7 @@ int CmdUDAs::execute (std::string& output) view.add (Column::factory ("string", STRING_COLUMN_LABEL_TYPE)); view.add (Column::factory ("string", STRING_COLUMN_LABEL_LABEL)); view.add (Column::factory ("string", STRING_COLUMN_LABEL_VALUES)); - view.add (Column::factory ("string", STRING_COLUMN_LABEL_DEFAULT)); + view.add (Column::factory ("string", STRING_COLUMN_LABEL_DEFAULT)); view.add (Column::factory ("string", STRING_COLUMN_LABEL_UDACOUNT)); std::vector ::iterator uda; diff --git a/test/uda_defaults.t b/test/uda_defaults.t index ebf378d61..95c1ec499 100755 --- a/test/uda_defaults.t +++ b/test/uda_defaults.t @@ -28,7 +28,7 @@ use strict; use warnings; -use Test::More tests => 5; +use Test::More tests => 8; # Create the rc file. if (open my $fh, '>', 'uda.rc') @@ -50,15 +50,18 @@ if (open my $fh, '>', 'uda.rc') } # Add task with nondefault UDA -qx{../src/task rc:uda.rc add one smell:strong 2>&1}; +my $output = qx{../src/task rc:uda.rc add one smell:strong 2>&1}; +like ($output, qr/Created task 1/, 'Add 1 - no errors'); # Add task without a UDA value, checking for usage of the default -qx{../src/task rc:uda.rc add two 2>&1}; +$output = qx{../src/task rc:uda.rc add two 2>&1}; +like ($output, qr/Created task 2/, 'Add 2 - no errors'); # Add a task with a UDA that has no default, ensure it is entered fine -qx{../src/task rc:uda.rc add three size:10 2>&1}; +$output = qx{../src/task rc:uda.rc add three size:10 2>&1}; +like ($output, qr/Created task 3/, 'Add 3 - no errors'); -my $output = qx{../src/task rc:uda.rc uda 2>&1}; +$output = qx{../src/task rc:uda.rc uda 2>&1}; like ($output, qr/1\s+strong\s+one/, 'UDA nondefault stored'); like ($output, qr/2\s+weak\s+two/, 'UDA default stored'); like ($output, qr/3\s+weak\s+10\s+three/, 'UDA without default stored'); From a973ccf8f29f9f2ff49ed82cdb856ef527f6df17 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 11 May 2013 13:07:14 -0400 Subject: [PATCH 012/173] Sync - When taskwarrior is built without GnuTLS, there will be a message to that effect. - Stubbed the TLSClient calling code. The current Socket code will become obsolete soon. --- CMakeLists.txt | 1 - src/commands/CmdSync.cpp | 33 ++++++++++++++++++++++++++++++--- src/en-US.h | 1 + src/es-ES.h | 1 + src/fr-FR.h | 1 + src/it-IT.h | 1 + test/CMakeLists.txt | 8 +++----- 7 files changed, 37 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bb6724bea..61ecb0e03 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -90,7 +90,6 @@ check_function_exists (srandom HAVE_SRANDOM) check_function_exists (timegm HAVE_TIMEGM) check_function_exists (get_current_dir_name HAVE_GET_CURRENT_DIR_NAME) - check_struct_has_member ("struct tm" tm_gmtoff time.h HAVE_TM_GMTOFF) check_struct_has_member ("struct stat" st_birthtime "sys/types.h;sys/stat.h" HAVE_ST_BIRTHTIME) diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index becbab95e..c8b5ac875 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -29,7 +29,11 @@ #include #include #include -#include +#include +#include // TODO Socket is obsolete. +/* +#include +*/ #include #include #include @@ -51,6 +55,7 @@ CmdSync::CmdSync () int CmdSync::execute (std::string& output) { int status = 0; +#ifdef HAVE_LIBGNUTLS Timer timer_sync; timer_sync.start (); @@ -110,8 +115,8 @@ int CmdSync::execute (std::string& output) std::string code = response.get ("code"); if (code == "200") { - Color colorAdded (context.config.get ("color.sync.added")); - Color colorChanged (context.config.get ("color.sync.changed")); + Color colorAdded (context.config.get ("color.sync.added")); + Color colorChanged (context.config.get ("color.sync.changed")); int download_count = 0; payload = response.getPayload (); @@ -244,6 +249,10 @@ int CmdSync::execute (std::string& output) debug (s.str ()); */ +#else + // Without GnuTLS found at compile time, there is no working sync command. + throw std::string (STRING_CMD_SYNC_NO_TLS); +#endif return status; } @@ -253,6 +262,7 @@ bool CmdSync::send ( const Msg& request, Msg& response) { +#ifdef HAVE_LIBGNUTLS std::string::size_type colon = to.rfind (':'); if (colon == std::string::npos) throw format (STRING_CMD_SYNC_BAD_SERVER, to); @@ -262,6 +272,7 @@ bool CmdSync::send ( try { + // TODO Socket is obsolete. Socket s; s.connect (server, port); s.write (request.serialize () + "\n"); @@ -270,6 +281,21 @@ bool CmdSync::send ( s.read (incoming); s.close (); +/* + // A very basic TLS client, with X.509 authentication. + TLSClient client; + client.debug (); // TODO if (context.config.get ("debug")) + client.limit (1024); // TODO ??? + client.init ("pki/client.cert.pem"); // TODO ??? + client.connect (server, port); + + client.send (request.serialize () + "\n"); + + std::string incoming; + client.recv (incoming); + client.bye (); +*/ + response.parse (incoming); return true; } @@ -280,6 +306,7 @@ bool CmdSync::send ( } // Indicate message failed. +#endif return false; } diff --git a/src/en-US.h b/src/en-US.h index 0e1bad8ce..91bdb75fd 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -416,6 +416,7 @@ #define STRING_CMD_SYNC_FAIL_ERROR "Sync failed. The Task Server returned error: {1} {2}" #define STRING_CMD_SYNC_FAIL_CONNECT "Sync failed. Could not connect to the Task Server." #define STRING_CMD_SYNC_BAD_SERVER "Sync failed. Malformed configuration setting '{1}'" +#define STRING_CMD_SYNC_NO_TLS "Taskwarrior was built without GnuTLS support. Sync is not available." #define STRING_CMD_DIAG_USAGE "Platform, build and environment details" #define STRING_CMD_DIAG_PLATFORM "Platform" #define STRING_CMD_DIAG_UNKNOWN "" diff --git a/src/es-ES.h b/src/es-ES.h index d1a276b99..049bd1af0 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -427,6 +427,7 @@ #define STRING_CMD_SYNC_FAIL_ERROR "Sincronización fallida. El Servidor Task devolvió error: {1} {2}" #define STRING_CMD_SYNC_FAIL_CONNECT "Sincronización fallida. No se pudo conectar con el Servidor Task." #define STRING_CMD_SYNC_BAD_SERVER "Sincronización fallida. Ajuste de configuración '{1}' incorrecto" +#define STRING_CMD_SYNC_NO_TLS "Taskwarrior was built without GnuTLS support. Sync is not available." #define STRING_CMD_DIAG_USAGE "Detalles de plataforma, construcción y entorno" #define STRING_CMD_DIAG_PLATFORM "Plataforma" diff --git a/src/fr-FR.h b/src/fr-FR.h index b892d7c6c..0bf8a7978 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -416,6 +416,7 @@ #define STRING_CMD_SYNC_FAIL_ERROR "Sync failed. The Task Server returned error: {1} {2}" #define STRING_CMD_SYNC_FAIL_CONNECT "Sync failed. Could not connect to the Task Server." #define STRING_CMD_SYNC_BAD_SERVER "Sync failed. Malformed configuration setting '{1}'" +#define STRING_CMD_SYNC_NO_TLS "Taskwarrior was built without GnuTLS support. Sync is not available." #define STRING_CMD_DIAG_USAGE "Platform, build and environment details" #define STRING_CMD_DIAG_PLATFORM "Platform" #define STRING_CMD_DIAG_UNKNOWN "" diff --git a/src/it-IT.h b/src/it-IT.h index 36af326ff..a3f96886b 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -417,6 +417,7 @@ #define STRING_CMD_SYNC_FAIL_ERROR "Sincronizzazione fallita. Il Task Server ha ritornato l'errore: {1} {2}" #define STRING_CMD_SYNC_FAIL_CONNECT "Sincronizzazione fallita. Impossibile connettersi al Task Server." #define STRING_CMD_SYNC_BAD_SERVER "Sincronizzazione fallita. Impostazione di configurazione '{1}' malformata" +#define STRING_CMD_SYNC_NO_TLS "Taskwarrior was built without GnuTLS support. Sync is not available." #define STRING_CMD_DIAG_USAGE "Dettagli su piattaforma, build e ambiente" #define STRING_CMD_DIAG_PLATFORM "Piattaforma" #define STRING_CMD_DIAG_UNKNOWN "" diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 6da3406de..3950a31d9 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -16,21 +16,19 @@ if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) set (TESTBLOB "./*.t") if (CYGWIN) -set (TESTBLOB "./*.t ./*.t.exe") + set (TESTBLOB "./*.t ./*.t.exe") endif (CYGWIN) else (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) set (TESTBLOB "${CMAKE_SOURCE_DIR}/test/*.t ${CMAKE_BINARY_DIR}/test/*.t") if (CYGWIN) -set (TESTBLOB "${CMAKE_SOURCE_DIR}/test/*.t ${CMAKE_BINARY_DIR}/test/*.t.exe") + set (TESTBLOB "${CMAKE_SOURCE_DIR}/test/*.t ${CMAKE_BINARY_DIR}/test/*.t.exe") endif (CYGWIN) endif (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) -configure_file ( - run_all.in - run_all) +configure_file (run_all.in run_all) add_custom_target (test ./run_all --verbose DEPENDS ${test_SRCS} task_executable From 6d2cbd77f8834537284dc58bd43537bd100d7322 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 11 May 2013 16:49:39 -0400 Subject: [PATCH 013/173] Sync - Added task server details to the 'diagnostics' command output. - Added new configuration variables to the 'show' command. - rc.taskd.server specifies host:port of the task server. - rc.taskd.credentials specifies user credentials for the task server. - rc.taskd.certificate specifies the task server certificate. - rc.debug.tls shows TLS log information, for debugging. --- ChangeLog | 2 +- NEWS | 5 ++++- src/commands/CmdDiagnostics.cpp | 4 ++++ src/commands/CmdShow.cpp | 2 ++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 087eaec08..bdd572790 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,7 +14,7 @@ Features + #1256 Supports default values for UDA fields (thanks to Thomas Sullivan). + Stores un-synched transactions in /backlog.data. + Adds a new 'synchronize' command to sync data with a task server. - + Adds a new 'sync' verbosity token, which will reminds when a backlog builds + + Adds a new 'sync' verbosity token, which will remind when a backlog builds up and needs a sync. + Supports IPv4 and IPv6 server addresses. + Began fr-FR localization. diff --git a/NEWS b/NEWS index 4e0cce091..a89b744f5 100644 --- a/NEWS +++ b/NEWS @@ -15,7 +15,10 @@ New commands in taskwarrior 2.3.0 New configuration options in taskwarrior 2.3.0 - - + - 'taskd.server' specifies host:port of the task server. + - 'taskd.credentials' specifies user credentials for the task server. + - 'taskd.certificate' specifies the task server certificate. + - 'debug.tls' shows TLS log information, for debugging. Newly deprecated features in taskwarrior 2.3.0 diff --git a/src/commands/CmdDiagnostics.cpp b/src/commands/CmdDiagnostics.cpp index 54620b378..a49a6e577 100644 --- a/src/commands/CmdDiagnostics.cpp +++ b/src/commands/CmdDiagnostics.cpp @@ -217,6 +217,10 @@ int CmdDiagnostics::execute (std::string& output) << context.config.get ("taskd.server") << "\n"; + out << " Cert: " + << context.config.get ("taskd.certificate") + << "\n"; + out << " Locking: " << (context.config.getBoolean ("locking") ? STRING_CMD_DIAG_ENABLED diff --git a/src/commands/CmdShow.cpp b/src/commands/CmdShow.cpp index 04c3187c8..0d8cc3225 100644 --- a/src/commands/CmdShow.cpp +++ b/src/commands/CmdShow.cpp @@ -133,6 +133,7 @@ int CmdShow::execute (std::string& output) " dateformat.info" " dateformat.report" " debug" + " debug.tls" " default.command" " default.due" " default.priority" @@ -187,6 +188,7 @@ int CmdShow::execute (std::string& output) " shell.prompt" " tag.indicator" " taskd.server" + " taskd.certificate" " taskd.credentials" " undo.style" " urgency.active.coefficient" From f15c9a1b7e1b101d1ef3c110b6157bc87e2148ca Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 11 May 2013 18:05:28 -0400 Subject: [PATCH 014/173] Documentation - Added missing dateformat components 'j' and 'J' to the man page. --- doc/man/taskrc.5.in | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/doc/man/taskrc.5.in b/doc/man/taskrc.5.in index e6e2c2fb6..4f35509bd 100644 --- a/doc/man/taskrc.5.in +++ b/doc/man/taskrc.5.in @@ -499,41 +499,45 @@ characters: .RS .RS -m minimal-digit month, for example 1 or 12 +m minimal-digit month, for example 1 or 12 .br -d minimal-digit day, for example 1 or 30 +d minimal-digit day, for example 1 or 30 .br -y two-digit year, for example 09 or 12 +y two-digit year, for example 09 or 12 .br -D two-digit day, for example 01 or 30 +D two-digit day, for example 01 or 30 .br -M two-digit month, for example 01 or 12 +M two-digit month, for example 01 or 12 .br -Y four-digit year, for example 2009 or 2013 +Y four-digit year, for example 2009 or 2013 .br -a short name of weekday, for example Mon or Wed +a short name of weekday, for example Mon or Wed .br -A long name of weekday, for example Monday or Wednesday +A long name of weekday, for example Monday or Wednesday .br -b short name of month, for example Jan or Aug +b short name of month, for example Jan or Aug .br -B long name of month, for example January or August +B long name of month, for example January or August .br -v minimal-digit week, for example 3 or 37 +v minimal-digit week, for example 3 or 37 .br -V two-digit week, for example 03 or 37 +V two-digit week, for example 03 or 37 .br -h minimal-digit hour, for example 3 or 21 +h minimal-digit hour, for example 3 or 21 .br -n minimal-digit minutes, for example 5 or 42 +n minimal-digit minutes, for example 5 or 42 .br -s minimal-digit seconds, for example 7 or 47 +s minimal-digit seconds, for example 7 or 47 .br -H two-digit hour, for example 03 or 21 +H two-digit hour, for example 03 or 21 .br -N two-digit minutes, for example 05 or 42 +N two-digit minutes, for example 05 or 42 .br -S two-digit seconds, for example 07 or 47 +S two-digit seconds, for example 07 or 47 +.br +J three-digit Julian day, for example 023 or 365 +.br +j Julian day, for example 23 or 365 .RE .RE From 1e9fb8eebcdbe6da609b2dcbc7e0b47f38432675 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 12 May 2013 01:05:58 -0400 Subject: [PATCH 015/173] Sync - Implemented sync over TLS. - Obsoleted the Socket code, replacing it with TLSClient, TLSServer. - Added task server details to the 'diagnostics' command output. - 'rc.debug.tls' controls the GnuTLS log level. - Removed redundant cmake diagnostics. --- CMakeLists.txt | 2 - ChangeLog | 2 + src/CMakeLists.txt | 2 +- src/Config.cpp | 1 + src/{Socket.cpp => TLSClient.cpp} | 241 ++++++++++++++---------------- src/{Socket.h => TLSClient.h} | 56 +++---- src/commands/CmdDiagnostics.cpp | 28 ++-- src/commands/CmdSync.cpp | 30 ++-- src/commands/CmdSync.h | 2 +- src/en-US.h | 1 + src/es-ES.h | 1 + src/fr-FR.h | 1 + src/it-IT.h | 1 + 13 files changed, 173 insertions(+), 195 deletions(-) rename src/{Socket.cpp => TLSClient.cpp} (61%) rename src/{Socket.h => TLSClient.h} (71%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 61ecb0e03..b019b0a42 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,7 +56,6 @@ set (PACKAGE_STRING "${PACKAGE} ${VERSION}") message ("-- Looking for GnuTLS") find_package (GnuTLS) if (GNUTLS_FOUND) - message ("-- Found GnuTLS: ${GNUTLS_LIBRARIES}") set (HAVE_LIBGNUTLS true) set (TASK_INCLUDE_DIRS ${TASK_INCLUDE_DIRS} ${GNUTLS_INCLUDE_DIR}) set (TASK_LIBRARIES ${TASK_LIBRARIES} ${GNUTLS_LIBRARIES}) @@ -79,7 +78,6 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules") message ("-- Looking for GNU Readline") find_package (Readline) if (READLINE_FOUND) - message ("-- Found GNU Readline: ${READLINE_LIBRARIES}") set (HAVE_READLINE true) set (TASK_INCLUDE_DIRS ${TASK_INCLUDE_DIRS} ${READLINE_INCLUDE_DIR}) set (TASK_LIBRARIES ${TASK_LIBRARIES} ${READLINE_LIBRARIES}) diff --git a/ChangeLog b/ChangeLog index bdd572790..32bf8118b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -22,6 +22,8 @@ Features + Merged three l10n utility scripts into one tools, scripts/utils/l10n, which will help the translation effort. + The 'due' urgency component now uses seconds, not days, in the calculation. + + The 'debug.tls' configuration variable takes an integer which corresponds to + the GnuTLS log level. For debugging. Bugs + #1196 Now builds on Hurd (thanks to Jakub Wilk). diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9f38c7e6e..4e78b7e45 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -26,6 +26,7 @@ set (task_SRCS A3.cpp A3.h Task.cpp Task.h Taskmod.cpp Taskmod.h Timer.cpp Timer.h + TLSClient.cpp TLSClient.h Transport.cpp Transport.h TransportCurl.cpp TransportCurl.h TransportRSYNC.cpp TransportRSYNC.h @@ -41,7 +42,6 @@ set (task_SRCS A3.cpp A3.h legacy.cpp recur.cpp rules.cpp - Socket.cpp Socket.h sort.cpp text.cpp text.h utf8.cpp utf8.h diff --git a/src/Config.cpp b/src/Config.cpp index f3e384e7b..08ce5c5ae 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -290,6 +290,7 @@ std::string Config::_defaults = "list.all.tags=no # Include old tag names in 'tags' command\n" "print.empty.columns=no # Print columns which have no data for any task\n" "debug=no # Display diagnostics\n" + "debug.tls=0 # GnuTLS log level\n" "extensions=off # Extension system master switch\n" "fontunderline=yes # Uses underlines rather than -------\n" "shell.prompt=task> # Prompt used by the shell command\n" diff --git a/src/Socket.cpp b/src/TLSClient.cpp similarity index 61% rename from src/Socket.cpp rename to src/TLSClient.cpp index 9b26cbeae..6227f7600 100644 --- a/src/Socket.cpp +++ b/src/TLSClient.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2012, Paul Beckingham, Federico Hernandez. +// Copyright 2006 - 2013, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -25,45 +25,92 @@ // //////////////////////////////////////////////////////////////////////////////// +#include + +#ifdef HAVE_LIBGNUTLS + #include -#include -#include -#include -#include -#include -#include +#include #include +#include #include +#include #include -#include -#include -#include + +#define MAX_BUF 1024 //////////////////////////////////////////////////////////////////////////////// -Socket::Socket () : - _socket (0), - _limit (0), // Unlimited - _debug (false) +static void gnutls_log_function (int level, const char* message) +{ + std::cout << "c: " << level << " " << message; +} + +//////////////////////////////////////////////////////////////////////////////// +TLSClient::TLSClient () +: _ca ("") +, _socket (0) +, _debug (false) { } //////////////////////////////////////////////////////////////////////////////// -Socket::Socket (int s) : - _socket (s), - _limit (0), // Unlimited - _debug (false) +TLSClient::~TLSClient () { + gnutls_deinit (_session); + gnutls_certificate_free_credentials (_credentials); + gnutls_global_deinit (); + + if (_socket) + { + shutdown (_socket, SHUT_RDWR); + close (_socket); + } } //////////////////////////////////////////////////////////////////////////////// -Socket::~Socket () +void TLSClient::limit (int max) { - close (); + _limit = max; } //////////////////////////////////////////////////////////////////////////////// -// For clients. -void Socket::connect (const std::string& host, const std::string& port) +// Calling this method results in all subsequent socket traffic being sent to +// std::cout, labelled with >>> for outgoing, <<< for incoming. +void TLSClient::debug (int level) +{ + _debug = true; + + gnutls_global_set_log_function (gnutls_log_function); + gnutls_global_set_log_level (level); +} + +//////////////////////////////////////////////////////////////////////////////// +void TLSClient::init (const std::string& ca) +{ + _ca = ca; + + gnutls_global_init (); + gnutls_certificate_allocate_credentials (&_credentials); + gnutls_certificate_set_x509_trust_file (_credentials, _ca.c_str (), GNUTLS_X509_FMT_PEM); + gnutls_init (&_session, GNUTLS_CLIENT); + + // Use default priorities. + const char *err; + int ret = gnutls_priority_set_direct (_session, "NORMAL", &err); + if (ret < 0) + { + if (ret == GNUTLS_E_INVALID_REQUEST) + std::cout << "c: ERROR Priority error at: " << err << "\n"; + + exit (1); + } + + // Apply the x509 credentials to the current session. + gnutls_credentials_set (_session, GNUTLS_CRD_CERTIFICATE, _credentials); +} + +//////////////////////////////////////////////////////////////////////////////// +void TLSClient::connect (const std::string& host, const std::string& port) { // use IPv4 or IPv6, does not matter. struct addrinfo hints; @@ -95,10 +142,7 @@ void Socket::connect (const std::string& host, const std::string& port) throw "ERROR: " + std::string (::strerror (errno)); if (::connect (_socket, p->ai_addr, p->ai_addrlen) == -1) - { - close (); continue; - } break; } @@ -107,80 +151,31 @@ void Socket::connect (const std::string& host, const std::string& port) if (p == NULL) throw "ERROR: Could not connect to " + host + " " + port; -} -//////////////////////////////////////////////////////////////////////////////// -void Socket::close () -{ - if (_socket) - ::close (_socket); - _socket = 0; -} + gnutls_transport_set_ptr (_session, (gnutls_transport_ptr_t) _socket); -//////////////////////////////////////////////////////////////////////////////// -// For servers. -void Socket::bind (const std::string& port) -{ - // use IPv4 or IPv6, does not matter. - struct addrinfo hints; - memset (&hints, 0, sizeof hints); - hints.ai_family = AF_UNSPEC; - hints.ai_socktype = SOCK_STREAM; - hints.ai_flags = AI_PASSIVE; // use my IP + // Perform the TLS handshake + int ret = gnutls_handshake (_session); - struct addrinfo* res; - if (::getaddrinfo (NULL, port.c_str (), &hints, &res) != 0) - throw "ERROR: " + std::string (::gai_strerror (errno)); - - if ((_socket = ::socket (res->ai_family, - res->ai_socktype, - res->ai_protocol)) == -1) - throw "ERROR: Can not bind to port " + port; - - // When a socket is closed, it remains unavailable for a while (netstat -an). - // Setting SO_REUSEADDR allows this program to assume control of a closed, but - // unavailable socket. - int on = 1; - if (::setsockopt (_socket, - SOL_SOCKET, - SO_REUSEADDR, - (const void*) &on, - sizeof (on)) == -1) - throw "ERROR: " + std::string (::strerror (errno)); - - if (::bind (_socket, res->ai_addr, res->ai_addrlen) == -1) - throw "ERROR: " + std::string (::strerror (errno)); -} - -//////////////////////////////////////////////////////////////////////////////// -void Socket::listen (int queue /*= 5*/) -{ - if (::listen (_socket, queue) < 0) - throw "ERROR: " + std::string (::strerror (errno)); -} - -//////////////////////////////////////////////////////////////////////////////// -int Socket::accept () -{ - struct sockaddr_storage client; - socklen_t length = sizeof client; - int connection; - - do + if (ret < 0) { - memset (&client, 0, length); - connection = ::accept (_socket, (struct sockaddr*) &client, &length); + std::cout << "c: ERROR Handshake failed\n"; + gnutls_perror (ret); + } + else + { + std::cout << "c: INFO Handshake was completed\n"; } - while (errno == EINTR); - - if (connection < 0) - throw "ERROR: " + std::string (::strerror (errno)); - - return connection; } //////////////////////////////////////////////////////////////////////////////// -void Socket::write (const std::string& data) +void TLSClient::bye () +{ + gnutls_bye (_session, GNUTLS_SHUT_RDWR); +} + +//////////////////////////////////////////////////////////////////////////////// +void TLSClient::send (const std::string& data) { std::string packet = "XXXX" + data; @@ -199,9 +194,10 @@ void Socket::write (const std::string& data) int status; do { - status = ::send (_socket, packet.c_str () + total, remaining, 0); + status = gnutls_record_send (_session, packet.c_str () + total, remaining); } - while (errno == EINTR); + while (errno == GNUTLS_E_INTERRUPTED || + errno == GNUTLS_E_AGAIN); if (status == -1) break; @@ -211,25 +207,28 @@ void Socket::write (const std::string& data) } if (_debug) - std::cout << ">>> " + std::cout << "c: INFO Sending 'XXXX" << data.c_str () - << " (" << total << " bytes)" + << "' (" << total << " bytes)" << std::endl; } //////////////////////////////////////////////////////////////////////////////// -void Socket::read (std::string& data) +void TLSClient::recv (std::string& data) { data = ""; // No appending of data. int received = 0; // Get the encoded length. - unsigned char header[4]; + unsigned char header[4] = {0}; do { - received = ::recv (_socket, header, sizeof (header), 0); + received = gnutls_record_recv (_session, header, 4); } - while (errno == EINTR); + while (received > 0 && + (errno == GNUTLS_E_INTERRUPTED || + errno == GNUTLS_E_AGAIN)); + int total = received; // Decode the length. @@ -237,11 +236,12 @@ void Socket::read (std::string& data) (header[1]<<16) | (header[2]<<8) | header[3]; + std::cout << "c: INFO expecting " << expected << " bytes.\n"; // TODO This would be a good place to assert 'expected < _limit'. // Arbitrary buffer size. - char buffer[8192]; + char buffer[MAX_BUF]; // Keep reading until no more data. Concatenate chunks of data if a) the // read was interrupted by a signal, and b) if there is more data than @@ -250,17 +250,22 @@ void Socket::read (std::string& data) { do { - received = ::recv (_socket, buffer, sizeof (buffer) - 1, 0); + received = gnutls_record_recv (_session, buffer, MAX_BUF - 1); } - while (errno == EINTR); + while (received > 0 && + (errno == GNUTLS_E_INTERRUPTED || + errno == GNUTLS_E_AGAIN)); // Other end closed the connection. if (received == 0) + { + std::cout << "c: INFO Peer has closed the TLS connection\n"; break; + } // Something happened. if (received < 0) - throw "ERROR: " + std::string (::strerror (errno)); + throw "ERROR: " + std::string (gnutls_strerror (received)); buffer [received] = '\0'; data += buffer; @@ -273,35 +278,11 @@ void Socket::read (std::string& data) while (received > 0 && total < (int) expected); if (_debug) - std::cout << "<<< " + std::cout << "c: INFO Receiving 'XXXX" << data.c_str () - << " (" << total << " bytes)" + << "' (" << total << " bytes)" << std::endl; } //////////////////////////////////////////////////////////////////////////////// -void Socket::limit (int max) -{ - _limit = max; -} - -//////////////////////////////////////////////////////////////////////////////// -// Calling this method results in all subsequent socket traffic being sent to -// std::cout, labelled with >>> for outgoing, <<< for incoming. -void Socket::debug () -{ - _debug = true; -} - -//////////////////////////////////////////////////////////////////////////////// -// get sockaddr, IPv4 or IPv6: -void* Socket::get_in_addr (struct sockaddr* sa) -{ - if (sa->sa_family == AF_INET) - return &(((struct sockaddr_in*) sa)->sin_addr); - - return &(((struct sockaddr_in6*) sa)->sin6_addr); -} - -//////////////////////////////////////////////////////////////////////////////// - +#endif diff --git a/src/Socket.h b/src/TLSClient.h similarity index 71% rename from src/Socket.h rename to src/TLSClient.h index c9f491029..45e9f0cc3 100644 --- a/src/Socket.h +++ b/src/TLSClient.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006 - 2013, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -24,49 +24,39 @@ // http://www.opensource.org/licenses/mit-license.php // //////////////////////////////////////////////////////////////////////////////// +#ifndef INCLUDED_TLSCLIENT +#define INCLUDED_TLSCLIENT -#ifndef INCLUDED_SOCKET -#define INCLUDED_SOCKET +#ifdef HAVE_LIBGNUTLS #include -#include -#include -#include -#include -#include -#include +#include -class Socket +class TLSClient { public: - Socket (); - Socket (int); - ~Socket (); - - // Client - void connect (const std::string&, const std::string&); - - // Server - void bind (const std::string&); - void listen (int queue = 5); - int accept (); - void read (std::string&); - void write (const std::string&); - - void close (); - + TLSClient (); + ~TLSClient (); void limit (int); - void debug (); + void debug (int); + void init (const std::string&); + void connect (const std::string&, const std::string&); + void bye (); + + void send (const std::string&); + void recv (std::string&); private: - void* get_in_addr (struct sockaddr*); - -private: - int _socket; - int _limit; - bool _debug; + std::string _ca; + gnutls_certificate_credentials_t _credentials; + gnutls_session_t _session; + int _socket; + int _limit; + bool _debug; }; +#endif #endif //////////////////////////////////////////////////////////////////////////////// + diff --git a/src/commands/CmdDiagnostics.cpp b/src/commands/CmdDiagnostics.cpp index a49a6e577..764e93cb7 100644 --- a/src/commands/CmdDiagnostics.cpp +++ b/src/commands/CmdDiagnostics.cpp @@ -213,14 +213,6 @@ int CmdDiagnostics::execute (std::string& output) << location.mode () << "\n"; - out << " Server: " - << context.config.get ("taskd.server") - << "\n"; - - out << " Cert: " - << context.config.get ("taskd.certificate") - << "\n"; - out << " Locking: " << (context.config.getBoolean ("locking") ? STRING_CMD_DIAG_ENABLED @@ -236,7 +228,25 @@ int CmdDiagnostics::execute (std::string& output) else if ((peditor = getenv ("EDITOR")) != NULL) out << " $EDITOR: " << peditor << "\n"; - out << "\n"; + out << " Server: " + << context.config.get ("taskd.server") + << "\n"; + + out << " Cert: " + << context.config.get ("taskd.certificate") + << "\n"; + + // Get credentials, but mask out the key. + std::string credentials = context.config.get ("taskd.credentials"); + std::string::size_type last_slash = credentials.rfind ('/'); + if (last_slash != std::string::npos) + credentials = credentials.substr (0, last_slash) + + "/" + + std::string (credentials.length () - last_slash - 1, '*'); + + out << " Creds: " + << credentials + << "\n\n"; // External commands. out << bold.colorize (STRING_CMD_DIAG_EXTERNAL) diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index c8b5ac875..1ca5af0be 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -25,15 +25,12 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include #include -#include -#include // TODO Socket is obsolete. -/* #include -*/ #include #include #include @@ -77,6 +74,10 @@ int CmdSync::execute (std::string& output) if (credentials.size () != 3) throw std::string (STRING_CMD_SYNC_BAD_CRED); + std::string certificate = context.config.get ("taskd.certificate"); + if (certificate == "") + throw std::string (STRING_CMD_SYNC_BAD_CERT); + // Read backlog.data. std::string payload = ""; File backlog (context.config.get ("data.location") + "/backlog.data"); @@ -110,7 +111,7 @@ int CmdSync::execute (std::string& output) << "\n"; Msg response; - if (send (connection, request, response)) + if (send (connection, certificate, request, response)) { std::string code = response.get ("code"); if (code == "200") @@ -259,6 +260,7 @@ int CmdSync::execute (std::string& output) //////////////////////////////////////////////////////////////////////////////// bool CmdSync::send ( const std::string& to, + const std::string& certificate, const Msg& request, Msg& response) { @@ -270,23 +272,14 @@ bool CmdSync::send ( std::string server = to.substr (0, colon); std::string port = to.substr (colon + 1); + File cert (certificate); + try { - // TODO Socket is obsolete. - Socket s; - s.connect (server, port); - s.write (request.serialize () + "\n"); - - std::string incoming; - s.read (incoming); - s.close (); - -/* // A very basic TLS client, with X.509 authentication. TLSClient client; - client.debug (); // TODO if (context.config.get ("debug")) - client.limit (1024); // TODO ??? - client.init ("pki/client.cert.pem"); // TODO ??? + client.debug (context.config.getInteger ("debug.tls")); + client.init (cert); client.connect (server, port); client.send (request.serialize () + "\n"); @@ -294,7 +287,6 @@ bool CmdSync::send ( std::string incoming; client.recv (incoming); client.bye (); -*/ response.parse (incoming); return true; diff --git a/src/commands/CmdSync.h b/src/commands/CmdSync.h index 074b68d0d..6bae60f49 100644 --- a/src/commands/CmdSync.h +++ b/src/commands/CmdSync.h @@ -39,7 +39,7 @@ public: int execute (std::string&); private: - bool send (const std::string&, const Msg&, Msg&); + bool send (const std::string&, const std::string&, const Msg&, Msg&); }; #endif diff --git a/src/en-US.h b/src/en-US.h index 91bdb75fd..699211f1d 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -404,6 +404,7 @@ #define STRING_CMD_SYNC_USAGE "Synchronizes data with the Task Server" #define STRING_CMD_SYNC_NO_SERVER "Task Server is not configured." #define STRING_CMD_SYNC_BAD_CRED "Task Server credentials malformed." +#define STRING_CMD_SYNC_BAD_CERT "Task Server certificate missing." #define STRING_CMD_SYNC_ADD " add {1} '{2}'" #define STRING_CMD_SYNC_MOD "modify {1} '{2}'" #define STRING_CMD_SYNC_PROGRESS "Syncing with {1}" diff --git a/src/es-ES.h b/src/es-ES.h index 049bd1af0..b5390aab6 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -415,6 +415,7 @@ #define STRING_CMD_SYNC_USAGE "Sincroniza datos con el Servidor Task" #define STRING_CMD_SYNC_NO_SERVER "El Servidor Task no está configurado." #define STRING_CMD_SYNC_BAD_CRED "Credenciales del Servidor Task incorrectas." +#define STRING_CMD_SYNC_BAD_CERT "Task Server certificate missing." #define STRING_CMD_SYNC_ADD " añade {1} '{2}'" #define STRING_CMD_SYNC_MOD "modifica {1} '{2}'" #define STRING_CMD_SYNC_PROGRESS "Sincronizando con {1}" diff --git a/src/fr-FR.h b/src/fr-FR.h index 0bf8a7978..fe6fbf351 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -404,6 +404,7 @@ #define STRING_CMD_SYNC_USAGE "Synchronizes data with the Task Server" #define STRING_CMD_SYNC_NO_SERVER "Task Server is not configured." #define STRING_CMD_SYNC_BAD_CRED "Task Server credentials malformed." +#define STRING_CMD_SYNC_BAD_CERT "Task Server certificate missing." #define STRING_CMD_SYNC_ADD " add {1} '{2}'" #define STRING_CMD_SYNC_MOD "modify {1} '{2}'" #define STRING_CMD_SYNC_PROGRESS "Syncing with {1}" diff --git a/src/it-IT.h b/src/it-IT.h index a3f96886b..fdfac8dda 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -405,6 +405,7 @@ #define STRING_CMD_SYNC_USAGE "Sincronizza i dati con il Task Server" #define STRING_CMD_SYNC_NO_SERVER "Task Server non configurato." #define STRING_CMD_SYNC_BAD_CRED "Credenziali del Task Server malformate." +#define STRING_CMD_SYNC_BAD_CERT "Task Server certificate missing." #define STRING_CMD_SYNC_ADD " aggiunto {1} '{2}'" #define STRING_CMD_SYNC_MOD "modificato {1} '{2}'" #define STRING_CMD_SYNC_PROGRESS "Sincronizzazione con {1}" From 51c339e49fd67f6fccc295bdd4fccdad329f8cad Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 12 May 2013 01:21:24 -0400 Subject: [PATCH 016/173] Documentation - Documented the new configuration settings for task server communication. --- doc/man/taskrc.5.in | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/doc/man/taskrc.5.in b/doc/man/taskrc.5.in index 4f35509bd..d702f3fce 100644 --- a/doc/man/taskrc.5.in +++ b/doc/man/taskrc.5.in @@ -458,6 +458,10 @@ debug output can be useful. It can also help explain how the command line is being parsed, but the information is displayed in a developer-friendly, not a user-friendly way. +.TP +.B debug.tls=0 +Controls the GnuTLS log level. For 'sync' debugging. + .TP .B alias.rm=delete Taskwarrior supports command aliases. This alias provides an alternate name @@ -1354,6 +1358,31 @@ of a task. .B uda.estimate.values=trivial,small,medium,large,huge .RE +.SS SYNC + +These configuration settings are used to connect and sync tasks with the task +server. + +.TP +.B taskd.server=: +.RS +Specifies the hostname and port of the task server. Hostname may be an IPv4 or +IPv6 address, or domain. Port is an integer. +.RE + +.TP +.B taskd.credentials=// +.RS +User identification for the task server, which includes a private key. +.RE + +.TP +.B taskd.certificate= +.RS +Specifies the path to the client certificate used for encrypted communication +with the task server. +.RE + .SH "CREDITS & COPYRIGHTS" Copyright (C) 2006 \- 2013 P. Beckingham, F. Hernandez. From dcc9554da80c5bfcf658e16555e681f78218a672 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 12 May 2013 12:15:15 -0400 Subject: [PATCH 017/173] Build Errors - Added missing includes. --- src/TLSClient.cpp | 8 +++++--- src/en-US.h | 1 + src/es-ES.h | 1 + src/fr-FR.h | 1 + src/it-IT.h | 1 + 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index 6227f7600..346489c4e 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -30,12 +30,15 @@ #ifdef HAVE_LIBGNUTLS #include +#include +#include #include #include #include #include #include #include +#include #define MAX_BUF 1024 @@ -102,7 +105,7 @@ void TLSClient::init (const std::string& ca) if (ret == GNUTLS_E_INVALID_REQUEST) std::cout << "c: ERROR Priority error at: " << err << "\n"; - exit (1); + throw std::string (STRING_TLS_INIT_FAIL); } // Apply the x509 credentials to the current session. @@ -113,8 +116,7 @@ void TLSClient::init (const std::string& ca) void TLSClient::connect (const std::string& host, const std::string& port) { // use IPv4 or IPv6, does not matter. - struct addrinfo hints; - memset (&hints, 0, sizeof hints); + struct addrinfo hints = {0}; hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_PASSIVE; // use my IP diff --git a/src/en-US.h b/src/en-US.h index 699211f1d..3b66a9d5a 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -700,6 +700,7 @@ #define STRING_UDA_COLLISION "The UDA named '{1}' is the same as a core attribute, and is not permitted." #define STRING_INVALID_MOD "The '{1}' attribute does not allow a value of '{2}'." #define STRING_INVALID_SORT_COL "The '{1}' column is not a valid sort field." +#define STRING_TLS_INIT_FAIL "Error initializing TLS." // Feedback #define STRING_FEEDBACK_NO_TASKS "No tasks." diff --git a/src/es-ES.h b/src/es-ES.h index b5390aab6..ad34d29fc 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -715,6 +715,7 @@ #define STRING_UDA_COLLISION "El UDA denominado '{1}' es el mismo que un atributo del núcleo, y no está permitido." #define STRING_INVALID_MOD "El atributo '{1}' no admite un valor '{2}'." #define STRING_INVALID_SORT_COL "La columna '{1}' no es un campo de ordenación válido." +#define STRING_TLS_INIT_FAIL "Error initializing TLS." // Feedback #define STRING_FEEDBACK_NO_TASKS "Ninguna tarea." diff --git a/src/fr-FR.h b/src/fr-FR.h index fe6fbf351..70e736217 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -700,6 +700,7 @@ #define STRING_UDA_COLLISION "The UDA named '{1}' is the same as a core attribute, and is not permitted." #define STRING_INVALID_MOD "The '{1}' attribute does not allow a value of '{2}'." #define STRING_INVALID_SORT_COL "The '{1}' column is not a valid sort field." +#define STRING_TLS_INIT_FAIL "Error initializing TLS." // Feedback #define STRING_FEEDBACK_NO_TASKS "No tasks." diff --git a/src/it-IT.h b/src/it-IT.h index fdfac8dda..ba4641a40 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -701,6 +701,7 @@ #define STRING_UDA_COLLISION "L'UDA '{1}' ha lo stesso nome di un attributo di sistema, e ciò non è permesso." #define STRING_INVALID_MOD "L'attributo '{1}' non ammette un valore pari a '{2}'." #define STRING_INVALID_SORT_COL "La colonna '{1}' non è un campo di ordinamento valido." +#define STRING_TLS_INIT_FAIL "Error initializing TLS." // Feedback #define STRING_FEEDBACK_NO_TASKS "Nessun task." From 2db34640a6944e86f50e09093bfc9d7f8db8297e Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 12 May 2013 12:19:36 -0400 Subject: [PATCH 018/173] Build Error - Missing include. --- src/TLSClient.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index 346489c4e..c130d0cf6 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include From 39228808ebc4630da82128c7c7b3b0a3be9d52d5 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 12 May 2013 15:43:03 -0400 Subject: [PATCH 019/173] Build Error - More missing/wrong includes. --- src/TLSClient.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index c130d0cf6..b4a540fa8 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -30,6 +30,7 @@ #ifdef HAVE_LIBGNUTLS #include +#include #include #include #include From adf374eb06ae37e4fb18c6aeef2881cd730adcfc Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Wed, 15 May 2013 00:44:52 -0400 Subject: [PATCH 020/173] Build Warnings - Eliminated warnings in TLS code. --- src/TLSClient.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index b4a540fa8..587badcec 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -156,7 +156,7 @@ void TLSClient::connect (const std::string& host, const std::string& port) if (p == NULL) throw "ERROR: Could not connect to " + host + " " + port; - gnutls_transport_set_ptr (_session, (gnutls_transport_ptr_t) _socket); + gnutls_transport_set_ptr (_session, (gnutls_transport_ptr_t) (long) _socket); // Perform the TLS handshake int ret = gnutls_handshake (_session); From 00f8f56c0045a7bbbc49dd3535b8763370b21d70 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 19 May 2013 20:04:19 -0400 Subject: [PATCH 021/173] TLS - Associated debugging output with log level > 0. - Fixed bug where TLSClient::_limit was uninitialized. --- src/TLSClient.cpp | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index 587badcec..627a2072d 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -54,6 +54,7 @@ static void gnutls_log_function (int level, const char* message) TLSClient::TLSClient () : _ca ("") , _socket (0) +, _limit (0) , _debug (false) { } @@ -80,10 +81,11 @@ void TLSClient::limit (int max) //////////////////////////////////////////////////////////////////////////////// // Calling this method results in all subsequent socket traffic being sent to -// std::cout, labelled with >>> for outgoing, <<< for incoming. +// std::cout, labelled with 'c: ...'. void TLSClient::debug (int level) { - _debug = true; + if (level) + _debug = true; gnutls_global_set_log_function (gnutls_log_function); gnutls_global_set_log_level (level); @@ -104,7 +106,7 @@ void TLSClient::init (const std::string& ca) int ret = gnutls_priority_set_direct (_session, "NORMAL", &err); if (ret < 0) { - if (ret == GNUTLS_E_INVALID_REQUEST) + if (_debug && ret == GNUTLS_E_INVALID_REQUEST) std::cout << "c: ERROR Priority error at: " << err << "\n"; throw std::string (STRING_TLS_INIT_FAIL); @@ -160,15 +162,16 @@ void TLSClient::connect (const std::string& host, const std::string& port) // Perform the TLS handshake int ret = gnutls_handshake (_session); - if (ret < 0) { - std::cout << "c: ERROR Handshake failed\n"; + if (_debug) + std::cout << "c: ERROR Handshake failed\n"; gnutls_perror (ret); } else { - std::cout << "c: INFO Handshake was completed\n"; + if (_debug) + std::cout << "c: INFO Handshake was completed\n"; } } @@ -240,7 +243,8 @@ void TLSClient::recv (std::string& data) (header[1]<<16) | (header[2]<<8) | header[3]; - std::cout << "c: INFO expecting " << expected << " bytes.\n"; + if (_debug) + std::cout << "c: INFO expecting " << expected << " bytes.\n"; // TODO This would be a good place to assert 'expected < _limit'. @@ -263,7 +267,8 @@ void TLSClient::recv (std::string& data) // Other end closed the connection. if (received == 0) { - std::cout << "c: INFO Peer has closed the TLS connection\n"; + if (_debug) + std::cout << "c: INFO Peer has closed the TLS connection\n"; break; } From 6a97017c79c6e2227351d4e8052c2d9bdb5f4010 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 20 May 2013 16:03:45 -0400 Subject: [PATCH 022/173] File Format - File format 2 (used in version 0.9.3 - 1.5.0) is no longer supported. - Task::parseJSON implemented. - PRODUCT_TASKWARRIOR defined, to facilitate code sharing. - Strings renamed for sharing purposes. --- ChangeLog | 1 + NEWS | 2 +- cmake.h.in | 3 + src/Task.cpp | 287 ++++++++++++++++++++++++------------- src/Task.h | 29 +++- src/commands/CmdImport.cpp | 4 +- src/en-US.h | 5 +- src/es-ES.h | 5 +- src/fr-FR.h | 5 +- src/it-IT.h | 5 +- test/t.t.cpp | 47 +++--- 11 files changed, 254 insertions(+), 139 deletions(-) diff --git a/ChangeLog b/ChangeLog index 32bf8118b..d1913c941 100644 --- a/ChangeLog +++ b/ChangeLog @@ -24,6 +24,7 @@ Features + The 'due' urgency component now uses seconds, not days, in the calculation. + The 'debug.tls' configuration variable takes an integer which corresponds to the GnuTLS log level. For debugging. + + File format 2 (used in version 0.9.3 - 1.5.0) is no longer supported. Bugs + #1196 Now builds on Hurd (thanks to Jakub Wilk). diff --git a/NEWS b/NEWS index a89b744f5..c1d9ab0c7 100644 --- a/NEWS +++ b/NEWS @@ -22,7 +22,7 @@ New configuration options in taskwarrior 2.3.0 Newly deprecated features in taskwarrior 2.3.0 - - + - File format 2 (used in version 0.9.3 - 1.5.0) is no longer supported. --- diff --git a/cmake.h.in b/cmake.h.in index 73d03b535..e6188b84a 100644 --- a/cmake.h.in +++ b/cmake.h.in @@ -1,5 +1,8 @@ /* cmake.h.in. Creates cmake.h during a cmake run */ +/* Product identification */ +#define PRODUCT_TASKWARRIOR 1 + /* Package information */ #define PACKAGE "${PACKAGE}" #define VERSION "${VERSION}" diff --git a/src/Task.cpp b/src/Task.cpp index 4563947a1..e763da500 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -25,21 +25,30 @@ // //////////////////////////////////////////////////////////////////////////////// +#include +#ifdef PRODUCT_TASKWARRIOR #include +#endif #include +#ifdef PRODUCT_TASKWARRIOR #include #include #include #include #include +#endif #include #include #include #include +#ifdef PRODUCT_TASKWARRIOR #include +#endif #include #include + #include +#ifdef PRODUCT_TASKWARRIOR #include #define APPROACHING_INFINITY 1000 // Close enough. This isn't rocket surgery. @@ -96,14 +105,17 @@ void initializeUrgencyCoefficients () coefficients[*var] = context.config.getReal (*var); } } +#endif //////////////////////////////////////////////////////////////////////////////// Task::Task () : id (0) +#ifdef PRODUCT_TASKWARRIOR , urgency_value (0.0) , recalc_urgency (true) , is_blocked (false) , is_blocking (false) +#endif , annotation_count (0) { } @@ -120,13 +132,14 @@ Task& Task::operator= (const Task& other) if (this != &other) { std::map ::operator= (other); - id = other.id; +#ifdef PRODUCT_TASKWARIROR urgency_value = other.urgency_value; recalc_urgency = other.recalc_urgency; is_blocked = other.is_blocked; is_blocking = other.is_blocking; annotation_count = other.annotation_count; +#endif } return *this; @@ -152,11 +165,13 @@ bool Task::operator== (const Task& other) Task::Task (const std::string& input) { id = 0; +#ifdef PRODUCT_TASKWARRIOR urgency_value = 0.0; recalc_urgency = true; is_blocked = false; is_blocking = false; annotation_count = 0; +#endif parse (input); } @@ -189,6 +204,7 @@ std::string Task::statusToText (Task::status s) return "pending"; } +#ifdef PRODUCT_TASKWARRIOR //////////////////////////////////////////////////////////////////////////////// void Task::setEntry () { @@ -218,6 +234,7 @@ void Task::setStart () recalc_urgency = true; } +#endif //////////////////////////////////////////////////////////////////////////////// void Task::setModified () @@ -258,6 +275,7 @@ const std::string Task::get (const std::string& name) const return ""; } +#ifdef PRODUCT_TASKWARRIOR //////////////////////////////////////////////////////////////////////////////// const std::string& Task::get_ref (const std::string& name) const { @@ -287,6 +305,7 @@ unsigned long Task::get_ulong (const std::string& name) const return 0; } +#endif //////////////////////////////////////////////////////////////////////////////// time_t Task::get_date (const std::string& name) const @@ -303,7 +322,9 @@ void Task::set (const std::string& name, const std::string& value) { (*this)[name] = value; +#ifdef PRODUCT_TASKWARRIOR recalc_urgency = true; +#endif } //////////////////////////////////////////////////////////////////////////////// @@ -311,7 +332,9 @@ void Task::set (const std::string& name, int value) { (*this)[name] = format (value); +#ifdef PRODUCT_TASKWARRIOR recalc_urgency = true; +#endif } //////////////////////////////////////////////////////////////////////////////// @@ -321,7 +344,9 @@ void Task::remove (const std::string& name) if ((it = this->find (name)) != this->end ()) this->erase (it); +#ifdef PRODUCT_TASKWARRIOR recalc_urgency = true; +#endif } //////////////////////////////////////////////////////////////////////////////// @@ -335,9 +360,12 @@ void Task::setStatus (Task::status status) { set ("status", statusToText (status)); +#ifdef PRODUCT_TASKWARRIOR recalc_urgency = true; +#endif } +#ifdef PRODUCT_TASKWARRIOR //////////////////////////////////////////////////////////////////////////////// bool Task::is_due () const { @@ -391,10 +419,13 @@ bool Task::is_overdue () const return false; } +#endif //////////////////////////////////////////////////////////////////////////////// // Attempt an FF4 parse first, using Task::parse, and in the event of an error -// try a legacy parse (F3, FF2). Note that FF1 is no longer supported. +// try a JSON parse, otherwise a legacy parse (FF3). +// +// Note that FF1 and FF2 are no longer supported. // // start --> [ --> Att --> ] --> end // ^ | @@ -410,6 +441,7 @@ void Task::parse (const std::string& input) try { + // File format version 4, from 2009-5-16 - now, v1.7.1+ clear (); Nibbler n (copy); @@ -451,88 +483,141 @@ void Task::parse (const std::string& input) if (remainder.length ()) throw std::string (STRING_RECORD_JUNK_AT_EOL); } + else if (input[0] == '{') + parseJSON (input); else throw std::string (STRING_RECORD_NOT_FF4); } catch (const std::string&) { - legacyParse (copy); + parseLegacy (copy); } +#ifdef PRODUCT_TASKWARRIOR recalc_urgency = true; +#endif +} + +//////////////////////////////////////////////////////////////////////////////// +void Task::parseJSON (const std::string& line) +{ + // Parse the whole thing. + json::value* root = json::parse (line); + if (root->type () == json::j_object) + { + json::object* root_obj = (json::object*)root; + + // For each object element... + json_object_iter i; + for (i = root_obj->_data.begin (); + i != root_obj->_data.end (); + ++i) + { + // If the attribute is a recognized column. + Column* col = context.columns[i->first]; + if (col) + { + // Any specified id is ignored. + if (i->first == "id") + ; + + // Urgency, if present, is ignored. + else if (i->first == "urgency") + ; + + // Dates are converted from ISO to epoch. + else if (col->type () == "date") + { + Date d (unquoteText (i->second->dump ())); + set (i->first, d.toEpochString ()); + } + + // Tags are an array of JSON strings. + else if (i->first == "tags") + { + json::array* tags = (json::array*)i->second; + json_array_iter t; + for (t = tags->_data.begin (); + t != tags->_data.end (); + ++t) + { + json::string* tag = (json::string*)*t; + addTag (tag->_data); + } + } + + // Other types are simply added. + else + set (i->first, unquoteText (i->second->dump ())); + } + + // UDA orphans and annotations do not have columns. + else + { + // Annotations are an array of JSON objects with 'entry' and + // 'description' values and must be converted. + if (i->first == "annotations") + { + std::map annos; + + json::array* atts = (json::array*)i->second; + json_array_iter annotations; + for (annotations = atts->_data.begin (); + annotations != atts->_data.end (); + ++annotations) + { + json::object* annotation = (json::object*)*annotations; + json::string* when = (json::string*)annotation->_data["entry"]; + json::string* what = (json::string*)annotation->_data["description"]; + + if (! when) + throw format (STRING_TASK_NO_ENTRY, line); + + if (! what) + throw format (STRING_TASK_NO_DESC, line); + + std::string name = "annotation_" + Date (when->_data).toEpochString (); + + annos.insert (std::make_pair (name, what->_data)); + } + + setAnnotations (annos); + } + + // UDA Orphan - must be preserved. + else + { +#ifdef PRODUCT_TASKWARRIOR + std::stringstream message; + message << "Task::parseJSON found orphan '" + << i->first + << "' with value '" + << i->second + << "' --> preserved\n"; + context.debug (message.str ()); +#endif + set (i->first, unquoteText (i->second->dump ())); + } + } + } + } } //////////////////////////////////////////////////////////////////////////////// // Support FF2, FF3. // Thankfully FF1 is no longer supported. -void Task::legacyParse (const std::string& line) +void Task::parseLegacy (const std::string& line) { switch (determineVersion (line)) { - // File format version 1, from 2006.11.27 - 2007.12.31 - case 1: - throw std::string (STRING_TASK_NO_FF1); - break; + // File format version 1, from 2006-11-27 - 2007-12-31, v0.x+ - v0.9.3 + case 1: throw std::string (STRING_TASK_NO_FF1); - // File format version 2, from 2008.1.1 - 2009.3.23 - case 2: - { - if (line.length () > 46) // ^.{36} . \[\] \[\] \n - { - set ("uuid", line.substr (0, 36)); + // File format version 2, from 2008-1-1 - 2009-3-23, v0.9.3 - v1.5.0 + case 2: throw std::string (STRING_TASK_NO_FF2); - Task::status status = line[37] == '+' ? completed - : line[37] == 'X' ? deleted - : line[37] == 'r' ? recurring - : pending; - - set ("status", statusToText (status)); - - size_t openTagBracket = line.find ("["); - size_t closeTagBracket = line.find ("]", openTagBracket); - if (openTagBracket != std::string::npos && - closeTagBracket != std::string::npos) - { - size_t openAttrBracket = line.find ("[", closeTagBracket); - size_t closeAttrBracket = line.find ("]", openAttrBracket); - if (openAttrBracket != std::string::npos && - closeAttrBracket != std::string::npos) - { - std::string tags = line.substr ( - openTagBracket + 1, closeTagBracket - openTagBracket - 1); - std::vector tagSet; - split (tagSet, tags, ' '); - addTags (tagSet); - - std::string attributes = line.substr ( - openAttrBracket + 1, closeAttrBracket - openAttrBracket - 1); - std::vector pairs; - split (pairs, attributes, ' '); - for (size_t i = 0; i < pairs.size (); ++i) - { - std::vector pair; - split (pair, pairs[i], ':'); - if (pair.size () == 2) - set (pair[0], pair[1]); - } - - set ("description", line.substr (closeAttrBracket + 2)); - } - else - throw std::string (STRING_TASK_PARSE_ATT_BRACK); - } - else - throw std::string (STRING_TASK_PARSE_TAG_BRACK); - } - else - throw std::string (STRING_TASK_PARSE_TOO_SHORT); - - removeAnnotations (); - } - break; - - // File format version 3, from 2009.3.23 + // File format version 3, from 2009-3-23 - 2009-05-16, v1.6.0 - v1.7.1 case 3: { if (line.length () > 49) // ^.{36} . \[\] \[\] \[\] \n @@ -640,7 +725,9 @@ void Task::legacyParse (const std::string& line) break; } +#ifdef PRODUCT_TASKWARRIOR recalc_urgency = true; +#endif } //////////////////////////////////////////////////////////////////////////////// @@ -669,14 +756,15 @@ std::string Task::composeF4 () const return ff4; } +#ifdef PRODUCT_TASKWARRIOR //////////////////////////////////////////////////////////////////////////////// -std::string Task::composeJSON (bool include_id /*= false*/) const +std::string Task::composeJSON (bool decorate /*= false*/) const { std::stringstream out; out << "{"; // ID inclusion is optional, not recommended. - if (include_id) + if (decorate) out << "\"id\":" << id << ","; // First the non-annotations. @@ -765,10 +853,11 @@ std::string Task::composeJSON (bool include_id /*= false*/) const } // Include urgency. - out << "," - << "\"urgency\":\"" - << urgency_c () - <<"\""; + if (decorate) + out << "," + << "\"urgency\":\"" + << urgency_c () + <<"\""; out << "}"; return out.str (); @@ -780,31 +869,6 @@ bool Task::hasAnnotations () const return annotation_count ? true : false; } -//////////////////////////////////////////////////////////////////////////////// -void Task::getAnnotations (std::map & annotations) const -{ - annotations.clear (); - - Task::const_iterator ci; - for (ci = this->begin (); ci != this->end (); ++ci) - if (ci->first.substr (0, 11) == "annotation_") - annotations.insert (*ci); -} - -//////////////////////////////////////////////////////////////////////////////// -void Task::setAnnotations (const std::map & annotations) -{ - // Erase old annotations. - removeAnnotations (); - - std::map ::const_iterator ci; - for (ci = annotations.begin (); ci != annotations.end (); ++ci) - this->insert (*ci); - - annotation_count = annotations.size (); - recalc_urgency = true; -} - //////////////////////////////////////////////////////////////////////////////// // The timestamp is part of the name: // annotation_1234567890:"..." @@ -847,6 +911,31 @@ void Task::removeAnnotations () recalc_urgency = true; } +//////////////////////////////////////////////////////////////////////////////// +void Task::getAnnotations (std::map & annotations) const +{ + annotations.clear (); + + Task::const_iterator ci; + for (ci = this->begin (); ci != this->end (); ++ci) + if (ci->first.substr (0, 11) == "annotation_") + annotations.insert (*ci); +} + +//////////////////////////////////////////////////////////////////////////////// +void Task::setAnnotations (const std::map & annotations) +{ + // Erase old annotations. + removeAnnotations (); + + std::map ::const_iterator ci; + for (ci = annotations.begin (); ci != annotations.end (); ++ci) + this->insert (*ci); + + annotation_count = annotations.size (); + recalc_urgency = true; +} + //////////////////////////////////////////////////////////////////////////////// void Task::addDependency (int id) { @@ -1189,6 +1278,7 @@ void Task::substitute ( recalc_urgency = true; } } +#endif //////////////////////////////////////////////////////////////////////////////// // The purpose of Task::validate is three-fold: @@ -1224,6 +1314,7 @@ void Task::validate (bool applyDefault /* = true */) // Store the derived status. setStatus (status); +#ifdef PRODUCT_TASKWARRIOR // Provide an entry date unless user already specified one. if (!has ("entry")) setEntry (); @@ -1309,6 +1400,7 @@ void Task::validate (bool applyDefault /* = true */) validate_before ("scheduled", "start"); validate_before ("scheduled", "due"); validate_before ("scheduled", "end"); +#endif // 3) To generate errors when the inconsistencies are not fixable @@ -1341,6 +1433,8 @@ void Task::validate (bool applyDefault /* = true */) } } +#ifdef PRODUCT_TASKWARRIOR +//////////////////////////////////////////////////////////////////////////////// void Task::validate_before (const std::string& left, const std::string& right) { if (has (left) && @@ -1674,5 +1768,6 @@ float Task::urgency_blocking () const return 0.0; } +#endif //////////////////////////////////////////////////////////////////////////////// diff --git a/src/Task.h b/src/Task.h index b7c52ea1d..65880957c 100644 --- a/src/Task.h +++ b/src/Task.h @@ -28,13 +28,15 @@ #ifndef INCLUDED_TASK #define INCLUDED_TASK +#include #include #include #include #include - +#ifdef PRODUCT_TASKWARRIOR void initializeUrgencyCoefficients (); +#endif class Task : public std::map { @@ -48,18 +50,22 @@ public: void parse (const std::string&); std::string composeF4 () const; - std::string composeJSON (bool include_id = false) const; +#ifdef PRODUCT_TASKWARRIOR + std::string composeJSON (bool decorate = false) const; +#endif // Status values. enum status {pending, completed, deleted, recurring, waiting}; // Public data. int id; +#ifdef PRODUCT_TASKWARRIOR float urgency_value; bool recalc_urgency; bool is_blocked; bool is_blocking; +#endif int annotation_count; @@ -67,39 +73,50 @@ public: static status textToStatus (const std::string&); static std::string statusToText (status); +#ifdef PRODUCT_TASKWARRIOR void setEntry (); void setEnd (); void setStart (); +#endif void setModified (); bool has (const std::string&) const; std::vector all (); const std::string get (const std::string&) const; +#ifdef PRODUCT_TASKWARRIOR const std::string& get_ref (const std::string&) const; int get_int (const std::string&) const; unsigned long get_ulong (const std::string&) const; +#endif time_t get_date (const std::string&) const; void set (const std::string&, const std::string&); void set (const std::string&, int); void remove (const std::string&); +#ifdef PRODUCT_TASKWARRIOR bool is_due () const; bool is_duetoday () const; bool is_overdue () const; +#endif status getStatus () const; void setStatus (status); +#ifdef PRODUCT_TASKWARRIOR int getTagCount () const; bool hasTag (const std::string&) const; +#endif void addTag (const std::string&); void addTags (const std::vector &); +#ifdef PRODUCT_TASKWARRIOR void getTags (std::vector&) const; void removeTag (const std::string&); bool hasAnnotations () const; void getAnnotations (std::map &) const; +#endif void setAnnotations (const std::map &); +#ifdef PRODUCT_TASKWARRIOR void addAnnotation (const std::string&); void removeAnnotations (); @@ -114,15 +131,20 @@ public: void getUDAOrphans (std::vector &) const; void substitute (const std::string&, const std::string&, bool); +#endif void validate (bool applyDefault = true); +#ifdef PRODUCT_TASKWARRIOR float urgency_c () const; float urgency (); +#endif private: int determineVersion (const std::string&); - void legacyParse (const std::string&); + void parseJSON (const std::string&); + void parseLegacy (const std::string&); +#ifdef PRODUCT_TASKWARRIOR void validate_before (const std::string&, const std::string&); inline float urgency_priority () const; @@ -137,6 +159,7 @@ private: inline float urgency_due () const; inline float urgency_blocking () const; inline float urgency_age () const; +#endif }; #endif diff --git a/src/commands/CmdImport.cpp b/src/commands/CmdImport.cpp index 046301513..f53947f0f 100644 --- a/src/commands/CmdImport.cpp +++ b/src/commands/CmdImport.cpp @@ -172,10 +172,10 @@ int CmdImport::execute (std::string& output) json::string* what = (json::string*)annotation->_data["description"]; if (! when) - throw format (STRING_CMD_IMPORT_NO_ENTRY, *line); + throw format (STRING_TASK_NO_ENTRY, *line); if (! what) - throw format (STRING_CMD_IMPORT_NO_DESC, *line); + throw format (STRING_TASK_NO_DESC, *line); std::string name = "annotation_" + Date (when->_data).toEpochString (); diff --git a/src/en-US.h b/src/en-US.h index 3b66a9d5a..cf82bf804 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -396,8 +396,8 @@ #define STRING_CMD_IMPORT_NOFILE "You must specify a file to import." #define STRING_CMD_IMPORT_FILE "Importing '{1}'" #define STRING_CMD_IMPORT_NOT_JSON "Not a JSON object: {1}" -#define STRING_CMD_IMPORT_NO_DESC "Annotation is missing a description: {1}" -#define STRING_CMD_IMPORT_NO_ENTRY "Annotation is missing an entry date: {1}" +#define STRING_TASK_NO_DESC "Annotation is missing a description: {1}" +#define STRING_TASK_NO_ENTRY "Annotation is missing an entry date: {1}" #define STRING_CMD_SHELL_HELP1 "Enter any task command (such as 'list'), or hit 'Enter'." #define STRING_CMD_SHELL_HELP2 "There is no need to include the 'task' command itself." #define STRING_CMD_SHELL_HELP3 "Enter 'quit' (or 'bye', 'exit') to end the session." @@ -779,6 +779,7 @@ // Task #define STRING_TASK_NO_FF1 "Taskwarrior no longer supports file format 1, originally used between 27 November 2006 and 31 December 2007." +#define STRING_TASK_NO_FF2 "Taskwarrior no longer supports file format 2, originally used between 1 January 2008 and 12 April 2009." #define STRING_TASK_PARSE_ANNO_BRACK "Missing annotation brackets." #define STRING_TASK_PARSE_ATT_BRACK "Missing attribute brackets." #define STRING_TASK_PARSE_TAG_BRACK "Missing tag brackets." diff --git a/src/es-ES.h b/src/es-ES.h index ad34d29fc..fd6da7f30 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -406,8 +406,8 @@ #define STRING_CMD_IMPORT_NOFILE "Debe especificar un archivo a importar." #define STRING_CMD_IMPORT_FILE "Importando '{1}'" #define STRING_CMD_IMPORT_NOT_JSON "No es un objeto JSON: {1}" -#define STRING_CMD_IMPORT_NO_DESC "La anotación carece de descripción: {1}" -#define STRING_CMD_IMPORT_NO_ENTRY "La anotación carece de fecha de entrada: {1}" +#define STRING_TASK_NO_DESC "La anotación carece de descripción: {1}" +#define STRING_TASK_NO_ENTRY "La anotación carece de fecha de entrada: {1}" #define STRING_CMD_SHELL_HELP1 "Escriba un comando de task (como 'list'), o pulse 'Enter'." #define STRING_CMD_SHELL_HELP2 "No hace falta incluir el propio comando 'task'." #define STRING_CMD_SHELL_HELP3 "Escriba 'quit' (o 'bye', 'exit') para terminar la sesión." @@ -794,6 +794,7 @@ // Task #define STRING_TASK_NO_FF1 "Taskwarrior ya no admite el formato de archivo 1, usado originalmente entre el 27 de noviembre del 2006 y el 31 de diciembre del 2007." +#define STRING_TASK_NO_FF2 "Taskwarrior no longer supports file format 2, originally used between 1 January 2008 and 12 April 2009." #define STRING_TASK_PARSE_ANNO_BRACK "Faltan corchetes de anotación." #define STRING_TASK_PARSE_ATT_BRACK "Faltan corchetes de atributo." #define STRING_TASK_PARSE_TAG_BRACK "Faltan corchetes de marca." diff --git a/src/fr-FR.h b/src/fr-FR.h index 70e736217..0f7eb063f 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -396,8 +396,8 @@ #define STRING_CMD_IMPORT_NOFILE "You must specify a file to import." #define STRING_CMD_IMPORT_FILE "Importing '{1}'" #define STRING_CMD_IMPORT_NOT_JSON "Not a JSON object: {1}" -#define STRING_CMD_IMPORT_NO_DESC "Annotation is missing a description: {1}" -#define STRING_CMD_IMPORT_NO_ENTRY "Annotation is missing an entry date: {1}" +#define STRING_TASK_NO_DESC "Annotation is missing a description: {1}" +#define STRING_TASK_NO_ENTRY "Annotation is missing an entry date: {1}" #define STRING_CMD_SHELL_HELP1 "Enter any task command (such as 'list'), or hit 'Enter'." #define STRING_CMD_SHELL_HELP2 "There is no need to include the 'task' command itself." #define STRING_CMD_SHELL_HELP3 "Enter 'quit' (or 'bye', 'exit') to end the session." @@ -779,6 +779,7 @@ // Task #define STRING_TASK_NO_FF1 "Taskwarrior no longer supports file format 1, originally used between 27 November 2006 and 31 December 2007." +#define STRING_TASK_NO_FF2 "Taskwarrior no longer supports file format 2, originally used between 1 January 2008 and 12 April 2009." #define STRING_TASK_PARSE_ANNO_BRACK "Missing annotation brackets." #define STRING_TASK_PARSE_ATT_BRACK "Missing attribute brackets." #define STRING_TASK_PARSE_TAG_BRACK "Missing tag brackets." diff --git a/src/it-IT.h b/src/it-IT.h index ba4641a40..f65baec66 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -397,8 +397,8 @@ #define STRING_CMD_IMPORT_NOFILE "Specificare il file da importare." #define STRING_CMD_IMPORT_FILE "Importazione di '{1}'" #define STRING_CMD_IMPORT_NOT_JSON "Non è un oggetto JSON: {1}" -#define STRING_CMD_IMPORT_NO_DESC "Annotazione senza descrizione: {1}" -#define STRING_CMD_IMPORT_NO_ENTRY "Annotazione senza data di immissione: {1}" +#define STRING_TASK_NO_DESC "Annotazione senza descrizione: {1}" +#define STRING_TASK_NO_ENTRY "Annotazione senza data di immissione: {1}" #define STRING_CMD_SHELL_HELP1 "Inserisci un comando (es. 'list'), o premi 'Enter'." #define STRING_CMD_SHELL_HELP2 "Non è necessario includere il comando 'task'." #define STRING_CMD_SHELL_HELP3 "Inserisci 'quit' (o 'bye', 'exit') per terminare la sessione." @@ -780,6 +780,7 @@ // Task #define STRING_TASK_NO_FF1 "Taskwarrior non supporta più il formato di file 1, usato tra il 27 Novembre 2006 e il 31 Dicembre 2007." +#define STRING_TASK_NO_FF2 "Taskwarrior no longer supports file format 2, originally used between 1 January 2008 and 12 April 2009." #define STRING_TASK_PARSE_ANNO_BRACK "Parentesi di annotazione mancanti." #define STRING_TASK_PARSE_ATT_BRACK "Parentesi di attributo mancanti." #define STRING_TASK_PARSE_TAG_BRACK "Parentesi di tag mancanti." diff --git a/test/t.t.cpp b/test/t.t.cpp index 7c7163fb6..a939d484e 100644 --- a/test/t.t.cpp +++ b/test/t.t.cpp @@ -33,7 +33,7 @@ Context context; //////////////////////////////////////////////////////////////////////////////// int main (int argc, char** argv) { - UnitTest test (37); + UnitTest test (30); test.is ((int)Task::textToStatus ("pending"), (int)Task::pending, "textToStatus pending"); test.is ((int)Task::textToStatus ("completed"), (int)Task::completed, "textToStatus completed"); @@ -57,7 +57,7 @@ int main (int argc, char** argv) after = t3.composeF4 (); test.is (before, after, "Task::composeF4 -> parse round trip 4 iterations"); - // Legacy Format 1 + // Legacy Format 1 (no longer supported) // [tags] [attributes] description\n // X [tags] [attributes] description\n std::string sample = "[tag1 tag2] [att1:value1 att2:value2] Description"; @@ -69,27 +69,16 @@ int main (int argc, char** argv) try { Task ff1 (sample); } catch (...) { good = false; } test.notok (good, "Support for ff1 removed"); - // Legacy Format 2 + // Legacy Format 2 (no longer supported) // uuid status [tags] [attributes] description\n sample = "00000000-0000-0000-0000-000000000000 " "- " "[tag1 tag2] " "[att1:value1 att2:value2] " "Description"; - Task ff2 (sample); - std::string value = ff2.get ("uuid"); - test.is (value, "00000000-0000-0000-0000-000000000000", "ff2 uuid"); - value = ff2.get ("status"); - test.is (value, "pending", "ff2 status"); - test.ok (ff2.hasTag ("tag1"), "ff2 tag1"); - test.ok (ff2.hasTag ("tag2"), "ff2 tag2"); - test.is (ff2.getTagCount (), 2, "ff2 # tags"); - value = ff2.get ("att1"); - test.is (value, "value1", "ff2 att1"); - value = ff2.get ("att2"); - test.is (value, "value2", "ff2 att2"); - value = ff2.get ("description"); - test.is (value, "Description", "ff2 description"); + good = true; + try { Task ff2 (sample); } catch (...) { good = false; } + test.notok (good, "Support for ff2 removed"); // Legacy Format 3 // uuid status [tags] [attributes] [annotations] description\n @@ -99,13 +88,13 @@ int main (int argc, char** argv) "[att1:value1 att2:value2] " "[123:ann1 456:ann2] Description"; Task ff3 (sample); - value = ff2.get ("uuid"); + std::string value = ff3.get ("uuid"); test.is (value, "00000000-0000-0000-0000-000000000000", "ff3 uuid"); - value = ff2.get ("status"); + value = ff3.get ("status"); test.is (value, "pending", "ff3 status"); - test.ok (ff2.hasTag ("tag1"), "ff3 tag1"); - test.ok (ff2.hasTag ("tag2"), "ff3 tag2"); - test.is (ff2.getTagCount (), 2, "ff3 # tags"); + test.ok (ff3.hasTag ("tag1"), "ff3 tag1"); + test.ok (ff3.hasTag ("tag2"), "ff3 tag2"); + test.is (ff3.getTagCount (), 2, "ff3 # tags"); value = ff3.get ("att1"); test.is (value, "value1", "ff3 att1"); value = ff3.get ("att2"); @@ -117,20 +106,20 @@ int main (int argc, char** argv) // [name:"value" ...]\n sample = "[" "uuid:\"00000000-0000-0000-0000-000000000000\" " - "status:\"P\" " - "tags:\"tag1&commaltag2\" " + "status:\"pending\" " + "tags:\"tag1,tag2\" " "att1:\"value1\" " "att2:\"value2\" " "description:\"Description\"" "]"; Task ff4 (sample); - value = ff2.get ("uuid"); + value = ff4.get ("uuid"); test.is (value, "00000000-0000-0000-0000-000000000000", "ff4 uuid"); - value = ff2.get ("status"); + value = ff4.get ("status"); test.is (value, "pending", "ff4 status"); - test.ok (ff2.hasTag ("tag1"), "ff4 tag1"); - test.ok (ff2.hasTag ("tag2"), "ff4 tag2"); - test.is (ff2.getTagCount (), 2, "ff4 # tags"); + test.ok (ff4.hasTag ("tag1"), "ff4 tag1"); + test.ok (ff4.hasTag ("tag2"), "ff4 tag2"); + test.is (ff4.getTagCount (), 2, "ff4 # tags"); value = ff4.get ("att1"); test.is (value, "value1", "ff4 att1"); value = ff4.get ("att2"); From b4084584393265488dc98dc2224bdf9c442fb5d2 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 20 May 2013 16:31:57 -0400 Subject: [PATCH 023/173] Import - The import command now uses the built-in Task::parseJSON method. - Began t3.t.cpp for JSON parsing tests. --- src/Task.cpp | 2 +- src/commands/CmdImport.cpp | 122 +++---------------------------------- test/.gitignore | 1 + test/CMakeLists.txt | 4 +- test/t3.t.cpp | 48 +++++++++++++++ 5 files changed, 60 insertions(+), 117 deletions(-) create mode 100644 test/t3.t.cpp diff --git a/src/Task.cpp b/src/Task.cpp index e763da500..983d56b72 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -133,7 +133,7 @@ Task& Task::operator= (const Task& other) { std::map ::operator= (other); id = other.id; -#ifdef PRODUCT_TASKWARIROR +#ifdef PRODUCT_TASKWARRIOR urgency_value = other.urgency_value; recalc_urgency = other.recalc_urgency; is_blocked = other.is_blocked; diff --git a/src/commands/CmdImport.cpp b/src/commands/CmdImport.cpp index f53947f0f..268264f0e 100644 --- a/src/commands/CmdImport.cpp +++ b/src/commands/CmdImport.cpp @@ -98,121 +98,15 @@ int CmdImport::execute (std::string& output) continue; // Parse the whole thing. - json::value* root = json::parse (object); - if (root->type () == json::j_object) - { - json::object* root_obj = (json::object*)root; - Task task; + Task task (object); - // For each object element... - json_object_iter i; - for (i = root_obj->_data.begin (); - i != root_obj->_data.end (); - ++i) - { - // If the attribute is a recognized column. - Column* col = context.columns[i->first]; - if (col) - { - // Any specified id is ignored. - if (i->first == "id") - ; - - // Urgency, if present, is ignored. - else if (i->first == "urgency") - ; - - // Dates are converted from ISO to epoch. - else if (col->type () == "date") - { - Date d (unquoteText (i->second->dump ())); - task.set (i->first, d.toEpochString ()); - } - - // Tags are an array of JSON strings. - else if (i->first == "tags") - { - json::array* tags = (json::array*)i->second; - json_array_iter t; - for (t = tags->_data.begin (); - t != tags->_data.end (); - ++t) - { - json::string* tag = (json::string*)*t; - task.addTag (tag->_data); - } - } - - // Other types are simply added. - else - task.set (i->first, unquoteText (i->second->dump ())); - } - - // Several attributes do not have columns. - // mask - // imask - // parent - // UDA orphans - else - { - // Annotations are an array of JSON objects with 'entry' and - // 'description' values and must be converted. - if (i->first == "annotations") - { - std::map annos; - - json::array* atts = (json::array*)i->second; - json_array_iter annotations; - for (annotations = atts->_data.begin (); - annotations != atts->_data.end (); - ++annotations) - { - json::object* annotation = (json::object*)*annotations; - json::string* when = (json::string*)annotation->_data["entry"]; - json::string* what = (json::string*)annotation->_data["description"]; - - if (! when) - throw format (STRING_TASK_NO_ENTRY, *line); - - if (! what) - throw format (STRING_TASK_NO_DESC, *line); - - std::string name = "annotation_" + Date (when->_data).toEpochString (); - - annos.insert (std::make_pair (name, what->_data)); - } - - task.setAnnotations (annos); - } - - // Attributes without columns are simply added. - else if (i->first == "parent" || - i->first == "mask" || - i->first == "imask") - { - task.set (i->first, unquoteText (i->second->dump ())); - } - - // UDA Orphan - must be preserved. - else - { - task.set (i->first, unquoteText (i->second->dump ())); - } - } - } - - context.tdb2.add (task); - ++count; - std::cout << " " - << task.get ("uuid") - << " " - << task.get ("description") - << "\n"; - } - else - throw format (STRING_CMD_IMPORT_NOT_JSON, *line); - - delete root; + context.tdb2.add (task); + ++count; + std::cout << " " + << task.get ("uuid") + << " " + << task.get ("description") + << "\n"; } } diff --git a/test/.gitignore b/test/.gitignore index 1ab56e411..f7817e62c 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -19,6 +19,7 @@ path.t rx.t t.t t2.t +t3.t taskmod.t tdb2.t text.t diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 3950a31d9..ce25cbe97 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -8,8 +8,8 @@ include_directories (${CMAKE_SOURCE_DIR} set (test_SRCS autocomplete.t color.t config.t date.t directory.t dom.t duration.t file.t i18n.t json.t list.t msg.t nibbler.t path.t - rx.t t.t t2.t taskmod.t tdb2.t text.t uri.t utf8.t util.t view.t - width.t json_test) + rx.t t.t t2.t t3.t taskmod.t tdb2.t text.t uri.t utf8.t util.t + view.t width.t json_test) message ("-- Configuring run_all") if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) diff --git a/test/t3.t.cpp b/test/t3.t.cpp new file mode 100644 index 000000000..6f680deea --- /dev/null +++ b/test/t3.t.cpp @@ -0,0 +1,48 @@ +//////////////////////////////////////////////////////////////////////////////// +// taskwarrior - a command line task list manager. +// +// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// +// http://www.opensource.org/licenses/mit-license.php +// +//////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include + +Context context; + +//////////////////////////////////////////////////////////////////////////////// +int main (int argc, char** argv) +{ + UnitTest t (1); + + bool good = true; + try {Task t_ff1 ("{}");} + catch (const std::string& e){t.diag (e); good = false;} + t.ok (good, "Task::Task ('{}')"); + + return 0; +} + +//////////////////////////////////////////////////////////////////////////////// From 222cd9a8d77eba7adbc238f913d7c58270d24cbc Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 20 May 2013 16:35:42 -0400 Subject: [PATCH 024/173] Unit Tests - Added a non-trivial JSON task to parse. --- test/t3.t.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/test/t3.t.cpp b/test/t3.t.cpp index 6f680deea..ec92c1ab1 100644 --- a/test/t3.t.cpp +++ b/test/t3.t.cpp @@ -35,13 +35,18 @@ Context context; //////////////////////////////////////////////////////////////////////////////// int main (int argc, char** argv) { - UnitTest t (1); + UnitTest t (2); bool good = true; - try {Task t_ff1 ("{}");} + try {Task t1 ("{}");} catch (const std::string& e){t.diag (e); good = false;} t.ok (good, "Task::Task ('{}')"); + good = true; + try {Task t2 ("{\"uuid\":\"00000000-0000-0000-000000000001\",\"description\":\"foo\",\"entry\":1234567890}");} + catch (const std::string& e){t.diag (e); good = false;} + t.ok (good, "Task::Task ('{}')"); + return 0; } From 4672d16091c7d3b3264d5bf9d8789dc64615785e Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 20 May 2013 18:17:05 -0400 Subject: [PATCH 025/173] Shared Code - Added '#ifdef PRODUCT_TASKWARRIOR' in enough places that taskd can now share an identical copy of Task.{h,cpp}. --- src/Task.cpp | 51 +++++++++++++++++++++++++++++---------------------- src/Task.h | 14 ++------------ 2 files changed, 31 insertions(+), 34 deletions(-) diff --git a/src/Task.cpp b/src/Task.cpp index 983d56b72..3c1209e97 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -70,9 +70,11 @@ float urgencyNextCoefficient = 0.0; float urgencyDueCoefficient = 0.0; float urgencyBlockingCoefficient = 0.0; float urgencyAgeCoefficient = 0.0; +#endif static const std::string dummy (""); +#ifdef PRODUCT_TASKWARRIOR //////////////////////////////////////////////////////////////////////////////// // Non-method. // @@ -110,12 +112,10 @@ void initializeUrgencyCoefficients () //////////////////////////////////////////////////////////////////////////////// Task::Task () : id (0) -#ifdef PRODUCT_TASKWARRIOR , urgency_value (0.0) , recalc_urgency (true) , is_blocked (false) , is_blocking (false) -#endif , annotation_count (0) { } @@ -133,11 +133,11 @@ Task& Task::operator= (const Task& other) { std::map ::operator= (other); id = other.id; -#ifdef PRODUCT_TASKWARRIOR urgency_value = other.urgency_value; recalc_urgency = other.recalc_urgency; is_blocked = other.is_blocked; is_blocking = other.is_blocking; +#ifdef PRODUCT_TASKWARRIOR annotation_count = other.annotation_count; #endif } @@ -165,11 +165,11 @@ bool Task::operator== (const Task& other) Task::Task (const std::string& input) { id = 0; -#ifdef PRODUCT_TASKWARRIOR urgency_value = 0.0; recalc_urgency = true; is_blocked = false; is_blocking = false; +#ifdef PRODUCT_TASKWARRIOR annotation_count = 0; #endif parse (input); @@ -204,7 +204,6 @@ std::string Task::statusToText (Task::status s) return "pending"; } -#ifdef PRODUCT_TASKWARRIOR //////////////////////////////////////////////////////////////////////////////// void Task::setEntry () { @@ -234,7 +233,6 @@ void Task::setStart () recalc_urgency = true; } -#endif //////////////////////////////////////////////////////////////////////////////// void Task::setModified () @@ -275,7 +273,6 @@ const std::string Task::get (const std::string& name) const return ""; } -#ifdef PRODUCT_TASKWARRIOR //////////////////////////////////////////////////////////////////////////////// const std::string& Task::get_ref (const std::string& name) const { @@ -305,7 +302,6 @@ unsigned long Task::get_ulong (const std::string& name) const return 0; } -#endif //////////////////////////////////////////////////////////////////////////////// time_t Task::get_date (const std::string& name) const @@ -322,9 +318,7 @@ void Task::set (const std::string& name, const std::string& value) { (*this)[name] = value; -#ifdef PRODUCT_TASKWARRIOR recalc_urgency = true; -#endif } //////////////////////////////////////////////////////////////////////////////// @@ -332,9 +326,7 @@ void Task::set (const std::string& name, int value) { (*this)[name] = format (value); -#ifdef PRODUCT_TASKWARRIOR recalc_urgency = true; -#endif } //////////////////////////////////////////////////////////////////////////////// @@ -344,9 +336,7 @@ void Task::remove (const std::string& name) if ((it = this->find (name)) != this->end ()) this->erase (it); -#ifdef PRODUCT_TASKWARRIOR recalc_urgency = true; -#endif } //////////////////////////////////////////////////////////////////////////////// @@ -360,9 +350,7 @@ void Task::setStatus (Task::status status) { set ("status", statusToText (status)); -#ifdef PRODUCT_TASKWARRIOR recalc_urgency = true; -#endif } #ifdef PRODUCT_TASKWARRIOR @@ -494,9 +482,7 @@ void Task::parse (const std::string& input) parseLegacy (copy); } -#ifdef PRODUCT_TASKWARRIOR recalc_urgency = true; -#endif } //////////////////////////////////////////////////////////////////////////////// @@ -514,6 +500,7 @@ void Task::parseJSON (const std::string& line) i != root_obj->_data.end (); ++i) { +#ifdef PRODUCT_TASKWARRIOR // If the attribute is a recognized column. Column* col = context.columns[i->first]; if (col) @@ -551,6 +538,20 @@ void Task::parseJSON (const std::string& line) else set (i->first, unquoteText (i->second->dump ())); } +#else + if (i->first == "tags") + { + json::array* tags = (json::array*)i->second; + json_array_iter t; + for (t = tags->_data.begin (); + t != tags->_data.end (); + ++t) + { + json::string* tag = (json::string*)*t; + addTag (tag->_data); + } + } +#endif // UDA orphans and annotations do not have columns. else @@ -725,9 +726,7 @@ void Task::parseLegacy (const std::string& line) break; } -#ifdef PRODUCT_TASKWARRIOR recalc_urgency = true; -#endif } //////////////////////////////////////////////////////////////////////////////// @@ -862,6 +861,7 @@ std::string Task::composeJSON (bool decorate /*= false*/) const out << "}"; return out.str (); } +#endif //////////////////////////////////////////////////////////////////////////////// bool Task::hasAnnotations () const @@ -936,6 +936,7 @@ void Task::setAnnotations (const std::map & annotation recalc_urgency = true; } +#ifdef PRODUCT_TASKWARRIOR //////////////////////////////////////////////////////////////////////////////// void Task::addDependency (int id) { @@ -1032,6 +1033,7 @@ void Task::getDependencies (std::vector & all) const all.clear (); split (all, get ("depends"), ','); } +#endif //////////////////////////////////////////////////////////////////////////////// int Task::getTagCount () const @@ -1049,10 +1051,12 @@ bool Task::hasTag (const std::string& tag) const if (tag == "BLOCKED") return is_blocked; if (tag == "UNBLOCKED") return !is_blocked; if (tag == "BLOCKING") return is_blocking; +#ifdef PRODUCT_TASKWARRIOR if (tag == "DUE") return is_due (); if (tag == "DUETODAY") return is_duetoday (); if (tag == "TODAY") return is_duetoday (); if (tag == "OVERDUE") return is_overdue (); +#endif if (tag == "ACTIVE") return has ("start"); if (tag == "SCHEDULED") return has ("scheduled"); if (tag == "CHILD") return has ("parent"); @@ -1135,6 +1139,7 @@ void Task::removeTag (const std::string& tag) recalc_urgency = true; } +#ifdef PRODUCT_TASKWARRIOR //////////////////////////////////////////////////////////////////////////////// // A UDA is an attribute that has supporting config entries such as a data type: // 'uda..type' @@ -1389,6 +1394,7 @@ void Task::validate (bool applyDefault /* = true */) } } } +#endif // 2) To provide suitable warnings about odd states @@ -1400,7 +1406,6 @@ void Task::validate (bool applyDefault /* = true */) validate_before ("scheduled", "start"); validate_before ("scheduled", "due"); validate_before ("scheduled", "end"); -#endif // 3) To generate errors when the inconsistencies are not fixable @@ -1433,10 +1438,10 @@ void Task::validate (bool applyDefault /* = true */) } } -#ifdef PRODUCT_TASKWARRIOR //////////////////////////////////////////////////////////////////////////////// void Task::validate_before (const std::string& left, const std::string& right) { +#ifdef PRODUCT_TASKWARRIOR if (has (left) && has (right)) { @@ -1446,6 +1451,7 @@ void Task::validate_before (const std::string& left, const std::string& right) if (date_left > date_right) context.footnote (format (STRING_TASK_VALID_BEFORE, left, right)); } +#endif } //////////////////////////////////////////////////////////////////////////////// @@ -1521,6 +1527,7 @@ int Task::determineVersion (const std::string& line) return 0; } +#ifdef PRODUCT_TASKWARRIOR //////////////////////////////////////////////////////////////////////////////// // Urgency is defined as a polynomial, the value of which is calculated in this // function, according to: diff --git a/src/Task.h b/src/Task.h index 65880957c..e2d8a274b 100644 --- a/src/Task.h +++ b/src/Task.h @@ -59,13 +59,11 @@ public: // Public data. int id; -#ifdef PRODUCT_TASKWARRIOR float urgency_value; bool recalc_urgency; bool is_blocked; bool is_blocking; -#endif int annotation_count; @@ -73,21 +71,17 @@ public: static status textToStatus (const std::string&); static std::string statusToText (status); -#ifdef PRODUCT_TASKWARRIOR void setEntry (); void setEnd (); void setStart (); -#endif void setModified (); bool has (const std::string&) const; std::vector all (); const std::string get (const std::string&) const; -#ifdef PRODUCT_TASKWARRIOR const std::string& get_ref (const std::string&) const; int get_int (const std::string&) const; unsigned long get_ulong (const std::string&) const; -#endif time_t get_date (const std::string&) const; void set (const std::string&, const std::string&); void set (const std::string&, int); @@ -102,24 +96,20 @@ public: status getStatus () const; void setStatus (status); -#ifdef PRODUCT_TASKWARRIOR int getTagCount () const; bool hasTag (const std::string&) const; -#endif void addTag (const std::string&); void addTags (const std::vector &); -#ifdef PRODUCT_TASKWARRIOR void getTags (std::vector&) const; void removeTag (const std::string&); bool hasAnnotations () const; void getAnnotations (std::map &) const; -#endif void setAnnotations (const std::map &); -#ifdef PRODUCT_TASKWARRIOR void addAnnotation (const std::string&); void removeAnnotations (); +#ifdef PRODUCT_TASKWARRIOR void addDependency (int); void addDependency (const std::string&); void removeDependency (int); @@ -144,9 +134,9 @@ private: int determineVersion (const std::string&); void parseJSON (const std::string&); void parseLegacy (const std::string&); -#ifdef PRODUCT_TASKWARRIOR void validate_before (const std::string&, const std::string&); +#ifdef PRODUCT_TASKWARRIOR inline float urgency_priority () const; inline float urgency_project () const; inline float urgency_active () const; From a340528de8572fec3f48153693d9b77f9536e2ff Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 20 May 2013 20:35:40 -0400 Subject: [PATCH 026/173] Performance Testing - Added import and export to the testing. As an extension mechanism, it needs to perform well. --- performance/.gitignore | 1 + performance/run_perf | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/performance/.gitignore b/performance/.gitignore index 0c09a71d4..e82c8156a 100644 --- a/performance/.gitignore +++ b/performance/.gitignore @@ -1,2 +1,3 @@ *.data *.rc +export.json diff --git a/performance/run_perf b/performance/run_perf index 92d9a9ad3..f953930f6 100755 --- a/performance/run_perf +++ b/performance/run_perf @@ -2,7 +2,7 @@ echo 'Performance: setup' echo ' - This step will take several minutes' -rm -f ./pending.data ./completed.data ./undo.data perf.rc +rm -f ./pending.data ./completed.data ./undo.data ./backlog.data perf.rc ./load # Run benchmarks. @@ -26,6 +26,14 @@ echo ' - task add...' ../src/task rc.debug:1 rc:perf.rc add >/dev/null 2>&1 ../src/task rc.debug:1 rc:perf.rc add This is a task with an average sized description length project:P priority:H +tag1 +tag2 2>&1 | grep "Perf task" +echo ' - task export...' +../src/task rc.debug:1 rc:perf.rc export >/dev/null 2>&1 +../src/task rc.debug:1 rc:perf.rc export 2>&1 >export.json | grep "Perf task" + +echo ' - task import...' +rm -f ./pending.data ./completed.data ./undo.data ./backlog.data +../src/task rc.debug:1 rc:perf.rc import export.json 2>&1 | grep "Perf task" + echo 'End' exit 0 From 85341d521e8a7105a07ba112b632d6fefcc3306e Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 20 May 2013 20:47:13 -0400 Subject: [PATCH 027/173] Build Error - Missing include. What do ya know. --- src/Task.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Task.cpp b/src/Task.cpp index 3c1209e97..be19ff7d6 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -33,7 +33,9 @@ #ifdef PRODUCT_TASKWARRIOR #include #include +#endif #include +#ifdef PRODUCT_TASKWARRIOR #include #include #endif From ea6861e7f027b619b070dc8ec0ea4a2dc10c7a1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Mangano?= Date: Thu, 23 May 2013 19:32:15 +0200 Subject: [PATCH 028/173] fr-FR: column labels --- src/fr-FR.h | 92 ++++++++++++++++++++++++++--------------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/src/fr-FR.h b/src/fr-FR.h index 0f7eb063f..4f2db021e 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -121,65 +121,65 @@ #define STRING_COLOR_UNRECOGNIZED "The color '{1}' is not recognized." // columns/Col* -#define STRING_COLUMN_BAD_NAME "Unrecognized column name '{1}'." -#define STRING_COLUMN_BAD_FORMAT "Unrecognized column format '{1}.{2}'" -#define STRING_COLUMN_LABEL_TASKS "Tasks" -#define STRING_COLUMN_LABEL_DEP "Depends" -#define STRING_COLUMN_LABEL_DEP_S "Dep" +#define STRING_COLUMN_BAD_NAME "Nom de colonne non reconnu '{1}'." +#define STRING_COLUMN_BAD_FORMAT "Format de colonne non reconnu '{1}.{2}'" +#define STRING_COLUMN_LABEL_TASKS "Tâches" +#define STRING_COLUMN_LABEL_DEP "Dépends de" +#define STRING_COLUMN_LABEL_DEP_S "Dép" #define STRING_COLUMN_LABEL_DESC "Description" -#define STRING_COLUMN_LABEL_DUE "Due" -#define STRING_COLUMN_LABEL_END "End" -#define STRING_COLUMN_LABEL_ENTERED "Entered" -#define STRING_COLUMN_LABEL_COUNT "Count" -#define STRING_COLUMN_LABEL_COMPLETE "Completed" -#define STRING_COLUMN_LABEL_MOD "Modified" -#define STRING_COLUMN_LABEL_ADDED "Added" +#define STRING_COLUMN_LABEL_DUE "Échéance" +#define STRING_COLUMN_LABEL_END "Fin" +#define STRING_COLUMN_LABEL_ENTERED "Entrée" +#define STRING_COLUMN_LABEL_COUNT "Temps restant" +#define STRING_COLUMN_LABEL_COMPLETE "Complétée" +#define STRING_COLUMN_LABEL_MOD "Modifiée" +#define STRING_COLUMN_LABEL_ADDED "Ajoutée" #define STRING_COLUMN_LABEL_AGE "Age" #define STRING_COLUMN_LABEL_ID "ID" #define STRING_COLUMN_LABEL_PRI "Pri" -#define STRING_COLUMN_LABEL_PRIORITY "Priority" -#define STRING_COLUMN_LABEL_PROJECT "Project" +#define STRING_COLUMN_LABEL_PRIORITY "Priorité" +#define STRING_COLUMN_LABEL_PROJECT "Projet" #define STRING_COLUMN_LABEL_UNTIL "Until" -#define STRING_COLUMN_LABEL_WAIT "Wait" -#define STRING_COLUMN_LABEL_WAITING "Waiting until" -#define STRING_COLUMN_LABEL_RECUR "Recur" -#define STRING_COLUMN_LABEL_RECUR_L "Recurrence" -#define STRING_COLUMN_LABEL_START "Start" -#define STRING_COLUMN_LABEL_STARTED "Started" +#define STRING_COLUMN_LABEL_WAIT "Attente" +#define STRING_COLUMN_LABEL_WAITING "En attente jusqu’au" +#define STRING_COLUMN_LABEL_RECUR "Récur" +#define STRING_COLUMN_LABEL_RECUR_L "Récurrence" +#define STRING_COLUMN_LABEL_START "Début" +#define STRING_COLUMN_LABEL_STARTED "Débutée" #define STRING_COLUMN_LABEL_ACTIVE "A" -#define STRING_COLUMN_LABEL_STATUS "Status" +#define STRING_COLUMN_LABEL_STATUS "Statut" #define STRING_COLUMN_LABEL_STAT "St" -#define STRING_COLUMN_LABEL_STAT_PE "Pending" -#define STRING_COLUMN_LABEL_STAT_CO "Completed" -#define STRING_COLUMN_LABEL_STAT_DE "Deleted" -#define STRING_COLUMN_LABEL_STAT_WA "Waiting" -#define STRING_COLUMN_LABEL_STAT_RE "Recurring" +#define STRING_COLUMN_LABEL_STAT_PE "Prévue" +#define STRING_COLUMN_LABEL_STAT_CO "Complétée" +#define STRING_COLUMN_LABEL_STAT_DE "Supprimée" +#define STRING_COLUMN_LABEL_STAT_WA "En attente" +#define STRING_COLUMN_LABEL_STAT_RE "Récurrente" #define STRING_COLUMN_LABEL_STAT_P "P" #define STRING_COLUMN_LABEL_STAT_C "C" -#define STRING_COLUMN_LABEL_STAT_D "D" -#define STRING_COLUMN_LABEL_STAT_W "W" +#define STRING_COLUMN_LABEL_STAT_D "S" +#define STRING_COLUMN_LABEL_STAT_W "A" #define STRING_COLUMN_LABEL_STAT_R "R" -#define STRING_COLUMN_LABEL_TAGS "Tags" -#define STRING_COLUMN_LABEL_TAG "Tag" +#define STRING_COLUMN_LABEL_TAGS "Étiquettes" +#define STRING_COLUMN_LABEL_TAG "Étiquette" #define STRING_COLUMN_LABEL_UUID "UUID" -#define STRING_COLUMN_LABEL_URGENCY "Urgency" -#define STRING_COLUMN_LABEL_NAME "Name" -#define STRING_COLUMN_LABEL_VALUE "Value" -#define STRING_COLUMN_LABEL_MASK "Mask" -#define STRING_COLUMN_LABEL_MASK_IDX "Mask Index" -#define STRING_COLUMN_LABEL_PARENT "Parent task" +#define STRING_COLUMN_LABEL_URGENCY "Urgence" +#define STRING_COLUMN_LABEL_NAME "Nom" +#define STRING_COLUMN_LABEL_VALUE "Valeur" +#define STRING_COLUMN_LABEL_MASK "Masque" +#define STRING_COLUMN_LABEL_MASK_IDX "Index de masque" +#define STRING_COLUMN_LABEL_PARENT "Tâche mère" #define STRING_COLUMN_LABEL_DATE "Date" -#define STRING_COLUMN_LABEL_COLUMN "Columns" -#define STRING_COLUMN_LABEL_STYLES "Supported Formats" -#define STRING_COLUMN_LABEL_EXAMPLES "Example" -#define STRING_COLUMN_LABEL_SCHED "Scheduled" -#define STRING_COLUMN_LABEL_UDA "Name" +#define STRING_COLUMN_LABEL_COLUMN "Colonnes" +#define STRING_COLUMN_LABEL_STYLES "Formats supportés" +#define STRING_COLUMN_LABEL_EXAMPLES "Exemple" +#define STRING_COLUMN_LABEL_SCHED "Planifiée" +#define STRING_COLUMN_LABEL_UDA "Nom" #define STRING_COLUMN_LABEL_TYPE "Type" -#define STRING_COLUMN_LABEL_LABEL "Label" -#define STRING_COLUMN_LABEL_DEFAULT "Default" -#define STRING_COLUMN_LABEL_VALUES "Allowed Values" -#define STRING_COLUMN_LABEL_UDACOUNT "Usage Count" -#define STRING_COLUMN_LABEL_ORPHAN "Orphan UDA" +#define STRING_COLUMN_LABEL_LABEL "Étiquette" +#define STRING_COLUMN_LABEL_DEFAULT "Défaut" +#define STRING_COLUMN_LABEL_VALUES "Valeurs autorisées" +#define STRING_COLUMN_LABEL_UDACOUNT "Compte d’utilisation" +#define STRING_COLUMN_LABEL_ORPHAN "ADU orphelins" // Column Examples #define STRING_COLUMN_EXAMPLES_TAGS "home @chore next" From a3f158d39959df01c44367cc60a364c19d5b904f Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Fri, 24 May 2013 16:27:55 -0400 Subject: [PATCH 029/173] Diagnostics - Added GC setting to the diagnostics output. --- src/commands/CmdDiagnostics.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/commands/CmdDiagnostics.cpp b/src/commands/CmdDiagnostics.cpp index 764e93cb7..bbe624407 100644 --- a/src/commands/CmdDiagnostics.cpp +++ b/src/commands/CmdDiagnostics.cpp @@ -219,6 +219,12 @@ int CmdDiagnostics::execute (std::string& output) : STRING_CMD_DIAG_DISABLED) << "\n"; + out << " GC: " + << (context.config.getBoolean ("gc") + ? STRING_CMD_DIAG_ENABLED + : STRING_CMD_DIAG_DISABLED) + << "\n"; + // Determine rc.editor/$EDITOR/$VISUAL. char* peditor; if (context.config.get ("editor") != "") From c16a7350405972919fe3ec1ac9504f8504cf701c Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 26 May 2013 10:50:32 -0400 Subject: [PATCH 030/173] Decoupling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Eliminated some calls to context.config from Task‥cpp, reducing the coupling. If context can be eliminated from Task.cpp, via statically initialized variables, then Taskwarrior and the task server can share Task.{ḩ,cpp} which would be an enormous saving in effort. (cherry picked from commit 215b03b1a7f47299a0d3e64331c7e3c962b4caf0) --- src/Context.cpp | 48 ++++++++++++-- src/Context.h | 1 + src/Task.cpp | 170 +++++++++++++++++------------------------------- src/Task.h | 25 +++++-- 4 files changed, 127 insertions(+), 117 deletions(-) diff --git a/src/Context.cpp b/src/Context.cpp index e1347f350..d8ee873ea 100644 --- a/src/Context.cpp +++ b/src/Context.cpp @@ -138,10 +138,6 @@ int Context::initialize (int argc, const char** argv) // Apply rc overrides to Context::config, capturing raw args for later use. a3.apply_overrides (); - // Now that the final RC is in place, initialize the urgency coefficients - // to speed the 'next' report. - initializeUrgencyCoefficients (); - // Initialize the color rules, if necessary. if (color ()) initializeColorRules (); @@ -152,6 +148,9 @@ int Context::initialize (int argc, const char** argv) // Instantiate built-in column objects. Column::factory (columns); + // Static initialization to decouple code. + staticInitialization (); + // Categorize all arguments one more time. THIS IS NECESSARY - it helps the // following inject_defaults method determine whether there needs to be a // default command assumed. @@ -571,6 +570,47 @@ const std::vector Context::getCommands () const return output; } +//////////////////////////////////////////////////////////////////////////////// +// The 'Task' object, among others, is shared between projects. To make this +// easier, it has been decoupled from Context. +void Context::staticInitialization () +{ + Task::defaultProject = config.get ("default.project"); + Task::defaultPriority = config.get ("default.priority"); + Task::defaultDue = config.get ("default.due"); + Task::searchCaseSensitive = config.getBoolean ("search.case.sensitive"); + Task::regex = config.getBoolean ("regex"); + + std::map ::iterator i; + for (i = columns.begin (); i != columns.end (); ++i) + Task::attributes[i->first] = i->second->type (); + + Task::urgencyPriorityCoefficient = config.getReal ("urgency.priority.coefficient"); + Task::urgencyProjectCoefficient = config.getReal ("urgency.project.coefficient"); + Task::urgencyActiveCoefficient = config.getReal ("urgency.active.coefficient"); + Task::urgencyScheduledCoefficient = config.getReal ("urgency.scheduled.coefficient"); + Task::urgencyWaitingCoefficient = config.getReal ("urgency.waiting.coefficient"); + Task::urgencyBlockedCoefficient = config.getReal ("urgency.blocked.coefficient"); + Task::urgencyAnnotationsCoefficient = config.getReal ("urgency.annotations.coefficient"); + Task::urgencyTagsCoefficient = config.getReal ("urgency.tags.coefficient"); + Task::urgencyNextCoefficient = config.getReal ("urgency.next.coefficient"); + Task::urgencyDueCoefficient = config.getReal ("urgency.due.coefficient"); + Task::urgencyBlockingCoefficient = config.getReal ("urgency.blocking.coefficient"); + Task::urgencyAgeCoefficient = config.getReal ("urgency.age.coefficient"); + + // Tag- and project-specific coefficients. + std::vector all; + config.all (all); + + std::vector ::iterator var; + for (var = all.begin (); var != all.end (); ++var) + { + if (var->substr (0, 13) == "urgency.user." || + var->substr (0, 12) == "urgency.uda.") + Task::coefficients[*var] = config.getReal (*var); + } +} + //////////////////////////////////////////////////////////////////////////////// void Context::assumeLocations () { diff --git a/src/Context.h b/src/Context.h index 7ebb1013b..c93eaaa18 100644 --- a/src/Context.h +++ b/src/Context.h @@ -74,6 +74,7 @@ public: void decomposeSortField (const std::string&, std::string&, bool&); private: + void staticInitialization (); void assumeLocations (); void createDefaultConfig (); void loadAliases (); diff --git a/src/Task.cpp b/src/Task.cpp index be19ff7d6..03b496092 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -59,58 +59,30 @@ extern Context context; static const float epsilon = 0.000001; -static std::map coefficients; -float urgencyPriorityCoefficient = 0.0; -float urgencyProjectCoefficient = 0.0; -float urgencyActiveCoefficient = 0.0; -float urgencyScheduledCoefficient = 0.0; -float urgencyWaitingCoefficient = 0.0; -float urgencyBlockedCoefficient = 0.0; -float urgencyAnnotationsCoefficient = 0.0; -float urgencyTagsCoefficient = 0.0; -float urgencyNextCoefficient = 0.0; -float urgencyDueCoefficient = 0.0; -float urgencyBlockingCoefficient = 0.0; -float urgencyAgeCoefficient = 0.0; +std::string Task::defaultProject = ""; +std::string Task::defaultPriority = ""; +std::string Task::defaultDue = ""; +bool Task::searchCaseSensitive = true; +bool Task::regex = false; +std::map Task::attributes; + +std::map Task::coefficients; +float Task::urgencyPriorityCoefficient = 0.0; +float Task::urgencyProjectCoefficient = 0.0; +float Task::urgencyActiveCoefficient = 0.0; +float Task::urgencyScheduledCoefficient = 0.0; +float Task::urgencyWaitingCoefficient = 0.0; +float Task::urgencyBlockedCoefficient = 0.0; +float Task::urgencyAnnotationsCoefficient = 0.0; +float Task::urgencyTagsCoefficient = 0.0; +float Task::urgencyNextCoefficient = 0.0; +float Task::urgencyDueCoefficient = 0.0; +float Task::urgencyBlockingCoefficient = 0.0; +float Task::urgencyAgeCoefficient = 0.0; #endif static const std::string dummy (""); -#ifdef PRODUCT_TASKWARRIOR -//////////////////////////////////////////////////////////////////////////////// -// Non-method. -// -// This is essentialy a cache of float values to save iteration and hash lookup -// in the whole config at time of Task::urgency_C. -void initializeUrgencyCoefficients () -{ - urgencyPriorityCoefficient = context.config.getReal ("urgency.priority.coefficient"); - urgencyProjectCoefficient = context.config.getReal ("urgency.project.coefficient"); - urgencyActiveCoefficient = context.config.getReal ("urgency.active.coefficient"); - urgencyScheduledCoefficient = context.config.getReal ("urgency.scheduled.coefficient"); - urgencyWaitingCoefficient = context.config.getReal ("urgency.waiting.coefficient"); - urgencyBlockedCoefficient = context.config.getReal ("urgency.blocked.coefficient"); - urgencyAnnotationsCoefficient = context.config.getReal ("urgency.annotations.coefficient"); - urgencyTagsCoefficient = context.config.getReal ("urgency.tags.coefficient"); - urgencyNextCoefficient = context.config.getReal ("urgency.next.coefficient"); - urgencyDueCoefficient = context.config.getReal ("urgency.due.coefficient"); - urgencyBlockingCoefficient = context.config.getReal ("urgency.blocking.coefficient"); - urgencyAgeCoefficient = context.config.getReal ("urgency.age.coefficient"); - - // Tag- and project-specific coefficients. - std::vector all; - context.config.all (all); - - std::vector ::iterator var; - for (var = all.begin (); var != all.end (); ++var) - { - if (var->substr (0, 13) == "urgency.user." || - var->substr (0, 12) == "urgency.uda.") - coefficients[*var] = context.config.getReal (*var); - } -} -#endif - //////////////////////////////////////////////////////////////////////////////// Task::Task () : id (0) @@ -502,10 +474,9 @@ void Task::parseJSON (const std::string& line) i != root_obj->_data.end (); ++i) { -#ifdef PRODUCT_TASKWARRIOR // If the attribute is a recognized column. - Column* col = context.columns[i->first]; - if (col) + std::string type = Task::attributes[i->first]; + if (type != "") { // Any specified id is ignored. if (i->first == "id") @@ -516,7 +487,7 @@ void Task::parseJSON (const std::string& line) ; // Dates are converted from ISO to epoch. - else if (col->type () == "date") + else if (type == "date") { Date d (unquoteText (i->second->dump ())); set (i->first, d.toEpochString ()); @@ -540,20 +511,6 @@ void Task::parseJSON (const std::string& line) else set (i->first, unquoteText (i->second->dump ())); } -#else - if (i->first == "tags") - { - json::array* tags = (json::array*)i->second; - json_array_iter t; - for (t = tags->_data.begin (); - t != tags->_data.end (); - ++t) - { - json::string* tag = (json::string*)*t; - addTag (tag->_data); - } - } -#endif // UDA orphans and annotations do not have columns. else @@ -1175,18 +1132,16 @@ void Task::substitute ( std::map annotations; getAnnotations (annotations); - bool sensitive = context.config.getBoolean ("search.case.sensitive"); - // Count the changes, so we know whether to proceed to annotations, after // modifying description. int changes = 0; bool done = false; // Regex support is optional. - if (context.config.getBoolean ("regex")) + if (Task::regex) { // Create the regex. - RX rx (from, sensitive); + RX rx (from, Task::searchCaseSensitive); std::vector start; std::vector end; @@ -1236,7 +1191,7 @@ void Task::substitute ( std::string::size_type pos = 0; int skew = 0; - while ((pos = ::find (description, from, pos, sensitive)) != std::string::npos && !done) + while ((pos = ::find (description, from, pos, Task::searchCaseSensitive)) != std::string::npos && !done) { description.replace (pos + skew, from.length (), to); skew += to.length () - from.length (); @@ -1260,7 +1215,7 @@ void Task::substitute ( { pos = 0; skew = 0; - while ((pos = ::find (i->second, from, pos, sensitive)) != std::string::npos && !done) + while ((pos = ::find (i->second, from, pos, Task::searchCaseSensitive)) != std::string::npos && !done) { i->second.replace (pos + skew, from.length (), to); skew += to.length () - from.length (); @@ -1335,28 +1290,25 @@ void Task::validate (bool applyDefault /* = true */) // Override with default.project, if not specified. if (applyDefault && ! has ("project")) { - std::string defaultProject = context.config.get ("default.project"); - if (defaultProject != "" && - context.columns["project"]->validate (defaultProject)) - set ("project", defaultProject); + if (Task::defaultProject != "" && + context.columns["project"]->validate (Task::defaultProject)) + set ("project", Task::defaultProject); } // Override with default.priority, if not specified. if (applyDefault && get ("priority") == "") { - std::string defaultPriority = context.config.get ("default.priority"); - if (defaultPriority != "" && - context.columns["priority"]->validate (defaultPriority)) - set ("priority", defaultPriority); + if (Task::defaultPriority != "" && + context.columns["priority"]->validate (Task::defaultPriority)) + set ("priority", Task::defaultPriority); } // Override with default.due, if not specified. if (applyDefault && get ("due") == "") { - std::string defaultDue = context.config.get ("default.due"); - if (defaultDue != "" && - context.columns["due"]->validate (defaultDue)) - set ("due", Date (defaultDue).toEpoch ()); + if (Task::defaultDue != "" && + context.columns["due"]->validate (Task::defaultDue)) + set ("due", Date (Task::defaultDue).toEpoch ()); } // If a UDA has a default value in the configuration, @@ -1548,39 +1500,39 @@ int Task::determineVersion (const std::string& line) float Task::urgency_c () const { float value = 0.0; - value += fabsf (urgencyPriorityCoefficient) > epsilon ? (urgency_priority () * urgencyPriorityCoefficient) : 0.0; - value += fabsf (urgencyProjectCoefficient) > epsilon ? (urgency_project () * urgencyProjectCoefficient) : 0.0; - value += fabsf (urgencyActiveCoefficient) > epsilon ? (urgency_active () * urgencyActiveCoefficient) : 0.0; - value += fabsf (urgencyScheduledCoefficient) > epsilon ? (urgency_scheduled () * urgencyScheduledCoefficient) : 0.0; - value += fabsf (urgencyWaitingCoefficient) > epsilon ? (urgency_waiting () * urgencyWaitingCoefficient) : 0.0; - value += fabsf (urgencyBlockedCoefficient) > epsilon ? (urgency_blocked () * urgencyBlockedCoefficient) : 0.0; - value += fabsf (urgencyAnnotationsCoefficient) > epsilon ? (urgency_annotations () * urgencyAnnotationsCoefficient) : 0.0; - value += fabsf (urgencyTagsCoefficient) > epsilon ? (urgency_tags () * urgencyTagsCoefficient) : 0.0; - value += fabsf (urgencyNextCoefficient) > epsilon ? (urgency_next () * urgencyNextCoefficient) : 0.0; - value += fabsf (urgencyDueCoefficient) > epsilon ? (urgency_due () * urgencyDueCoefficient) : 0.0; - value += fabsf (urgencyBlockingCoefficient) > epsilon ? (urgency_blocking () * urgencyBlockingCoefficient) : 0.0; - value += fabsf (urgencyAgeCoefficient) > epsilon ? (urgency_age () * urgencyAgeCoefficient) : 0.0; + value += fabsf (Task::urgencyPriorityCoefficient) > epsilon ? (urgency_priority () * Task::urgencyPriorityCoefficient) : 0.0; + value += fabsf (Task::urgencyProjectCoefficient) > epsilon ? (urgency_project () * Task::urgencyProjectCoefficient) : 0.0; + value += fabsf (Task::urgencyActiveCoefficient) > epsilon ? (urgency_active () * Task::urgencyActiveCoefficient) : 0.0; + value += fabsf (Task::urgencyScheduledCoefficient) > epsilon ? (urgency_scheduled () * Task::urgencyScheduledCoefficient) : 0.0; + value += fabsf (Task::urgencyWaitingCoefficient) > epsilon ? (urgency_waiting () * Task::urgencyWaitingCoefficient) : 0.0; + value += fabsf (Task::urgencyBlockedCoefficient) > epsilon ? (urgency_blocked () * Task::urgencyBlockedCoefficient) : 0.0; + value += fabsf (Task::urgencyAnnotationsCoefficient) > epsilon ? (urgency_annotations () * Task::urgencyAnnotationsCoefficient) : 0.0; + value += fabsf (Task::urgencyTagsCoefficient) > epsilon ? (urgency_tags () * Task::urgencyTagsCoefficient) : 0.0; + value += fabsf (Task::urgencyNextCoefficient) > epsilon ? (urgency_next () * Task::urgencyNextCoefficient) : 0.0; + value += fabsf (Task::urgencyDueCoefficient) > epsilon ? (urgency_due () * Task::urgencyDueCoefficient) : 0.0; + value += fabsf (Task::urgencyBlockingCoefficient) > epsilon ? (urgency_blocking () * Task::urgencyBlockingCoefficient) : 0.0; + value += fabsf (Task::urgencyAgeCoefficient) > epsilon ? (urgency_age () * Task::urgencyAgeCoefficient) : 0.0; /* // Very useful for debugging urgency problems. std::cout << "# Urgency for " << get ("uuid") << ":\n" - << "# pri " << (urgency_priority () * urgencyPriorityCoefficient) << "\n" - << "# pro " << (urgency_project () * urgencyProjectCoefficient) << "\n" - << "# act " << (urgency_active () * urgencyActiveCoefficient) << "\n" - << "# sch " << (urgency_scheduled () * urgencyScheduledCoefficient) << "\n" - << "# wai " << (urgency_waiting () * urgencyWaitingCoefficient) << "\n" - << "# blk " << (urgency_blocked () * urgencyBlockedCoefficient) << "\n" - << "# ann " << (urgency_annotations () * urgencyAnnotationsCoefficient) << "\n" - << "# tag " << (urgency_tags () * urgencyTagsCoefficient) << "\n" - << "# nex " << (urgency_next () * urgencyNextCoefficient) << "\n" - << "# due " << (urgency_due () * urgencyDueCoefficient) << "\n" - << "# bkg " << (urgency_blocking () * urgencyBlockingCoefficient) << "\n" - << "# age " << (urgency_age () * urgencyAgeCoefficient) << "\n"; + << "# pri " << (urgency_priority () * Task::urgencyPriorityCoefficient) << "\n" + << "# pro " << (urgency_project () * Task::urgencyProjectCoefficient) << "\n" + << "# act " << (urgency_active () * Task::urgencyActiveCoefficient) << "\n" + << "# sch " << (urgency_scheduled () * Task::urgencyScheduledCoefficient) << "\n" + << "# wai " << (urgency_waiting () * Task::urgencyWaitingCoefficient) << "\n" + << "# blk " << (urgency_blocked () * Task::urgencyBlockedCoefficient) << "\n" + << "# ann " << (urgency_annotations () * Task::urgencyAnnotationsCoefficient) << "\n" + << "# tag " << (urgency_tags () * Task::urgencyTagsCoefficient) << "\n" + << "# nex " << (urgency_next () * Task::urgencyNextCoefficient) << "\n" + << "# due " << (urgency_due () * Task::urgencyDueCoefficient) << "\n" + << "# bkg " << (urgency_blocking () * Task::urgencyBlockingCoefficient) << "\n" + << "# age " << (urgency_age () * Task::urgencyAgeCoefficient) << "\n"; */ // Tag- and project-specific coefficients. std::map ::iterator var; - for (var = coefficients.begin (); var != coefficients.end (); ++var) + for (var = Task::coefficients.begin (); var != Task::coefficients.end (); ++var) { if (fabs (var->second) > epsilon) { diff --git a/src/Task.h b/src/Task.h index e2d8a274b..6e0695f61 100644 --- a/src/Task.h +++ b/src/Task.h @@ -34,12 +34,29 @@ #include #include -#ifdef PRODUCT_TASKWARRIOR -void initializeUrgencyCoefficients (); -#endif - class Task : public std::map { +public: + static std::string defaultProject; + static std::string defaultPriority; + static std::string defaultDue; + static bool searchCaseSensitive; + static bool regex; + static std::map attributes; // name -> type + static std::map coefficients; + static float urgencyPriorityCoefficient; + static float urgencyProjectCoefficient; + static float urgencyActiveCoefficient; + static float urgencyScheduledCoefficient; + static float urgencyWaitingCoefficient; + static float urgencyBlockedCoefficient; + static float urgencyAnnotationsCoefficient; + static float urgencyTagsCoefficient; + static float urgencyNextCoefficient; + static float urgencyDueCoefficient; + static float urgencyBlockingCoefficient; + static float urgencyAgeCoefficient; + public: Task (); // Default constructor Task (const Task&); // Copy constructor From 7b89bc92e1039b62b38428dcfd057beb7e8e3ddd Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 26 May 2013 11:40:18 -0400 Subject: [PATCH 031/173] Performance - It it not necessary to make a copy of all configuration variable names, if the Config::const_iterator is sufficient. (cherry picked from commit 5708cb90780f1f6c8f58f5b549796c4af612b1ab) --- src/Hooks.cpp | 14 +++----- src/Task.cpp | 15 ++++---- src/columns/Column.cpp | 12 +++---- src/commands/CmdCalendar.cpp | 27 ++++++-------- src/commands/CmdColor.cpp | 19 +++++----- src/commands/CmdReports.cpp | 11 +++--- src/commands/CmdShow.cpp | 70 ++++++++++++++++++------------------ src/commands/CmdUDAs.cpp | 30 +++++++--------- src/commands/Command.cpp | 11 +++--- src/rules.cpp | 14 ++++---- 10 files changed, 95 insertions(+), 128 deletions(-) diff --git a/src/Hooks.cpp b/src/Hooks.cpp index 9358e2307..807f107ce 100644 --- a/src/Hooks.cpp +++ b/src/Hooks.cpp @@ -105,25 +105,21 @@ void Hooks::initialize () bool big_red_switch = context.config.getBoolean ("extensions"); if (big_red_switch) { - std::vector vars; - context.config.all (vars); - - std::vector ::iterator it; - for (it = vars.begin (); it != vars.end (); ++it) + Config::const_iterator it; + for (it = context.config.begin (); it != context.config.end (); ++it) { std::string type; std::string name; std::string value; // "." - Nibbler n (*it); + Nibbler n (it->first); if (n.getUntil ('.', type) && type == "hook" && n.skip ('.') && n.getUntilEOS (name)) { - std::string value = context.config.get (*it); - Nibbler n (value); + Nibbler n (it->second); // : [, ...] while (!n.depleted ()) @@ -141,7 +137,7 @@ void Hooks::initialize () (void) n.skip (','); } else - ; // Was: throw std::string (format ("Malformed hook definition '{1}'.", *it)); + ; // Was: throw std::string (format ("Malformed hook definition '{1}'.", it->first)); } } } diff --git a/src/Task.cpp b/src/Task.cpp index 03b496092..7f9b5a7cb 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -1316,19 +1316,16 @@ void Task::validate (bool applyDefault /* = true */) if (applyDefault) { // Gather a list of all UDAs with a .default value - std::vector names; - context.config.all (names); - std::vector udas; - std::vector ::iterator name; - for (name = names.begin (); name != names.end (); ++name) + Config::const_iterator var; + for (var = context.config.begin (); var != context.config.end (); ++var) { - if (name->substr (0, 4) == "uda." && - name->find (".default") != std::string::npos) + if (var->first.substr (0, 4) == "uda." && + var->first.find (".default") != std::string::npos) { - std::string::size_type period = name->find ('.', 4); + std::string::size_type period = var->first.find ('.', 4); if (period != std::string::npos) - udas.push_back (name->substr (4, period - 4)); + udas.push_back (var->first.substr (4, period - 4)); } } diff --git a/src/columns/Column.cpp b/src/columns/Column.cpp index d666c0fb2..81bf92764 100644 --- a/src/columns/Column.cpp +++ b/src/columns/Column.cpp @@ -151,17 +151,15 @@ void Column::uda (std::map & all) { // For each UDA, instantiate and initialize ColumnUDA(). std::map udas; - std::vector names; - context.config.all (names); - std::vector ::iterator i; - for (i = names.begin (); i != names.end (); ++i) + Config::const_iterator i; + for (i = context.config.begin (); i != context.config.end (); ++i) { - if (i->substr (0, 4) == "uda.") + if (i->first.substr (0, 4) == "uda.") { std::string::size_type period = 4; - if ((period = i->find ('.', period)) != std::string::npos) - udas[i->substr (4, period - 4)] = 0; + if ((period = i->first.find ('.', period)) != std::string::npos) + udas[i->first.substr (4, period - 4)] = 0; } } diff --git a/src/commands/CmdCalendar.cpp b/src/commands/CmdCalendar.cpp index b50a40666..88ca0d440 100644 --- a/src/commands/CmdCalendar.cpp +++ b/src/commands/CmdCalendar.cpp @@ -351,22 +351,19 @@ int CmdCalendar::execute (std::string& output) // Table with holiday information if (context.config.get ("calendar.holidays") == "full") { - std::vector holidays; - context.config.all (holidays); - ViewText holTable; holTable.width (context.getWidth ()); holTable.add (Column::factory ("string", STRING_CMD_CAL_LABEL_DATE)); holTable.add (Column::factory ("string", STRING_CMD_CAL_LABEL_HOL)); - std::vector ::iterator it; + Config::const_iterator it; std::map > hm; // we need to store multiple holidays per day - for (it = holidays.begin (); it != holidays.end (); ++it) - if (it->substr (0, 8) == "holiday.") - if (it->substr (it->size () - 4) == "name") + for (it = context.config.begin (); it != context.config.end (); ++it) + if (it->first.substr (0, 8) == "holiday.") + if (it->first.substr (it->first.size () - 4) == "name") { - std::string holName = context.config.get ("holiday." + it->substr (8, it->size () - 13) + ".name"); - std::string holDate = context.config.get ("holiday." + it->substr (8, it->size () - 13) + ".date"); + std::string holName = context.config.get ("holiday." + it->first.substr (8, it->first.size () - 13) + ".name"); + std::string holDate = context.config.get ("holiday." + it->first.substr (8, it->first.size () - 13) + ".date"); Date hDate (holDate.c_str (), context.config.get ("dateformat.holiday")); if (date_after < hDate && hDate < date_before) @@ -526,14 +523,12 @@ std::string CmdCalendar::renderMonths ( // colorize holidays if (context.config.get ("calendar.holidays") != "none") { - std::vector holidays; - context.config.all (holidays); - std::vector ::iterator hol; - for (hol = holidays.begin (); hol != holidays.end (); ++hol) - if (hol->substr (0, 8) == "holiday.") - if (hol->substr (hol->size () - 4) == "date") + Config::const_iterator hol; + for (hol = context.config.begin (); hol != context.config.end (); ++hol) + if (hol->first.substr (0, 8) == "holiday.") + if (hol->first.substr (hol->first.size () - 4) == "date") { - std::string value = context.config.get (*hol); + std::string value = hol->second; Date holDate (value.c_str (), context.config.get ("dateformat.holiday")); if (holDate.day () == d && holDate.month () == months[mpl] && diff --git a/src/commands/CmdColor.cpp b/src/commands/CmdColor.cpp index 874ae6297..1abe11591 100644 --- a/src/commands/CmdColor.cpp +++ b/src/commands/CmdColor.cpp @@ -69,27 +69,24 @@ int CmdColor::execute (std::string& output) { out << "\n" << STRING_CMD_COLOR_HERE << "\n"; - std::vector all; - context.config.all (all); - ViewText view; view.width (context.getWidth ()); view.add (Column::factory ("string", STRING_CMD_COLOR_COLOR)); view.add (Column::factory ("string", STRING_CMD_COLOR_DEFINITION)); - std::vector ::iterator item; - for (item = all.begin (); item != all.end (); ++item) + Config::const_iterator item; + for (item = context.config.begin (); item != context.config.end (); ++item) { // Skip items with 'color' in their name, that are not referring to // actual colors. - if (*item != "_forcecolor" && - *item != "color" && - item->find ("color") == 0) + if (item->first != "_forcecolor" && + item->first != "color" && + item->first.find ("color") == 0) { - Color color (context.config.get (*item)); + Color color (context.config.get (item->first)); int row = view.addRow (); - view.set (row, 0, *item, color); - view.set (row, 1, context.config.get (*item), color); + view.set (row, 0, item->first, color); + view.set (row, 1, item->second, color); } } diff --git a/src/commands/CmdReports.cpp b/src/commands/CmdReports.cpp index 6f548da19..a8c500934 100644 --- a/src/commands/CmdReports.cpp +++ b/src/commands/CmdReports.cpp @@ -51,15 +51,12 @@ int CmdReports::execute (std::string& output) std::vector reports; // Add custom reports. - std::vector vars; - context.config.all (vars); - - std::vector ::iterator i; - for (i = vars.begin (); i != vars.end (); ++i) + Config::const_iterator i; + for (i = context.config.begin (); i != context.config.end (); ++i) { - if (i->substr (0, 7) == "report.") + if (i->first.substr (0, 7) == "report.") { - std::string report = i->substr (7); + std::string report = i->first.substr (7); std::string::size_type columns = report.find (".columns"); if (columns != std::string::npos) reports.push_back (report.substr (0, columns)); diff --git a/src/commands/CmdShow.cpp b/src/commands/CmdShow.cpp index 0d8cc3225..c5fea0d99 100644 --- a/src/commands/CmdShow.cpp +++ b/src/commands/CmdShow.cpp @@ -214,38 +214,35 @@ int CmdShow::execute (std::string& output) // is redirected to a file, or stdout is not a tty. recognized += "_forcecolor "; - std::vector all; - context.config.all (all); - std::vector unrecognized; - std::vector ::iterator i; - for (i = all.begin (); i != all.end (); ++i) + Config::const_iterator i; + for (i = context.config.begin (); i != context.config.end (); ++i) { // Disallow partial matches by tacking a leading and trailing space on each // variable name. - std::string pattern = " " + *i + " "; + std::string pattern = " " + i->first + " "; if (recognized.find (pattern) == std::string::npos) { // These are special configuration variables, because their name is // dynamic. - if (i->substr (0, 14) != "color.keyword." && - i->substr (0, 14) != "color.project." && - i->substr (0, 10) != "color.tag." && - i->substr (0, 10) != "color.uda." && - i->substr (0, 8) != "holiday." && - i->substr (0, 7) != "report." && - i->substr (0, 6) != "alias." && - i->substr (0, 5) != "hook." && - i->substr (0, 5) != "push." && - i->substr (0, 5) != "pull." && - i->substr (0, 6) != "merge." && - i->substr (0, 4) != "uda." && - i->substr (0, 4) != "default." && - i->substr (0, 21) != "urgency.user.project." && - i->substr (0, 17) != "urgency.user.tag." && - i->substr (0, 12) != "urgency.uda.") + if (i->first.substr (0, 14) != "color.keyword." && + i->first.substr (0, 14) != "color.project." && + i->first.substr (0, 10) != "color.tag." && + i->first.substr (0, 10) != "color.uda." && + i->first.substr (0, 8) != "holiday." && + i->first.substr (0, 7) != "report." && + i->first.substr (0, 6) != "alias." && + i->first.substr (0, 5) != "hook." && + i->first.substr (0, 5) != "push." && + i->first.substr (0, 5) != "pull." && + i->first.substr (0, 6) != "merge." && + i->first.substr (0, 4) != "uda." && + i->first.substr (0, 4) != "default." && + i->first.substr (0, 21) != "urgency.user.project." && + i->first.substr (0, 17) != "urgency.user.tag." && + i->first.substr (0, 12) != "urgency.uda.") { - unrecognized.push_back (*i); + unrecognized.push_back (i->first); } } } @@ -255,9 +252,9 @@ int CmdShow::execute (std::string& output) Config default_config; default_config.setDefaults (); - for (i = all.begin (); i != all.end (); ++i) - if (context.config.get (*i) != default_config.get (*i)) - default_values.push_back (*i); + for (i = context.config.begin (); i != context.config.end (); ++i) + if (i->second != default_config.get (i->first)) + default_values.push_back (i->first); // Create output view. ViewText view; @@ -281,29 +278,29 @@ int CmdShow::execute (std::string& output) section = ""; std::string::size_type loc; - for (i = all.begin (); i != all.end (); ++i) + for (i = context.config.begin (); i != context.config.end (); ++i) { - loc = i->find (section, 0); + loc = i->first.find (section, 0); if (loc != std::string::npos) { // Look for unrecognized. Color color; - if (std::find (unrecognized.begin (), unrecognized.end (), *i) != unrecognized.end ()) + if (std::find (unrecognized.begin (), unrecognized.end (), i->first) != unrecognized.end ()) { issue_error = true; color = error; } - else if (std::find (default_values.begin (), default_values.end (), *i) != default_values.end ()) + else if (std::find (default_values.begin (), default_values.end (), i->first) != default_values.end ()) { issue_warning = true; color = warning; } - std::string value = context.config.get (*i); + std::string value = i->second; // hide sensible information - if ( (i->substr (0, 5) == "push." || - i->substr (0, 5) == "pull." || - i->substr (0, 6) == "merge.") && (i->find (".uri") != std::string::npos) ) { + if ( (i->first.substr (0, 5) == "push." || + i->first.substr (0, 5) == "pull." || + i->first.substr (0, 6) == "merge.") && (i->first.find (".uri") != std::string::npos) ) { Uri uri (value); uri.parse (); @@ -311,7 +308,7 @@ int CmdShow::execute (std::string& output) } int row = view.addRow (); - view.set (row, 0, *i, color); + view.set (row, 0, i->first, color); view.set (row, 1, value, color); } } @@ -336,6 +333,7 @@ int CmdShow::execute (std::string& output) { out << STRING_CMD_SHOW_UNREC << "\n"; + std::vector ::iterator i; for (i = unrecognized.begin (); i != unrecognized.end (); ++i) out << " " << *i << "\n"; @@ -381,7 +379,7 @@ int CmdShow::execute (std::string& output) // Verify installation. This is mentioned in the documentation as the way // to ensure everything is properly installed. - if (all.size () == 0) + if (context.config.size () == 0) { out << STRING_CMD_SHOW_EMPTY << "\n"; rc = 1; diff --git a/src/commands/CmdUDAs.cpp b/src/commands/CmdUDAs.cpp index 64fd10bef..14154e2a8 100644 --- a/src/commands/CmdUDAs.cpp +++ b/src/commands/CmdUDAs.cpp @@ -53,19 +53,16 @@ int CmdUDAs::execute (std::string& output) int rc = 0; std::stringstream out; - std::vector names; - context.config.all (names); - std::vector udas; - std::vector ::iterator name; - for (name = names.begin (); name != names.end (); ++name) + Config::const_iterator name; + for (name = context.config.begin (); name != context.config.end (); ++name) { - if (name->substr (0, 4) == "uda." && - name->find (".type") != std::string::npos) + if (name->first.substr (0, 4) == "uda." && + name->first.find (".type") != std::string::npos) { - std::string::size_type period = name->find ('.', 4); + std::string::size_type period = name->first.find ('.', 4); if (period != std::string::npos) - udas.push_back (name->substr (4, period - 4)); + udas.push_back (name->first.substr (4, period - 4)); } } @@ -182,19 +179,16 @@ CmdCompletionUDAs::CmdCompletionUDAs () //////////////////////////////////////////////////////////////////////////////// int CmdCompletionUDAs::execute (std::string& output) { - std::vector names; - context.config.all (names); - std::vector udas; - std::vector ::iterator name; - for (name = names.begin (); name != names.end (); ++name) + Config::const_iterator name; + for (name = context.config.begin (); name != context.config.end (); ++name) { - if (name->substr (0, 4) == "uda." && - name->find (".type") != std::string::npos) + if (name->first.substr (0, 4) == "uda." && + name->first.find (".type") != std::string::npos) { - std::string::size_type period = name->find ('.', 4); + std::string::size_type period = name->first.find ('.', 4); if (period != std::string::npos) - udas.push_back (name->substr (4, period - 4)); + udas.push_back (name->first.substr (4, period - 4)); } } diff --git a/src/commands/Command.cpp b/src/commands/Command.cpp index 2dfc97178..5f8ca16c6 100644 --- a/src/commands/Command.cpp +++ b/src/commands/Command.cpp @@ -168,16 +168,13 @@ void Command::factory (std::map & all) c = new CmdZshCompletionUuids (); all[c->keyword ()] = c; // Instantiate a command object for each custom report. - std::vector variables; - context.config.all (variables); - std::vector reports; - std::vector ::iterator i; - for (i = variables.begin (); i != variables.end (); ++i) + Config::const_iterator i; + for (i = context.config.begin (); i != context.config.end (); ++i) { - if (i->substr (0, 7) == "report.") + if (i->first.substr (0, 7) == "report.") { - std::string report = i->substr (7); + std::string report = i->first.substr (7); std::string::size_type columns = report.find (".columns"); if (columns != std::string::npos) reports.push_back (report.substr (0, columns)); diff --git a/src/rules.cpp b/src/rules.cpp index 093a73f4c..40185ef12 100644 --- a/src/rules.cpp +++ b/src/rules.cpp @@ -47,17 +47,15 @@ void initializeColorRules () // Load all the configuration values, filter to only the ones that begin with // "color.", then store name/value in gsColor, and name in rules. std::vector rules; - std::vector variables; - context.config.all (variables); - std::vector ::iterator v; - for (v = variables.begin (); v != variables.end (); ++v) + Config::const_iterator v; + for (v = context.config.begin (); v != context.config.end (); ++v) { - if (v->substr (0, 6) == "color.") + if (v->first.substr (0, 6) == "color.") { - Color c (context.config.get (*v)); - gsColor[*v] = c; + Color c (v->second); + gsColor[v->first] = c; - rules.push_back (*v); + rules.push_back (v->first); } } From d03c4cda8a00668bf83eed8f76d1abcf1212c9c6 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 26 May 2013 16:46:32 -0400 Subject: [PATCH 032/173] Build Error - Many files were missing an explicit cmake.h include. Some were not including it at all. Now it's used almost everywhere. (cherry picked from commit 82ae86979c497e6d1d0c6b2b5a55aa379ec82c98) --- src/A3.cpp | 2 +- src/Arg.cpp | 1 + src/Color.cpp | 1 + src/Config.cpp | 2 +- src/Context.cpp | 2 +- src/DOM.cpp | 2 +- src/Date.cpp | 1 + src/Directory.cpp | 2 +- src/Duration.cpp | 1 + src/E9.cpp | 1 + src/File.cpp | 2 +- src/Hooks.cpp | 1 + src/Hooks.h | 1 - src/JSON.cpp | 1 + src/Msg.cpp | 2 +- src/Nibbler.cpp | 2 +- src/Nibbler.h | 2 -- src/Path.cpp | 2 +- src/RX.cpp | 1 + src/TDB2.cpp | 1 + src/Task.h | 1 - src/Taskmod.cpp | 1 + src/Timer.cpp | 1 + src/Transport.cpp | 1 + src/TransportCurl.cpp | 1 + src/TransportRSYNC.cpp | 1 + src/TransportSSH.cpp | 1 + src/TransportShell.cpp | 1 + src/Uri.cpp | 1 + src/ViewTask.cpp | 1 + src/ViewText.cpp | 1 + src/columns/ColDate.cpp | 1 + src/columns/ColDepends.cpp | 1 + src/columns/ColDescription.cpp | 1 + src/columns/ColDue.cpp | 1 + src/columns/ColEnd.cpp | 1 + src/columns/ColEntry.cpp | 1 + src/columns/ColID.cpp | 1 + src/columns/ColIMask.cpp | 1 + src/columns/ColMask.cpp | 1 + src/columns/ColModified.cpp | 1 + src/columns/ColParent.cpp | 1 + src/columns/ColPriority.cpp | 1 + src/columns/ColProject.cpp | 1 + src/columns/ColRecur.cpp | 1 + src/columns/ColScheduled.cpp | 1 + src/columns/ColStart.cpp | 1 + src/columns/ColStatus.cpp | 1 + src/columns/ColString.cpp | 1 + src/columns/ColTags.cpp | 1 + src/columns/ColUDA.cpp | 1 + src/columns/ColUUID.cpp | 1 + src/columns/ColUntil.cpp | 1 + src/columns/ColUrgency.cpp | 1 + src/columns/ColWait.cpp | 1 + src/columns/Column.cpp | 1 + src/commands/CmdAdd.cpp | 1 + src/commands/CmdAliases.cpp | 1 + src/commands/CmdAnnotate.cpp | 1 + src/commands/CmdAppend.cpp | 1 + src/commands/CmdBurndown.cpp | 1 + src/commands/CmdCalendar.cpp | 1 + src/commands/CmdColor.cpp | 1 + src/commands/CmdColumns.cpp | 1 + src/commands/CmdCommands.cpp | 1 + src/commands/CmdConfig.cpp | 1 + src/commands/CmdCount.cpp | 1 + src/commands/CmdCustom.cpp | 1 + src/commands/CmdDelete.cpp | 1 + src/commands/CmdDenotate.cpp | 1 + src/commands/CmdDiagnostics.cpp | 2 +- src/commands/CmdDone.cpp | 1 + src/commands/CmdDuplicate.cpp | 1 + src/commands/CmdEdit.cpp | 1 + src/commands/CmdExec.cpp | 1 + src/commands/CmdExport.cpp | 1 + src/commands/CmdHelp.cpp | 1 + src/commands/CmdHistory.cpp | 1 + src/commands/CmdIDs.cpp | 1 + src/commands/CmdImport.cpp | 1 + src/commands/CmdInfo.cpp | 1 + src/commands/CmdInstall.cpp | 1 + src/commands/CmdLog.cpp | 1 + src/commands/CmdLogo.cpp | 1 + src/commands/CmdMerge.cpp | 1 + src/commands/CmdModify.cpp | 1 + src/commands/CmdPrepend.cpp | 1 + src/commands/CmdProjects.cpp | 1 + src/commands/CmdPull.cpp | 1 + src/commands/CmdPush.cpp | 1 + src/commands/CmdReports.cpp | 1 + src/commands/CmdShow.cpp | 1 + src/commands/CmdStart.cpp | 1 + src/commands/CmdStats.cpp | 1 + src/commands/CmdStop.cpp | 1 + src/commands/CmdSummary.cpp | 1 + src/commands/CmdTags.cpp | 1 + src/commands/CmdTimesheet.cpp | 1 + src/commands/CmdUDAs.cpp | 1 + src/commands/CmdUndo.cpp | 1 + src/commands/CmdUrgency.cpp | 1 + src/commands/CmdVersion.cpp | 2 +- src/commands/Command.cpp | 2 +- src/dependency.cpp | 1 + src/feedback.cpp | 2 +- src/interactive.cpp | 2 +- src/legacy.cpp | 1 + src/main.cpp | 2 +- src/main.h | 1 - src/recur.cpp | 1 + src/rules.cpp | 1 + src/shell/Readline.cpp | 2 +- src/shell/main.cpp | 1 + src/sort.cpp | 1 + src/text.cpp | 1 + src/text.h | 1 - src/utf8.cpp | 1 + src/util.cpp | 2 +- src/util.h | 1 - test/autocomplete.t.cpp | 1 + test/color.t.cpp | 1 + test/config.t.cpp | 1 + test/date.t.cpp | 1 + test/directory.t.cpp | 1 + test/dom.t.cpp | 2 +- test/duration.t.cpp | 1 + test/file.t.cpp | 1 + test/i18n.t.cpp | 1 + test/json.t.cpp | 1 + test/json_test.cpp | 1 + test/list.t.cpp | 1 + test/msg.t.cpp | 2 +- test/nibbler.t.cpp | 1 + test/path.t.cpp | 1 + test/rx.t.cpp | 2 +- test/t.t.cpp | 1 + test/t2.t.cpp | 1 + test/t3.t.cpp | 1 + test/taskmod.t.cpp | 1 + test/tdb2.t.cpp | 2 +- test/test.cpp | 1 + test/text.t.cpp | 1 + test/uri.t.cpp | 1 + test/utf8.t.cpp | 1 + test/util.t.cpp | 1 + test/view.t.cpp | 1 + test/width.t.cpp | 1 + 147 files changed, 141 insertions(+), 28 deletions(-) diff --git a/src/A3.cpp b/src/A3.cpp index 4b9e73f8e..cbe397f80 100644 --- a/src/A3.cpp +++ b/src/A3.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include @@ -39,7 +40,6 @@ #include #include #include -#include #ifdef FEATURE_STDIN #include diff --git a/src/Arg.cpp b/src/Arg.cpp index 619f2c126..a37e8417a 100644 --- a/src/Arg.cpp +++ b/src/Arg.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include diff --git a/src/Color.cpp b/src/Color.cpp index 7ddf89128..25c6addfd 100644 --- a/src/Color.cpp +++ b/src/Color.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/Config.cpp b/src/Config.cpp index 08ce5c5ae..a23d3632c 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include @@ -40,7 +41,6 @@ #include #include #include -#include #include //////////////////////////////////////////////////////////////////////////////// diff --git a/src/Context.cpp b/src/Context.cpp index d8ee873ea..8fcf2c981 100644 --- a/src/Context.cpp +++ b/src/Context.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include @@ -40,7 +41,6 @@ #include #include #include -#include #ifdef HAVE_COMMIT #include #endif diff --git a/src/DOM.cpp b/src/DOM.cpp index 776a2ffdd..e971b70cf 100644 --- a/src/DOM.cpp +++ b/src/DOM.cpp @@ -25,13 +25,13 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include #include #include #include -#include extern Context context; diff --git a/src/Date.cpp b/src/Date.cpp index 114662f24..f81aeb8f1 100644 --- a/src/Date.cpp +++ b/src/Date.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/Directory.cpp b/src/Directory.cpp index 481a6427c..07f9d2db5 100644 --- a/src/Directory.cpp +++ b/src/Directory.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include @@ -33,7 +34,6 @@ #include #include #include -#include #ifdef SOLARIS #include diff --git a/src/Duration.cpp b/src/Duration.cpp index 5d0577d95..57246dd98 100644 --- a/src/Duration.cpp +++ b/src/Duration.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/E9.cpp b/src/E9.cpp index 1119a0383..7464ebd4c 100644 --- a/src/E9.cpp +++ b/src/E9.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/File.cpp b/src/File.cpp index e7b5abea7..0655a7cd7 100644 --- a/src/File.cpp +++ b/src/File.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include @@ -32,7 +33,6 @@ #include #include #include -#include #include #include diff --git a/src/Hooks.cpp b/src/Hooks.cpp index 807f107ce..62c562f6f 100644 --- a/src/Hooks.cpp +++ b/src/Hooks.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/Hooks.h b/src/Hooks.h index d0b6d81ec..7b4df6754 100644 --- a/src/Hooks.h +++ b/src/Hooks.h @@ -30,7 +30,6 @@ #include #include -#include // Hook class representing a single hook, which is just a three-way map. class Hook diff --git a/src/JSON.cpp b/src/JSON.cpp index 671717607..dcb60dc89 100644 --- a/src/JSON.cpp +++ b/src/JSON.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/Msg.cpp b/src/Msg.cpp index b5f2866b9..3f34d6023 100644 --- a/src/Msg.cpp +++ b/src/Msg.cpp @@ -25,9 +25,9 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include -#include //////////////////////////////////////////////////////////////////////////////// Msg::Msg () diff --git a/src/Nibbler.cpp b/src/Nibbler.cpp index 33b32c5ed..4cc7fbfa5 100644 --- a/src/Nibbler.cpp +++ b/src/Nibbler.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include @@ -37,7 +38,6 @@ #ifdef NIBBLER_FEATURE_REGEX #include #endif -#include #include static const char* _uuid_pattern = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"; diff --git a/src/Nibbler.h b/src/Nibbler.h index dbf2304a0..418ad9d84 100644 --- a/src/Nibbler.h +++ b/src/Nibbler.h @@ -28,8 +28,6 @@ #ifndef INCLUDED_NIBBLER #define INCLUDED_NIBBLER -#include - #define NIBBLER_FEATURE_DATE //#undef NIBBLER_FEATURE_DATE diff --git a/src/Path.cpp b/src/Path.cpp index 80786bb3b..6afaafcd0 100644 --- a/src/Path.cpp +++ b/src/Path.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include @@ -35,7 +36,6 @@ #include #include #include -#include //////////////////////////////////////////////////////////////////////////////// std::ostream& operator<< (std::ostream& out, const Path& path) diff --git a/src/RX.cpp b/src/RX.cpp index 743182e8d..e9bd02a81 100644 --- a/src/RX.cpp +++ b/src/RX.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/TDB2.cpp b/src/TDB2.cpp index 58e17f62b..90ffb2b23 100644 --- a/src/TDB2.cpp +++ b/src/TDB2.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/Task.h b/src/Task.h index 6e0695f61..bb2204c4b 100644 --- a/src/Task.h +++ b/src/Task.h @@ -28,7 +28,6 @@ #ifndef INCLUDED_TASK #define INCLUDED_TASK -#include #include #include #include diff --git a/src/Taskmod.cpp b/src/Taskmod.cpp index f6aa24080..8f2981419 100644 --- a/src/Taskmod.cpp +++ b/src/Taskmod.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/Timer.cpp b/src/Timer.cpp index ad974f36c..4fbb50945 100644 --- a/src/Timer.cpp +++ b/src/Timer.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/Transport.cpp b/src/Transport.cpp index 9ac14ab76..65b1f6a80 100644 --- a/src/Transport.cpp +++ b/src/Transport.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/TransportCurl.cpp b/src/TransportCurl.cpp index ab5b51839..f9654777f 100644 --- a/src/TransportCurl.cpp +++ b/src/TransportCurl.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/TransportRSYNC.cpp b/src/TransportRSYNC.cpp index 088bd7d8e..f976c4d5f 100644 --- a/src/TransportRSYNC.cpp +++ b/src/TransportRSYNC.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/TransportSSH.cpp b/src/TransportSSH.cpp index d27bfdd72..8cfd2a1e2 100644 --- a/src/TransportSSH.cpp +++ b/src/TransportSSH.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/TransportShell.cpp b/src/TransportShell.cpp index f2f37d88e..8b613a304 100644 --- a/src/TransportShell.cpp +++ b/src/TransportShell.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/Uri.cpp b/src/Uri.cpp index 18c3a95c1..3fbe2b151 100644 --- a/src/Uri.cpp +++ b/src/Uri.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/ViewTask.cpp b/src/ViewTask.cpp index d1b0c0380..879df86a3 100644 --- a/src/ViewTask.cpp +++ b/src/ViewTask.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/ViewText.cpp b/src/ViewText.cpp index 7db106427..9b1c12037 100644 --- a/src/ViewText.cpp +++ b/src/ViewText.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColDate.cpp b/src/columns/ColDate.cpp index ca6d64247..86fb6abfc 100644 --- a/src/columns/ColDate.cpp +++ b/src/columns/ColDate.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColDepends.cpp b/src/columns/ColDepends.cpp index 7ac847545..b88581fed 100644 --- a/src/columns/ColDepends.cpp +++ b/src/columns/ColDepends.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColDescription.cpp b/src/columns/ColDescription.cpp index 7192ba65a..fa92c02b2 100644 --- a/src/columns/ColDescription.cpp +++ b/src/columns/ColDescription.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColDue.cpp b/src/columns/ColDue.cpp index c6bb82d69..08cffaf84 100644 --- a/src/columns/ColDue.cpp +++ b/src/columns/ColDue.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColEnd.cpp b/src/columns/ColEnd.cpp index 73d793537..6170805c5 100644 --- a/src/columns/ColEnd.cpp +++ b/src/columns/ColEnd.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include diff --git a/src/columns/ColEntry.cpp b/src/columns/ColEntry.cpp index 0f610357a..3f3d3d044 100644 --- a/src/columns/ColEntry.cpp +++ b/src/columns/ColEntry.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include diff --git a/src/columns/ColID.cpp b/src/columns/ColID.cpp index e187f8d54..680894594 100644 --- a/src/columns/ColID.cpp +++ b/src/columns/ColID.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColIMask.cpp b/src/columns/ColIMask.cpp index 430d598dd..ae0de23b7 100644 --- a/src/columns/ColIMask.cpp +++ b/src/columns/ColIMask.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColMask.cpp b/src/columns/ColMask.cpp index 324476e5a..c73b8c087 100644 --- a/src/columns/ColMask.cpp +++ b/src/columns/ColMask.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColModified.cpp b/src/columns/ColModified.cpp index e08b9fccd..f42b0c832 100644 --- a/src/columns/ColModified.cpp +++ b/src/columns/ColModified.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include diff --git a/src/columns/ColParent.cpp b/src/columns/ColParent.cpp index 8b878939b..638ca0480 100644 --- a/src/columns/ColParent.cpp +++ b/src/columns/ColParent.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColPriority.cpp b/src/columns/ColPriority.cpp index 6c47a9261..6dd1bc8ef 100644 --- a/src/columns/ColPriority.cpp +++ b/src/columns/ColPriority.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColProject.cpp b/src/columns/ColProject.cpp index a3f2d15df..149a48a65 100644 --- a/src/columns/ColProject.cpp +++ b/src/columns/ColProject.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColRecur.cpp b/src/columns/ColRecur.cpp index bb9159de8..25ef302c1 100644 --- a/src/columns/ColRecur.cpp +++ b/src/columns/ColRecur.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColScheduled.cpp b/src/columns/ColScheduled.cpp index af6f287a8..132dd064a 100644 --- a/src/columns/ColScheduled.cpp +++ b/src/columns/ColScheduled.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColStart.cpp b/src/columns/ColStart.cpp index b278decdd..5854fb8ae 100644 --- a/src/columns/ColStart.cpp +++ b/src/columns/ColStart.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColStatus.cpp b/src/columns/ColStatus.cpp index 9f482ab8e..b343be964 100644 --- a/src/columns/ColStatus.cpp +++ b/src/columns/ColStatus.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColString.cpp b/src/columns/ColString.cpp index eabdb3b34..5b5060493 100644 --- a/src/columns/ColString.cpp +++ b/src/columns/ColString.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColTags.cpp b/src/columns/ColTags.cpp index 7065c2c68..4e114b2aa 100644 --- a/src/columns/ColTags.cpp +++ b/src/columns/ColTags.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColUDA.cpp b/src/columns/ColUDA.cpp index d8f23fe7d..7c2ff865d 100644 --- a/src/columns/ColUDA.cpp +++ b/src/columns/ColUDA.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColUUID.cpp b/src/columns/ColUUID.cpp index 01b219275..203d17431 100644 --- a/src/columns/ColUUID.cpp +++ b/src/columns/ColUUID.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColUntil.cpp b/src/columns/ColUntil.cpp index 425cf6779..8781fabf8 100644 --- a/src/columns/ColUntil.cpp +++ b/src/columns/ColUntil.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include diff --git a/src/columns/ColUrgency.cpp b/src/columns/ColUrgency.cpp index cbfb752be..386c9b17f 100644 --- a/src/columns/ColUrgency.cpp +++ b/src/columns/ColUrgency.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/columns/ColWait.cpp b/src/columns/ColWait.cpp index f2b8ca909..ba8c50d3e 100644 --- a/src/columns/ColWait.cpp +++ b/src/columns/ColWait.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include diff --git a/src/columns/Column.cpp b/src/columns/Column.cpp index 81bf92764..13be73a29 100644 --- a/src/columns/Column.cpp +++ b/src/columns/Column.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdAdd.cpp b/src/commands/CmdAdd.cpp index 7cd1a5bde..bc006b2c2 100644 --- a/src/commands/CmdAdd.cpp +++ b/src/commands/CmdAdd.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdAliases.cpp b/src/commands/CmdAliases.cpp index d03c00b3d..5b7bb9802 100644 --- a/src/commands/CmdAliases.cpp +++ b/src/commands/CmdAliases.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdAnnotate.cpp b/src/commands/CmdAnnotate.cpp index b645e232e..9915951ad 100644 --- a/src/commands/CmdAnnotate.cpp +++ b/src/commands/CmdAnnotate.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdAppend.cpp b/src/commands/CmdAppend.cpp index ee44c718d..f42b94087 100644 --- a/src/commands/CmdAppend.cpp +++ b/src/commands/CmdAppend.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdBurndown.cpp b/src/commands/CmdBurndown.cpp index e3a82e4f9..fb1cea742 100644 --- a/src/commands/CmdBurndown.cpp +++ b/src/commands/CmdBurndown.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdCalendar.cpp b/src/commands/CmdCalendar.cpp index 88ca0d440..08196f0ff 100644 --- a/src/commands/CmdCalendar.cpp +++ b/src/commands/CmdCalendar.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdColor.cpp b/src/commands/CmdColor.cpp index 1abe11591..1fa91a5b6 100644 --- a/src/commands/CmdColor.cpp +++ b/src/commands/CmdColor.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdColumns.cpp b/src/commands/CmdColumns.cpp index 55db550d3..ee2bdae49 100644 --- a/src/commands/CmdColumns.cpp +++ b/src/commands/CmdColumns.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdCommands.cpp b/src/commands/CmdCommands.cpp index 59fe63291..9494c3154 100644 --- a/src/commands/CmdCommands.cpp +++ b/src/commands/CmdCommands.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdConfig.cpp b/src/commands/CmdConfig.cpp index fc51b9ba7..204d90a5f 100644 --- a/src/commands/CmdConfig.cpp +++ b/src/commands/CmdConfig.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdCount.cpp b/src/commands/CmdCount.cpp index 7f5cb00cd..ab2c21fc1 100644 --- a/src/commands/CmdCount.cpp +++ b/src/commands/CmdCount.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdCustom.cpp b/src/commands/CmdCustom.cpp index 8a6715e2a..6c729dc61 100644 --- a/src/commands/CmdCustom.cpp +++ b/src/commands/CmdCustom.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdDelete.cpp b/src/commands/CmdDelete.cpp index e48586297..4e3878609 100644 --- a/src/commands/CmdDelete.cpp +++ b/src/commands/CmdDelete.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdDenotate.cpp b/src/commands/CmdDenotate.cpp index ab5286ff9..32a756f2d 100644 --- a/src/commands/CmdDenotate.cpp +++ b/src/commands/CmdDenotate.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdDiagnostics.cpp b/src/commands/CmdDiagnostics.cpp index bbe624407..aa1caf76b 100644 --- a/src/commands/CmdDiagnostics.cpp +++ b/src/commands/CmdDiagnostics.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include @@ -34,7 +35,6 @@ #include #include #include -#include #include #ifdef HAVE_LIBGNUTLS diff --git a/src/commands/CmdDone.cpp b/src/commands/CmdDone.cpp index f3cbafffa..2dedfee14 100644 --- a/src/commands/CmdDone.cpp +++ b/src/commands/CmdDone.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdDuplicate.cpp b/src/commands/CmdDuplicate.cpp index 515367f2a..ea9a76bb0 100644 --- a/src/commands/CmdDuplicate.cpp +++ b/src/commands/CmdDuplicate.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdEdit.cpp b/src/commands/CmdEdit.cpp index 8e49eaebb..03b24f718 100644 --- a/src/commands/CmdEdit.cpp +++ b/src/commands/CmdEdit.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdExec.cpp b/src/commands/CmdExec.cpp index 79979b41f..e7b371aad 100644 --- a/src/commands/CmdExec.cpp +++ b/src/commands/CmdExec.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdExport.cpp b/src/commands/CmdExport.cpp index a1fdb26ca..6e9bcab91 100644 --- a/src/commands/CmdExport.cpp +++ b/src/commands/CmdExport.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdHelp.cpp b/src/commands/CmdHelp.cpp index 2a6585987..69f80a71a 100644 --- a/src/commands/CmdHelp.cpp +++ b/src/commands/CmdHelp.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdHistory.cpp b/src/commands/CmdHistory.cpp index ea260874f..3a45a37df 100644 --- a/src/commands/CmdHistory.cpp +++ b/src/commands/CmdHistory.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdIDs.cpp b/src/commands/CmdIDs.cpp index 3039f0df9..8045c0477 100644 --- a/src/commands/CmdIDs.cpp +++ b/src/commands/CmdIDs.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdImport.cpp b/src/commands/CmdImport.cpp index 268264f0e..9d54d7816 100644 --- a/src/commands/CmdImport.cpp +++ b/src/commands/CmdImport.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdInfo.cpp b/src/commands/CmdInfo.cpp index 375a8dd8f..79d6c70d2 100644 --- a/src/commands/CmdInfo.cpp +++ b/src/commands/CmdInfo.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdInstall.cpp b/src/commands/CmdInstall.cpp index 66d8118b6..10f71bbdb 100644 --- a/src/commands/CmdInstall.cpp +++ b/src/commands/CmdInstall.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdLog.cpp b/src/commands/CmdLog.cpp index e56e5b868..a6ac2e3b9 100644 --- a/src/commands/CmdLog.cpp +++ b/src/commands/CmdLog.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdLogo.cpp b/src/commands/CmdLogo.cpp index 16143d055..0558f3674 100644 --- a/src/commands/CmdLogo.cpp +++ b/src/commands/CmdLogo.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdMerge.cpp b/src/commands/CmdMerge.cpp index 74abc7409..31868c613 100644 --- a/src/commands/CmdMerge.cpp +++ b/src/commands/CmdMerge.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdModify.cpp b/src/commands/CmdModify.cpp index 7642f2243..b6d3d7258 100644 --- a/src/commands/CmdModify.cpp +++ b/src/commands/CmdModify.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdPrepend.cpp b/src/commands/CmdPrepend.cpp index 3bb88e938..955542b95 100644 --- a/src/commands/CmdPrepend.cpp +++ b/src/commands/CmdPrepend.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdProjects.cpp b/src/commands/CmdProjects.cpp index 8cce234bb..bb2204038 100644 --- a/src/commands/CmdProjects.cpp +++ b/src/commands/CmdProjects.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdPull.cpp b/src/commands/CmdPull.cpp index 710654251..40dcbed3a 100644 --- a/src/commands/CmdPull.cpp +++ b/src/commands/CmdPull.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdPush.cpp b/src/commands/CmdPush.cpp index 8cdc452b4..43c84d26a 100644 --- a/src/commands/CmdPush.cpp +++ b/src/commands/CmdPush.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdReports.cpp b/src/commands/CmdReports.cpp index a8c500934..d42fa90a4 100644 --- a/src/commands/CmdReports.cpp +++ b/src/commands/CmdReports.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdShow.cpp b/src/commands/CmdShow.cpp index c5fea0d99..785e64a83 100644 --- a/src/commands/CmdShow.cpp +++ b/src/commands/CmdShow.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdStart.cpp b/src/commands/CmdStart.cpp index 8e0bd0410..dbfbf42c4 100644 --- a/src/commands/CmdStart.cpp +++ b/src/commands/CmdStart.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdStats.cpp b/src/commands/CmdStats.cpp index b61a6e87a..99bc01331 100644 --- a/src/commands/CmdStats.cpp +++ b/src/commands/CmdStats.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdStop.cpp b/src/commands/CmdStop.cpp index 1f6a0f6f5..7dc91d78c 100644 --- a/src/commands/CmdStop.cpp +++ b/src/commands/CmdStop.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdSummary.cpp b/src/commands/CmdSummary.cpp index b93cfb78d..bfa491468 100644 --- a/src/commands/CmdSummary.cpp +++ b/src/commands/CmdSummary.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdTags.cpp b/src/commands/CmdTags.cpp index 5910b016e..49d513f2b 100644 --- a/src/commands/CmdTags.cpp +++ b/src/commands/CmdTags.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdTimesheet.cpp b/src/commands/CmdTimesheet.cpp index 088adb106..082b17b30 100644 --- a/src/commands/CmdTimesheet.cpp +++ b/src/commands/CmdTimesheet.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdUDAs.cpp b/src/commands/CmdUDAs.cpp index 14154e2a8..1267d224a 100644 --- a/src/commands/CmdUDAs.cpp +++ b/src/commands/CmdUDAs.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdUndo.cpp b/src/commands/CmdUndo.cpp index 994feb968..44990f6dc 100644 --- a/src/commands/CmdUndo.cpp +++ b/src/commands/CmdUndo.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdUrgency.cpp b/src/commands/CmdUrgency.cpp index 5899f71e6..5da77c3cd 100644 --- a/src/commands/CmdUrgency.cpp +++ b/src/commands/CmdUrgency.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/commands/CmdVersion.cpp b/src/commands/CmdVersion.cpp index 2449ac583..fc8e2ebee 100644 --- a/src/commands/CmdVersion.cpp +++ b/src/commands/CmdVersion.cpp @@ -25,11 +25,11 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include #include -#include #include #include #include diff --git a/src/commands/Command.cpp b/src/commands/Command.cpp index 5f8ca16c6..574040a6e 100644 --- a/src/commands/Command.cpp +++ b/src/commands/Command.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include @@ -35,7 +36,6 @@ #include #include #include -#include #include #include diff --git a/src/dependency.cpp b/src/dependency.cpp index 630107682..464d3c6d7 100644 --- a/src/dependency.cpp +++ b/src/dependency.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/feedback.cpp b/src/feedback.cpp index c4037fb3c..9b38b3d3f 100644 --- a/src/feedback.cpp +++ b/src/feedback.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include @@ -38,7 +39,6 @@ #include #include #include -#include extern Context context; diff --git a/src/interactive.cpp b/src/interactive.cpp index d991caa2a..e23fc7f14 100644 --- a/src/interactive.cpp +++ b/src/interactive.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include @@ -32,7 +33,6 @@ #include #include #include -#include #ifdef SOLARIS #include diff --git a/src/legacy.cpp b/src/legacy.cpp index eabb98122..63fb9a4aa 100644 --- a/src/legacy.cpp +++ b/src/legacy.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/main.cpp b/src/main.cpp index 5620b259d..7440024fd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include @@ -37,7 +38,6 @@ #include #include -#include Context context; diff --git a/src/main.h b/src/main.h index 89a54c180..c16be99fa 100644 --- a/src/main.h +++ b/src/main.h @@ -38,7 +38,6 @@ #include #include #include -#include // recur.cpp void handleRecurrence (); diff --git a/src/recur.cpp b/src/recur.cpp index dd1ff78f7..42847cf51 100644 --- a/src/recur.cpp +++ b/src/recur.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/rules.cpp b/src/rules.cpp index 40185ef12..e1c24fd49 100644 --- a/src/rules.cpp +++ b/src/rules.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/shell/Readline.cpp b/src/shell/Readline.cpp index 9de676181..163d69eab 100644 --- a/src/shell/Readline.cpp +++ b/src/shell/Readline.cpp @@ -25,10 +25,10 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include -#include #include #ifdef HAVE_READLINE diff --git a/src/shell/main.cpp b/src/shell/main.cpp index eb827e3e6..af74fdacf 100644 --- a/src/shell/main.cpp +++ b/src/shell/main.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/sort.cpp b/src/sort.cpp index fd200c4b0..18ff15e09 100644 --- a/src/sort.cpp +++ b/src/sort.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/text.cpp b/src/text.cpp index 28815868d..4a49ff1af 100644 --- a/src/text.cpp +++ b/src/text.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/text.h b/src/text.h index 3bbc7b8b0..cb587ab16 100644 --- a/src/text.h +++ b/src/text.h @@ -30,7 +30,6 @@ #include #include -#include // text.cpp, Non-UTF-8 aware. void wrapText (std::vector &, const std::string&, const int, bool); diff --git a/src/utf8.cpp b/src/utf8.cpp index 51ff4d20b..73b0ee868 100644 --- a/src/utf8.cpp +++ b/src/utf8.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/src/util.cpp b/src/util.cpp index 22540c358..f7b9fe073 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include @@ -50,7 +51,6 @@ #include #include #include -#include extern Context context; diff --git a/src/util.h b/src/util.h index db6f5ee9b..ac114feb0 100644 --- a/src/util.h +++ b/src/util.h @@ -33,7 +33,6 @@ #include #include #include -#include #ifdef HAVE_UUID #include diff --git a/test/autocomplete.t.cpp b/test/autocomplete.t.cpp index 7168a1621..524e8dab9 100644 --- a/test/autocomplete.t.cpp +++ b/test/autocomplete.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/color.t.cpp b/test/color.t.cpp index 209583599..91cafa774 100644 --- a/test/color.t.cpp +++ b/test/color.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/config.t.cpp b/test/config.t.cpp index 5615e2613..a63e2b83a 100644 --- a/test/config.t.cpp +++ b/test/config.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/date.t.cpp b/test/date.t.cpp index 618fa750e..962e7debe 100644 --- a/test/date.t.cpp +++ b/test/date.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/directory.t.cpp b/test/directory.t.cpp index 6408dcad2..9b3f6f19e 100644 --- a/test/directory.t.cpp +++ b/test/directory.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/dom.t.cpp b/test/dom.t.cpp index 9f55b3a87..b322606f6 100644 --- a/test/dom.t.cpp +++ b/test/dom.t.cpp @@ -25,9 +25,9 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include -#include #include #include diff --git a/test/duration.t.cpp b/test/duration.t.cpp index 12ee71b26..bf07eb2fa 100644 --- a/test/duration.t.cpp +++ b/test/duration.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/file.t.cpp b/test/file.t.cpp index e6684658b..b675a6c20 100644 --- a/test/file.t.cpp +++ b/test/file.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/i18n.t.cpp b/test/i18n.t.cpp index cfb4fc56c..bd834618c 100644 --- a/test/i18n.t.cpp +++ b/test/i18n.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/json.t.cpp b/test/json.t.cpp index c19a08748..aa4f47894 100644 --- a/test/json.t.cpp +++ b/test/json.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/json_test.cpp b/test/json_test.cpp index d2a266583..77e622167 100644 --- a/test/json_test.cpp +++ b/test/json_test.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/list.t.cpp b/test/list.t.cpp index 39c56ac1c..0226e50f3 100644 --- a/test/list.t.cpp +++ b/test/list.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/msg.t.cpp b/test/msg.t.cpp index c856dfeb5..61fb7eff5 100644 --- a/test/msg.t.cpp +++ b/test/msg.t.cpp @@ -25,10 +25,10 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include -#include #include Context context; diff --git a/test/nibbler.t.cpp b/test/nibbler.t.cpp index 9f4326a82..383f7c066 100644 --- a/test/nibbler.t.cpp +++ b/test/nibbler.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #ifdef NIBBLER_FEATURE_DATE diff --git a/test/path.t.cpp b/test/path.t.cpp index 08e9a71a8..073f6ed35 100644 --- a/test/path.t.cpp +++ b/test/path.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/rx.t.cpp b/test/rx.t.cpp index 01b7578f6..668cccebf 100644 --- a/test/rx.t.cpp +++ b/test/rx.t.cpp @@ -25,9 +25,9 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include -#include #include Context context; diff --git a/test/t.t.cpp b/test/t.t.cpp index a939d484e..d4c74454a 100644 --- a/test/t.t.cpp +++ b/test/t.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include diff --git a/test/t2.t.cpp b/test/t2.t.cpp index a3200726c..0023b4d3b 100644 --- a/test/t2.t.cpp +++ b/test/t2.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/t3.t.cpp b/test/t3.t.cpp index ec92c1ab1..c250e42df 100644 --- a/test/t3.t.cpp +++ b/test/t3.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/taskmod.t.cpp b/test/taskmod.t.cpp index a7feb1f38..6776a1c82 100644 --- a/test/taskmod.t.cpp +++ b/test/taskmod.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/tdb2.t.cpp b/test/tdb2.t.cpp index 4f1d531be..b1c2c9f4e 100644 --- a/test/tdb2.t.cpp +++ b/test/tdb2.t.cpp @@ -25,9 +25,9 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include - #include #include diff --git a/test/test.cpp b/test/test.cpp index 82bcf73e5..90d36d0df 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/text.t.cpp b/test/text.t.cpp index d196fdaac..b9ce48229 100644 --- a/test/text.t.cpp +++ b/test/text.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/uri.t.cpp b/test/uri.t.cpp index bda95add5..24dac50ba 100644 --- a/test/uri.t.cpp +++ b/test/uri.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/utf8.t.cpp b/test/utf8.t.cpp index be7cf4e9d..463e7e9e6 100644 --- a/test/utf8.t.cpp +++ b/test/utf8.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/util.t.cpp b/test/util.t.cpp index 93eb41d0e..e03e25f68 100644 --- a/test/util.t.cpp +++ b/test/util.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/view.t.cpp b/test/view.t.cpp index e85fe289c..191bfb514 100644 --- a/test/view.t.cpp +++ b/test/view.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include diff --git a/test/width.t.cpp b/test/width.t.cpp index d0534bdf6..aec637504 100644 --- a/test/width.t.cpp +++ b/test/width.t.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include #include #include #include From 530e9c01182a1c0cfcfe781e1b7a5f0ab16ccf1e Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Fri, 31 May 2013 16:17:47 -0400 Subject: [PATCH 033/173] Unit Tests - Corrected unit tests due to rc.print.empty.columns. (cherry picked from commit af12285d4585c1274d8d005ba042f31158527e3e) --- test/import.yaml.t | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/test/import.yaml.t b/test/import.yaml.t index 0af9a8964..f54b544b7 100755 --- a/test/import.yaml.t +++ b/test/import.yaml.t @@ -81,10 +81,10 @@ my $output = qx{../src/task rc:import.rc import import.json 2>&1 >/dev/null}; like ($output, qr/Imported 3 tasks\./, '3 tasks imported'); $output = qx{../src/task rc:import.rc list 2>&1}; -# ID Project Pri Due Active Age Description -# -- ------- --- --- ------ ------- ----------- -# 1 A 1.5 yrs zero -# 2 B 1.5 yrs one +# ID Project Age Description +# -- ------- ------- ----------- +# 1 A 1.5 yrs zero +# 2 B 1.5 yrs one # # 2 tasks @@ -93,14 +93,14 @@ like ($output, qr/2.+B.+one/, 't2 present'); unlike ($output, qr/3.+two/, 't3 missing'); $output = qx{../src/task rc:import.rc completed 2>&1}; -# Complete Project Pri Age Description -# --------- ------- --- ------- ----------- -# 2/13/2009 1.5 yrs two +# Complete Age Description +# --------- ------- ----------- +# 2/13/2009 1.5 yrs two # # 1 task -unlike ($output, qr/1.+A.+zero/, 't1 missing'); -unlike ($output, qr/2.+B.+one/, 't2 missing'); +unlike ($output, qr/1.+A.+zero/, 't1 missing'); +unlike ($output, qr/2.+B.+one/, 't2 missing'); like ($output, qr/9\/4\/2011.+two/, 't3 present'); # Make sure that a duplicate task cannot be imported. @@ -144,7 +144,7 @@ like ($output, qr/2.+B.+one/, 't2 present'); like ($output, qr/3.+three/, 't3 present'); # Cleanup. -unlink qw(pending.data completed.data undo.data backlog.data import.rc import.txt import.json); +unlink qw(pending.data completed.data undo.data backlog.data import.rc import.txt import.json); ok (! -r 'pending.data' && ! -r 'completed.data' && ! -r 'undo.data' && From dd0b01e487e0c3c20f9efc108234d38ac03ed8a9 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Fri, 31 May 2013 16:20:05 -0400 Subject: [PATCH 034/173] Code Sharing - Cleaned up the #ifdef in Task.cpp for sharing with taskd. (cherry picked from commit af94ac2e12d84fddb735d6931aaf2c46176c794c) --- src/TDB2.cpp | 6 +++--- src/Task.cpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/TDB2.cpp b/src/TDB2.cpp index 90ffb2b23..15d0d1fab 100644 --- a/src/TDB2.cpp +++ b/src/TDB2.cpp @@ -1753,9 +1753,9 @@ int TDB2::next_id () const std::vector TDB2::all_tasks () { std::vector all (pending._tasks.size () + - pending._added_tasks.size () + - completed._tasks.size () + - completed._added_tasks.size ()); + pending._added_tasks.size () + + completed._tasks.size () + + completed._added_tasks.size ()); all = pending.get_tasks (); std::vector extra (completed._tasks.size () + diff --git a/src/Task.cpp b/src/Task.cpp index 7f9b5a7cb..e38cc22df 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -58,6 +58,7 @@ extern Context context; static const float epsilon = 0.000001; +#endif std::string Task::defaultProject = ""; std::string Task::defaultPriority = ""; @@ -79,7 +80,6 @@ float Task::urgencyNextCoefficient = 0.0; float Task::urgencyDueCoefficient = 0.0; float Task::urgencyBlockingCoefficient = 0.0; float Task::urgencyAgeCoefficient = 0.0; -#endif static const std::string dummy (""); From 29e9dbcea6108efd89223b4206078ec1e5f46705 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 2 Jun 2013 17:44:02 -0400 Subject: [PATCH 035/173] Convergence - Task.{h,cpp} code is converging on a shared taskwarrior/task server version. --- .gitignore | 1 + src/Context.cpp | 1 + src/Task.cpp | 34 +++++++++++++++------------------- src/Task.h | 7 +------ 4 files changed, 18 insertions(+), 25 deletions(-) diff --git a/.gitignore b/.gitignore index a2d1518d9..dc47bf789 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ install_manifest.txt _CPack_Packages CPackConfig.cmake CPackSourceConfig.cmake +patches diff --git a/src/Context.cpp b/src/Context.cpp index 8fcf2c981..0b4c44537 100644 --- a/src/Context.cpp +++ b/src/Context.cpp @@ -597,6 +597,7 @@ void Context::staticInitialization () Task::urgencyDueCoefficient = config.getReal ("urgency.due.coefficient"); Task::urgencyBlockingCoefficient = config.getReal ("urgency.blocking.coefficient"); Task::urgencyAgeCoefficient = config.getReal ("urgency.age.coefficient"); + Task::urgencyAgeMax = config.getReal ("urgency.age.max"); // Tag- and project-specific coefficients. std::vector all; diff --git a/src/Task.cpp b/src/Task.cpp index e38cc22df..556534981 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -26,12 +26,10 @@ //////////////////////////////////////////////////////////////////////////////// #include -#ifdef PRODUCT_TASKWARRIOR #include -#endif #include -#ifdef PRODUCT_TASKWARRIOR #include +#ifdef PRODUCT_TASKWARRIOR #include #endif #include @@ -80,6 +78,7 @@ float Task::urgencyNextCoefficient = 0.0; float Task::urgencyDueCoefficient = 0.0; float Task::urgencyBlockingCoefficient = 0.0; float Task::urgencyAgeCoefficient = 0.0; +float Task::urgencyAgeMax = 0.0; static const std::string dummy (""); @@ -111,9 +110,7 @@ Task& Task::operator= (const Task& other) recalc_urgency = other.recalc_urgency; is_blocked = other.is_blocked; is_blocking = other.is_blocking; -#ifdef PRODUCT_TASKWARRIOR annotation_count = other.annotation_count; -#endif } return *this; @@ -143,9 +140,7 @@ Task::Task (const std::string& input) recalc_urgency = true; is_blocked = false; is_blocking = false; -#ifdef PRODUCT_TASKWARRIOR annotation_count = 0; -#endif parse (input); } @@ -714,14 +709,14 @@ std::string Task::composeF4 () const return ff4; } -#ifdef PRODUCT_TASKWARRIOR //////////////////////////////////////////////////////////////////////////////// std::string Task::composeJSON (bool decorate /*= false*/) const { std::stringstream out; out << "{"; - // ID inclusion is optional, not recommended. + // ID inclusion is optional, but not a good idea, because it remains correct + // only until the next gc. if (decorate) out << "\"id\":" << id << ","; @@ -733,11 +728,12 @@ std::string Task::composeJSON (bool decorate /*= false*/) const if (attributes_written) out << ","; - Column* column = context.columns[i->first]; + std::string type = Task::attributes[i->first]; + if (type == "") + type = "string"; // Date fields are written as ISO 8601. - if (column && - column->type () == "date") + if (type == "date") { Date d (i->second); out << "\"" @@ -810,17 +806,18 @@ std::string Task::composeJSON (bool decorate /*= false*/) const out << "]"; } +#ifdef PRODUCT_TASKWARRIOR // Include urgency. if (decorate) out << "," << "\"urgency\":\"" << urgency_c () <<"\""; +#endif out << "}"; return out.str (); } -#endif //////////////////////////////////////////////////////////////////////////////// bool Task::hasAnnotations () const @@ -1478,7 +1475,6 @@ int Task::determineVersion (const std::string& line) return 0; } -#ifdef PRODUCT_TASKWARRIOR //////////////////////////////////////////////////////////////////////////////// // Urgency is defined as a polynomial, the value of which is calculated in this // function, according to: @@ -1497,6 +1493,7 @@ int Task::determineVersion (const std::string& line) float Task::urgency_c () const { float value = 0.0; +#ifdef PRODUCT_TASKWARRIOR value += fabsf (Task::urgencyPriorityCoefficient) > epsilon ? (urgency_priority () * Task::urgencyPriorityCoefficient) : 0.0; value += fabsf (Task::urgencyProjectCoefficient) > epsilon ? (urgency_project () * Task::urgencyProjectCoefficient) : 0.0; value += fabsf (Task::urgencyActiveCoefficient) > epsilon ? (urgency_active () * Task::urgencyActiveCoefficient) : 0.0; @@ -1566,6 +1563,7 @@ float Task::urgency_c () const } } } +#endif return value; } @@ -1709,13 +1707,12 @@ float Task::urgency_age () const Date now; Date entry (get_date ("entry")); - int age = (now - entry) / 86400; // in days - float max = context.config.getReal ("urgency.age.max"); + int age = (now - entry) / 86400; // in days - if (max == 0 || age > max) + if (Task::urgencyAgeMax == 0 || age > Task::urgencyAgeMax) return 1.0; - return (1.0 * age/max); + return (1.0 * age / Task::urgencyAgeMax); } //////////////////////////////////////////////////////////////////////////////// @@ -1726,6 +1723,5 @@ float Task::urgency_blocking () const return 0.0; } -#endif //////////////////////////////////////////////////////////////////////////////// diff --git a/src/Task.h b/src/Task.h index bb2204c4b..826adb671 100644 --- a/src/Task.h +++ b/src/Task.h @@ -55,6 +55,7 @@ public: static float urgencyDueCoefficient; static float urgencyBlockingCoefficient; static float urgencyAgeCoefficient; + static float urgencyAgeMax; public: Task (); // Default constructor @@ -66,9 +67,7 @@ public: void parse (const std::string&); std::string composeF4 () const; -#ifdef PRODUCT_TASKWARRIOR std::string composeJSON (bool decorate = false) const; -#endif // Status values. enum status {pending, completed, deleted, recurring, waiting}; @@ -141,10 +140,8 @@ public: void validate (bool applyDefault = true); -#ifdef PRODUCT_TASKWARRIOR float urgency_c () const; float urgency (); -#endif private: int determineVersion (const std::string&); @@ -152,7 +149,6 @@ private: void parseLegacy (const std::string&); void validate_before (const std::string&, const std::string&); -#ifdef PRODUCT_TASKWARRIOR inline float urgency_priority () const; inline float urgency_project () const; inline float urgency_active () const; @@ -165,7 +161,6 @@ private: inline float urgency_due () const; inline float urgency_blocking () const; inline float urgency_age () const; -#endif }; #endif From 4133d29cca57284e0b9b55f5b51f1a207a3179df Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 2 Jun 2013 20:38:58 -0400 Subject: [PATCH 036/173] FF4/JSON Interop - Removed the \n characters from Task::composeFF4 and Task::ComposeJSON. - Tasks in backlog.data file are now written as JSON. - Tasks are recognized in FF4 or JSON format. --- src/TDB2.cpp | 24 ++++++---------- src/Task.cpp | 76 +++++++++++++++++++++++++++---------------------- src/Taskmod.cpp | 4 +-- test/t2.t.cpp | 8 +++--- test/tdb2.t.cpp | 6 ++-- 5 files changed, 59 insertions(+), 59 deletions(-) diff --git a/src/TDB2.cpp b/src/TDB2.cpp index 15d0d1fab..8419bb295 100644 --- a/src/TDB2.cpp +++ b/src/TDB2.cpp @@ -223,7 +223,7 @@ void TF2::commit () task != _added_tasks.end (); ++task) { - _file.append (task->composeF4 ()); + _file.append (task->composeF4 () + "\n"); } _added_tasks.clear (); @@ -255,7 +255,7 @@ void TF2::commit () task != _tasks.end (); ++task) { - _file.append (task->composeF4 ()); + _file.append (task->composeF4 () + "\n"); } // Write out all the added lines. @@ -565,12 +565,12 @@ void TDB2::add (Task& task, bool add_to_backlog /* = true */) // new // --- undo.add_line ("time " + Date ().toEpochString () + "\n"); - undo.add_line ("new " + task.composeF4 ()); + undo.add_line ("new " + task.composeF4 () + "\n"); undo.add_line ("---\n"); // Add task to backlog. if (add_to_backlog) - backlog.add_task (task); + backlog.add_line (task.composeJSON () + "\n"); } //////////////////////////////////////////////////////////////////////////////// @@ -597,13 +597,13 @@ void TDB2::modify (Task& task, bool add_to_backlog /* = true */) // new // --- undo.add_line ("time " + Date ().toEpochString () + "\n"); - undo.add_line ("old " + original.composeF4 ()); - undo.add_line ("new " + task.composeF4 ()); + undo.add_line ("old " + original.composeF4 () + "\n"); + undo.add_line ("new " + task.composeF4 () + "\n"); undo.add_line ("---\n"); // Add modified task to backlog. if (add_to_backlog) - backlog.add_task (task); + backlog.add_line (task.composeJSON () + "\n"); } } @@ -1112,9 +1112,7 @@ void TDB2::merge (const std::string& mergeFile) << "\n"; */ - // remove the \n from composeF4() string std::string newline = tmod.getAfter ().composeF4 (); - newline = newline.substr (0, newline.length ()-1); // does the tasks move to pending data? // this taskmod will not arise from @@ -1154,10 +1152,7 @@ void TDB2::merge (const std::string& mergeFile) cutOff (tmod.getBefore ().get ("description"), 10)) << "\n"; - // remove the \n from composeF4() string - // which will replace the current line std::string newline = tmod.getAfter ().composeF4 (); - newline = newline.substr (0, newline.length ()-1); // does the tasks move to completed data if ( (statusAfter == Task::completed) @@ -1215,10 +1210,7 @@ void TDB2::merge (const std::string& mergeFile) cutOff (tmod.getAfter ().get ("description"), 10)) << "\n"; - // remove the \n from composeF4() string - std::string newline = tmod.getAfter ().composeF4 (); - newline = newline.substr (0, newline.length ()-1); - pending_lines.push_back (newline); + pending_lines.push_back (tmod.getAfter ().composeF4 ()); } else { diff --git a/src/Task.cpp b/src/Task.cpp index 556534981..a70c1665b 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -399,49 +399,53 @@ void Task::parse (const std::string& input) try { // File format version 4, from 2009-5-16 - now, v1.7.1+ + // This is the parse format tried first, because it is most used. clear (); - Nibbler n (copy); - std::string line; - if (n.skip ('[') && - n.getUntil (']', line) && - n.skip (']') && - n.depleted ()) + if (copy[0] == '[') { - if (line.length () == 0) - throw std::string (STRING_RECORD_EMPTY); - - Nibbler nl (line); - std::string name; - std::string value; - while (!nl.depleted ()) + Nibbler n (copy); + std::string line; + if (n.skip ('[') && + n.getUntil (']', line) && + n.skip (']') && + n.depleted ()) { - if (nl.getUntil (':', name) && - nl.skip (':') && - nl.getQuoted ('"', value)) + if (line.length () == 0) + throw std::string (STRING_RECORD_EMPTY); + + Nibbler nl (line); + std::string name; + std::string value; + while (!nl.depleted ()) { - // Experimental legacy value translation of 'recur:m' --> 'recur:mo'. - if (name == "recur" && - digitsOnly (value.substr (0, value.length () - 1)) && - value[value.length () - 1] == 'm') - value += 'o'; + if (nl.getUntil (':', name) && + nl.skip (':') && + nl.getQuoted ('"', value)) + { + // Experimental legacy value translation of 'recur:m' --> 'recur:mo'. + if (name == "recur" && + digitsOnly (value.substr (0, value.length () - 1)) && + value[value.length () - 1] == 'm') + value += 'o'; - if (name.substr (0, 11) == "annotation_") - ++annotation_count; + if (name.substr (0, 11) == "annotation_") + ++annotation_count; - (*this)[name] = decode (json::decode (value)); + (*this)[name] = decode (json::decode (value)); + } + + nl.skip (' '); } - nl.skip (' '); + std::string remainder; + nl.getUntilEOS (remainder); + if (remainder.length ()) + throw std::string (STRING_RECORD_JUNK_AT_EOL); } - - std::string remainder; - nl.getUntilEOS (remainder); - if (remainder.length ()) - throw std::string (STRING_RECORD_JUNK_AT_EOL); } - else if (input[0] == '{') - parseJSON (input); + else if (copy[0] == '{') + parseJSON (copy); else throw std::string (STRING_RECORD_NOT_FF4); } @@ -686,7 +690,7 @@ void Task::parseLegacy (const std::string& line) //////////////////////////////////////////////////////////////////////////////// // The format is: // -// [ : ... ] \n +// [ : ... ] // std::string Task::composeF4 () const { @@ -705,7 +709,7 @@ std::string Task::composeF4 () const } } - ff4 += "]\n"; + ff4 += "]"; return ff4; } @@ -728,6 +732,10 @@ std::string Task::composeJSON (bool decorate /*= false*/) const if (attributes_written) out << ","; + // Annotations are not written out here. + if (i->first.substr (0, 11) == "annotation_") + continue; + std::string type = Task::attributes[i->first]; if (type == "") type = "string"; diff --git a/src/Taskmod.cpp b/src/Taskmod.cpp index 8f2981419..388a2f7dc 100644 --- a/src/Taskmod.cpp +++ b/src/Taskmod.cpp @@ -182,10 +182,10 @@ std::string Taskmod::toString () if (_bBeforeSet) { - stream << STRING_TASKMOD_OLD << _before.composeF4(); + stream << STRING_TASKMOD_OLD << _before.composeF4() << "\n"; } - stream << STRING_TASKMOD_NEW << _after.composeF4(); + stream << STRING_TASKMOD_NEW << _after.composeF4() << "\n"; stream << "---\n"; return stream.str (); diff --git a/test/t2.t.cpp b/test/t2.t.cpp index 0023b4d3b..33c179f6e 100644 --- a/test/t2.t.cpp +++ b/test/t2.t.cpp @@ -77,7 +77,7 @@ int main (int argc, char** argv) // Task::set task.clear (); task.set ("name", "value"); - t.is (task.composeF4 (), "[name:\"value\"]\n", "Task::set"); + t.is (task.composeF4 (), "[name:\"value\"]", "Task::set"); // Task::has t.ok (task.has ("name"), "Task::has"); @@ -85,18 +85,18 @@ int main (int argc, char** argv) // Task::get_int task.set ("one", 1); - t.is (task.composeF4 (), "[name:\"value\" one:\"1\"]\n", "Task::set"); + t.is (task.composeF4 (), "[name:\"value\" one:\"1\"]", "Task::set"); t.is (task.get_int ("one"), 1, "Task::get_int"); // Task::get_ulong task.set ("two", "4294967295"); - t.is (task.composeF4 (), "[name:\"value\" one:\"1\" two:\"4294967295\"]\n", "Task::set"); + t.is (task.composeF4 (), "[name:\"value\" one:\"1\" two:\"4294967295\"]", "Task::set"); t.is ((size_t)task.get_ulong ("two"), (size_t)4294967295UL, "Task::get_ulong"); // Task::remove task.remove ("one"); task.remove ("two"); - t.is (task.composeF4 (), "[name:\"value\"]\n", "Task::remove"); + t.is (task.composeF4 (), "[name:\"value\"]", "Task::remove"); // Task::all t.is (task.size (), (size_t)1, "Task::all size"); diff --git a/test/tdb2.t.cpp b/test/tdb2.t.cpp index b1c2c9f4e..1c4f4aff3 100644 --- a/test/tdb2.t.cpp +++ b/test/tdb2.t.cpp @@ -57,7 +57,7 @@ int main (int argc, char** argv) std::vector pending = context.tdb2.pending.get_tasks (); std::vector completed = context.tdb2.completed.get_tasks (); std::vector undo = context.tdb2.undo.get_lines (); - std::vector backlog = context.tdb2.backlog.get_tasks (); + std::vector backlog = context.tdb2.backlog.get_lines (); t.is ((int) pending.size (), 0, "TDB2 Read empty pending"); t.is ((int) completed.size (), 0, "TDB2 Read empty completed"); @@ -71,7 +71,7 @@ int main (int argc, char** argv) pending = context.tdb2.pending.get_tasks (); completed = context.tdb2.completed.get_tasks (); undo = context.tdb2.undo.get_lines (); - backlog = context.tdb2.backlog.get_tasks (); + backlog = context.tdb2.backlog.get_lines (); t.is ((int) pending.size (), 1, "TDB2 after add, 1 pending task"); t.is ((int) completed.size (), 0, "TDB2 after add, 0 completed tasks"); @@ -84,7 +84,7 @@ int main (int argc, char** argv) pending = context.tdb2.pending.get_tasks (); completed = context.tdb2.completed.get_tasks (); undo = context.tdb2.undo.get_lines (); - backlog = context.tdb2.backlog.get_tasks (); + backlog = context.tdb2.backlog.get_lines (); t.is ((int) pending.size (), 1, "TDB2 after add, 1 pending task"); t.is ((int) completed.size (), 0, "TDB2 after add, 0 completed tasks"); From 58084f6d7a1ccb05dacb3c9c4244e74b40ec3245 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 2 Jun 2013 22:38:20 -0400 Subject: [PATCH 037/173] Sync - Modifed the column 0 task indicator from '[' to '{', for backlog.data lines. --- src/commands/CmdSync.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index 1ca5af0be..8d44cf697 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -91,7 +91,7 @@ int CmdSync::execute (std::string& output) split (lines, payload, "\n"); std::vector ::iterator i; for (i = lines.begin (); i != lines.end (); ++i) - if ((*i)[0] == '[') + if ((*i)[0] == '{') ++upload_count; } @@ -132,7 +132,7 @@ int CmdSync::execute (std::string& output) std::vector ::iterator line; for (line = lines.begin (); line != lines.end (); ++line) { - if ((*line)[0] == '[') + if ((*line)[0] == '{') { ++download_count; From 8c11c6c895c54285fba74a9f6534a7d5a14e29d6 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 3 Jun 2013 00:44:25 -0400 Subject: [PATCH 038/173] Unit Tests - Added unit test to ensure correct F4 and JSON parse/compose. --- src/Task.cpp | 1 + test/t3.t.cpp | 29 +++++++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/Task.cpp b/src/Task.cpp index a70c1665b..b5d22ed63 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -475,6 +475,7 @@ void Task::parseJSON (const std::string& line) { // If the attribute is a recognized column. std::string type = Task::attributes[i->first]; + if (type != "") { // Any specified id is ignored. diff --git a/test/t3.t.cpp b/test/t3.t.cpp index c250e42df..d9746d7e2 100644 --- a/test/t3.t.cpp +++ b/test/t3.t.cpp @@ -36,7 +36,12 @@ Context context; //////////////////////////////////////////////////////////////////////////////// int main (int argc, char** argv) { - UnitTest t (2); + UnitTest t (9); + + Task::attributes["description"] = "string"; + Task::attributes["entry"] = "date"; + Task::attributes["tags"] = "string"; + Task::attributes["uuid"] = "string"; bool good = true; try {Task t1 ("{}");} @@ -44,10 +49,30 @@ int main (int argc, char** argv) t.ok (good, "Task::Task ('{}')"); good = true; - try {Task t2 ("{\"uuid\":\"00000000-0000-0000-000000000001\",\"description\":\"foo\",\"entry\":1234567890}");} + try {Task t2 ("{\"uuid\":\"00000000-0000-0000-000000000001\",\"description\":\"foo\",\"entry\":\"1234567890\"}");} catch (const std::string& e){t.diag (e); good = false;} t.ok (good, "Task::Task ('{}')"); + // Verify tag handling is correct between F4 and JSON. + Task t3; + t3.set ("entry", "20130602T224000Z"); + t3.set ("description", "DESC"); + t3.addTag ("tag1"); + t.is (t3.composeF4 (), "[description:\"DESC\" entry:\"20130602T224000Z\" tags:\"tag1\"]", "F4 good"); + t.is (t3.composeJSON (), "{\"description\":\"DESC\",\"entry\":\"20130602T224000Z\",\"tags\":[\"tag1\"]}", "JSON good"); + + t3.addTag ("tag2"); + t.is (t3.composeF4 (), "[description:\"DESC\" entry:\"20130602T224000Z\" tags:\"tag1,tag2\"]", "F4 good"); + t.is (t3.composeJSON (), "{\"description\":\"DESC\",\"entry\":\"20130602T224000Z\",\"tags\":[\"tag1\",\"tag2\"]}", "JSON good"); + + good = true; + Task t4; + try {t4 = Task ("{\"description\":\"DESC\",\"entry\":\"20130602T224000Z\",\"tags\":[\"tag1\",\"tag2\"]}");} + catch (const std::string& e){t.diag (e); good = false;} + t.ok (good, "Task::Task ('{two tags}')"); + t.is (t4.composeF4 (), "[description:\"DESC\" entry:\"1370212800\" tags:\"tag1,tag2\"]", "F4 good"); + t.is (t4.composeJSON (), "{\"description\":\"DESC\",\"entry\":\"20130602T224000Z\",\"tags\":[\"tag1\",\"tag2\"]}", "JSON good"); + return 0; } From d9676aefd40f9f19839535d626a11a751be4bee5 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 8 Jun 2013 15:08:02 -0400 Subject: [PATCH 039/173] Task Server - The old 'version' message header is now the 'client' message header. --- src/Msg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Msg.cpp b/src/Msg.cpp index 3f34d6023..7cd45ff10 100644 --- a/src/Msg.cpp +++ b/src/Msg.cpp @@ -35,7 +35,7 @@ Msg::Msg () { // All messages are marked with the version number, so that the messages may // be properly evaluated in context. - _header["version"] = PACKAGE_STRING; + _header["client"] = PACKAGE_STRING; } //////////////////////////////////////////////////////////////////////////////// From f13208479da464d5b66917d822f2870002d96411 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 8 Jun 2013 15:56:10 -0400 Subject: [PATCH 040/173] Unit Tests - Modified 'version' to 'client' in the msg.t tests. --- test/msg.t.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/msg.t.cpp b/test/msg.t.cpp index 61fb7eff5..70f75804a 100644 --- a/test/msg.t.cpp +++ b/test/msg.t.cpp @@ -39,16 +39,16 @@ int main (int argc, char** argv) UnitTest t (8); Msg m; - t.is (m.serialize (), std::string ("version: ") + PACKAGE_STRING + "\n\n\n", "Msg::serialize '' --> '\\n\\n'"); + t.is (m.serialize (), std::string ("client: ") + PACKAGE_STRING + "\n\n\n", "Msg::serialize '' --> '\\n\\n'"); m.set ("name", "value"); - t.is (m.serialize (), std::string ("name: value\nversion: ") + PACKAGE_STRING + "\n\n\n", "Msg::serialize 1 var"); + t.is (m.serialize (), std::string ("client: ") + PACKAGE_STRING + "\nname: value\n\n\n", "Msg::serialize 1 var"); m.set ("foo", "bar"); - t.is (m.serialize (), std::string ("foo: bar\nname: value\nversion: ") + PACKAGE_STRING + "\n\n\n", "Msg::serialize 2 vars"); + t.is (m.serialize (), std::string ("client: ") + PACKAGE_STRING + "\nfoo: bar\nname: value\n\n\n", "Msg::serialize 2 vars"); m.setPayload ("payload"); - t.is (m.serialize (), std::string ("foo: bar\nname: value\nversion: ") + PACKAGE_STRING + "\n\npayload\n", "Msg::serialize 2 vars + payload"); + t.is (m.serialize (), std::string ("client: ") + PACKAGE_STRING + "\nfoo: bar\nname: value\n\npayload\n", "Msg::serialize 2 vars + payload"); Msg m2; t.ok (m2.parse ("foo: bar\nname: value\n\npayload\n"), "Msg::parse ok"); From 14d3fd00e3f4981a9abd489b5d3cebf98035ab59 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 8 Jun 2013 18:00:50 -0400 Subject: [PATCH 041/173] Sync - Adds a new 'initialize' synchronize command argument that uploads all pending tasks for first-time initialization. --- ChangeLog | 2 ++ doc/man/task-sync.5.in | 2 +- src/commands/CmdSync.cpp | 46 ++++++++++++++++++++++++++++++---------- src/en-US.h | 2 ++ src/es-ES.h | 3 ++- src/fr-FR.h | 2 ++ src/it-IT.h | 2 ++ 7 files changed, 46 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index d1913c941..f61db1518 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,8 @@ Features + #1256 Supports default values for UDA fields (thanks to Thomas Sullivan). + Stores un-synched transactions in /backlog.data. + Adds a new 'synchronize' command to sync data with a task server. + + Adds a new 'initialize' synchronize command argument that uploads all pending + tasks for first-time initialization. + Adds a new 'sync' verbosity token, which will remind when a backlog builds up and needs a sync. + Supports IPv4 and IPv6 server addresses. diff --git a/doc/man/task-sync.5.in b/doc/man/task-sync.5.in index fa1cc3e25..479d3870b 100644 --- a/doc/man/task-sync.5.in +++ b/doc/man/task-sync.5.in @@ -340,7 +340,7 @@ need to retype the URI every time. You can also use this configuration scheme to set alias names, e.g. set pull.desktop.uri and run 'task pull desktop'. .RE -Note that, when using SSH/scp, hostnames will be expanded due to the ssh +Note that, when using SSH/scp, hostnames will be expanded due to the ssh configuration file ~/.ssh/config. .SH EXTERNAL DEPENDENCIES diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index 8d44cf697..8fc191fcc 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -42,7 +43,7 @@ extern Context context; CmdSync::CmdSync () { _keyword = "synchronize"; - _usage = "task synchronize"; + _usage = "task synchronize [initialize]"; _description = STRING_CMD_SYNC_USAGE; _read_only = false; _displays_id = false; @@ -58,6 +59,22 @@ int CmdSync::execute (std::string& output) std::stringstream out; + // Loog for the 'init' keyword to indicate one-time pending.data upload. + bool first_time_init = false; + std::vector words = context.a3.extract_words (); + std::vector ::iterator word; + for (word = words.begin (); word != words.end (); ++word) + { + if (closeEnough ("initialize", *word, 4)) + { + if (!context.config.getBoolean ("confirmation") || + confirm (STRING_CMD_SYNC_INIT)) + first_time_init = true; + else + throw std::string (STRING_CMD_SYNC_NO_INIT); + } + } + // If no server is set up, quit. std::string connection = context.config.get ("taskd.server"); if (connection == "" || @@ -78,21 +95,30 @@ int CmdSync::execute (std::string& output) if (certificate == "") throw std::string (STRING_CMD_SYNC_BAD_CERT); - // Read backlog.data. + // If this is a first-time initialization, send pending.data, not + // backlog.data. std::string payload = ""; - File backlog (context.config.get ("data.location") + "/backlog.data"); - if (backlog.exists ()) - backlog.read (payload); - - // Count the number of tasks being uploaded. int upload_count = 0; + if (first_time_init) { - std::vector lines; - split (lines, payload, "\n"); + std::vector pending = context.tdb2.pending.get_tasks (); + std::vector ::iterator i; + for (i = pending.begin (); i != pending.end (); ++i) + { + payload += i->composeJSON () + "\n"; + ++upload_count; + } + } + else + { + std::vector lines = context.tdb2.backlog.get_lines (); std::vector ::iterator i; for (i = lines.begin (); i != lines.end (); ++i) if ((*i)[0] == '{') + { + payload += *i + "\n"; ++upload_count; + } } // Send 'sync' + payload. @@ -103,8 +129,6 @@ int CmdSync::execute (std::string& output) request.set ("user", credentials[1]); request.set ("key", credentials[2]); - // TODO Add the other necessary header fields. - request.setPayload (payload); out << format (STRING_CMD_SYNC_PROGRESS, connection) diff --git a/src/en-US.h b/src/en-US.h index cf82bf804..e8fa1643f 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -418,6 +418,8 @@ #define STRING_CMD_SYNC_FAIL_CONNECT "Sync failed. Could not connect to the Task Server." #define STRING_CMD_SYNC_BAD_SERVER "Sync failed. Malformed configuration setting '{1}'" #define STRING_CMD_SYNC_NO_TLS "Taskwarrior was built without GnuTLS support. Sync is not available." +#define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Task Server?" +#define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." #define STRING_CMD_DIAG_USAGE "Platform, build and environment details" #define STRING_CMD_DIAG_PLATFORM "Platform" #define STRING_CMD_DIAG_UNKNOWN "" diff --git a/src/es-ES.h b/src/es-ES.h index fd6da7f30..2dafba366 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -429,7 +429,8 @@ #define STRING_CMD_SYNC_FAIL_CONNECT "Sincronización fallida. No se pudo conectar con el Servidor Task." #define STRING_CMD_SYNC_BAD_SERVER "Sincronización fallida. Ajuste de configuración '{1}' incorrecto" #define STRING_CMD_SYNC_NO_TLS "Taskwarrior was built without GnuTLS support. Sync is not available." - +#define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Task Server?" +#define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." #define STRING_CMD_DIAG_USAGE "Detalles de plataforma, construcción y entorno" #define STRING_CMD_DIAG_PLATFORM "Plataforma" #define STRING_CMD_DIAG_UNKNOWN "" diff --git a/src/fr-FR.h b/src/fr-FR.h index 4f2db021e..cd271ca9b 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -418,6 +418,8 @@ #define STRING_CMD_SYNC_FAIL_CONNECT "Sync failed. Could not connect to the Task Server." #define STRING_CMD_SYNC_BAD_SERVER "Sync failed. Malformed configuration setting '{1}'" #define STRING_CMD_SYNC_NO_TLS "Taskwarrior was built without GnuTLS support. Sync is not available." +#define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Task Server?" +#define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." #define STRING_CMD_DIAG_USAGE "Platform, build and environment details" #define STRING_CMD_DIAG_PLATFORM "Platform" #define STRING_CMD_DIAG_UNKNOWN "" diff --git a/src/it-IT.h b/src/it-IT.h index f65baec66..ec84b001e 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -419,6 +419,8 @@ #define STRING_CMD_SYNC_FAIL_CONNECT "Sincronizzazione fallita. Impossibile connettersi al Task Server." #define STRING_CMD_SYNC_BAD_SERVER "Sincronizzazione fallita. Impostazione di configurazione '{1}' malformata" #define STRING_CMD_SYNC_NO_TLS "Taskwarrior was built without GnuTLS support. Sync is not available." +#define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Task Server?" +#define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." #define STRING_CMD_DIAG_USAGE "Dettagli su piattaforma, build e ambiente" #define STRING_CMD_DIAG_PLATFORM "Piattaforma" #define STRING_CMD_DIAG_UNKNOWN "" From 907862b7418257514d9f93369f4c71ab7b933f1b Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 8 Jun 2013 18:18:03 -0400 Subject: [PATCH 042/173] Bug - Shortcut for counting backlog transactions was wrong. --- src/commands/CmdStats.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/CmdStats.cpp b/src/commands/CmdStats.cpp index 99bc01331..1293cbdf5 100644 --- a/src/commands/CmdStats.cpp +++ b/src/commands/CmdStats.cpp @@ -76,7 +76,7 @@ int CmdStats::execute (std::string& output) std::vector backlogTxns = context.tdb2.backlog.get_lines (); int backlogCount = 0; for (tx = backlogTxns.begin (); tx != backlogTxns.end (); ++tx) - if ((*tx)[0] == '[') + if ((*tx)[0] == '{') ++backlogCount; // Get all the tasks. From 8e5b57954d875ab7f7ad9fda6fea24bbd0187933 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 8 Jun 2013 23:34:06 -0400 Subject: [PATCH 043/173] TLS - Fixed loop termination bug. - Chose a better default buffer size. --- src/TLSClient.cpp | 4 ++-- src/commands/CmdSync.cpp | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index 627a2072d..f33ff1035 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -42,7 +42,7 @@ #include #include -#define MAX_BUF 1024 +#define MAX_BUF 16384 //////////////////////////////////////////////////////////////////////////////// static void gnutls_log_function (int level, const char* message) @@ -196,7 +196,7 @@ void TLSClient::send (const std::string& data) int total = 0; int remaining = packet.length (); - while (total < remaining) + while (total < packet.length ()) { int status; do diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index 8fc191fcc..e97ea6914 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -26,7 +26,6 @@ //////////////////////////////////////////////////////////////////////////////// #include -#include #include #include #include From 19077f76df499427551e2869ebfd1ad948d4dba4 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 9 Jun 2013 00:44:59 -0400 Subject: [PATCH 044/173] Bug - Fixed bug with backlog parsing. --- src/commands/CmdSync.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index e97ea6914..3fb4c0c00 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -113,11 +113,12 @@ int CmdSync::execute (std::string& output) std::vector lines = context.tdb2.backlog.get_lines (); std::vector ::iterator i; for (i = lines.begin (); i != lines.end (); ++i) + { if ((*i)[0] == '{') - { - payload += *i + "\n"; ++upload_count; - } + + payload += *i + "\n"; + } } // Send 'sync' + payload. From 11051fbf6146d5940335de2f0a83fc578e84808c Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 9 Jun 2013 00:54:47 -0400 Subject: [PATCH 045/173] Build - Eliminated build warnings. --- src/TLSClient.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index f33ff1035..c1c6ecaeb 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -193,8 +193,8 @@ void TLSClient::send (const std::string& data) packet[2] = l >>8; packet[3] = l; - int total = 0; - int remaining = packet.length (); + unsigned int total = 0; + unsigned int remaining = packet.length (); while (total < packet.length ()) { @@ -209,8 +209,8 @@ void TLSClient::send (const std::string& data) if (status == -1) break; - total += status; - remaining -= status; + total += (unsigned int) status; + remaining -= (unsigned int) status; } if (_debug) From 1072852ca81878c5169027de152222641ab9476d Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 9 Jun 2013 16:09:24 -0400 Subject: [PATCH 046/173] Bug - #1263 The 'waiting' report properly lists only pending tasks with a wait date (thanks to Fidel Mato). --- ChangeLog | 2 ++ src/Config.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index f61db1518..65a27263d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -43,6 +43,8 @@ Bugs (thanks to Jakub Wilk). + #1249 Build system now recognizes GNU/Hurd and GNU/kFreeBSD (thanks to Jakub Wilk). + + #1263 The 'waiting' report properly lists only pending tasks with a wait date + (thanks to Fidel Mato). + Fixed bug so that 'limit:page' now considers footnote messages. ------ old releases ------------------------------ diff --git a/src/Config.cpp b/src/Config.cpp index a23d3632c..50168cd48 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -376,7 +376,7 @@ std::string Config::_defaults = "report.waiting.columns=id,project,priority,wait,entry.age,description\n" "report.waiting.labels=ID,Proj,Pri,Wait,Age,Description\n" "report.waiting.sort=wait+,priority-,project+\n" - "report.waiting.filter=+WAITING\n" + "report.waiting.filter=status:waiting +WAITING\n" "\n" "report.all.description=Lists all pending and completed tasks\n" "report.all.columns=id,status,project,priority,due,end,start.active,entry.age,description\n" From 55a8b157b1cd3c5f500f1193a1a686eb369e8ee3 Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 10 Jun 2013 14:25:53 -0400 Subject: [PATCH 047/173] Migrated core task modification code to the Task object, leaving wrappers behind for legacy usage. --- src/Task.cpp | 227 +++++++++++++++++++++++++++++++++++++++ src/Task.h | 4 + src/commands/Command.cpp | 220 +------------------------------------ src/commands/Command.h | 2 - 4 files changed, 233 insertions(+), 220 deletions(-) diff --git a/src/Task.cpp b/src/Task.cpp index b5d22ed63..10ae25f0c 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -51,6 +51,8 @@ #ifdef PRODUCT_TASKWARRIOR #include +#include + #define APPROACHING_INFINITY 1000 // Close enough. This isn't rocket surgery. extern Context context; @@ -1734,3 +1736,228 @@ float Task::urgency_blocking () const } //////////////////////////////////////////////////////////////////////////////// +void Task::modify ( + const A3& arguments, + std::string& description) +{ + // Coalesce arguments together into sets to be processed as a batch. + unsigned int pos = 0; + Arg arg; + while ((*this).next_mod_group (arguments, arg, pos)) + { + // Attributes are essentially name:value pairs, and correspond directly + // to stored attributes. + if (arg._category == Arg::cat_attr) + { + std::string name; + std::string value; + A3::extract_attr (arg._raw, name, value); + if (A3::is_attribute (name, name)) // Canonicalize + { + //std::cout << "# Task::modify_task name='" << name << "' value='" << value << "'\n"; + + // Get the column info. + Column* column = context.columns[name]; + + if (value == "") + { + (*this).remove (name); + } + else + { + // Dependencies are used as IDs. + if (name == "depends") + { + // Parse IDs + std::vector deps; + split (deps, value, ','); + + // Apply or remove dendencies in turn. + std::vector ::iterator i; + for (i = deps.begin (); i != deps.end (); i++) + { + bool removal = false; + std::string& dep = *i; + + if (dep[0] == '-') + { + removal = true; + dep = i->substr(1, std::string::npos); + } + + std::vector ids; + // Crude UUID check + if (dep.length () == 36) + { + int id = context.tdb2.pending.id (dep); + ids.push_back (id); + } + else + A3::extract_id (dep, ids); + + std::vector ::iterator id; + for (id = ids.begin (); id != ids.end(); id++) + if (removal) + (*this).removeDependency (*id); + else + (*this).addDependency (*id); + } + } + + // Priorities are converted to upper case. + else if (name == "priority") + { + (*this).set (name, upperCase (value)); + } + + // Dates are special, maybe. + else if (column->type () == "date") + { + // All values must be eval'd first. + A3 value_tokens; + value_tokens.capture (value); + value_tokens = value_tokens.postfix (value_tokens.tokenize (value_tokens)); + + E9 e (value_tokens); + std::string result = e.evalExpression ((*this)); + context.debug (std::string ("Eval '") + value + "' --> '" + result + "'"); + + // If the date value is less than 5 years, it is a duration, not a + // date, therefore add 'now'. + long l = (long) strtod (result.c_str (), NULL); + if (labs (l) < 5 * 365 * 86400) + { + Duration dur (value); + Date now; + now += l; + (*this).set (name, now.toEpochString ()); + } + else + { + Date d (result, context.config.get ("dateformat")); + (*this).set (name, d.toEpochString ()); + } + } + + // Durations too. + else if (name == "recur" || + column->type () == "duration") + { + // All values must be eval'd first, in this case, just to catch errors. + A3 value_tokens; + value_tokens.capture (value); + value_tokens = value_tokens.postfix (value_tokens.tokenize (value_tokens)); + + E9 e (value_tokens); + std::string result = e.evalExpression ((*this)); + context.debug (std::string ("Eval '") + value + "' --> '" + result + "'"); + + Duration d (value); + + // Deliberately storing the 'raw' value, which is necessary for + // durations like 'weekday'.. + (*this).set (name, name == "recur" ? value : result); + } + + // Need handling for numeric types, used by UDAs. + else if (column->type () == "numeric") + { + A3 value_tokens; + value_tokens.capture (value); + value_tokens = value_tokens.postfix (value_tokens.tokenize (value_tokens)); + + E9 e (value_tokens); + std::string result = e.evalExpression ((*this)); + context.debug (std::string ("Eval '") + value + "' --> '" + result + "'"); + + Nibbler n (result); + double d; + if (n.getNumber (d) && + n.depleted ()) + (*this).set (name, result); + else + throw format (STRING_UDA_NUMERIC, result); + } + + // By default, just add/remove it. + else + { + if (column->validate (value)) + (*this).set (name, value); + else + throw format (STRING_INVALID_MOD, name, value); + } + + // Warn about deprecated/obsolete attribute usage. + legacyAttributeCheck (name); + } + } + else + throw format (STRING_CMD_ADD_BAD_ATTRIBUTE, name); + } + + // Tags need special handling because they are essentially a vector stored + // in a single string, therefore Task::{add,remove}Tag must be called as + // appropriate. + else if (arg._category == Arg::cat_tag) + { + char type; + std::string value; + A3::extract_tag (arg._raw, type, value); + + if (type == '+') + { + (*this).addTag (value); + feedback_special_tags ((*this), value); + } + else + (*this).removeTag (value); + } + + // Substitutions. + else if (arg._category == Arg::cat_subst) + { + std::string from; + std::string to; + bool global; + A3::extract_subst (arg._raw, from, to, global); + (*this).substitute (from, to, global); + } + + // Anything else is essentially downgraded to 'word' and considered part of + // the description. + else + { + if (description.length ()) + description += " "; + + description += arg._raw; + } + } +} + +//////////////////////////////////////////////////////////////////////////////// +// Special processing for modifications. +bool Task::next_mod_group (const A3& input, Arg& arg, unsigned int& pos) +{ + if (pos < input.size ()) + { + arg = input[pos++]; + + if (arg._raw == "depends") + { + while (pos < input.size () && + (input[pos]._category == Arg::cat_op || + input[pos]._type == Arg::type_number)) + { + arg._raw += input[pos++]._raw; + } + } + + return true; + } + + return false; +} + +//////////////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/Task.h b/src/Task.h index 826adb671..5fcb8525b 100644 --- a/src/Task.h +++ b/src/Task.h @@ -32,6 +32,7 @@ #include #include #include +#include class Task : public std::map { @@ -143,6 +144,9 @@ public: float urgency_c () const; float urgency (); + void modify (const A3&, std::string&); + bool next_mod_group (const A3&, Arg&, unsigned int&); + private: int determineVersion (const std::string&); void parseJSON (const std::string&); diff --git a/src/commands/Command.cpp b/src/commands/Command.cpp index 574040a6e..0cc07d0e0 100644 --- a/src/commands/Command.cpp +++ b/src/commands/Command.cpp @@ -460,200 +460,8 @@ void Command::modify_task ( const A3& arguments, std::string& description) { - // Coalesce arguments together into sets to be processed as a batch. - unsigned int pos = 0; - Arg arg; - while (next_mod_group (arguments, arg, pos)) - { - // Attributes are essentially name:value pairs, and correspond directly - // to stored attributes. - if (arg._category == Arg::cat_attr) - { - std::string name; - std::string value; - A3::extract_attr (arg._raw, name, value); - if (A3::is_attribute (name, name)) // Canonicalize - { - //std::cout << "# Command::modify_task name='" << name << "' value='" << value << "'\n"; - - // Get the column info. - Column* column = context.columns[name]; - - if (value == "") - { - task.remove (name); - } - else - { - // Dependencies are used as IDs. - if (name == "depends") - { - // Parse IDs - std::vector deps; - split (deps, value, ','); - - // Apply or remove dendencies in turn. - std::vector ::iterator i; - for (i = deps.begin (); i != deps.end (); i++) - { - bool removal = false; - std::string& dep = *i; - - if (dep[0] == '-') - { - removal = true; - dep = i->substr(1, std::string::npos); - } - - std::vector ids; - // Crude UUID check - if (dep.length () == 36) - { - int id = context.tdb2.pending.id (dep); - ids.push_back (id); - } - else - A3::extract_id (dep, ids); - - std::vector ::iterator id; - for (id = ids.begin (); id != ids.end(); id++) - if (removal) - task.removeDependency (*id); - else - task.addDependency (*id); - } - } - - // Priorities are converted to upper case. - else if (name == "priority") - { - task.set (name, upperCase (value)); - } - - // Dates are special, maybe. - else if (column->type () == "date") - { - // All values must be eval'd first. - A3 value_tokens; - value_tokens.capture (value); - value_tokens = value_tokens.postfix (value_tokens.tokenize (value_tokens)); - - E9 e (value_tokens); - std::string result = e.evalExpression (task); - context.debug (std::string ("Eval '") + value + "' --> '" + result + "'"); - - // If the date value is less than 5 years, it is a duration, not a - // date, therefore add 'now'. - long l = (long) strtod (result.c_str (), NULL); - if (labs (l) < 5 * 365 * 86400) - { - Duration dur (value); - Date now; - now += l; - task.set (name, now.toEpochString ()); - } - else - { - Date d (result, context.config.get ("dateformat")); - task.set (name, d.toEpochString ()); - } - } - - // Durations too. - else if (name == "recur" || - column->type () == "duration") - { - // All values must be eval'd first, in this case, just to catch errors. - A3 value_tokens; - value_tokens.capture (value); - value_tokens = value_tokens.postfix (value_tokens.tokenize (value_tokens)); - - E9 e (value_tokens); - std::string result = e.evalExpression (task); - context.debug (std::string ("Eval '") + value + "' --> '" + result + "'"); - - Duration d (value); - - // Deliberately storing the 'raw' value, which is necessary for - // durations like 'weekday'.. - task.set (name, name == "recur" ? value : result); - } - - // Need handling for numeric types, used by UDAs. - else if (column->type () == "numeric") - { - A3 value_tokens; - value_tokens.capture (value); - value_tokens = value_tokens.postfix (value_tokens.tokenize (value_tokens)); - - E9 e (value_tokens); - std::string result = e.evalExpression (task); - context.debug (std::string ("Eval '") + value + "' --> '" + result + "'"); - - Nibbler n (result); - double d; - if (n.getNumber (d) && - n.depleted ()) - task.set (name, result); - else - throw format (STRING_UDA_NUMERIC, result); - } - - // By default, just add/remove it. - else - { - if (column->validate (value)) - task.set (name, value); - else - throw format (STRING_INVALID_MOD, name, value); - } - - // Warn about deprecated/obsolete attribute usage. - legacyAttributeCheck (name); - } - } - else - throw format (STRING_CMD_ADD_BAD_ATTRIBUTE, name); - } - - // Tags need special handling because they are essentially a vector stored - // in a single string, therefore Task::{add,remove}Tag must be called as - // appropriate. - else if (arg._category == Arg::cat_tag) - { - char type; - std::string value; - A3::extract_tag (arg._raw, type, value); - - if (type == '+') - { - task.addTag (value); - feedback_special_tags (task, value); - } - else - task.removeTag (value); - } - - // Substitutions. - else if (arg._category == Arg::cat_subst) - { - std::string from; - std::string to; - bool global; - A3::extract_subst (arg._raw, from, to, global); - task.substitute (from, to, global); - } - - // Anything else is essentially downgraded to 'word' and considered part of - // the description. - else - { - if (description.length ()) - description += " "; - - description += arg._raw; - } - } + // Utilize Task::modify + task.modify(arguments, description); } //////////////////////////////////////////////////////////////////////////////// @@ -737,27 +545,3 @@ bool Command::permission ( } //////////////////////////////////////////////////////////////////////////////// -// Special processing for modifications. -bool Command::next_mod_group (const A3& input, Arg& arg, unsigned int& pos) -{ - if (pos < input.size ()) - { - arg = input[pos++]; - - if (arg._raw == "depends") - { - while (pos < input.size () && - (input[pos]._category == Arg::cat_op || - input[pos]._type == Arg::type_number)) - { - arg._raw += input[pos++]._raw; - } - } - - return true; - } - - return false; -} - -//////////////////////////////////////////////////////////////////////////////// diff --git a/src/commands/Command.h b/src/commands/Command.h index 1c822d2fe..2e3453d48 100644 --- a/src/commands/Command.h +++ b/src/commands/Command.h @@ -66,8 +66,6 @@ protected: void safety (); bool permission (const Task&, const std::string&, unsigned int); - bool next_mod_group (const A3&, Arg&, unsigned int&); - protected: std::string _keyword; std::string _usage; From f39120dd73e0de9511bc0965f48cad26b1b1f05a Mon Sep 17 00:00:00 2001 From: Thomas Date: Fri, 14 Jun 2013 14:42:08 -0400 Subject: [PATCH 048/173] Integrated Priority column modification to the ColPriority object, from Task core. --- ChangeLog | 5 +++++ src/Task.cpp | 18 +++++++++++------- src/columns/ColPriority.cpp | 12 ++++++++++++ src/columns/ColPriority.h | 2 ++ src/columns/Column.cpp | 14 ++++++++++++++ src/columns/Column.h | 2 ++ 6 files changed, 46 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 65a27263d..a34fd80c4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -27,6 +27,11 @@ Features + The 'debug.tls' configuration variable takes an integer which corresponds to the GnuTLS log level. For debugging. + File format 2 (used in version 0.9.3 - 1.5.0) is no longer supported. + + Migrated column processing code into Task.cpp for future use within each + individual column object. Legacy code left in Task.cpp for column objects + that are not yet modified. + + ColPriority.cpp - Migration of column modification code out of Task.cpp and + into the individual column object. Bugs + #1196 Now builds on Hurd (thanks to Jakub Wilk). diff --git a/src/Task.cpp b/src/Task.cpp index 10ae25f0c..067920a1f 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -1804,12 +1804,6 @@ void Task::modify ( } } - // Priorities are converted to upper case. - else if (name == "priority") - { - (*this).set (name, upperCase (value)); - } - // Dates are special, maybe. else if (column->type () == "date") { @@ -1879,9 +1873,19 @@ void Task::modify ( throw format (STRING_UDA_NUMERIC, result); } - // By default, just add/remove it. + // Try to use modify method, otherwise just continue to the final option. + else if (column->can_modify ()) + { + // column->modify () contains the logic for the specific column + // and returns the appropriate value for (*this).set () + if (column->validate (value)) + (*this).set (name, column->modify (value)); + else + throw format (STRING_INVALID_MOD, name, value); + } else { + // Final default action if (column->validate (value)) (*this).set (name, value); else diff --git a/src/columns/ColPriority.cpp b/src/columns/ColPriority.cpp index 6dd1bc8ef..0309c7e89 100644 --- a/src/columns/ColPriority.cpp +++ b/src/columns/ColPriority.cpp @@ -119,3 +119,15 @@ void ColumnPriority::render ( } //////////////////////////////////////////////////////////////////////////////// +std::string ColumnPriority::modify (std::string& value) +{ + return upperCase (value); +} + +//////////////////////////////////////////////////////////////////////////////// +bool ColumnPriority::can_modify () +{ + return true; +} + +//////////////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/columns/ColPriority.h b/src/columns/ColPriority.h index fe107e8f5..8209cd2f7 100644 --- a/src/columns/ColPriority.h +++ b/src/columns/ColPriority.h @@ -44,6 +44,8 @@ public: void setStyle (const std::string&); void measure (Task&, unsigned int&, unsigned int&); void render (std::vector &, Task&, int, Color&); + std::string modify (std::string&); + bool can_modify (); private: }; diff --git a/src/columns/Column.cpp b/src/columns/Column.cpp index 13be73a29..61f6c7850 100644 --- a/src/columns/Column.cpp +++ b/src/columns/Column.cpp @@ -323,3 +323,17 @@ void Column::render (std::vector &, Task&, int, Color&) } //////////////////////////////////////////////////////////////////////////////// +// No L10N. +bool Column::can_modify () +{ + return false; +} + +//////////////////////////////////////////////////////////////////////////////// +// No L10N. +std::string Column::modify (std::string& value) +{ + throw std::string ("Virtual method Column::modify not overridden."); +} + +//////////////////////////////////////////////////////////////////////////////// diff --git a/src/columns/Column.h b/src/columns/Column.h index 6221cebad..b97930fc8 100644 --- a/src/columns/Column.h +++ b/src/columns/Column.h @@ -64,6 +64,8 @@ public: virtual void renderHeader (std::vector &, int, Color&); virtual void render (std::vector &, const std::string&, int, Color&); virtual void render (std::vector &, Task&, int, Color&); + virtual bool can_modify (); + virtual std::string modify (std::string&); protected: std::string _name; From 8851bec3fa8ede33a7d753679f24cd5372f9a215 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 16 Jun 2013 10:23:27 -0400 Subject: [PATCH 049/173] Alpha - Preparation for alpha. --- README_TASKD | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 README_TASKD diff --git a/README_TASKD b/README_TASKD new file mode 100644 index 000000000..9f0c340e5 --- /dev/null +++ b/README_TASKD @@ -0,0 +1,49 @@ +Welcome To Taskwarrior 2.3.0 Alpha +---------------------------------- + +The alpha release of Taskwarrior 2.3.0 is for testing the Task Server. +Currently Taskwarrior is the only client for the Task Server. There are several +unaddressed bugs in this release, so proper precautions with your data are +required. + + +Building Taskwarrior +-------------------- + +You will need the following depdendencies: + + cmake + make + g++/clang or equivalent + libuuid + libgnutls (devel copy, with certtools) + libreadline + + +Configuring Taskwarrior as a Task Server Client +----------------------------------------------- + +When a new user is added to the Task Server, a UUID key is generated, along with +an x.509 cert. See Task Server operation document. Before proceeding, you will +need the following items: + + Where Task Server is running (Default: localhost:6544) + Name of organization (default: Public) + User name added to server + Key UUID generated by server + Full path to client.cert.pem generated by server + +Set these configuration variables in your Taskwarrior configuration, +substituting from above: + + task config taskd.server + task config taskd.credentials // + task config taskd.certificate + +Here is an example: + + task config taskd.server localhost:6544 + task config taskd.credentials 'Public/John Doe/8ad2e3db-914d-4832-b0e6-72fa04f6e331' + task config taskd.certificate ~/.task/client.cert.pem + + From 132d6d0c74b28f98097208c9668306c482f80368 Mon Sep 17 00:00:00 2001 From: Fidel Mato Date: Mon, 1 Jul 2013 12:21:37 +0200 Subject: [PATCH 050/173] L10N - Newly translated strings. --- src/es-ES.h | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/es-ES.h b/src/es-ES.h index 2dafba366..34677bd9c 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -415,7 +415,7 @@ #define STRING_CMD_SYNC_USAGE "Sincroniza datos con el Servidor Task" #define STRING_CMD_SYNC_NO_SERVER "El Servidor Task no está configurado." #define STRING_CMD_SYNC_BAD_CRED "Credenciales del Servidor Task incorrectas." -#define STRING_CMD_SYNC_BAD_CERT "Task Server certificate missing." +#define STRING_CMD_SYNC_BAD_CERT "Certificado del Servidor Task no encontrado." #define STRING_CMD_SYNC_ADD " añade {1} '{2}'" #define STRING_CMD_SYNC_MOD "modifica {1} '{2}'" #define STRING_CMD_SYNC_PROGRESS "Sincronizando con {1}" @@ -428,9 +428,10 @@ #define STRING_CMD_SYNC_FAIL_ERROR "Sincronización fallida. El Servidor Task devolvió error: {1} {2}" #define STRING_CMD_SYNC_FAIL_CONNECT "Sincronización fallida. No se pudo conectar con el Servidor Task." #define STRING_CMD_SYNC_BAD_SERVER "Sincronización fallida. Ajuste de configuración '{1}' incorrecto" -#define STRING_CMD_SYNC_NO_TLS "Taskwarrior was built without GnuTLS support. Sync is not available." -#define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Task Server?" +#define STRING_CMD_SYNC_NO_TLS "Taskwarrior fue construido sin soporte GnuTLS. Sincronización no disponible." +#define STRING_CMD_SYNC_INIT "Por favor, confirme que ¿desea subir todas sus tareas pendientes al Servidor Task" #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." +#define STRING_CMD_SYNC_NO_INIT "Taskwarrior will no procederá a la inicialización de la sincronización por primera vez." #define STRING_CMD_DIAG_USAGE "Detalles de plataforma, construcción y entorno" #define STRING_CMD_DIAG_PLATFORM "Plataforma" #define STRING_CMD_DIAG_UNKNOWN "" @@ -439,7 +440,7 @@ #define STRING_CMD_DIAG_CAPS "Capacidades" #define STRING_CMD_DIAG_FEATURES "Características Constructivas" #define STRING_CMD_DIAG_BUILT "Construido" -#define STRING_CMD_DIAG_COMMIT "Commit" +#define STRING_CMD_DIAG_COMMIT "Commit" // sic #define STRING_CMD_DIAG_FOUND "(encontrado)" #define STRING_CMD_DIAG_MISSING "(no encontrado)" #define STRING_CMD_DIAG_ENABLED "Habilitado" @@ -716,7 +717,7 @@ #define STRING_UDA_COLLISION "El UDA denominado '{1}' es el mismo que un atributo del núcleo, y no está permitido." #define STRING_INVALID_MOD "El atributo '{1}' no admite un valor '{2}'." #define STRING_INVALID_SORT_COL "La columna '{1}' no es un campo de ordenación válido." -#define STRING_TLS_INIT_FAIL "Error initializing TLS." +#define STRING_TLS_INIT_FAIL "Error inicializando TLS." // Feedback #define STRING_FEEDBACK_NO_TASKS "Ninguna tarea." @@ -795,7 +796,7 @@ // Task #define STRING_TASK_NO_FF1 "Taskwarrior ya no admite el formato de archivo 1, usado originalmente entre el 27 de noviembre del 2006 y el 31 de diciembre del 2007." -#define STRING_TASK_NO_FF2 "Taskwarrior no longer supports file format 2, originally used between 1 January 2008 and 12 April 2009." +#define STRING_TASK_NO_FF2 "Taskwarrior ya no admite el formato de archivo 2, usado originalmente entre el 1 de enero del 2008 y el 12 de abril del 2009." #define STRING_TASK_PARSE_ANNO_BRACK "Faltan corchetes de anotación." #define STRING_TASK_PARSE_ATT_BRACK "Faltan corchetes de atributo." #define STRING_TASK_PARSE_TAG_BRACK "Faltan corchetes de marca." From 6aa5e0824d7fb6deb81d140510717147a1fd5515 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Thu, 4 Jul 2013 23:09:40 -0400 Subject: [PATCH 051/173] L10N - Removed '?' from STRING_CMD_SYNC_INIT. Thanks to Fidel Mato. --- src/en-US.h | 2 +- src/es-ES.h | 2 +- src/fr-FR.h | 2 +- src/it-IT.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/en-US.h b/src/en-US.h index e8fa1643f..dbdb6ecf2 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -418,7 +418,7 @@ #define STRING_CMD_SYNC_FAIL_CONNECT "Sync failed. Could not connect to the Task Server." #define STRING_CMD_SYNC_BAD_SERVER "Sync failed. Malformed configuration setting '{1}'" #define STRING_CMD_SYNC_NO_TLS "Taskwarrior was built without GnuTLS support. Sync is not available." -#define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Task Server?" +#define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Task Server" #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." #define STRING_CMD_DIAG_USAGE "Platform, build and environment details" #define STRING_CMD_DIAG_PLATFORM "Platform" diff --git a/src/es-ES.h b/src/es-ES.h index 34677bd9c..a63d207d0 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -429,7 +429,7 @@ #define STRING_CMD_SYNC_FAIL_CONNECT "Sincronización fallida. No se pudo conectar con el Servidor Task." #define STRING_CMD_SYNC_BAD_SERVER "Sincronización fallida. Ajuste de configuración '{1}' incorrecto" #define STRING_CMD_SYNC_NO_TLS "Taskwarrior fue construido sin soporte GnuTLS. Sincronización no disponible." -#define STRING_CMD_SYNC_INIT "Por favor, confirme que ¿desea subir todas sus tareas pendientes al Servidor Task" +#define STRING_CMD_SYNC_INIT "Por favor, confirme que desea subir todas sus tareas pendientes al Servidor Task" #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will no procederá a la inicialización de la sincronización por primera vez." #define STRING_CMD_DIAG_USAGE "Detalles de plataforma, construcción y entorno" diff --git a/src/fr-FR.h b/src/fr-FR.h index cd271ca9b..eb595f07c 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -418,7 +418,7 @@ #define STRING_CMD_SYNC_FAIL_CONNECT "Sync failed. Could not connect to the Task Server." #define STRING_CMD_SYNC_BAD_SERVER "Sync failed. Malformed configuration setting '{1}'" #define STRING_CMD_SYNC_NO_TLS "Taskwarrior was built without GnuTLS support. Sync is not available." -#define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Task Server?" +#define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Task Server" #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." #define STRING_CMD_DIAG_USAGE "Platform, build and environment details" #define STRING_CMD_DIAG_PLATFORM "Platform" diff --git a/src/it-IT.h b/src/it-IT.h index ec84b001e..0cd670ac6 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -419,7 +419,7 @@ #define STRING_CMD_SYNC_FAIL_CONNECT "Sincronizzazione fallita. Impossibile connettersi al Task Server." #define STRING_CMD_SYNC_BAD_SERVER "Sincronizzazione fallita. Impostazione di configurazione '{1}' malformata" #define STRING_CMD_SYNC_NO_TLS "Taskwarrior was built without GnuTLS support. Sync is not available." -#define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Task Server?" +#define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Task Server" #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." #define STRING_CMD_DIAG_USAGE "Dettagli su piattaforma, build e ambiente" #define STRING_CMD_DIAG_PLATFORM "Piattaforma" From 16c5314cfa5ae3ed4d76ef5c0bcd658b39d73bc0 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Fri, 5 Jul 2013 08:04:37 -0400 Subject: [PATCH 052/173] Feedback - Restored 'sync needed' feedback for when backlog contains data, and the 'sync' verbosity token is present (which it is by default). --- src/feedback.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/feedback.cpp b/src/feedback.cpp index 9b38b3d3f..f96ca2e6b 100644 --- a/src/feedback.cpp +++ b/src/feedback.cpp @@ -435,7 +435,7 @@ void feedback_backlog () std::vector ::iterator line; for (line = lines.begin (); line != lines.end (); ++line) { - if ((*line)[0] == '[') + if ((*line)[0] == '{') { context.footnote ("There are local changes. Sync required."); break; From 2aadf445bc5e5dff78d60559dafd9c4c70b34c98 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Fri, 5 Jul 2013 08:58:05 -0400 Subject: [PATCH 053/173] Code Cleanup - Removed unused timing from the sync command. --- src/commands/CmdSync.cpp | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index 3fb4c0c00..ba0ca3e14 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -53,9 +53,6 @@ int CmdSync::execute (std::string& output) { int status = 0; #ifdef HAVE_LIBGNUTLS - Timer timer_sync; - timer_sync.start (); - std::stringstream out; // Loog for the 'init' keyword to indicate one-time pending.data upload. @@ -263,17 +260,6 @@ int CmdSync::execute (std::string& output) out << "\n"; output = out.str (); -/* - timer_sync.stop (); - std::stringstream s; - s << "Sync " - << Date ().toISO () - << " sync:" - << timer_sync.total () - << "\n"; - debug (s.str ()); -*/ - #else // Without GnuTLS found at compile time, there is no working sync command. throw std::string (STRING_CMD_SYNC_NO_TLS); From ba1e318d7e09647625239c65946fc8c34bbc9bc3 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Fri, 5 Jul 2013 09:17:17 -0400 Subject: [PATCH 054/173] Alpha Docs - Improved instructions for sync setup. --- README_TASKD | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/README_TASKD b/README_TASKD index 9f0c340e5..7a3efcf38 100644 --- a/README_TASKD +++ b/README_TASKD @@ -36,14 +36,42 @@ need the following items: Set these configuration variables in your Taskwarrior configuration, substituting from above: - task config taskd.server - task config taskd.credentials // - task config taskd.certificate + $ task config taskd.server + $ task config taskd.credentials // + $ task config taskd.certificate Here is an example: - task config taskd.server localhost:6544 - task config taskd.credentials 'Public/John Doe/8ad2e3db-914d-4832-b0e6-72fa04f6e331' - task config taskd.certificate ~/.task/client.cert.pem + $ task config taskd.server localhost:6544 + $ task config taskd.credentials 'Public/John Doe/8ad2e3db-914d-4832-b0e6-72fa04f6e331' + $ task config taskd.certificate ~/.task/client.cert.pem +First-Time Synchronizing +------------------------ + +The first sync you do should be a full sync. Run this: + + $ task sync initialize + +This performs a full upload of your pending.data file to the server, creating +the basis on which all subsequent sync commands are run, and transferring only +deltas. + +Do not run 'task sync initialize' again. + + +General Synchronizing +--------------------- + +After the first-time sync, all subsequent sync commands should be like this: + + $ task sync + +It is safe to run this command as often as you wish, whether or not there are +any changes to sync. + +You may wish to enable sync feedback with the 'sync' verbose token. See 'man +taskrc' for details. + +--- From d4fabba8ee686d4cc41320aac614004d66cc9d33 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 6 Jul 2013 14:44:55 -0400 Subject: [PATCH 055/173] Performance - Now detects whether any sync merging needs to happen, and if not, skips the loading of all data. --- NEWS | 2 +- src/commands/CmdSync.cpp | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/NEWS b/NEWS index c1d9ab0c7..7b6555cbd 100644 --- a/NEWS +++ b/NEWS @@ -31,7 +31,7 @@ Taskwarrior has been built and tested on the following configurations: * OS X 10.8 Mountain Lion and 10.7 Lion * Fedora 18 Spherical Cow and 17 Beefy Miracle * Ubuntu 12.10 Quantal Quetzal and 12.04 Precise Pangolin - * Debian 6.0 Squeeze (stable)i and 5.0 Lenny (oldstable) plus Sid (testing) + * Debian 6.0 Squeeze (stable) and 5.0 Lenny (oldstable) plus Sid (testing) * Slackware 13.37 * Arch Linux * Gentoo Linux diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index ba0ca3e14..5166eedca 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -145,9 +145,11 @@ int CmdSync::execute (std::string& output) std::vector lines; split (lines, payload, '\n'); - // TODO This is not necessary if only a synch key was received. - // Load all tasks. - context.tdb2.all_tasks (); + // Load all tasks, but only if necessary. There is always a sync key in + // the payload, so if there are two or more lines, then we have merging + // to perform, otherwise it's just a backlog.data update. + if (lines.size () > 1) + context.tdb2.all_tasks (); std::string synch_key = ""; std::vector ::iterator line; From 061bf4882ee77590cbdb2fc86d0b6f43a6c06e8b Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 7 Jul 2013 09:07:10 -0400 Subject: [PATCH 056/173] Bug #1300 - Encode/decode pairing is now properly balanced. --- ChangeLog | 1 + src/Task.cpp | 13 ++++++++----- test/roundtrip.t | 33 +++++++++++++++++++-------------- 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/ChangeLog b/ChangeLog index a34fd80c4..bd50240c1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -50,6 +50,7 @@ Bugs Wilk). + #1263 The 'waiting' report properly lists only pending tasks with a wait date (thanks to Fidel Mato). + + #1300 Encode/decode pairing is now properly balanced. + Fixed bug so that 'limit:page' now considers footnote messages. ------ old releases ------------------------------ diff --git a/src/Task.cpp b/src/Task.cpp index 067920a1f..4de6055c7 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -461,6 +461,7 @@ void Task::parse (const std::string& input) } //////////////////////////////////////////////////////////////////////////////// +// Note that all fields undergo encode/decode. void Task::parseJSON (const std::string& line) { // Parse the whole thing. @@ -477,7 +478,6 @@ void Task::parseJSON (const std::string& line) { // If the attribute is a recognized column. std::string type = Task::attributes[i->first]; - if (type != "") { // Any specified id is ignored. @@ -509,6 +509,10 @@ void Task::parseJSON (const std::string& line) } } + // Strings are decoded. + else if (type == "string") + set (i->first, json::decode (unquoteText (i->second->dump ()))); + // Other types are simply added. else set (i->first, unquoteText (i->second->dump ())); @@ -540,8 +544,7 @@ void Task::parseJSON (const std::string& line) throw format (STRING_TASK_NO_DESC, line); std::string name = "annotation_" + Date (when->_data).toEpochString (); - - annos.insert (std::make_pair (name, what->_data)); + annos.insert (std::make_pair (name, json::decode (what->_data))); } setAnnotations (annos); @@ -559,7 +562,7 @@ void Task::parseJSON (const std::string& line) << "' --> preserved\n"; context.debug (message.str ()); #endif - set (i->first, unquoteText (i->second->dump ())); + set (i->first, json::decode (unquoteText (i->second->dump ()))); } } } @@ -1964,4 +1967,4 @@ bool Task::next_mod_group (const A3& input, Arg& arg, unsigned int& pos) return false; } -//////////////////////////////////////////////////////////////////////////////// \ No newline at end of file +//////////////////////////////////////////////////////////////////////////////// diff --git a/test/roundtrip.t b/test/roundtrip.t index 0153d56dd..802a68af5 100755 --- a/test/roundtrip.t +++ b/test/roundtrip.t @@ -28,7 +28,7 @@ use strict; use warnings; -use Test::More tests => 4; +use Test::More tests => 5; # Create the rc file. if (open my $fh, '>', 'roundtrip.rc') @@ -43,36 +43,41 @@ if (open my $fh, '>', 'roundtrip.rc') } # Add two tasks. -qx{../src/task rc:roundtrip.rc add priority:H project:A one 2>&1}; +qx{../src/task rc:roundtrip.rc add priority:H project:A one/1 2>&1}; qx{../src/task rc:roundtrip.rc add +tag1 +tag2 two 2>&1}; # trip 1. -qx{../src/task rc:roundtrip.rc export > ./roundtrip.txt 2>&1}; +qx{../src/task rc:roundtrip.rc export > ./roundtrip1.json 2>&1}; unlink 'pending.data', 'completed.data', 'undo.data'; -qx{../src/task rc:roundtrip.rc rc.debug:1 import ./roundtrip.txt 2>&1}; +qx{../src/task rc:roundtrip.rc rc.debug:1 import ./roundtrip1.json 2>&1}; # trip 2. -qx{../src/task rc:roundtrip.rc export > ./roundtrip.txt 2>&1}; +qx{../src/task rc:roundtrip.rc export > ./roundtrip2.json 2>&1}; unlink 'pending.data', 'completed.data', 'undo.data'; -qx{../src/task rc:roundtrip.rc import ./roundtrip.txt 2>&1}; +qx{../src/task rc:roundtrip.rc import ./roundtrip2.json 2>&1}; # Exammine. # ID Project Pri Added Started Due Recur Countdown Age Deps Tags Description # -- ------- --- -------- ------- --- ----- --------- --- ---- --------- --------- -# 1 A H 8/7/2010 - one +# 1 A H 8/7/2010 - one/1 # 2 8/7/2010 - tag1 tag2 two my $output = qx{../src/task rc:roundtrip.rc long 2>&1}; -like ($output, qr/1.+A.+H.+\d+\/\d+\/\d+.+(?:-|\d+).+one/, '2 round trips task 1 identical'); +like ($output, qr/1.+A.+H.+\d+\/\d+\/\d+.+(?:-|\d+).+one\/1/, '2 round trips task 1 identical'); like ($output, qr/2.+\d+\/\d+\/\d+.+(?:-|\d+).+tag1\stag2\stwo/, '2 round trips task 2 identical'); +# Compare the actual JSON files. +$output = qx{diff ./roundtrip1.json ./roundtrip2.json 2>&1}; +like ($output, qr/^$/, 'JSON files roundtrip1.json and roundtrip2.json identical'); + # Cleanup. -unlink qw(roundtrip.txt pending.data completed.data undo.data backlog.data roundtrip.rc); -ok (! -r 'roundtrip.txt' && - ! -r 'pending.data' && - ! -r 'completed.data' && - ! -r 'undo.data' && - ! -r 'backlog.data' && +unlink qw(roundtrip1.json roundtrip2.json pending.data completed.data undo.data backlog.data roundtrip.rc); +ok (! -r 'roundtrip1.json' && + ! -r 'roundtrip2.json' && + ! -r 'pending.data' && + ! -r 'completed.data' && + ! -r 'undo.data' && + ! -r 'backlog.data' && ! -r 'roundtrip.rc', 'Cleanup'); exit 0; From 82c4b05fe47da9eaddc9028b6f622e8403732ccc Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 7 Jul 2013 13:04:19 -0400 Subject: [PATCH 057/173] File, Directory Permissions - Added default and override permissions for files and directories. --- src/Directory.cpp | 4 ++-- src/Directory.h | 2 +- src/File.cpp | 10 +++++++--- src/File.h | 4 ++-- test/directory.t.cpp | 20 +++++++++++++++++++- test/file.t.cpp | 20 +++++++++++++++++++- 6 files changed, 50 insertions(+), 10 deletions(-) diff --git a/src/Directory.cpp b/src/Directory.cpp index 07f9d2db5..1b04ff583 100644 --- a/src/Directory.cpp +++ b/src/Directory.cpp @@ -85,9 +85,9 @@ Directory& Directory::operator= (const Directory& other) } //////////////////////////////////////////////////////////////////////////////// -bool Directory::create () +bool Directory::create (int mode /* = 0755 */) { - return mkdir (_data.c_str (), 0755) == 0 ? true : false; + return mkdir (_data.c_str (), mode) == 0 ? true : false; } //////////////////////////////////////////////////////////////////////////////// diff --git a/src/Directory.h b/src/Directory.h index a0dd33acf..1532d8f14 100644 --- a/src/Directory.h +++ b/src/Directory.h @@ -42,7 +42,7 @@ public: Directory& operator= (const Directory&); - virtual bool create (); + virtual bool create (int mode = 0755); virtual bool remove () const; std::vector list (); diff --git a/src/File.cpp b/src/File.cpp index 0655a7cd7..ca5146ca6 100644 --- a/src/File.cpp +++ b/src/File.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -90,10 +91,11 @@ File& File::operator= (const File& other) } //////////////////////////////////////////////////////////////////////////////// -bool File::create () +bool File::create (int mode /* = 0640 */) { if (open ()) { + fchmod (_h, mode); close (); return true; } @@ -361,12 +363,14 @@ time_t File::btime () const } //////////////////////////////////////////////////////////////////////////////// -bool File::create (const std::string& name) +bool File::create (const std::string& name, int mode /* = 0640 */) { - std::ofstream out (expand (name).c_str ()); + std::string full_name = expand (name); + std::ofstream out (full_name.c_str ()); if (out.good ()) { out.close (); + chmod (full_name.c_str (), mode); return true; } diff --git a/src/File.h b/src/File.h index ffbec1ab9..940e682d7 100644 --- a/src/File.h +++ b/src/File.h @@ -45,7 +45,7 @@ public: File& operator= (const File&); - virtual bool create (); + virtual bool create (int mode = 0640); virtual bool remove () const; bool open (); @@ -72,7 +72,7 @@ public: virtual time_t ctime () const; virtual time_t btime () const; - static bool create (const std::string&); + static bool create (const std::string&, int mode = 0640); static std::string read (const std::string&); static bool read (const std::string&, std::string&); static bool read (const std::string&, std::vector &); diff --git a/test/directory.t.cpp b/test/directory.t.cpp index 9b3f6f19e..faba20029 100644 --- a/test/directory.t.cpp +++ b/test/directory.t.cpp @@ -35,7 +35,7 @@ Context context; int main (int argc, char** argv) { - UnitTest t (37); + UnitTest t (49); Directory tmp ("tmp"); tmp.create (); @@ -124,6 +124,24 @@ int main (int argc, char** argv) t.is (d9._data, "/", "parent /one --> /"); t.notok (d9.up (), "parent / --> false"); + // Test permissions. + Directory d10 ("tmp/dir.perm"); + d10.create (0750); + t.ok (d10.exists (), "Directory::create perm file exists"); + mode_t m = d10.mode (); + t.ok (m & S_IFDIR, "Directory::mode tmp/dir.perm S_IFDIR good"); + t.ok (m & S_IRUSR, "Directory::mode tmp/dir.perm r-------- good"); + t.ok (m & S_IWUSR, "Directory::mode tmp/dir.perm -w------- good"); + t.ok (m & S_IXUSR, "Directory::mode tmp/dir.perm --x------ good"); + t.ok (m & S_IRGRP, "Directory::mode tmp/dir.perm ---r----- good"); + t.notok (m & S_IWGRP, "Directory::mode tmp/dir.perm ----w---- good"); + t.ok (m & S_IXGRP, "Directory::mode tmp/dir.perm -----x--- good"); + t.notok (m & S_IROTH, "Directory::mode tmp/dir.perm ------r-- good"); + t.notok (m & S_IWOTH, "Directory::mode tmp/dir.perm -------w- good"); + t.notok (m & S_IXOTH, "Directory::mode tmp/dir.perm --------x good"); + d10.remove (); + t.notok (d10.exists (), "Directory::remove temp/dir.perm file no longer exists"); + tmp.remove (); t.notok (tmp.exists (), "tmp dir removed."); diff --git a/test/file.t.cpp b/test/file.t.cpp index b675a6c20..d19fd9cf8 100644 --- a/test/file.t.cpp +++ b/test/file.t.cpp @@ -35,7 +35,7 @@ Context context; int main (int argc, char** argv) { - UnitTest t (15); + UnitTest t (27); Directory tmp ("tmp"); tmp.create (); @@ -70,6 +70,24 @@ int main (int argc, char** argv) t.ok (f7.remove (), "File::remove tmp/file.t.3.txt good"); t.notok (f7.exists (), "File::remove new file no longer exists"); + // Test permissions. + File f8 ("tmp/file.t.perm.txt"); + f8.create (0744); + t.ok (f8.exists (), "File::create perm file exists"); + mode_t m = f8.mode (); + t.ok (m & S_IFREG, "File::mode tmp/file.t.perm.txt S_IFREG good"); + t.ok (m & S_IRUSR, "File::mode tmp/file.t.perm.txt r-------- good"); + t.ok (m & S_IWUSR, "File::mode tmp/file.t.perm.txt -w------- good"); + t.ok (m & S_IXUSR, "File::mode tmp/file.t.perm.txt --x------ good"); + t.ok (m & S_IRGRP, "File::mode tmp/file.t.perm.txt ---r----- good"); + t.notok (m & S_IWGRP, "File::mode tmp/file.t.perm.txt ----w---- good"); + t.notok (m & S_IXGRP, "File::mode tmp/file.t.perm.txt -----x--- good"); + t.ok (m & S_IROTH, "File::mode tmp/file.t.perm.txt ------r-- good"); + t.notok (m & S_IWOTH, "File::mode tmp/file.t.perm.txt -------w- good"); + t.notok (m & S_IXOTH, "File::mode tmp/file.t.perm.txt --------x good"); + f8.remove (); + t.notok (f8.exists (), "File::remove perm file no longer exists"); + tmp.remove (); t.notok (tmp.exists (), "tmp dir removed."); From 12809fd0bf5b1d258beca01b2acd3036476a52d0 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 7 Jul 2013 14:57:02 -0400 Subject: [PATCH 058/173] Message Format - Relaxed message parsing slightly. --- src/Msg.cpp | 27 +++++++++++++-------------- test/msg.t.cpp | 8 +++++++- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/Msg.cpp b/src/Msg.cpp index 7cd45ff10..dec21dbb3 100644 --- a/src/Msg.cpp +++ b/src/Msg.cpp @@ -145,26 +145,25 @@ bool Msg::parse (const std::string& input) _header.clear (); _payload = ""; - std::vector lines; - split (lines, input.substr (0, input.size ()), '\n'); + std::string::size_type separator = input.find ("\n\n"); + if (separator == std::string::npos) + throw std::string ("ERROR: Malformed message"); + // Parse header. + std::vector lines; + split (lines, input.substr (0, separator), '\n'); std::vector ::iterator i; - bool tripped = false; for (i = lines.begin (); i != lines.end (); ++i) { - if (*i == "") - tripped = true; - else if (tripped) - _payload += *i + "\n"; - else - { - std::string::size_type delim = i->find (": "); - if (delim != std::string::npos) - _header[i->substr (0, delim)] = i->substr (delim + 2); - else + std::string::size_type delimiter = i->find (':'); + if (delimiter == std::string::npos) throw std::string ("ERROR: Malformed message header '") + *i + "'"; + + _header[trim (i->substr (0, delimiter))] = trim (i->substr (delimiter + 1)); } - } + + // Parse payload. + _payload = input.substr (separator + 2); return true; } diff --git a/test/msg.t.cpp b/test/msg.t.cpp index 70f75804a..134ce74b8 100644 --- a/test/msg.t.cpp +++ b/test/msg.t.cpp @@ -36,7 +36,7 @@ Context context; //////////////////////////////////////////////////////////////////////////////// int main (int argc, char** argv) { - UnitTest t (8); + UnitTest t (12); Msg m; t.is (m.serialize (), std::string ("client: ") + PACKAGE_STRING + "\n\n\n", "Msg::serialize '' --> '\\n\\n'"); @@ -55,6 +55,12 @@ int main (int argc, char** argv) t.is (m2.get ("foo"), "bar", "Msg::get"); t.is (m2.get ("name"), "value", "Msg::get"); t.is (m2.getPayload (), "payload\n", "Msg::getPayload"); + + Msg m3; + t.ok (m3.parse ("foo:bar\nname: value\n\npayload\n"), "Msg::parse ok"); + t.is (m3.get ("foo"), "bar", "Msg::get"); + t.is (m3.get ("name"), "value", "Msg::get"); + t.is (m3.getPayload (), "payload\n", "Msg::getPayload"); return 0; } From 6a9f6a9c82e3678a7fbd8fcaf71a9da006277183 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Sat, 13 Jul 2013 13:15:26 -0400 Subject: [PATCH 059/173] Guard COMMIT and commit.h usage behind HAVE_COMMIT --- src/commands/CmdDiagnostics.cpp | 4 ++++ src/commands/CmdVersion.cpp | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/commands/CmdDiagnostics.cpp b/src/commands/CmdDiagnostics.cpp index aa1caf76b..ef33c2081 100644 --- a/src/commands/CmdDiagnostics.cpp +++ b/src/commands/CmdDiagnostics.cpp @@ -35,7 +35,9 @@ #include #include #include +#ifdef HAVE_COMMIT #include +#endif #ifdef HAVE_LIBGNUTLS #include @@ -136,7 +138,9 @@ int CmdDiagnostics::execute (std::string& output) // Build date. << " " << STRING_CMD_DIAG_BUILT << ": " << __DATE__ << " " << __TIME__ << "\n" +#ifdef HAVE_COMMIT << " " << STRING_CMD_DIAG_COMMIT << ": " << COMMIT << "\n" +#endif << " CMake: " << CMAKE_VERSION << "\n" << " " << STRING_CMD_DIAG_CAPS << ":" #ifdef HAVE_LIBPTHREAD diff --git a/src/commands/CmdVersion.cpp b/src/commands/CmdVersion.cpp index fc8e2ebee..93204ff56 100644 --- a/src/commands/CmdVersion.cpp +++ b/src/commands/CmdVersion.cpp @@ -30,7 +30,9 @@ #include #include #include +#ifdef HAVE_COMMIT #include +#endif #include #include #include From a5a38a11373ac5d6056391c5fc051807592a7cfd Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 13 Jul 2013 21:39:29 -0400 Subject: [PATCH 060/173] Bug #1305 - Updated ChangeLog. --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index bd50240c1..6cb6df701 100644 --- a/ChangeLog +++ b/ChangeLog @@ -51,6 +51,7 @@ Bugs + #1263 The 'waiting' report properly lists only pending tasks with a wait date (thanks to Fidel Mato). + #1300 Encode/decode pairing is now properly balanced. + + #1305 Commit hash now available in tarball builds (thanks to Ben Boeckel). + Fixed bug so that 'limit:page' now considers footnote messages. ------ old releases ------------------------------ From dd14388b1b9f16848a875e719878341237d44ceb Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 14 Jul 2013 12:25:31 -0400 Subject: [PATCH 061/173] Sync - Implemented (weak) handling for a 310 "Redirect" server response. --- src/commands/CmdSync.cpp | 10 +++++++++- src/en-US.h | 2 ++ src/es-ES.h | 3 ++- src/fr-FR.h | 2 ++ src/it-IT.h | 2 ++ 5 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index 5166eedca..d5d94c72d 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -209,6 +209,7 @@ int CmdSync::execute (std::string& output) // Present a clear status message. if (upload_count == 0 && download_count == 0) + // Note: should not happen - expect code 201 instead. context.footnote (STRING_CMD_SYNC_SUCCESS0); else if (upload_count == 0 && download_count > 0) context.footnote (format (STRING_CMD_SYNC_SUCCESS2, download_count)); @@ -222,6 +223,13 @@ int CmdSync::execute (std::string& output) { context.footnote (STRING_CMD_SYNC_SUCCESS_NOP); } + else if (code == "301") + { + std::string new_server = response.get ("info"); + context.config.set ("taskd.server", new_server); + context.error (STRING_CMD_SYNC_RELOCATE0); + context.error (" " + format (STRING_CMD_SYNC_RELOCATE1, new_server)); + } else if (code == "430") { context.error (STRING_CMD_SYNC_FAIL_ACCOUNT); @@ -235,7 +243,7 @@ int CmdSync::execute (std::string& output) status = 2; } - // Display all errors returned. This is required by the server protocol. + // Display all errors returned. This is recommended by the server protocol. std::string to_be_displayed = response.get ("messages"); if (to_be_displayed != "") { diff --git a/src/en-US.h b/src/en-US.h index dbdb6ecf2..71ddd5f34 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -420,6 +420,8 @@ #define STRING_CMD_SYNC_NO_TLS "Taskwarrior was built without GnuTLS support. Sync is not available." #define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Task Server" #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." +#define STRING_CMD_SYNC_RELOCATE0 "The server account has been relocated. Please update your configuration using:" +#define STRING_CMD_SYNC_RELOCATE1 "task config taskd.server {1}" #define STRING_CMD_DIAG_USAGE "Platform, build and environment details" #define STRING_CMD_DIAG_PLATFORM "Platform" #define STRING_CMD_DIAG_UNKNOWN "" diff --git a/src/es-ES.h b/src/es-ES.h index a63d207d0..b0a34f08b 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -430,8 +430,9 @@ #define STRING_CMD_SYNC_BAD_SERVER "Sincronización fallida. Ajuste de configuración '{1}' incorrecto" #define STRING_CMD_SYNC_NO_TLS "Taskwarrior fue construido sin soporte GnuTLS. Sincronización no disponible." #define STRING_CMD_SYNC_INIT "Por favor, confirme que desea subir todas sus tareas pendientes al Servidor Task" -#define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will no procederá a la inicialización de la sincronización por primera vez." +#define STRING_CMD_SYNC_RELOCATE0 "The server account has been relocated. Please update your configuration using:" +#define STRING_CMD_SYNC_RELOCATE1 "task config taskd.server {1}" #define STRING_CMD_DIAG_USAGE "Detalles de plataforma, construcción y entorno" #define STRING_CMD_DIAG_PLATFORM "Plataforma" #define STRING_CMD_DIAG_UNKNOWN "" diff --git a/src/fr-FR.h b/src/fr-FR.h index eb595f07c..e895d4a7b 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -420,6 +420,8 @@ #define STRING_CMD_SYNC_NO_TLS "Taskwarrior was built without GnuTLS support. Sync is not available." #define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Task Server" #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." +#define STRING_CMD_SYNC_RELOCATE0 "The server account has been relocated. Please update your configuration using:" +#define STRING_CMD_SYNC_RELOCATE1 "task config taskd.server {1}" #define STRING_CMD_DIAG_USAGE "Platform, build and environment details" #define STRING_CMD_DIAG_PLATFORM "Platform" #define STRING_CMD_DIAG_UNKNOWN "" diff --git a/src/it-IT.h b/src/it-IT.h index 0cd670ac6..a51f24b2a 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -421,6 +421,8 @@ #define STRING_CMD_SYNC_NO_TLS "Taskwarrior was built without GnuTLS support. Sync is not available." #define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Task Server" #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." +#define STRING_CMD_SYNC_RELOCATE0 "The server account has been relocated. Please update your configuration using:" +#define STRING_CMD_SYNC_RELOCATE1 "task config taskd.server {1}" #define STRING_CMD_DIAG_USAGE "Dettagli su piattaforma, build e ambiente" #define STRING_CMD_DIAG_PLATFORM "Piattaforma" #define STRING_CMD_DIAG_UNKNOWN "" From 779e32540a6f6a2f2f9ff92a02400feb72028c2b Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 20 Jul 2013 09:16:37 -0400 Subject: [PATCH 062/173] Portability - Included the wrong errno.h (thanks to natano). --- AUTHORS | 1 + src/TLSClient.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index dd2df9f33..9d55a3e01 100644 --- a/AUTHORS +++ b/AUTHORS @@ -177,3 +177,4 @@ suggestions: alparo Roy Zuo Friedrich Heusler + natano diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index c1c6ecaeb..19707054d 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -37,7 +37,7 @@ #include #include #include -#include +#include #include #include #include From fcfd50bd251394cd2bde44b8889ba531482529f1 Mon Sep 17 00:00:00 2001 From: Martin Natano Date: Sat, 20 Jul 2013 21:18:20 +0200 Subject: [PATCH 063/173] require libuuid - require libuuid at build time and remove insufficiently seeded replacement for uuid() --- AUTHORS | 2 +- CMakeLists.txt | 12 +++++------- ChangeLog | 1 + NEWS | 1 + cmake.h.in | 3 +-- src/commands/CmdDiagnostics.cpp | 12 ++---------- src/util.cpp | 29 ----------------------------- src/util.h | 4 +--- 8 files changed, 12 insertions(+), 52 deletions(-) diff --git a/AUTHORS b/AUTHORS index 9d55a3e01..3ff3338b6 100644 --- a/AUTHORS +++ b/AUTHORS @@ -87,6 +87,7 @@ The following submitted code, packages or analysis, and deserve special thanks: YBSAR Tullio Facchinetti Thomas Sullivan + Martin Natano Thanks to the following, who submitted detailed bug reports and excellent suggestions: @@ -177,4 +178,3 @@ suggestions: alparo Roy Zuo Friedrich Heusler - natano diff --git a/CMakeLists.txt b/CMakeLists.txt index b019b0a42..c1ab3b5e8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -94,29 +94,27 @@ check_struct_has_member ("struct stat" st_birthtime "sys/types.h;sys/stat.h" HAV message ("-- Looking for libuuid") if (DARWIN) # Apple includes the uuid functions in their libc, rather than libuuid - set (HAVE_UUID true) check_function_exists (uuid_unparse_lower HAVE_UUID_UNPARSE_LOWER) else (DARWIN) find_path (UUID_INCLUDE_DIR uuid/uuid.h) find_library (UUID_LIBRARY NAMES uuid) if (UUID_INCLUDE_DIR AND UUID_LIBRARY) - set (HAVE_UUID true) set (TASK_INCLUDE_DIRS ${TASK_INCLUDE_DIRS} ${UUID_INCLUDE_DIR}) set (TASK_LIBRARIES ${TASK_LIBRARIES} ${UUID_LIBRARY}) # Look for uuid_unparse_lower set (CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${UUID_INCLUDE_DIR}) set (CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${UUID_LIBRARY}) check_function_exists (uuid_unparse_lower HAVE_UUID_UNPARSE_LOWER) + else (UUID_INCLUDE_DIR AND UUID_LIBRARY) + message (FATAL_ERROR "-- libuuid not found.") endif (UUID_INCLUDE_DIR AND UUID_LIBRARY) endif (DARWIN) -if (HAVE_UUID AND HAVE_UUID_UNPARSE_LOWER) +if (HAVE_UUID_UNPARSE_LOWER) message ("-- Found libuuid") -elseif (HAVE_UUID AND NOT HAVE_UUID_UNPARSE_LOWER) +else (HAVE_UUID_UNPARSE_LOWER) message ("-- Found libuuid, using internal uuid_unparse_lower") -else (HAVE_UUID AND HAVE_UUID_UNPARSE_LOWER) - message ("-- libuuid not found, using internal uuid") -endif (HAVE_UUID AND HAVE_UUID_UNPARSE_LOWER) +endif (HAVE_UUID_UNPARSE_LOWER) # Set the package language. if (LANGUAGE) diff --git a/ChangeLog b/ChangeLog index 6cb6df701..2dff3c10d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -32,6 +32,7 @@ Features that are not yet modified. + ColPriority.cpp - Migration of column modification code out of Task.cpp and into the individual column object. + + Now requires libuuid (thanks to Martin Natano). Bugs + #1196 Now builds on Hurd (thanks to Jakub Wilk). diff --git a/NEWS b/NEWS index 7b6555cbd..ecc78d3ce 100644 --- a/NEWS +++ b/NEWS @@ -6,6 +6,7 @@ New Features in taskwarrior 2.3.0 - The 'dateformat' settings now default to the ISO-8601 standard of 'Y-M-D'. - Italian translation. - UDA fields now allow default values. + - Now requires libuuid. New commands in taskwarrior 2.3.0 diff --git a/cmake.h.in b/cmake.h.in index e6188b84a..2d6dc7d8e 100644 --- a/cmake.h.in +++ b/cmake.h.in @@ -70,8 +70,7 @@ /* Found get_current_dir_name */ #cmakedefine HAVE_GET_CURRENT_DIR_NAME -/* Found the uuid library */ -#cmakedefine HAVE_UUID +/* Found uuid_unparse_lower in the uuid library */ #cmakedefine HAVE_UUID_UNPARSE_LOWER /* Undefine this to eliminate the execute command */ diff --git a/src/commands/CmdDiagnostics.cpp b/src/commands/CmdDiagnostics.cpp index ef33c2081..68a04b6c0 100644 --- a/src/commands/CmdDiagnostics.cpp +++ b/src/commands/CmdDiagnostics.cpp @@ -161,12 +161,6 @@ int CmdDiagnostics::execute (std::string& output) << " -random" #endif -#ifdef HAVE_UUID - << " +uuid" -#else - << " -uuid" -#endif - #ifdef HAVE_LIBGNUTLS << " +tls" #else @@ -175,12 +169,10 @@ int CmdDiagnostics::execute (std::string& output) << "\n"; out << " libuuid: " -#if defined (HAVE_UUID) and defined (HAVE_UUID_UNPARSE_LOWER) +#ifdef HAVE_UUID_UNPARSE_LOWER << "libuuid + uuid_unparse_lower" -#elif defined (HAVE_UUID) and !defined (HAVE_UUID_UNPARSE_LOWER) - << "libuuid, no uuid_unparse_lower" #else - << "n/a" + << "libuuid, no uuid_unparse_lower" #endif << "\n"; diff --git a/src/util.cpp b/src/util.cpp index f7b9fe073..a0b148c20 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -230,8 +230,6 @@ int autoComplete ( } //////////////////////////////////////////////////////////////////////////////// -#ifdef HAVE_UUID - #ifndef HAVE_UUID_UNPARSE_LOWER // Older versions of libuuid don't have uuid_unparse_lower(), only uuid_unparse() void uuid_unparse_lower (uuid_t uu, char *out) @@ -256,33 +254,6 @@ const std::string uuid () return std::string (buffer); } -//////////////////////////////////////////////////////////////////////////////// -#else - -#ifdef HAVE_RANDOM -#define rand() random() -#endif - -//////////////////////////////////////////////////////////////////////////////// -const std::string uuid () -{ - uint32_t time_low = ((rand () << 16) & 0xffff0000) | (rand () & 0xffff); - uint16_t time_mid = rand () & 0xffff; - uint16_t time_high_and_version = (rand () & 0x0fff) | 0x4000; - uint16_t clock_seq = (rand () & 0x3fff) | 0x8000; - uint8_t node [6]; - for (size_t i = 0; i < 6; i++) - node[i] = rand() & 0xff; - - char buffer[37]; - sprintf(buffer, "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", - time_low, time_mid, time_high_and_version, clock_seq >> 8, clock_seq & 0xff, - node[0], node[1], node[2], node[3], node[4], node[5]); - - return std::string (buffer); -} -#endif - //////////////////////////////////////////////////////////////////////////////// // On Solaris no flock function exists. #ifdef SOLARIS diff --git a/src/util.h b/src/util.h index ac114feb0..fefd4e794 100644 --- a/src/util.h +++ b/src/util.h @@ -34,9 +34,7 @@ #include #include -#ifdef HAVE_UUID #include -#endif // util.cpp bool confirm (const std::string&); @@ -46,7 +44,7 @@ void delay (float); std::string formatBytes (size_t); int autoComplete (const std::string&, const std::vector&, std::vector&, int minimum = 1); -#if defined(HAVE_UUID) && !defined(HAVE_UUID_UNPARSE_LOWER) +#ifndef HAVE_UUID_UNPARSE_LOWER void uuid_unparse_lower (uuid_t uu, char *out); #endif const std::string uuid (); From bda3674578f667e96df06c785580abd1650f53d2 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 20 Jul 2013 16:07:25 -0400 Subject: [PATCH 064/173] Code Cleanup - Removed the rand/random/srand/srandom calls that are no longer used. --- CMakeLists.txt | 2 -- cmake.h.in | 6 ------ src/commands/CmdDiagnostics.cpp | 12 ------------ src/main.cpp | 13 ------------- src/shell/main.cpp | 13 ------------- 5 files changed, 46 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c1ab3b5e8..882dcbb45 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -83,8 +83,6 @@ if (READLINE_FOUND) set (TASK_LIBRARIES ${TASK_LIBRARIES} ${READLINE_LIBRARIES}) endif (READLINE_FOUND) -check_function_exists (random HAVE_RANDOM) -check_function_exists (srandom HAVE_SRANDOM) check_function_exists (timegm HAVE_TIMEGM) check_function_exists (get_current_dir_name HAVE_GET_CURRENT_DIR_NAME) diff --git a/cmake.h.in b/cmake.h.in index 2d6dc7d8e..3a0b2ac4d 100644 --- a/cmake.h.in +++ b/cmake.h.in @@ -52,12 +52,6 @@ /* Found the pthread library */ #cmakedefine HAVE_LIBPTHREAD -/* Found random */ -#cmakedefine HAVE_RANDOM - -/* Found srandom */ -#cmakedefine HAVE_SRANDOM - /* Found tm_gmtoff */ #cmakedefine HAVE_TM_GMTOFF diff --git a/src/commands/CmdDiagnostics.cpp b/src/commands/CmdDiagnostics.cpp index 68a04b6c0..a76cb81ac 100644 --- a/src/commands/CmdDiagnostics.cpp +++ b/src/commands/CmdDiagnostics.cpp @@ -149,18 +149,6 @@ int CmdDiagnostics::execute (std::string& output) << " -pthreads" #endif -#ifdef HAVE_SRANDOM - << " +srandom" -#else - << " -srandom" -#endif - -#ifdef HAVE_RANDOM - << " +random" -#else - << " -random" -#endif - #ifdef HAVE_LIBGNUTLS << " +tls" #else diff --git a/src/main.cpp b/src/main.cpp index 7440024fd..4aa9972b7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -41,22 +41,9 @@ Context context; -#ifdef HAVE_SRANDOM -#define srand(x) srandom(x) -#endif - //////////////////////////////////////////////////////////////////////////////// int main (int argc, const char** argv) { - // Set up randomness. -#ifdef CYGWIN - srand (time (NULL)); -#else - struct timeval tv; - gettimeofday (&tv, NULL); - srand (tv.tv_usec); -#endif - int status = 0; if (argc == 2 && !strcmp (argv[1], "--version")) diff --git a/src/shell/main.cpp b/src/shell/main.cpp index af74fdacf..699abfd7f 100644 --- a/src/shell/main.cpp +++ b/src/shell/main.cpp @@ -45,22 +45,9 @@ Context context; -#ifdef HAVE_SRANDOM -#define srand(x) srandom(x) -#endif - //////////////////////////////////////////////////////////////////////////////// int main (int argc, const char** argv) { - // Set up randomness. -#ifdef CYGWIN - srand (time (NULL)); -#else - struct timeval tv; - gettimeofday (&tv, NULL); - srand (tv.tv_usec); -#endif - bool read_from_file = false; if (argc > 2) From c92631b4b0841f80ba8899d742fff9e3ed5451bf Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 20 Jul 2013 16:45:01 -0400 Subject: [PATCH 065/173] Code Cleanup - One less include needed. --- src/util.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/util.h b/src/util.h index fefd4e794..0206517c4 100644 --- a/src/util.h +++ b/src/util.h @@ -32,9 +32,8 @@ #include #include #include -#include - #include +#include // util.cpp bool confirm (const std::string&); From 4d10afbb08a6f23929710d6bdbf1b7793c8090cb Mon Sep 17 00:00:00 2001 From: Martin Natano Date: Sat, 20 Jul 2013 22:37:45 +0200 Subject: [PATCH 066/173] remove missing imports - time.h was included for random seed --- src/main.cpp | 6 ------ src/shell/main.cpp | 6 ------ 2 files changed, 12 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 4aa9972b7..51d107a80 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -30,12 +30,6 @@ #include #include -#ifdef CYGWIN -#include -#else -#include -#endif - #include #include diff --git a/src/shell/main.cpp b/src/shell/main.cpp index 699abfd7f..3ef57679d 100644 --- a/src/shell/main.cpp +++ b/src/shell/main.cpp @@ -31,12 +31,6 @@ #include #include -#ifdef CYGWIN -#include -#else -#include -#endif - #include #include #include From 4b574c5de477a23b1078ca77147b5aeebdad67fc Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Fri, 26 Jul 2013 19:45:53 -0400 Subject: [PATCH 067/173] Build Warning - Fixed FreeBSD build warning. --- src/columns/ColPriority.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/columns/ColPriority.cpp b/src/columns/ColPriority.cpp index 0309c7e89..77d5f39d1 100644 --- a/src/columns/ColPriority.cpp +++ b/src/columns/ColPriority.cpp @@ -130,4 +130,5 @@ bool ColumnPriority::can_modify () return true; } -//////////////////////////////////////////////////////////////////////////////// \ No newline at end of file +//////////////////////////////////////////////////////////////////////////////// + From 38bba720014457b6b0b218b9f762ae5619713302 Mon Sep 17 00:00:00 2001 From: Scott Kostyshak Date: Thu, 1 Aug 2013 20:25:08 -0400 Subject: [PATCH 068/173] Documentation - Fix typos (thanks to Ben Armstrong). --- AUTHORS | 1 + doc/man/taskrc.5.in | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/AUTHORS b/AUTHORS index 3ff3338b6..e56894b29 100644 --- a/AUTHORS +++ b/AUTHORS @@ -178,3 +178,4 @@ suggestions: alparo Roy Zuo Friedrich Heusler + Ben Armstrong diff --git a/doc/man/taskrc.5.in b/doc/man/taskrc.5.in index d702f3fce..a816c9ed4 100644 --- a/doc/man/taskrc.5.in +++ b/doc/man/taskrc.5.in @@ -139,7 +139,7 @@ define a set of US holidays, and set up a 16-color theme to use, to color the reports and calendar. .SH ENVIRONMENT VARIABLES -These environmant variables override defaults and command line arguments. +These environment variables override defaults and command line arguments. .TP .B TASKDATA=~/.task @@ -856,7 +856,7 @@ Colors any task where the description or any annotation contains X. .TP .B color.uda.X=on green -Colors any taks that has the user defined attribute X. +Colors any task that has the user defined attribute X. .RE .TP From 67f20d96bc7ceb7add7b42c20099d72346563865 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 4 Aug 2013 15:56:17 -0400 Subject: [PATCH 069/173] Code Cleanup - Fixed typo, for consistency. --- src/commands/CmdSync.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index d5d94c72d..e6d462f10 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -151,7 +151,7 @@ int CmdSync::execute (std::string& output) if (lines.size () > 1) context.tdb2.all_tasks (); - std::string synch_key = ""; + std::string sync_key = ""; std::vector ::iterator line; for (line = lines.begin (); line != lines.end (); ++line) { @@ -187,22 +187,22 @@ int CmdSync::execute (std::string& output) } else if (*line != "") { - synch_key = *line; - context.debug ("Synch key " + synch_key); + sync_key = *line; + context.debug ("Sync key " + sync_key); } // Otherwise line is blank, so ignore it. } - // Only update everything if there is a new synch_key. No synch_key means + // Only update everything if there is a new sync_key. No sync_key means // something horrible happened on the other end of the wire. - if (synch_key != "") + if (sync_key != "") { - // Truncate backlog.data, save new synch_key. + // Truncate backlog.data, save new sync_key. context.tdb2.backlog._file.truncate (); context.tdb2.backlog.clear_tasks (); context.tdb2.backlog.clear_lines (); - context.tdb2.backlog.add_line (synch_key + "\n"); + context.tdb2.backlog.add_line (sync_key + "\n"); // Commit all changes. context.tdb2.commit (); From 74bbd6cefeccf34a0e878419ce9398501cacd77d Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 18 Aug 2013 00:00:46 -0400 Subject: [PATCH 070/173] Unicode - The configuration file now supports JSON encoding of Unicode characters, by specifying \uNNNN. --- ChangeLog | 2 ++ NEWS | 1 + doc/man/taskrc.5.in | 2 ++ src/Config.cpp | 5 +++-- src/commands/CmdConfig.cpp | 7 ++++--- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2dff3c10d..d576db53d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -32,6 +32,8 @@ Features that are not yet modified. + ColPriority.cpp - Migration of column modification code out of Task.cpp and into the individual column object. + + The configuration file now supports JSON encoding of Unicode characters, by + specifying \uNNNN. + Now requires libuuid (thanks to Martin Natano). Bugs diff --git a/NEWS b/NEWS index ecc78d3ce..1d0aaca4f 100644 --- a/NEWS +++ b/NEWS @@ -20,6 +20,7 @@ New configuration options in taskwarrior 2.3.0 - 'taskd.credentials' specifies user credentials for the task server. - 'taskd.certificate' specifies the task server certificate. - 'debug.tls' shows TLS log information, for debugging. + - The configuration file supports JSON encoding of unicode characters \uNNNN. Newly deprecated features in taskwarrior 2.3.0 diff --git a/doc/man/taskrc.5.in b/doc/man/taskrc.5.in index a816c9ed4..208763f15 100644 --- a/doc/man/taskrc.5.in +++ b/doc/man/taskrc.5.in @@ -80,6 +80,8 @@ The hash mark, or pound sign ("#") is used as a comment character. It can be used to annotate the configuration file. All text after the character to the end of the line is ignored. +The configuration file supports UTF8 as well as JSON encoding, such as \\uNNNN. + Note that taskwarrior is flexible about the values used to represent Boolean items. You can use "on", "yes", "y", "1" and "true". Anything else means "off". diff --git a/src/Config.cpp b/src/Config.cpp index 50168cd48..11f15b5e3 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -496,7 +497,7 @@ void Config::parse (const std::string& input, int nest /* = 1 */) std::string key = trim (line.substr (0, equal), " \t"); // no i18n std::string value = trim (line.substr (equal+1, line.length () - equal), " \t"); // no i18n - (*this)[key] = value; + (*this)[key] = json::decode (value); } else { @@ -551,7 +552,7 @@ void Config::createDefaultRC (const std::string& rc, const std::string& data) << "\n"; // Write out the new file. - if (! File::write (rc, contents.str ())) + if (! File::write (rc, json::encode (contents.str ()))) throw format (STRING_CONFIG_BAD_WRITE, rc); } diff --git a/src/commands/CmdConfig.cpp b/src/commands/CmdConfig.cpp index 204d90a5f..d595afb63 100644 --- a/src/commands/CmdConfig.cpp +++ b/src/commands/CmdConfig.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -103,9 +104,9 @@ int CmdConfig::execute (std::string& output) if (confirm (format (STRING_CMD_CONFIG_CONFIRM, name, context.config.get (name), value))) { if (comment != std::string::npos) - *line = name + "=" + value + " " + line->substr (comment); + *line = name + "=" + json::encode (value) + " " + line->substr (comment); else - *line = name + "=" + value; + *line = name + "=" + json::encode (value); change = true; } @@ -116,7 +117,7 @@ int CmdConfig::execute (std::string& output) if (!found && confirm (format (STRING_CMD_CONFIG_CONFIRM2, name, value))) { - contents.push_back (name + "=" + value); + contents.push_back (name + "=" + json::encode (value)); change = true; } } From b09d928da929b6c5e4c96e5f1f25b298a431f281 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 19 Aug 2013 07:37:00 -0400 Subject: [PATCH 071/173] Documentation - Fixed mis-formatted text. --- doc/man/taskrc.5.in | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/man/taskrc.5.in b/doc/man/taskrc.5.in index 208763f15..88bff2a05 100644 --- a/doc/man/taskrc.5.in +++ b/doc/man/taskrc.5.in @@ -1063,6 +1063,7 @@ Specific tag coefficient. .B urgency.user.project..coefficient=... .RS Specific project coefficient. +.RE .B urgency.uda..coefficient=... .RS Presence/absence of UDA data. From 166723e63293bde879125d2fdd1945e5d0a64fa0 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 25 Aug 2013 23:35:32 -0700 Subject: [PATCH 072/173] Feature - New '_get' is a DOM accessor helper command. --- ChangeLog | 1 + NEWS | 1 + doc/man/task.1.in | 18 ++++++++++ src/DOM.cpp | 8 ++--- src/commands/CMakeLists.txt | 1 + src/commands/CmdGet.cpp | 69 +++++++++++++++++++++++++++++++++++++ src/commands/CmdGet.h | 42 ++++++++++++++++++++++ src/commands/Command.cpp | 2 ++ src/en-US.h | 1 + src/es-ES.h | 1 + src/fr-FR.h | 1 + src/it-IT.h | 1 + 12 files changed, 142 insertions(+), 4 deletions(-) create mode 100644 src/commands/CmdGet.cpp create mode 100644 src/commands/CmdGet.h diff --git a/ChangeLog b/ChangeLog index d576db53d..a32f238e3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -35,6 +35,7 @@ Features + The configuration file now supports JSON encoding of Unicode characters, by specifying \uNNNN. + Now requires libuuid (thanks to Martin Natano). + + New '_get' is a DOM accessor helper command. Bugs + #1196 Now builds on Hurd (thanks to Jakub Wilk). diff --git a/NEWS b/NEWS index 1d0aaca4f..4a3d7e324 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,7 @@ New Features in taskwarrior 2.3.0 - Italian translation. - UDA fields now allow default values. - Now requires libuuid. + - New '_get' DOM accessor helper command. New commands in taskwarrior 2.3.0 diff --git a/doc/man/task.1.in b/doc/man/task.1.in index 890937554..feedb78dc 100644 --- a/doc/man/task.1.in +++ b/doc/man/task.1.in @@ -533,6 +533,24 @@ Shows the IDs and descriptions of matching tasks. .B task _zshuuids Shows the UUIDs and descriptions of matching tasks. +.TP +.B task _get [ ...] +Accesses and displays the DOM reference(s). Used to extract individual values +from tasks, or the system. Supported DOM references are: + + rc. + context.program + context.args + context.width + context.height + system.version + system.os + . + . + +Note that the 'rc.' reference may need to be escaped using '--' to prevent +the reference from being interpreted as an override. + .SH ATTRIBUTES AND METADATA .TP diff --git a/src/DOM.cpp b/src/DOM.cpp index e971b70cf..c6f8396a3 100644 --- a/src/DOM.cpp +++ b/src/DOM.cpp @@ -91,8 +91,8 @@ const std::string DOM::get (const std::string& name) { if (name == "context.program") return context.a3[0]._raw; else if (name == "context.args") return context.a3.combine (); - else if (name == "context.width") return format (context.terminal_width); - else if (name == "context.height") return format (context.terminal_height); + else if (name == "context.width") return format (context.terminal_width ? context.terminal_width : context.getWidth ()); + else if (name == "context.height") return format (context.terminal_height ? context.terminal_height : context.getHeight ()); else throw format (STRING_DOM_UNREC, name); } @@ -185,7 +185,7 @@ const std::string DOM::get (const std::string& name, const Task& task) // if (name == "id") return format (task.id); - else if (name == "urgency") return format (task.urgency_c (), 4, 3); + else if (name == "urgency") return format (task.urgency_c ()); else if (A3::is_attribute (name, canonical)) return task.get (canonical); // . @@ -203,7 +203,7 @@ const std::string DOM::get (const std::string& name, const Task& task) n.getUntilEOS (attr); if (attr == "id") return format (ref.id); - else if (attr == "urgency") return format (ref.urgency_c (), 4, 3); + else if (attr == "urgency") return format (ref.urgency_c ()); else if (A3::is_attribute (attr, canonical)) return ref.get (canonical); } } diff --git a/src/commands/CMakeLists.txt b/src/commands/CMakeLists.txt index 451e0724d..6bed6a52e 100644 --- a/src/commands/CMakeLists.txt +++ b/src/commands/CMakeLists.txt @@ -26,6 +26,7 @@ set (commands_SRCS Command.cpp Command.h CmdEdit.cpp CmdEdit.h CmdExec.cpp CmdExec.h CmdExport.cpp CmdExport.h + CmdGet.cpp CmdGet.h CmdHelp.cpp CmdHelp.h CmdHistory.cpp CmdHistory.h CmdIDs.cpp CmdIDs.h diff --git a/src/commands/CmdGet.cpp b/src/commands/CmdGet.cpp new file mode 100644 index 000000000..662734754 --- /dev/null +++ b/src/commands/CmdGet.cpp @@ -0,0 +1,69 @@ +//////////////////////////////////////////////////////////////////////////////// +// taskwarrior - a command line task list manager. +// +// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// +// http://www.opensource.org/licenses/mit-license.php +// +//////////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include +#include +#include + +extern Context context; + +//////////////////////////////////////////////////////////////////////////////// +CmdGet::CmdGet () +{ + _keyword = "_get"; + _usage = "task _get [ ...]"; + _description = STRING_CMD_GET_USAGE; + _read_only = true; + _displays_id = false; +} + +//////////////////////////////////////////////////////////////////////////////// +int CmdGet::execute (std::string& output) +{ + // Obtain the arguments from the description. That way, things like '--' + // have already been handled. + std::vector words = context.a3.extract_words (); + if (words.size () == 0) + throw std::string ("Need args!"); + + std::vector results; + std::vector ::iterator word; + for (word = words.begin (); word != words.end (); ++word) + { + Task t; + results.push_back (context.dom.get (*word, t)); + } + + join (output, " ", results); + output += "\n"; + return 0; +} + +//////////////////////////////////////////////////////////////////////////////// diff --git a/src/commands/CmdGet.h b/src/commands/CmdGet.h new file mode 100644 index 000000000..15793429f --- /dev/null +++ b/src/commands/CmdGet.h @@ -0,0 +1,42 @@ +//////////////////////////////////////////////////////////////////////////////// +// taskwarrior - a command line task list manager. +// +// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. +// +// http://www.opensource.org/licenses/mit-license.php +// +//////////////////////////////////////////////////////////////////////////////// + +#ifndef INCLUDED_CMDGET +#define INCLUDED_CMDGET + +#include +#include + +class CmdGet : public Command +{ +public: + CmdGet (); + int execute (std::string&); +}; + +#endif +//////////////////////////////////////////////////////////////////////////////// diff --git a/src/commands/Command.cpp b/src/commands/Command.cpp index 0cc07d0e0..a713691b8 100644 --- a/src/commands/Command.cpp +++ b/src/commands/Command.cpp @@ -60,6 +60,7 @@ #include #endif #include +#include #include #include #include @@ -131,6 +132,7 @@ void Command::factory (std::map & all) c = new CmdExec (); all[c->keyword ()] = c; #endif c = new CmdExport (); all[c->keyword ()] = c; + c = new CmdGet (); all[c->keyword ()] = c; c = new CmdGHistoryMonthly (); all[c->keyword ()] = c; c = new CmdGHistoryAnnual (); all[c->keyword ()] = c; c = new CmdHelp (); all[c->keyword ()] = c; diff --git a/src/en-US.h b/src/en-US.h index 71ddd5f34..9160b11f9 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -307,6 +307,7 @@ #define STRING_CMD_SUMMARY_COMPLETE "Complete" #define STRING_CMD_SUMMARY_NONE "(none)" #define STRING_CMD_COUNT_USAGE "Counts matching tasks" +#define STRING_CMD_GET_USAGE "DOM Accessor" #define STRING_CMD_UDAS_NO "No UDAs defined." #define STRING_CMD_UDAS_SUMMARY "{1} UDA defined" diff --git a/src/es-ES.h b/src/es-ES.h index b0a34f08b..d0bce9ea7 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -316,6 +316,7 @@ #define STRING_CMD_SUMMARY_COMPLETE "Completas" #define STRING_CMD_SUMMARY_NONE "(ninguna)" #define STRING_CMD_COUNT_USAGE "Cuenta tareas que coinciden" +#define STRING_CMD_GET_USAGE "DOM Accessor" #define STRING_CMD_UDAS_NO "Ningún UDA definido." #define STRING_CMD_UDAS_SUMMARY "{1} UDA definido" diff --git a/src/fr-FR.h b/src/fr-FR.h index e895d4a7b..2fd96f2cf 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -307,6 +307,7 @@ #define STRING_CMD_SUMMARY_COMPLETE "Complete" #define STRING_CMD_SUMMARY_NONE "(none)" #define STRING_CMD_COUNT_USAGE "Counts matching tasks" +#define STRING_CMD_GET_USAGE "DOM Accessor" #define STRING_CMD_UDAS_NO "No UDAs defined." #define STRING_CMD_UDAS_SUMMARY "{1} UDA defined" diff --git a/src/it-IT.h b/src/it-IT.h index a51f24b2a..fb27b778e 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -308,6 +308,7 @@ #define STRING_CMD_SUMMARY_COMPLETE "Completi" #define STRING_CMD_SUMMARY_NONE "(nessuno)" #define STRING_CMD_COUNT_USAGE "Conteggia task corrispondenti" +#define STRING_CMD_GET_USAGE "DOM Accessor" #define STRING_CMD_UDAS_NO "Nessun UDA definito." #define STRING_CMD_UDAS_SUMMARY "{1} UDA definito" From 06d905b633f1f1a67bcf234af20230feff6da5d0 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 26 Aug 2013 02:47:31 -0400 Subject: [PATCH 073/173] Unit Tests - Corrected two broken DOM unit tests. --- test/dom.t.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/test/dom.t.cpp b/test/dom.t.cpp index b322606f6..db114ac73 100644 --- a/test/dom.t.cpp +++ b/test/dom.t.cpp @@ -43,14 +43,16 @@ int main (int argc, char** argv) // Prime the pump. context.a3.capture ("task"); - // TODO dom.get rc.name DOM dom; t.is (dom.get ("system.version"), VERSION, "DOM system.version -> VERSION"); t.ok (dom.get ("system.os") != "", "DOM system.os -> != Unknown"); t.is (dom.get ("context.program"), "task", "DOM context.program -> 'task'"); t.is (dom.get ("context.args"), "task", "DOM context.args -> 'task'"); - t.is (dom.get ("context.width"), "0", "DOM context.width -> '0'"); - t.is (dom.get ("context.height"), "0", "DOM context.height -> '0'"); + t.ok (dom.get ("context.width") != "0", "DOM context.width -> '0'"); + t.ok (dom.get ("context.height") != "0", "DOM context.height -> '0'"); + + // TODO dom.get rc.name +// t.is (dom.get ("rc.verbose"), "yes", "DOM rc.verbose -> 'yes'"); // TODO dom.set rc.name } From 6555811ca5cfbaf3f280558b90c629aa699acdfc Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 26 Aug 2013 08:43:02 -0700 Subject: [PATCH 074/173] Bug - Fixed bug in DOM access where the attribute name was not being properly used for UUID-based lookup. --- src/DOM.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/DOM.cpp b/src/DOM.cpp index c6f8396a3..e99310108 100644 --- a/src/DOM.cpp +++ b/src/DOM.cpp @@ -179,6 +179,8 @@ const std::string DOM::get (const std::string& name) const std::string DOM::get (const std::string& name, const Task& task) { Nibbler n (name); + n.save (); + int id; std::string uuid; std::string canonical; @@ -189,7 +191,7 @@ const std::string DOM::get (const std::string& name, const Task& task) else if (A3::is_attribute (name, canonical)) return task.get (canonical); // . - else if (n.getInt (id)) + if (n.getInt (id)) { if (n.skip ('.')) { @@ -206,10 +208,12 @@ const std::string DOM::get (const std::string& name, const Task& task) else if (attr == "urgency") return format (ref.urgency_c ()); else if (A3::is_attribute (attr, canonical)) return ref.get (canonical); } + + n.restore (); } // . - else if (n.getUUID (uuid)) + if (n.getUUID (uuid)) { if (n.skip ('.')) { @@ -222,10 +226,12 @@ const std::string DOM::get (const std::string& name, const Task& task) std::string attr; n.getUntilEOS (attr); - if (name == "id") return format (ref.id); - else if (name == "urgency") return format (ref.urgency_c (), 4, 3); + if (attr == "id") return format (ref.id); + else if (attr == "urgency") return format (ref.urgency_c (), 4, 3); else if (A3::is_attribute (attr, canonical)) return ref.get (canonical); } + + n.restore (); } // Delegate to the context-free version of DOM::get. From 3a8a513d17e1a4be709dc81f8cb3efcddd045dcc Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 26 Aug 2013 09:15:48 -0700 Subject: [PATCH 075/173] Date Support - Added Date::week helper method. --- src/Date.cpp | 16 ++++++++++++++++ src/Date.h | 2 ++ test/date.t.cpp | 7 ++++++- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/Date.cpp b/src/Date.cpp index f81aeb8f1..829cab59a 100644 --- a/src/Date.cpp +++ b/src/Date.cpp @@ -585,6 +585,12 @@ int Date::month () const return t->tm_mon + 1; } +//////////////////////////////////////////////////////////////////////////////// +int Date::week () const +{ + return Date::weekOfYear (Date::dayOfWeek (context.config.get ("weekstart"))); +} + //////////////////////////////////////////////////////////////////////////////// int Date::day () const { @@ -679,6 +685,16 @@ bool Date::sameDay (const Date& rhs) const return false; } +//////////////////////////////////////////////////////////////////////////////// +bool Date::sameWeek (const Date& rhs) const +{ + if (this->year () == rhs.year () && + this->week () == rhs.week ()) + return true; + + return false; +} + //////////////////////////////////////////////////////////////////////////////// bool Date::sameMonth (const Date& rhs) const { diff --git a/src/Date.h b/src/Date.h index dfd28186c..cb4c1dd68 100644 --- a/src/Date.h +++ b/src/Date.h @@ -76,6 +76,7 @@ public: static int length (const std::string&); int month () const; + int week () const; int day () const; int year () const; int weekOfYear (int) const; @@ -93,6 +94,7 @@ public: bool operator>= (const Date&) const; bool sameHour (const Date&) const; bool sameDay (const Date&) const; + bool sameWeek (const Date&) const; bool sameMonth (const Date&) const; bool sameYear (const Date&) const; diff --git a/test/date.t.cpp b/test/date.t.cpp index 962e7debe..cadeb0628 100644 --- a/test/date.t.cpp +++ b/test/date.t.cpp @@ -36,7 +36,7 @@ Context context; //////////////////////////////////////////////////////////////////////////////// int main (int argc, char** argv) { - UnitTest t (205); + UnitTest t (209); try { @@ -61,9 +61,11 @@ int main (int argc, char** argv) t.ok (now < tomorrow, "now < tomorrow"); // Date::Date ("now") + context.config.set ("weekstart", "monday"); Date relative_now ("now"); t.ok (relative_now.sameHour (now), "Date ().sameHour (Date (now))"); t.ok (relative_now.sameDay (now), "Date ().sameDay (Date (now))"); + t.ok (relative_now.sameWeek (now), "Date ().sameWeek (Date (now))"); t.ok (relative_now.sameMonth (now), "Date ().sameMonth (Date (now))"); t.ok (relative_now.sameYear (now), "Date ().sameYear (Date (now))"); @@ -71,6 +73,7 @@ int main (int argc, char** argv) Date left ("7/4/2008"); Date comp1 ("7/4/2008"); t.ok (left.sameDay (comp1), "7/4/2008 is on the same day as 7/4/2008"); + t.ok (left.sameWeek (comp1), "7/4/2008 is on the same week as 7/4/2008"); t.ok (left.sameMonth (comp1), "7/4/2008 is in the same month as 7/4/2008"); t.ok (left.sameYear (comp1), "7/4/2008 is in the same year as 7/4/2008"); @@ -81,11 +84,13 @@ int main (int argc, char** argv) Date comp3 ("8/4/2008"); t.notok (left.sameDay (comp3), "7/4/2008 is not on the same day as 8/4/2008"); + t.notok (left.sameWeek (comp3), "7/4/2008 is not on the same week as 8/4/2008"); t.notok (left.sameMonth (comp3), "7/4/2008 is not in the same month as 8/4/2008"); t.ok (left.sameYear (comp3), "7/4/2008 is in the same year as 8/4/2008"); Date comp4 ("7/4/2009"); t.notok (left.sameDay (comp4), "7/4/2008 is not on the same day as 7/4/2009"); + t.notok (left.sameWeek (comp3), "7/4/2008 is not on the same week as 7/4/2009"); t.notok (left.sameMonth (comp4), "7/4/2008 is not in the same month as 7/4/2009"); t.notok (left.sameYear (comp4), "7/4/2008 is not in the same year as 7/4/2009"); From bc41e7378a3765d0cb29c7b04dbe93a3418ff1c9 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 26 Aug 2013 09:25:29 -0700 Subject: [PATCH 076/173] Feature - New virtual tags (WEEK, MONTH, YEAR, PARENT). --- ChangeLog | 3 +- NEWS | 1 + doc/man/task.1.in | 4 +++ src/Task.cpp | 71 +++++++++++++++++++++++++++++++++++++++++++---- src/Task.h | 3 ++ 5 files changed, 76 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index a32f238e3..c6ba9c8ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -36,6 +36,7 @@ Features specifying \uNNNN. + Now requires libuuid (thanks to Martin Natano). + New '_get' is a DOM accessor helper command. + + New virtual tags (WEEK, MONTH, YEAR, PARENT). Bugs + #1196 Now builds on Hurd (thanks to Jakub Wilk). @@ -89,7 +90,7 @@ Features + Removed deprecated 'fg:' and 'bg:' attributes. + The 'diagnostics' command now reports libuuid details. + New characters for parsing and formating dates ('n', 's' and 'v'). - + Virtual tags (BLOCKED, UNBLOCKED, BLOCKING, DUE, DUETODAY, TODAY, OVERDUE, + + Virtual tags (BLOCKED, UNBLOCKED, BLOCKING, DUE, DUETODAY, OVERDUE, TODAY, ACTIVE, SCHEDULED, CHILD, UNTIL, WAITING and ANNOTATED). + New 'modified' attribute, which contains the most recent modification date, if a modification has occurred. diff --git a/NEWS b/NEWS index 4a3d7e324..7b11d1189 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,7 @@ New Features in taskwarrior 2.3.0 - UDA fields now allow default values. - Now requires libuuid. - New '_get' DOM accessor helper command. + - New virtual tags: WEEK, MONTH, YEAR, PARENT. New commands in taskwarrior 2.3.0 diff --git a/doc/man/task.1.in b/doc/man/task.1.in index feedb78dc..db69dafc7 100644 --- a/doc/man/task.1.in +++ b/doc/man/task.1.in @@ -588,9 +588,13 @@ are: DUE Matches if the task is due DUETODAY Matches if the task is due today TODAY Matches if the task is due today + WEEK Matches if the task is due this week + MONTH Matches if the task is due this month + YEAR Matches if the task is due this year OVERDUE Matches if the task is overdue ACTIVE Matches if the task is started SCHEDULED Matches if the task is scheduled + PARENT Matches if the task is a parent CHILD Matches if the task has a parent UNTIL Matches if the task expires WAITING Matches if the task is waiting diff --git a/src/Task.cpp b/src/Task.cpp index 4de6055c7..3ff4ccfe4 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -361,6 +361,68 @@ bool Task::is_duetoday () const return false; } +//////////////////////////////////////////////////////////////////////////////// +bool Task::is_dueweek () const +{ + if (has ("due")) + { + Task::status status = getStatus (); + + if (status != Task::completed && + status != Task::deleted) + { + Date now; + Date due (get_date ("due")); + if (now.year () == due.year () && + now.week () == due.week ()) + return true; + } + } + + return false; +} + +//////////////////////////////////////////////////////////////////////////////// +bool Task::is_duemonth () const +{ + if (has ("due")) + { + Task::status status = getStatus (); + + if (status != Task::completed && + status != Task::deleted) + { + Date now; + Date due (get_date ("due")); + if (now.year () == due.year () && + now.month () == due.month ()) + return true; + } + } + + return false; +} + +//////////////////////////////////////////////////////////////////////////////// +bool Task::is_dueyear () const +{ + if (has ("due")) + { + Task::status status = getStatus (); + + if (status != Task::completed && + status != Task::deleted) + { + Date now; + Date due (get_date ("due")); + if (now.year () == due.year ()) + return true; + } + } + + return false; +} + //////////////////////////////////////////////////////////////////////////////// bool Task::is_overdue () const { @@ -1026,6 +1088,9 @@ bool Task::hasTag (const std::string& tag) const if (tag == "DUETODAY") return is_duetoday (); if (tag == "TODAY") return is_duetoday (); if (tag == "OVERDUE") return is_overdue (); + if (tag == "WEEK") return is_dueweek (); + if (tag == "MONTH") return is_duemonth (); + if (tag == "YEAR") return is_dueyear (); #endif if (tag == "ACTIVE") return has ("start"); if (tag == "SCHEDULED") return has ("scheduled"); @@ -1033,16 +1098,12 @@ bool Task::hasTag (const std::string& tag) const if (tag == "UNTIL") return has ("until"); if (tag == "WAITING") return has ("wait"); if (tag == "ANNOTATED") return hasAnnotations (); + if (tag == "PARENT") return has ("mask"); /* TODO YESTERDAY - due yesterday TODO TOMORROW - due tomorrow - TODO WEEK - due this week - TODO MONTH - due this month - TODO YEAR - due this year TODO READY - is ready - TODO WAITING - is waiting - TODO PARENT - is a parent */ // Concrete tags. diff --git a/src/Task.h b/src/Task.h index 5fcb8525b..c322fc29c 100644 --- a/src/Task.h +++ b/src/Task.h @@ -106,6 +106,9 @@ public: #ifdef PRODUCT_TASKWARRIOR bool is_due () const; bool is_duetoday () const; + bool is_dueweek () const; + bool is_duemonth () const; + bool is_dueyear () const; bool is_overdue () const; #endif From 82520951748cd8a6f472b08caf52fdeb9219e40f Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 2 Sep 2013 15:33:52 -0400 Subject: [PATCH 077/173] L10N - Localized the new _get command. --- src/commands/CmdGet.cpp | 2 +- src/en-US.h | 1 + src/es-ES.h | 1 + src/fr-FR.h | 1 + src/it-IT.h | 1 + 5 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/commands/CmdGet.cpp b/src/commands/CmdGet.cpp index 662734754..a253e15f4 100644 --- a/src/commands/CmdGet.cpp +++ b/src/commands/CmdGet.cpp @@ -51,7 +51,7 @@ int CmdGet::execute (std::string& output) // have already been handled. std::vector words = context.a3.extract_words (); if (words.size () == 0) - throw std::string ("Need args!"); + throw std::string (STRING_CMD_GET_NO_DOM); std::vector results; std::vector ::iterator word; diff --git a/src/en-US.h b/src/en-US.h index 9160b11f9..bb3d1be11 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -308,6 +308,7 @@ #define STRING_CMD_SUMMARY_NONE "(none)" #define STRING_CMD_COUNT_USAGE "Counts matching tasks" #define STRING_CMD_GET_USAGE "DOM Accessor" +#define STRING_CMD_GET_NO_DOM "No DOM reference specified." #define STRING_CMD_UDAS_NO "No UDAs defined." #define STRING_CMD_UDAS_SUMMARY "{1} UDA defined" diff --git a/src/es-ES.h b/src/es-ES.h index d0bce9ea7..ad0cb1bfd 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -317,6 +317,7 @@ #define STRING_CMD_SUMMARY_NONE "(ninguna)" #define STRING_CMD_COUNT_USAGE "Cuenta tareas que coinciden" #define STRING_CMD_GET_USAGE "DOM Accessor" +#define STRING_CMD_GET_NO_DOM "No DOM reference specified." #define STRING_CMD_UDAS_NO "Ningún UDA definido." #define STRING_CMD_UDAS_SUMMARY "{1} UDA definido" diff --git a/src/fr-FR.h b/src/fr-FR.h index 2fd96f2cf..50afd3379 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -308,6 +308,7 @@ #define STRING_CMD_SUMMARY_NONE "(none)" #define STRING_CMD_COUNT_USAGE "Counts matching tasks" #define STRING_CMD_GET_USAGE "DOM Accessor" +#define STRING_CMD_GET_NO_DOM "No DOM reference specified." #define STRING_CMD_UDAS_NO "No UDAs defined." #define STRING_CMD_UDAS_SUMMARY "{1} UDA defined" diff --git a/src/it-IT.h b/src/it-IT.h index fb27b778e..7d6c0d2cb 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -309,6 +309,7 @@ #define STRING_CMD_SUMMARY_NONE "(nessuno)" #define STRING_CMD_COUNT_USAGE "Conteggia task corrispondenti" #define STRING_CMD_GET_USAGE "DOM Accessor" +#define STRING_CMD_GET_NO_DOM "No DOM reference specified." #define STRING_CMD_UDAS_NO "Nessun UDA definito." #define STRING_CMD_UDAS_SUMMARY "{1} UDA definito" From 4cc9e90362bd00c44dee1b6fa172afd7085b389c Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 7 Sep 2013 11:42:57 -0400 Subject: [PATCH 078/173] Date Formats - Fixed broken documentation for custom report definitions regarding column formats. - Modified date access to use the more efficient Date::get_date method, which also shrinks the code. - Added the 'remaining' format for all date columns. --- ChangeLog | 1 + NEWS | 1 + doc/man/taskrc.5.in | 9 +++----- src/columns/ColDate.cpp | 41 ++++++++++++++++++++++++------------ src/columns/ColDue.cpp | 2 -- src/columns/ColScheduled.cpp | 6 ------ 6 files changed, 33 insertions(+), 27 deletions(-) diff --git a/ChangeLog b/ChangeLog index c6ba9c8ba..35e92af60 100644 --- a/ChangeLog +++ b/ChangeLog @@ -37,6 +37,7 @@ Features + Now requires libuuid (thanks to Martin Natano). + New '_get' is a DOM accessor helper command. + New virtual tags (WEEK, MONTH, YEAR, PARENT). + + Added the 'remaining' format for all date columns. Bugs + #1196 Now builds on Hurd (thanks to Jakub Wilk). diff --git a/NEWS b/NEWS index 7b11d1189..16d45dd2c 100644 --- a/NEWS +++ b/NEWS @@ -9,6 +9,7 @@ New Features in taskwarrior 2.3.0 - Now requires libuuid. - New '_get' DOM accessor helper command. - New virtual tags: WEEK, MONTH, YEAR, PARENT. + - New 'remaining' format for date columns. New commands in taskwarrior 2.3.0 diff --git a/doc/man/taskrc.5.in b/doc/man/taskrc.5.in index 88bff2a05..ca92fcd52 100644 --- a/doc/man/taskrc.5.in +++ b/doc/man/taskrc.5.in @@ -1204,11 +1204,8 @@ The description for report X when running the "task help" command. .TP .B report.X.columns -The columns that will be used when generating the report X. Valid columns are: -id, uuid, status, project, priority, priority_long, entry, start, end, due, -countdown, countdown_compact, age, age_compact, active, tags, depends, -description_only, description, recur, recurrence_indicator, tag_indicator and -wait. The IDs are separated by commas. +This is a comma-separated list of columns and formatting specifiers. See the +command 'task columns' for a full list of options and examples. .TP .B report.X.labels @@ -1222,7 +1219,7 @@ specified by using the column ids post-fixed by a "+" for ascending sort order or a "-" for descending sort order. The sort IDs are separated by commas. For example: - report.list.sort=due+,priority-,active-,project+ + report.list.sort=due+,priority-,start.active-,project+ .TP .B report.X.filter diff --git a/src/columns/ColDate.cpp b/src/columns/ColDate.cpp index 86fb6abfc..ef3fb55c2 100644 --- a/src/columns/ColDate.cpp +++ b/src/columns/ColDate.cpp @@ -26,7 +26,6 @@ //////////////////////////////////////////////////////////////////////////////// #include -#include #include #include #include @@ -50,6 +49,8 @@ ColumnDate::ColumnDate () _styles.push_back ("epoch"); _styles.push_back ("iso"); _styles.push_back ("age"); + _styles.push_back ("remaining"); + _styles.push_back ("countdown"); Date now; now -= 125; // So that "age" is non-zero. @@ -58,6 +59,8 @@ ColumnDate::ColumnDate () _examples.push_back (now.toEpochString ()); _examples.push_back (now.toISO ()); _examples.push_back (Duration (Date () - now).formatCompact ()); + _examples.push_back (""); + _examples.push_back (Duration (Date () - now).format ()); } //////////////////////////////////////////////////////////////////////////////// @@ -79,7 +82,7 @@ void ColumnDate::measure (Task& task, unsigned int& minimum, unsigned int& maxim if (task.has (_name)) { - Date date ((time_t) strtol (task.get (_name).c_str (), NULL, 10)); + Date date (task.get_date (_name)); if (_style == "default" || _style == "formatted") @@ -98,7 +101,6 @@ void ColumnDate::measure (Task& task, unsigned int& minimum, unsigned int& maxim } else if (_style == "countdown") { - Date date ((time_t) strtol (task.get (_name).c_str (), NULL, 10)); Date now; minimum = maximum = Duration (now - date).format ().length (); } @@ -119,6 +121,12 @@ void ColumnDate::measure (Task& task, unsigned int& minimum, unsigned int& maxim Date now; minimum = maximum = Duration (now - date).formatCompact ().length (); } + else if (_style == "remaining") + { + Date now; + if (date > now) + minimum = maximum = Duration (date - now).format ().length (); + } else throw format (STRING_COLUMN_BAD_FORMAT, _name, _style); } @@ -133,6 +141,8 @@ void ColumnDate::render ( { if (task.has (_name)) { + Date date (task.get_date (_name)); + if (_style == "default" || _style == "formatted") { @@ -149,12 +159,10 @@ void ColumnDate::render ( lines.push_back ( color.colorize ( leftJustify ( - Date ((time_t) strtol (task.get (_name).c_str (), NULL, 10)) - .toString (format), width))); + date.toString (format), width))); } else if (_style == "countdown") { - Date date ((time_t) strtol (task.get (_name).c_str (), NULL, 10)); Date now; lines.push_back ( @@ -167,28 +175,24 @@ void ColumnDate::render ( lines.push_back ( color.colorize ( rightJustify ( - format (Date ((time_t) strtol (task.get (_name).c_str (), NULL, 10)) - .toJulian (), 13, 12), width))); + format (date.toJulian (), 13, 12), width))); } else if (_style == "epoch") { lines.push_back ( color.colorize ( rightJustify ( - Date ((time_t) strtol (task.get (_name).c_str (), NULL, 10)) - .toEpochString (), width))); + date.toEpochString (), width))); } else if (_style == "iso") { lines.push_back ( color.colorize ( leftJustify ( - Date ((time_t) strtol (task.get (_name).c_str (), NULL, 10)) - .toISO (), width))); + date.toISO (), width))); } else if (_style == "age") { - Date date ((time_t) strtol (task.get (_name).c_str (), NULL, 10)); Date now; lines.push_back ( @@ -196,6 +200,17 @@ void ColumnDate::render ( leftJustify ( Duration (now - date).formatCompact (), width))); } + else if (_style == "remaining") + { + Date now; + if (date > now) + lines.push_back ( + color.colorize ( + rightJustify ( + Duration (date - now).format (), width))); + else + lines.push_back (""); + } } } diff --git a/src/columns/ColDue.cpp b/src/columns/ColDue.cpp index 08cffaf84..3f102fe70 100644 --- a/src/columns/ColDue.cpp +++ b/src/columns/ColDue.cpp @@ -42,8 +42,6 @@ ColumnDue::ColumnDue () _name = "due"; _label = STRING_COLUMN_LABEL_DUE; - _styles.push_back ("countdown"); - Date now; now += 125; _examples.push_back (Duration (now - Date ()).formatCompact ()); diff --git a/src/columns/ColScheduled.cpp b/src/columns/ColScheduled.cpp index 132dd064a..d00180377 100644 --- a/src/columns/ColScheduled.cpp +++ b/src/columns/ColScheduled.cpp @@ -41,12 +41,6 @@ ColumnScheduled::ColumnScheduled () { _name = "scheduled"; _label = STRING_COLUMN_LABEL_SCHED; - - _styles.push_back ("countdown"); - - Date now; - now += 125; - _examples.push_back (Duration (now - Date ()).formatCompact ()); } //////////////////////////////////////////////////////////////////////////////// From 8951a79027aa1788b0ba49db9f66a97b32612685 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 7 Sep 2013 12:24:03 -0400 Subject: [PATCH 079/173] Bug #1248 - #1248 Merge tests no longer connect to takwarrior.org (thank to Jakub Wilk). --- ChangeLog | 1 + test/bug.668.t | 62 -------------------------------------------------- 2 files changed, 1 insertion(+), 62 deletions(-) delete mode 100755 test/bug.668.t diff --git a/ChangeLog b/ChangeLog index c6ba9c8ba..d2d344640 100644 --- a/ChangeLog +++ b/ChangeLog @@ -51,6 +51,7 @@ Bugs .taskrc file (thanks to Haitham Gad). + #1247 Tests now create a local dir, rather than use the insecure /tmp dir (thanks to Jakub Wilk). + + #1248 Merge tests no longer connect to takwarrior.org (thank to Jakub Wilk). + #1249 Build system now recognizes GNU/Hurd and GNU/kFreeBSD (thanks to Jakub Wilk). + #1263 The 'waiting' report properly lists only pending tasks with a wait date diff --git a/test/bug.668.t b/test/bug.668.t deleted file mode 100755 index 433fe51b0..000000000 --- a/test/bug.668.t +++ /dev/null @@ -1,62 +0,0 @@ -#! /usr/bin/env perl -################################################################################ -## taskwarrior - a command line task list manager. -## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. -## -## Permission is hereby granted, free of charge, to any person obtaining a copy -## of this software and associated documentation files (the "Software"), to deal -## in the Software without restriction, including without limitation the rights -## to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -## copies of the Software, and to permit persons to whom the Software is -## furnished to do so, subject to the following conditions: -## -## The above copyright notice and this permission notice shall be included -## in all copies or substantial portions of the Software. -## -## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -## OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -## THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -## OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -## SOFTWARE. -## -## http://www.opensource.org/licenses/mit-license.php -## -################################################################################ - -use strict; -use warnings; -use Test::More tests => 8; - -# Create the rc file. -if (open my $fh, '>', 'bug.rc') -{ - print $fh "data.location=.\n"; - close $fh; - ok (-r 'bug.rc', 'Created bug.rc'); -} - -# Bug 668: URL should allow users with dot character - -my $output = qx{../src/task rc:bug.rc merge user.name\@taskwarrior.org:undo.data 2>&1}; -like ($output, qr/ssh failed/, 'ssh does not connect'); -unlike ($output, qr/not a valid modifier/, 'scp syntax with dots'); -unlike ($output, qr/not in the expected format/, 'scp syntax with dots'); - -$output = qx{../src/task rc:bug.rc merge ssh://user.name\@taskwarrior.org/undo.data 2>&1}; -like ($output, qr/ssh failed/, 'ssh does not connect'); -unlike ($output, qr/not a valid modifier/, 'standard syntax with dots'); -unlike ($output, qr/not in the expected format/, 'standard syntax with dots'); - -# Cleanup. -unlink qw(pending.data completed.data undo.data backlog.data bug.rc); -ok (! -r 'pending.data' && - ! -r 'completed.data' && - ! -r 'undo.data' && - ! -r 'backlog.data' && - ! -r 'bug.rc', 'Cleanup'); - -exit 0; - From 1e0dfd209129514960288ac91263cb69bde275ba Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 7 Sep 2013 12:27:18 -0400 Subject: [PATCH 080/173] Bug #1304 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Made the 'task shell' replacement by 'taskѕh' more prominent in the NEWS file. - Added default alias 'alias.shell=exec tasksh' for continuity. --- NEWS | 2 +- src/Config.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 7b11d1189..897aabaed 100644 --- a/NEWS +++ b/NEWS @@ -2,7 +2,7 @@ New Features in taskwarrior 2.3.0 - New task server sync capabilities. - - New shell with Readline support. + - New shell (tasksh) with Readline support replaces old 'task shell' command. - The 'dateformat' settings now default to the ISO-8601 standard of 'Y-M-D'. - Italian translation. - UDA fields now allow default values. diff --git a/src/Config.cpp b/src/Config.cpp index 11f15b5e3..f41e402be 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -310,6 +310,7 @@ std::string Config::_defaults = "alias.ghistory=ghistory.monthly # Prefer monthly graphical over annual history reports\n" "alias._query=export # _query is now export\n" "alias.burndown=burndown.weekly # Prefer the weekly burndown chart\n" + "alias.shell=exec tasksh # Alias old shell command to new shell\n" "\n" "# Reports\n" "\n" From ba8a3fec7040c94a203ee2a389b12712624ae6d8 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 7 Sep 2013 12:40:24 -0400 Subject: [PATCH 081/173] L10N - #1226 A new French translation has begun, and will continue to be a work in progress for a while (thanks to YBSA R). --- ChangeLog | 2 ++ NEWS | 1 + 2 files changed, 3 insertions(+) diff --git a/ChangeLog b/ChangeLog index 7b40f58c3..a1beb19ec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,8 @@ Features + #934 support for 'reserved.lines' to accomodate multi-line shell prompts when used in conjunction with 'limit:page' (thanks to Robert Gill). + + #1226 A new French translation has begun, and will continue to be a work in + progress for a while (thanks to YBSA R). + #1227 A new 'verify_l10n' utility ensures the localizations are in sync (thanks to Wim Schuermann). + #1250 Support out-of-tree test runs (thanks to Jakub Wilk). diff --git a/NEWS b/NEWS index cd55cbca6..3eb4f806b 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,7 @@ New Features in taskwarrior 2.3.0 - New shell (tasksh) with Readline support replaces old 'task shell' command. - The 'dateformat' settings now default to the ISO-8601 standard of 'Y-M-D'. - Italian translation. + - French translation has begun. - UDA fields now allow default values. - Now requires libuuid. - New '_get' DOM accessor helper command. From 82f4603a6b8aee0a1037771db838a419d3694f34 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 7 Sep 2013 12:44:57 -0400 Subject: [PATCH 082/173] Bug #1195 - #1195 Random seed not random enough - removed all random number code (thanks to Jakub Wilk). --- ChangeLog | 2 ++ src/main.cpp | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index a1beb19ec..028c8beec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -42,6 +42,8 @@ Features + Added the 'remaining' format for all date columns. Bugs + + #1195 Random seed not random enough - removed all random number code (thanks + to Jakub Wilk). + #1196 Now builds on Hurd (thanks to Jakub Wilk). + #1197 Now 'tasksh' recognizes Ctrl-D to exit. + #1200 Directory d_type==DT_UNKNOWN is now handled correctly (thanks to Jakub diff --git a/src/main.cpp b/src/main.cpp index 51d107a80..cebf05124 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -28,8 +28,6 @@ #include #include #include -#include - #include #include From a295ddce2d5cf20168324bdaae2012d6ad4f069a Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 7 Sep 2013 12:48:46 -0400 Subject: [PATCH 083/173] Feature #1339 - #1339 The configuration file now supports JSON encoding of Unicode characters, by specifying \uNNNN. --- ChangeLog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 028c8beec..05574ca77 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,8 @@ Features Wim Schuermann). + #1250 Support out-of-tree test runs (thanks to Jakub Wilk). + #1256 Supports default values for UDA fields (thanks to Thomas Sullivan). + + #1339 The configuration file now supports JSON encoding of Unicode + characters, by specifying \uNNNN. + Stores un-synched transactions in /backlog.data. + Adds a new 'synchronize' command to sync data with a task server. + Adds a new 'initialize' synchronize command argument that uploads all pending @@ -34,8 +36,6 @@ Features that are not yet modified. + ColPriority.cpp - Migration of column modification code out of Task.cpp and into the individual column object. - + The configuration file now supports JSON encoding of Unicode characters, by - specifying \uNNNN. + Now requires libuuid (thanks to Martin Natano). + New '_get' is a DOM accessor helper command. + New virtual tags (WEEK, MONTH, YEAR, PARENT). From ada6e49dabd62f760987cfe77f7ccd7d5f1408e3 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 7 Sep 2013 13:22:27 -0400 Subject: [PATCH 084/173] Bug #1251 - #1251 tests should sanitize TASKDATA and TASKRC env vars (thanks to Jakub Wilk). --- test/abbreviation.t | 4 ++++ test/add.t | 4 ++++ test/alias.t | 4 ++++ test/annotate.t | 4 ++++ test/append.t | 4 ++++ test/args.1.t | 4 ++++ test/args.2.t | 4 ++++ test/args.3.t | 4 ++++ test/args.4.t | 4 ++++ test/args.5.t | 4 ++++ test/args.t | 4 ++++ test/autocomplete.t.cpp | 5 +++++ test/backslash.t | 4 ++++ test/bash_completion.t | 4 ++++ test/basic.t | 4 ++++ test/bug.1006.t | 4 ++++ test/bug.1023.t | 4 ++++ test/bug.1031.t | 4 ++++ test/bug.1036.t | 4 ++++ test/bug.1043.t | 4 ++++ test/bug.1044.t | 4 ++++ test/bug.1056.t | 4 ++++ test/bug.1063.t | 4 ++++ test/bug.1065.t | 4 ++++ test/bug.1104.t | 4 ++++ test/bug.1110.t | 4 ++++ test/bug.1117.t | 4 ++++ test/bug.1192.t | 4 ++++ test/bug.299.t | 4 ++++ test/bug.327.t | 4 ++++ test/bug.360.t | 4 ++++ test/bug.368.t | 4 ++++ test/bug.414.t | 4 ++++ test/bug.417.t | 4 ++++ test/bug.418.t | 4 ++++ test/bug.425.t | 4 ++++ test/bug.434.t | 4 ++++ test/bug.438.t | 4 ++++ test/bug.440.t | 4 ++++ test/bug.441.t | 4 ++++ test/bug.455.t | 4 ++++ test/bug.480.t | 4 ++++ test/bug.489.t | 4 ++++ test/bug.495.t | 4 ++++ test/bug.555.t | 4 ++++ test/bug.580.t | 4 ++++ test/bug.605.t | 4 ++++ test/bug.628.t | 4 ++++ test/bug.634.t | 4 ++++ test/bug.635.t | 4 ++++ test/bug.649.t | 4 ++++ test/bug.656.t | 4 ++++ test/bug.674.t | 4 ++++ test/bug.694.t | 4 ++++ test/bug.703.t | 4 ++++ test/bug.708.t | 4 ++++ test/bug.804.t | 4 ++++ test/bug.818.t | 4 ++++ test/bug.819.t | 4 ++++ test/bug.835.t | 4 ++++ test/bug.837.t | 4 ++++ test/bug.839.t | 4 ++++ test/bug.851.t | 4 ++++ test/bug.856.t | 4 ++++ test/bug.860.t | 4 ++++ test/bug.879.t | 4 ++++ test/bug.884.t | 4 ++++ test/bug.886.t | 4 ++++ test/bug.899.t | 4 ++++ test/bug.906.t | 4 ++++ test/bug.917.t | 4 ++++ test/bug.924.t | 4 ++++ test/bug.932.t | 4 ++++ test/bug.954.t | 4 ++++ test/bug.955.t | 4 ++++ test/bug.956.t | 4 ++++ test/bug.972.t | 4 ++++ test/bug.986.t | 4 ++++ test/bug.990.t | 4 ++++ test/bug.991.t | 4 ++++ test/bug.annotate.t | 4 ++++ test/bug.annual.t | 4 ++++ test/bug.before.t | 4 ++++ test/bug.bulk.t | 4 ++++ test/bug.c001.t | 4 ++++ test/bug.cal.t | 4 ++++ test/bug.concat.t | 4 ++++ test/bug.hang.t | 4 ++++ test/bug.hasnt.t | 4 ++++ test/bug.period.t | 4 ++++ test/bug.range.t | 4 ++++ test/bug.recur.t | 4 ++++ test/bug.sort.t | 4 ++++ test/bug.start.extra.t | 4 ++++ test/bug.summary.t | 4 ++++ test/bug.uuid.t | 4 ++++ test/bulk.t | 4 ++++ test/cal.t | 4 ++++ test/caseless.t | 4 ++++ test/color.active.t | 4 ++++ test/color.blocked.t | 4 ++++ test/color.deprecated.t | 4 ++++ test/color.disable.t | 4 ++++ test/color.due.t | 4 ++++ test/color.duetoday.t | 4 ++++ test/color.err.t | 4 ++++ test/color.keyword.t | 4 ++++ test/color.overdue.t | 4 ++++ test/color.pri.t | 4 ++++ test/color.project.t | 4 ++++ test/color.recurring.t | 4 ++++ test/color.t.cpp | 5 +++++ test/color.tag.t | 4 ++++ test/color.tagged.t | 6 +++++- test/color.uda.t | 4 ++++ test/completed.t | 4 ++++ test/config.obsolete.t | 4 ++++ test/config.t.cpp | 5 +++++ test/confirmation.t | 4 ++++ test/count.t | 4 ++++ test/countdown.t | 4 ++++ test/custom.columns.t | 4 ++++ test/custom.priority_long.t | 4 ++++ test/custom.recur_ind.t | 4 ++++ test/custom.t | 4 ++++ test/custom.tag_ind.t | 4 ++++ test/date.iso.t | 4 ++++ test/date.t.cpp | 5 +++++ test/dateformat.t | 4 ++++ test/datesort.t | 4 ++++ test/default.t | 4 ++++ test/delete.t | 4 ++++ test/denotate.t | 4 ++++ test/dependencies.t | 4 ++++ test/directory.t.cpp | 5 +++++ test/dom.2.t | 4 ++++ test/dom.t.cpp | 5 +++++ test/due.t | 4 ++++ test/duplicate.t | 4 ++++ test/duplicate2.t | 4 ++++ test/duration.t.cpp | 5 +++++ test/enpassant.t | 4 ++++ test/export.yaml.t | 4 ++++ test/feature.1013.t | 4 ++++ test/feature.1061.t | 4 ++++ test/feature.559.t | 4 ++++ test/feature.608.t | 4 ++++ test/feature.632.t | 4 ++++ test/feature.725.t | 4 ++++ test/feature.891.t | 4 ++++ test/feature.exit.t | 4 ++++ test/feature.print.empty.columns.t | 4 ++++ test/file.t.cpp | 5 +++++ test/filter-prefix.t | 4 ++++ test/filter.t | 4 ++++ test/fontunderline.t | 4 ++++ test/history.annual.t | 4 ++++ test/history.monthly.t | 4 ++++ test/hyphenate.t | 4 ++++ test/i18n.t.cpp | 5 +++++ test/ids.t | 4 ++++ test/import.t | 4 ++++ test/import.todo.sh.t | 4 ++++ test/import.yaml.t | 4 ++++ test/json.t.cpp | 5 +++++ test/json_test.cpp | 1 + test/json_test.t | 4 ++++ test/label.t | 4 ++++ test/limit.t | 4 ++++ test/list.all.projects.t | 4 ++++ test/list.all.tags.t | 4 ++++ test/list.t.cpp | 5 +++++ test/log.t | 4 ++++ test/merge.duplicates.t | 4 ++++ test/merge.simple_duplication.t | 4 ++++ test/merge.t | 4 ++++ test/msg.t.cpp | 5 +++++ test/nag.t | 4 ++++ test/next.t | 4 ++++ test/nibbler.t.cpp | 5 +++++ test/oldest.t | 4 ++++ test/op_and.t | 4 ++++ test/op_gt.t | 4 ++++ test/op_gte.t | 4 ++++ test/op_lt.t | 4 ++++ test/op_lte.t | 4 ++++ test/op_or.t | 4 ++++ test/op_xor.t | 4 ++++ test/overdue.t | 4 ++++ test/override.t | 4 ++++ test/path.t.cpp | 5 +++++ test/prepend.t | 4 ++++ test/pri_sort.t | 4 ++++ test/project.t | 4 ++++ test/rc.override.t | 4 ++++ test/rc.t | 4 ++++ test/recur.limit.t | 4 ++++ test/recur.sort.t | 4 ++++ test/recur.t | 4 ++++ test/recur.until.t | 4 ++++ test/recur.weekdays.t | 4 ++++ test/roundtrip.t | 4 ++++ test/rx.t.cpp | 5 +++++ test/sequence.t | 4 ++++ test/shadow.t | 4 ++++ test/shell.t | 4 ++++ test/sorting.t | 4 ++++ test/special.t | 4 ++++ test/start.t | 4 ++++ test/subproject.t | 4 ++++ test/substitute.t | 4 ++++ test/t.t.cpp | 5 +++++ test/t2.t.cpp | 5 +++++ test/t3.t.cpp | 5 +++++ test/tag.t | 4 ++++ test/taskmod.t.cpp | 5 +++++ test/tdb2.t.cpp | 5 +++++ test/template.t | 4 ++++ test/test.cpp | 1 + test/text.t.cpp | 5 +++++ test/timesheet.t | 4 ++++ test/uda_date.t | 4 ++++ test/uda_defaults.t | 4 ++++ test/uda_duration.t | 4 ++++ test/uda_numeric.t | 4 ++++ test/uda_orphan.t | 4 ++++ test/uda_report.t | 4 ++++ test/uda_string.t | 4 ++++ test/uda_value.t | 4 ++++ test/undo.t | 4 ++++ test/upgrade.t | 4 ++++ test/urgency.t | 4 ++++ test/uri.t.cpp | 5 +++++ test/utf8.t.cpp | 5 +++++ test/utf8_tw.t | 4 ++++ test/util.t.cpp | 5 +++++ test/uuid.t | 4 ++++ test/verbose.t | 4 ++++ test/view.t.cpp | 5 +++++ test/wait.t | 4 ++++ test/width.t.cpp | 5 +++++ 241 files changed, 985 insertions(+), 1 deletion(-) diff --git a/test/abbreviation.t b/test/abbreviation.t index de7243046..87ceb1a99 100755 --- a/test/abbreviation.t +++ b/test/abbreviation.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 21; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'abbrev.rc') { diff --git a/test/add.t b/test/add.t index c7d022f75..cbd882855 100755 --- a/test/add.t +++ b/test/add.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 9; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'add.rc') { diff --git a/test/alias.t b/test/alias.t index 9020c9349..d647bc0ee 100755 --- a/test/alias.t +++ b/test/alias.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'alias.rc') { diff --git a/test/annotate.t b/test/annotate.t index 5985bcdff..35eab5795 100755 --- a/test/annotate.t +++ b/test/annotate.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 25; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'annotate.rc') { diff --git a/test/append.t b/test/append.t index da562bbd1..3f57ce036 100755 --- a/test/append.t +++ b/test/append.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'append.rc') { diff --git a/test/args.1.t b/test/args.1.t index 585fee41c..8162a05e7 100755 --- a/test/args.1.t +++ b/test/args.1.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 8; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'args.rc') { diff --git a/test/args.2.t b/test/args.2.t index 9f1f1ee25..8c55a7580 100755 --- a/test/args.2.t +++ b/test/args.2.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 7; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'args.rc') { diff --git a/test/args.3.t b/test/args.3.t index 1dae5ee93..25fbedfb5 100755 --- a/test/args.3.t +++ b/test/args.3.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 7; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'args.rc') { diff --git a/test/args.4.t b/test/args.4.t index 466e154e4..f2d954e80 100755 --- a/test/args.4.t +++ b/test/args.4.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 7; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'args.rc') { diff --git a/test/args.5.t b/test/args.5.t index 79835d658..de109b895 100755 --- a/test/args.5.t +++ b/test/args.5.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 7; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'args.rc') { diff --git a/test/args.t b/test/args.t index a06029291..05543ecb3 100755 --- a/test/args.t +++ b/test/args.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 7; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'args.rc') { diff --git a/test/autocomplete.t.cpp b/test/autocomplete.t.cpp index 524e8dab9..1b70bde16 100644 --- a/test/autocomplete.t.cpp +++ b/test/autocomplete.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -38,6 +39,10 @@ int main (int argc, char** argv) { UnitTest t (8); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + std::vector options; options.push_back ("abc"); options.push_back ("abcd"); diff --git a/test/backslash.t b/test/backslash.t index ab586e87c..eef4e28b0 100755 --- a/test/backslash.t +++ b/test/backslash.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'backslash.rc') { diff --git a/test/bash_completion.t b/test/bash_completion.t index 2fa0a462a..4d836e067 100755 --- a/test/bash_completion.t +++ b/test/bash_completion.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 18; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/basic.t b/test/basic.t index 3c46924ba..931071526 100755 --- a/test/basic.t +++ b/test/basic.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 7; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'basic.rc') { diff --git a/test/bug.1006.t b/test/bug.1006.t index 6cdf26854..2baeec1d3 100755 --- a/test/bug.1006.t +++ b/test/bug.1006.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.1023.t b/test/bug.1023.t index aece0611c..25922f10b 100755 --- a/test/bug.1023.t +++ b/test/bug.1023.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 11; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.1031.t b/test/bug.1031.t index 31235cd97..6aeca5733 100755 --- a/test/bug.1031.t +++ b/test/bug.1031.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.1036.t b/test/bug.1036.t index 328a9d1d8..7ebe6ecbb 100755 --- a/test/bug.1036.t +++ b/test/bug.1036.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.1043.t b/test/bug.1043.t index 72776a33d..d2b59ff2b 100755 --- a/test/bug.1043.t +++ b/test/bug.1043.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 7; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.1044.t b/test/bug.1044.t index a8716cbed..5b2c03a3f 100755 --- a/test/bug.1044.t +++ b/test/bug.1044.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.1056.t b/test/bug.1056.t index 14b7fcdb8..4233f605f 100755 --- a/test/bug.1056.t +++ b/test/bug.1056.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 9; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.1056') { diff --git a/test/bug.1063.t b/test/bug.1063.t index 0547bb3f8..21d71c900 100755 --- a/test/bug.1063.t +++ b/test/bug.1063.t @@ -31,6 +31,10 @@ use warnings; use Test::More tests => 8; use File::Basename; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + my $ut = basename ($0); my $rc = $ut . '.rc'; diff --git a/test/bug.1065.t b/test/bug.1065.t index 2194813ea..9a3e09b69 100755 --- a/test/bug.1065.t +++ b/test/bug.1065.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 14; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.1104.t b/test/bug.1104.t index 92e4e5270..3e8009167 100755 --- a/test/bug.1104.t +++ b/test/bug.1104.t @@ -32,6 +32,10 @@ use File::Copy; use File::Path; use Test::More tests => 33; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + mkdir("1", 0755); mkdir("2", 0755); mkdir("3", 0755); diff --git a/test/bug.1110.t b/test/bug.1110.t index 384eb9a9a..bf7c522c5 100755 --- a/test/bug.1110.t +++ b/test/bug.1110.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.1117.t b/test/bug.1117.t index 5db913d7a..791ac39c4 100755 --- a/test/bug.1117.t +++ b/test/bug.1117.t @@ -32,6 +32,10 @@ use File::Copy; use File::Path; use Test::More tests => 13; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + mkdir("1", 0755); mkdir("2", 0755); mkdir("merge", 0755); diff --git a/test/bug.1192.t b/test/bug.1192.t index 50d958168..c63957b11 100755 --- a/test/bug.1192.t +++ b/test/bug.1192.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.299.t b/test/bug.299.t index 85b8d089a..03f76b7b6 100755 --- a/test/bug.299.t +++ b/test/bug.299.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.327.t b/test/bug.327.t index add46bcbb..0c005d99a 100755 --- a/test/bug.327.t +++ b/test/bug.327.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.360.t b/test/bug.360.t index 56d72127c..a1c3a3d3a 100755 --- a/test/bug.360.t +++ b/test/bug.360.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 10; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.368.t b/test/bug.368.t index 503311dc2..35b617bc7 100755 --- a/test/bug.368.t +++ b/test/bug.368.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.414.t b/test/bug.414.t index b9a1a8c20..fcc929aa3 100755 --- a/test/bug.414.t +++ b/test/bug.414.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 7; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.417.t b/test/bug.417.t index 04139e097..0f691faf1 100755 --- a/test/bug.417.t +++ b/test/bug.417.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.418.t b/test/bug.418.t index ae0635e6a..8d6c2be90 100755 --- a/test/bug.418.t +++ b/test/bug.418.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 20; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.425.t b/test/bug.425.t index a560f251e..3f28e9531 100755 --- a/test/bug.425.t +++ b/test/bug.425.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', '425.rc') { diff --git a/test/bug.434.t b/test/bug.434.t index 6955917f6..34f1a697e 100755 --- a/test/bug.434.t +++ b/test/bug.434.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.438.t b/test/bug.438.t index e9dd82b26..94c8cff3e 100755 --- a/test/bug.438.t +++ b/test/bug.438.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 8; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.440.t b/test/bug.440.t index 5688b7719..150697e6f 100755 --- a/test/bug.440.t +++ b/test/bug.440.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', '440.rc') { diff --git a/test/bug.441.t b/test/bug.441.t index c4f771801..8292b1edd 100755 --- a/test/bug.441.t +++ b/test/bug.441.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', '441.rc') { diff --git a/test/bug.455.t b/test/bug.455.t index 9e348ff39..4b263641b 100755 --- a/test/bug.455.t +++ b/test/bug.455.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', '455.rc') { diff --git a/test/bug.480.t b/test/bug.480.t index a12942022..1a7997c2a 100755 --- a/test/bug.480.t +++ b/test/bug.480.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 40; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.489.t b/test/bug.489.t index 6a9c66ca6..71a62ce55 100755 --- a/test/bug.489.t +++ b/test/bug.489.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.495.t b/test/bug.495.t index 77f3288c4..1e4255d92 100755 --- a/test/bug.495.t +++ b/test/bug.495.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.555.t b/test/bug.555.t index 1a7cda6c2..f63c3ea35 100755 --- a/test/bug.555.t +++ b/test/bug.555.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.580.t b/test/bug.580.t index 4b017b559..b305acecc 100755 --- a/test/bug.580.t +++ b/test/bug.580.t @@ -31,6 +31,10 @@ use warnings; use Test::More tests => 11; use File::Copy; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + use constant false => 0; use constant true => 1; diff --git a/test/bug.605.t b/test/bug.605.t index 8dea0d4ce..3c693a4ad 100755 --- a/test/bug.605.t +++ b/test/bug.605.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.628.t b/test/bug.628.t index d15a4e6f5..134b519c4 100755 --- a/test/bug.628.t +++ b/test/bug.628.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.634.t b/test/bug.634.t index a76937558..ea3daabd6 100755 --- a/test/bug.634.t +++ b/test/bug.634.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.635.t b/test/bug.635.t index ca2596325..fa4291530 100755 --- a/test/bug.635.t +++ b/test/bug.635.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.649.t b/test/bug.649.t index df48a454a..5fd2895c2 100755 --- a/test/bug.649.t +++ b/test/bug.649.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.656.t b/test/bug.656.t index e733ca6f0..482009653 100755 --- a/test/bug.656.t +++ b/test/bug.656.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.674.t b/test/bug.674.t index 53b87fde2..de69582f1 100755 --- a/test/bug.674.t +++ b/test/bug.674.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.694.t b/test/bug.694.t index 3f48644a8..55d3de468 100755 --- a/test/bug.694.t +++ b/test/bug.694.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.703.t b/test/bug.703.t index 5438c49b5..482c0d866 100755 --- a/test/bug.703.t +++ b/test/bug.703.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 10; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.708.t b/test/bug.708.t index ed3cda18a..6893d439a 100755 --- a/test/bug.708.t +++ b/test/bug.708.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.804.t b/test/bug.804.t index f7ccb22de..917c02386 100755 --- a/test/bug.804.t +++ b/test/bug.804.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.818.t b/test/bug.818.t index 8ceb676d6..2f89b3465 100755 --- a/test/bug.818.t +++ b/test/bug.818.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 10; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.819.t b/test/bug.819.t index aaba00c45..505ad8f99 100755 --- a/test/bug.819.t +++ b/test/bug.819.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.835.t b/test/bug.835.t index 3491390ad..345ff6416 100755 --- a/test/bug.835.t +++ b/test/bug.835.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.837.t b/test/bug.837.t index a9315975d..da43413eb 100755 --- a/test/bug.837.t +++ b/test/bug.837.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.839.t b/test/bug.839.t index 554e36a13..04f92c878 100755 --- a/test/bug.839.t +++ b/test/bug.839.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.851.t b/test/bug.851.t index c417ceb3f..7b1599bda 100755 --- a/test/bug.851.t +++ b/test/bug.851.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 8; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.856.t b/test/bug.856.t index faea54779..6d8287446 100755 --- a/test/bug.856.t +++ b/test/bug.856.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 8; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.860.t b/test/bug.860.t index b92bbdef1..3555a55ce 100755 --- a/test/bug.860.t +++ b/test/bug.860.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.879.t b/test/bug.879.t index 6c4efcd6a..5c53bdb1b 100755 --- a/test/bug.879.t +++ b/test/bug.879.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 8; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.884.t b/test/bug.884.t index 9944bb03e..e68313ed6 100755 --- a/test/bug.884.t +++ b/test/bug.884.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.886.t b/test/bug.886.t index 8eda88468..411351d32 100755 --- a/test/bug.886.t +++ b/test/bug.886.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.899.t b/test/bug.899.t index 9712d7997..d9ccaa67b 100755 --- a/test/bug.899.t +++ b/test/bug.899.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.906.t b/test/bug.906.t index f77bbf8c1..816c4b238 100755 --- a/test/bug.906.t +++ b/test/bug.906.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 17; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.917.t b/test/bug.917.t index 990f2837e..8cb4f5cf3 100755 --- a/test/bug.917.t +++ b/test/bug.917.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.924.t b/test/bug.924.t index d94ae3d47..86f27c70e 100755 --- a/test/bug.924.t +++ b/test/bug.924.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.932.t b/test/bug.932.t index 9e15613f2..68b2731fd 100755 --- a/test/bug.932.t +++ b/test/bug.932.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 12; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.954.t b/test/bug.954.t index 4043a769d..199d05de9 100755 --- a/test/bug.954.t +++ b/test/bug.954.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.955.t b/test/bug.955.t index b7b466dfa..dc0598ac2 100755 --- a/test/bug.955.t +++ b/test/bug.955.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.956.t b/test/bug.956.t index 1962461fd..00d0ec8e3 100755 --- a/test/bug.956.t +++ b/test/bug.956.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 14; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.972.t b/test/bug.972.t index 78e980621..7aee3403b 100755 --- a/test/bug.972.t +++ b/test/bug.972.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.986.t b/test/bug.986.t index 046d6580d..1a43d849b 100755 --- a/test/bug.986.t +++ b/test/bug.986.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.990.t b/test/bug.990.t index 489ce8a0f..99b383939 100755 --- a/test/bug.990.t +++ b/test/bug.990.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'color.rc') { diff --git a/test/bug.991.t b/test/bug.991.t index 6ff07c35a..ff2f8e228 100755 --- a/test/bug.991.t +++ b/test/bug.991.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.annotate.t b/test/bug.annotate.t index 41a9d046d..9a79c266a 100755 --- a/test/bug.annotate.t +++ b/test/bug.annotate.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.annual.t b/test/bug.annual.t index adb21704d..b0e642758 100755 --- a/test/bug.annual.t +++ b/test/bug.annual.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 13; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'annual.rc') { diff --git a/test/bug.before.t b/test/bug.before.t index 94ccaf498..b3f7ca88e 100755 --- a/test/bug.before.t +++ b/test/bug.before.t @@ -31,6 +31,10 @@ use warnings; use Time::Local; use Test::More tests => 17; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'before.rc') { diff --git a/test/bug.bulk.t b/test/bug.bulk.t index 93023606b..cde26d48c 100755 --- a/test/bug.bulk.t +++ b/test/bug.bulk.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 12; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bulk.rc') { diff --git a/test/bug.c001.t b/test/bug.c001.t index cc1a4c853..9ac68c272 100755 --- a/test/bug.c001.t +++ b/test/bug.c001.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.cal.t b/test/bug.cal.t index c27155a1d..d96952a07 100755 --- a/test/bug.cal.t +++ b/test/bug.cal.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 29; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'cal.rc') { diff --git a/test/bug.concat.t b/test/bug.concat.t index 128a72c68..047bad331 100755 --- a/test/bug.concat.t +++ b/test/bug.concat.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/bug.hang.t b/test/bug.hang.t index cf9b2e5e4..070e1b565 100755 --- a/test/bug.hang.t +++ b/test/bug.hang.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'hang.rc') { diff --git a/test/bug.hasnt.t b/test/bug.hasnt.t index 3a490a2e1..66a3c8f25 100755 --- a/test/bug.hasnt.t +++ b/test/bug.hasnt.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 16; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'hasnt.rc') { diff --git a/test/bug.period.t b/test/bug.period.t index f80bcca02..42378e03c 100755 --- a/test/bug.period.t +++ b/test/bug.period.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 41; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'period.rc') { diff --git a/test/bug.range.t b/test/bug.range.t index 94f5cc2f5..a84305360 100755 --- a/test/bug.range.t +++ b/test/bug.range.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'range.rc') { diff --git a/test/bug.recur.t b/test/bug.recur.t index c136ff226..908b60b43 100755 --- a/test/bug.recur.t +++ b/test/bug.recur.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'recur.rc') { diff --git a/test/bug.sort.t b/test/bug.sort.t index d7b2cb017..0e457e287 100755 --- a/test/bug.sort.t +++ b/test/bug.sort.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug_sort.rc') { diff --git a/test/bug.start.extra.t b/test/bug.start.extra.t index 162088107..a202994a9 100755 --- a/test/bug.start.extra.t +++ b/test/bug.start.extra.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'extra.rc') { diff --git a/test/bug.summary.t b/test/bug.summary.t index 4ab768f24..ee17016e1 100755 --- a/test/bug.summary.t +++ b/test/bug.summary.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'summary.rc') { diff --git a/test/bug.uuid.t b/test/bug.uuid.t index 9a79e900b..4088bbfbf 100755 --- a/test/bug.uuid.t +++ b/test/bug.uuid.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'uuid.rc') { diff --git a/test/bulk.t b/test/bulk.t index 2b92871a6..fa6a77d8f 100755 --- a/test/bulk.t +++ b/test/bulk.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 44; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bulk.rc') { diff --git a/test/cal.t b/test/cal.t index 6ee5f2b40..085d44612 100755 --- a/test/cal.t +++ b/test/cal.t @@ -32,6 +32,10 @@ use strict; use warnings; use Test::More tests => 84; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'cal.rc') { diff --git a/test/caseless.t b/test/caseless.t index 42ac5794c..424876e9e 100755 --- a/test/caseless.t +++ b/test/caseless.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 18; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'caseless.rc') { diff --git a/test/color.active.t b/test/color.active.t index 75d9ca60d..64fee6169 100755 --- a/test/color.active.t +++ b/test/color.active.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'color.rc') { diff --git a/test/color.blocked.t b/test/color.blocked.t index af9865a2c..5cea26b6f 100755 --- a/test/color.blocked.t +++ b/test/color.blocked.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'color.rc') { diff --git a/test/color.deprecated.t b/test/color.deprecated.t index 410957c73..7a40f2364 100755 --- a/test/color.deprecated.t +++ b/test/color.deprecated.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'color.rc') { diff --git a/test/color.disable.t b/test/color.disable.t index 24295b436..dcebc391e 100755 --- a/test/color.disable.t +++ b/test/color.disable.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'color.rc') { diff --git a/test/color.due.t b/test/color.due.t index 4e2938b71..b26e358fd 100755 --- a/test/color.due.t +++ b/test/color.due.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'color.rc') { diff --git a/test/color.duetoday.t b/test/color.duetoday.t index dbe66ddfd..0e0245abd 100755 --- a/test/color.duetoday.t +++ b/test/color.duetoday.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'color.rc') { diff --git a/test/color.err.t b/test/color.err.t index 83390565f..5ddc4fb9c 100755 --- a/test/color.err.t +++ b/test/color.err.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'color.rc') { diff --git a/test/color.keyword.t b/test/color.keyword.t index 40606312e..e824f192d 100755 --- a/test/color.keyword.t +++ b/test/color.keyword.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'color.rc') { diff --git a/test/color.overdue.t b/test/color.overdue.t index fc64a821a..d55aaf063 100755 --- a/test/color.overdue.t +++ b/test/color.overdue.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'color.rc') { diff --git a/test/color.pri.t b/test/color.pri.t index ff49403da..5596b8bdb 100755 --- a/test/color.pri.t +++ b/test/color.pri.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'color.rc') { diff --git a/test/color.project.t b/test/color.project.t index a9369deda..53c673206 100755 --- a/test/color.project.t +++ b/test/color.project.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'color.rc') { diff --git a/test/color.recurring.t b/test/color.recurring.t index 494e5cd66..85e7ff1bd 100755 --- a/test/color.recurring.t +++ b/test/color.recurring.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'color.rc') { diff --git a/test/color.t.cpp b/test/color.t.cpp index 91cafa774..78fdd138e 100644 --- a/test/color.t.cpp +++ b/test/color.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -38,6 +39,10 @@ int main (int argc, char** argv) { UnitTest t (1036); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + // Names matched to values. t.is ((int) Color (""), (int) Color (Color::nocolor), "'' == Color::nocolor"); t.is ((int) Color ("black"), (int) Color (Color::black), "'black' == Color::black"); diff --git a/test/color.tag.t b/test/color.tag.t index 75f1a799d..c3e88333b 100755 --- a/test/color.tag.t +++ b/test/color.tag.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'color.rc') { diff --git a/test/color.tagged.t b/test/color.tagged.t index a5dc76e7a..18c86711b 100755 --- a/test/color.tagged.t +++ b/test/color.tagged.t @@ -29,10 +29,14 @@ use strict; use warnings; use Test::More tests => 5; + +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + unlink 'pending.data'; ok (!-r 'pending.data', 'Removed pending.data'); - # Create the rc file. if (open my $fh, '>', 'color.rc') { diff --git a/test/color.uda.t b/test/color.uda.t index 770abe0a3..967043d1b 100755 --- a/test/color.uda.t +++ b/test/color.uda.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'color.rc') { diff --git a/test/completed.t b/test/completed.t index 97d62b06a..095a1ba4f 100755 --- a/test/completed.t +++ b/test/completed.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'completed.rc') { diff --git a/test/config.obsolete.t b/test/config.obsolete.t index 497b07d0d..2fef5f744 100755 --- a/test/config.obsolete.t +++ b/test/config.obsolete.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'obsolete.rc') { diff --git a/test/config.t.cpp b/test/config.t.cpp index a63e2b83a..1c22000a1 100644 --- a/test/config.t.cpp +++ b/test/config.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include @@ -37,6 +38,10 @@ int main (int argc, char** argv) { UnitTest t (11); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + Config c; // void set (const std::string&, const std::string&); diff --git a/test/confirmation.t b/test/confirmation.t index 9bcce4674..637fa447a 100755 --- a/test/confirmation.t +++ b/test/confirmation.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 24; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'confirm.rc') { diff --git a/test/count.t b/test/count.t index dd3111d30..caef5667b 100755 --- a/test/count.t +++ b/test/count.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 7; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'count.rc') { diff --git a/test/countdown.t b/test/countdown.t index 5354c19a3..7b34c5a1f 100755 --- a/test/countdown.t +++ b/test/countdown.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 82; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'countdown.rc') { diff --git a/test/custom.columns.t b/test/custom.columns.t index 141ac4f64..6e5187193 100755 --- a/test/custom.columns.t +++ b/test/custom.columns.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'custom.rc') { diff --git a/test/custom.priority_long.t b/test/custom.priority_long.t index 456036a5f..54b87992c 100755 --- a/test/custom.priority_long.t +++ b/test/custom.priority_long.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'pri.rc') { diff --git a/test/custom.recur_ind.t b/test/custom.recur_ind.t index 2dfd16fe1..a31210f67 100755 --- a/test/custom.recur_ind.t +++ b/test/custom.recur_ind.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 7; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'custom.rc') { diff --git a/test/custom.t b/test/custom.t index 905040eb7..86fef3746 100755 --- a/test/custom.t +++ b/test/custom.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'custom.rc') { diff --git a/test/custom.tag_ind.t b/test/custom.tag_ind.t index 876da8003..dd5af7d71 100755 --- a/test/custom.tag_ind.t +++ b/test/custom.tag_ind.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 7; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'custom.rc') { diff --git a/test/date.iso.t b/test/date.iso.t index cb9b585bb..1f2333475 100755 --- a/test/date.iso.t +++ b/test/date.iso.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'iso.rc') { diff --git a/test/date.t.cpp b/test/date.t.cpp index cadeb0628..42ec59cac 100644 --- a/test/date.t.cpp +++ b/test/date.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -38,6 +39,10 @@ int main (int argc, char** argv) { UnitTest t (209); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + try { Date now; diff --git a/test/dateformat.t b/test/dateformat.t index bfea1d04b..ebe3eb2b7 100755 --- a/test/dateformat.t +++ b/test/dateformat.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 10; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'date1.rc') { diff --git a/test/datesort.t b/test/datesort.t index e366b40da..983234e58 100755 --- a/test/datesort.t +++ b/test/datesort.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'datesort.rc') { diff --git a/test/default.t b/test/default.t index ddef46dff..f4b4b0869 100755 --- a/test/default.t +++ b/test/default.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 21; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'default.rc') { diff --git a/test/delete.t b/test/delete.t index 6795964fd..4d07087f6 100755 --- a/test/delete.t +++ b/test/delete.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 16; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'delete.rc') { diff --git a/test/denotate.t b/test/denotate.t index 68ebb19d8..117a7f7f2 100755 --- a/test/denotate.t +++ b/test/denotate.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 27; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'denotate.rc') { diff --git a/test/dependencies.t b/test/dependencies.t index a608ebb2d..4650a753f 100755 --- a/test/dependencies.t +++ b/test/dependencies.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 49; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'dep.rc') { diff --git a/test/directory.t.cpp b/test/directory.t.cpp index faba20029..5afe0eb2c 100644 --- a/test/directory.t.cpp +++ b/test/directory.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -37,6 +38,10 @@ int main (int argc, char** argv) { UnitTest t (49); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + Directory tmp ("tmp"); tmp.create (); t.ok (tmp.exists (), "tmp dir created."); diff --git a/test/dom.2.t b/test/dom.2.t index e80db51d6..f78a5986d 100755 --- a/test/dom.2.t +++ b/test/dom.2.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'dom.rc') { diff --git a/test/dom.t.cpp b/test/dom.t.cpp index db114ac73..08c0083a6 100644 --- a/test/dom.t.cpp +++ b/test/dom.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -38,6 +39,10 @@ int main (int argc, char** argv) { UnitTest t (6); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + try { // Prime the pump. diff --git a/test/due.t b/test/due.t index 21108bac3..4b9d56e51 100755 --- a/test/due.t +++ b/test/due.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'due.rc') { diff --git a/test/duplicate.t b/test/duplicate.t index 71e6944b5..2974d342d 100755 --- a/test/duplicate.t +++ b/test/duplicate.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 12; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'dup.rc') { diff --git a/test/duplicate2.t b/test/duplicate2.t index c8a6193ee..8d1f3e5f2 100755 --- a/test/duplicate2.t +++ b/test/duplicate2.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 14; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'dup.rc') { diff --git a/test/duration.t.cpp b/test/duration.t.cpp index bf07eb2fa..374c8563e 100644 --- a/test/duration.t.cpp +++ b/test/duration.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -52,6 +53,10 @@ int main (int argc, char** argv) { UnitTest t (644); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + Duration d; // std::string format (); diff --git a/test/enpassant.t b/test/enpassant.t index dc6959f78..eed219c93 100755 --- a/test/enpassant.t +++ b/test/enpassant.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 10; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'enp.rc') { diff --git a/test/export.yaml.t b/test/export.yaml.t index 9d307f96a..bc03b5a09 100755 --- a/test/export.yaml.t +++ b/test/export.yaml.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 22; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + my $source_dir = $0; $source_dir =~ s{[^/]+$}{..}; diff --git a/test/feature.1013.t b/test/feature.1013.t index 6c95e4516..ae2e5c633 100755 --- a/test/feature.1013.t +++ b/test/feature.1013.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 10; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'outerr.rc') { diff --git a/test/feature.1061.t b/test/feature.1061.t index ef472eb92..f88eaa898 100755 --- a/test/feature.1061.t +++ b/test/feature.1061.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 8; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/feature.559.t b/test/feature.559.t index 8b287c9a5..337631a50 100755 --- a/test/feature.559.t +++ b/test/feature.559.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/feature.608.t b/test/feature.608.t index 490c1f3da..a61ee2d76 100755 --- a/test/feature.608.t +++ b/test/feature.608.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/feature.632.t b/test/feature.632.t index 2d5715378..f7bd6e845 100755 --- a/test/feature.632.t +++ b/test/feature.632.t @@ -31,6 +31,10 @@ use warnings; use Test::More tests => 12; use File::Path; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc files. if (open my $fh, '>', 'rc1') { diff --git a/test/feature.725.t b/test/feature.725.t index e0d063d1b..cd4077497 100755 --- a/test/feature.725.t +++ b/test/feature.725.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 8; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'feature.rc') { diff --git a/test/feature.891.t b/test/feature.891.t index cbe726df6..3403121f5 100755 --- a/test/feature.891.t +++ b/test/feature.891.t @@ -31,6 +31,10 @@ use warnings; use Time::Local; use Test::More tests => 37; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/feature.exit.t b/test/feature.exit.t index 640d85762..232edcc1b 100755 --- a/test/feature.exit.t +++ b/test/feature.exit.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'exit.rc') { diff --git a/test/feature.print.empty.columns.t b/test/feature.print.empty.columns.t index 5c382e0fa..6041fd15d 100755 --- a/test/feature.print.empty.columns.t +++ b/test/feature.print.empty.columns.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/file.t.cpp b/test/file.t.cpp index d19fd9cf8..d7e5ed17c 100644 --- a/test/file.t.cpp +++ b/test/file.t.cpp @@ -26,6 +26,7 @@ //////////////////////////////////////////////////////////////////////////////// #include +#include #include #include #include @@ -37,6 +38,10 @@ int main (int argc, char** argv) { UnitTest t (27); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + Directory tmp ("tmp"); tmp.create (); t.ok (tmp.exists (), "tmp dir created."); diff --git a/test/filter-prefix.t b/test/filter-prefix.t index d3ad2dee3..df44588cb 100755 --- a/test/filter-prefix.t +++ b/test/filter-prefix.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 58; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'filter.rc') { diff --git a/test/filter.t b/test/filter.t index e7c5b82dd..fc9ec0fba 100755 --- a/test/filter.t +++ b/test/filter.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 156; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'filter.rc') { diff --git a/test/fontunderline.t b/test/fontunderline.t index 5406e8449..b9686400d 100755 --- a/test/fontunderline.t +++ b/test/fontunderline.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 10; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'font.rc') { diff --git a/test/history.annual.t b/test/history.annual.t index 9239605c0..b2799c6d8 100755 --- a/test/history.annual.t +++ b/test/history.annual.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'time.rc') { diff --git a/test/history.monthly.t b/test/history.monthly.t index 0b639de06..b13d8d8d2 100755 --- a/test/history.monthly.t +++ b/test/history.monthly.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'time.rc') { diff --git a/test/hyphenate.t b/test/hyphenate.t index c2dc3e1dd..06e864f68 100755 --- a/test/hyphenate.t +++ b/test/hyphenate.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'bug.rc') { diff --git a/test/i18n.t.cpp b/test/i18n.t.cpp index bd834618c..9d9d567b3 100644 --- a/test/i18n.t.cpp +++ b/test/i18n.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -42,6 +43,10 @@ int main (int argc, char** argv) { UnitTest t (11); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + try { t.is (format ("pre {1} post", "mid"), "pre mid post", "format 1a"); diff --git a/test/ids.t b/test/ids.t index 8c69ddbf2..ac996f4e2 100755 --- a/test/ids.t +++ b/test/ids.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 10; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'ids.rc') { diff --git a/test/import.t b/test/import.t index caf4a2ad9..833f7a76d 100755 --- a/test/import.t +++ b/test/import.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 13; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'import.rc') { diff --git a/test/import.todo.sh.t b/test/import.todo.sh.t index 45da5b7ba..41c7dbe11 100755 --- a/test/import.todo.sh.t +++ b/test/import.todo.sh.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 26; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + my $source_dir = $0; $source_dir =~ s{[^/]+$}{..}; diff --git a/test/import.yaml.t b/test/import.yaml.t index f54b544b7..8f995e863 100755 --- a/test/import.yaml.t +++ b/test/import.yaml.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 16; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + my $source_dir = $0; $source_dir =~ s{[^/]+$}{..}; diff --git a/test/json.t.cpp b/test/json.t.cpp index aa4f47894..d6a02832c 100644 --- a/test/json.t.cpp +++ b/test/json.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -106,6 +107,10 @@ int main (int argc, char** argv) { UnitTest t (NUM_POSITIVE_TESTS + NUM_NEGATIVE_TESTS + 22); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + // Positive tests. for (int i = 0; i < NUM_POSITIVE_TESTS; ++i) { diff --git a/test/json_test.cpp b/test/json_test.cpp index 77e622167..5defcb430 100644 --- a/test/json_test.cpp +++ b/test/json_test.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include diff --git a/test/json_test.t b/test/json_test.t index 1a5004db7..3a79c93cc 100755 --- a/test/json_test.t +++ b/test/json_test.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + my $source_dir = $0; $source_dir =~ s{[^/]+$}{..}; diff --git a/test/label.t b/test/label.t index 38ac031ab..6036e5df4 100755 --- a/test/label.t +++ b/test/label.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 7; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'custom.rc') { diff --git a/test/limit.t b/test/limit.t index aaa70023d..30498cfbd 100755 --- a/test/limit.t +++ b/test/limit.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'limit.rc') { diff --git a/test/list.all.projects.t b/test/list.all.projects.t index 1c9b78f83..457e82ce5 100755 --- a/test/list.all.projects.t +++ b/test/list.all.projects.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 8; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'projects.rc') { diff --git a/test/list.all.tags.t b/test/list.all.tags.t index 6457e380d..d08154600 100755 --- a/test/list.all.tags.t +++ b/test/list.all.tags.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 8; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'tags.rc') { diff --git a/test/list.t.cpp b/test/list.t.cpp index 0226e50f3..21355b343 100644 --- a/test/list.t.cpp +++ b/test/list.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -38,6 +39,10 @@ int main (int argc, char** argv) { UnitTest t (24); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + // 1,2,3 <=> 2,3,4 std::vector string_one; string_one.push_back ("1"); diff --git a/test/log.t b/test/log.t index 8353dadca..4f2c700f7 100755 --- a/test/log.t +++ b/test/log.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'log.rc') { diff --git a/test/merge.duplicates.t b/test/merge.duplicates.t index a9a87ff43..e0471941a 100755 --- a/test/merge.duplicates.t +++ b/test/merge.duplicates.t @@ -32,6 +32,10 @@ use Test::More tests => 31; use File::Copy; use File::Path; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + use constant false => 0; use constant true => 1; diff --git a/test/merge.simple_duplication.t b/test/merge.simple_duplication.t index bf5620d0b..578629e9b 100755 --- a/test/merge.simple_duplication.t +++ b/test/merge.simple_duplication.t @@ -32,6 +32,10 @@ use File::Copy; use File::Path; use Test::More tests => 16; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + mkdir("1", 0755); mkdir("2", 0755); mkdir("dropbox", 0755); diff --git a/test/merge.t b/test/merge.t index dc6a7f5d9..216dc47b2 100755 --- a/test/merge.t +++ b/test/merge.t @@ -32,6 +32,10 @@ use Test::More tests => 33; use File::Copy; use File::Path; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + use constant false => 0; use constant true => 1; diff --git a/test/msg.t.cpp b/test/msg.t.cpp index 134ce74b8..b417e22c7 100644 --- a/test/msg.t.cpp +++ b/test/msg.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -38,6 +39,10 @@ int main (int argc, char** argv) { UnitTest t (12); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + Msg m; t.is (m.serialize (), std::string ("client: ") + PACKAGE_STRING + "\n\n\n", "Msg::serialize '' --> '\\n\\n'"); diff --git a/test/nag.t b/test/nag.t index ea1240cfa..4591e63ca 100755 --- a/test/nag.t +++ b/test/nag.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 8; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'nag.rc') { diff --git a/test/next.t b/test/next.t index 4352e2717..8dfb35baf 100755 --- a/test/next.t +++ b/test/next.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'next.rc') { diff --git a/test/nibbler.t.cpp b/test/nibbler.t.cpp index 383f7c066..fc78d4edf 100644 --- a/test/nibbler.t.cpp +++ b/test/nibbler.t.cpp @@ -26,6 +26,7 @@ //////////////////////////////////////////////////////////////////////////////// #include +#include #include #include #ifdef NIBBLER_FEATURE_DATE @@ -52,6 +53,10 @@ int main (int argc, char** argv) #endif #endif + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + try { Nibbler n; diff --git a/test/oldest.t b/test/oldest.t index 955a5e426..24937f042 100755 --- a/test/oldest.t +++ b/test/oldest.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 54; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'oldest.rc') { diff --git a/test/op_and.t b/test/op_and.t index a9793e087..847c4b6c3 100755 --- a/test/op_and.t +++ b/test/op_and.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 26; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'op.rc') { diff --git a/test/op_gt.t b/test/op_gt.t index 6cfee941e..6548a22ab 100755 --- a/test/op_gt.t +++ b/test/op_gt.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 26; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'op.rc') { diff --git a/test/op_gte.t b/test/op_gte.t index 704da2c9b..bd4da56c9 100755 --- a/test/op_gte.t +++ b/test/op_gte.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 14; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'op.rc') { diff --git a/test/op_lt.t b/test/op_lt.t index c7624d8b1..eaa08f479 100755 --- a/test/op_lt.t +++ b/test/op_lt.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 26; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'op.rc') { diff --git a/test/op_lte.t b/test/op_lte.t index 6f22f5dc6..c88599ee7 100755 --- a/test/op_lte.t +++ b/test/op_lte.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 14; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'op.rc') { diff --git a/test/op_or.t b/test/op_or.t index c26d3b884..92d67d64d 100755 --- a/test/op_or.t +++ b/test/op_or.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 18; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'op.rc') { diff --git a/test/op_xor.t b/test/op_xor.t index 28d3c5bf6..35170acf3 100755 --- a/test/op_xor.t +++ b/test/op_xor.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 18; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'op.rc') { diff --git a/test/overdue.t b/test/overdue.t index 58bb3dff5..c0c5ad34e 100755 --- a/test/overdue.t +++ b/test/overdue.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'due.rc') { diff --git a/test/override.t b/test/override.t index 4a8fe2752..ed6c0028a 100755 --- a/test/override.t +++ b/test/override.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 3; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'or.rc') { diff --git a/test/path.t.cpp b/test/path.t.cpp index 073f6ed35..00fee15d5 100644 --- a/test/path.t.cpp +++ b/test/path.t.cpp @@ -26,6 +26,7 @@ //////////////////////////////////////////////////////////////////////////////// #include +#include #include #include #include @@ -37,6 +38,10 @@ int main (int argc, char** argv) { UnitTest t (32); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + // Path (); Path p0; t.is (p0._data, "", "Path::Path"); diff --git a/test/prepend.t b/test/prepend.t index 62aa01119..3ae744bff 100755 --- a/test/prepend.t +++ b/test/prepend.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'prepend.rc') { diff --git a/test/pri_sort.t b/test/pri_sort.t index baac89cdb..f570dbf2c 100755 --- a/test/pri_sort.t +++ b/test/pri_sort.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 34; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'pri.rc') { diff --git a/test/project.t b/test/project.t index bea20ee21..3e2ec399b 100755 --- a/test/project.t +++ b/test/project.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 18; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'pro.rc') { diff --git a/test/rc.override.t b/test/rc.override.t index 2aa407f98..ba8f24e56 100755 --- a/test/rc.override.t +++ b/test/rc.override.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'rc.rc') { diff --git a/test/rc.t b/test/rc.t index 5f2423055..88fa956a5 100755 --- a/test/rc.t +++ b/test/rc.t @@ -31,6 +31,10 @@ use warnings; use File::Path; use Test::More tests => 15; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file, using rc.name:value. unlink 'foo.rc'; rmtree 'foo', 0, 0; diff --git a/test/recur.limit.t b/test/recur.limit.t index 8ed5a0f7b..23774d98a 100755 --- a/test/recur.limit.t +++ b/test/recur.limit.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'recur.rc') { diff --git a/test/recur.sort.t b/test/recur.sort.t index 0db5fc825..8266804c5 100755 --- a/test/recur.sort.t +++ b/test/recur.sort.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'recur.rc') { diff --git a/test/recur.t b/test/recur.t index c3076044c..065daa291 100755 --- a/test/recur.t +++ b/test/recur.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 11; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'recur.rc') { diff --git a/test/recur.until.t b/test/recur.until.t index b80eec4a4..a7d8d56a3 100755 --- a/test/recur.until.t +++ b/test/recur.until.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 8; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'recur.rc') { diff --git a/test/recur.weekdays.t b/test/recur.weekdays.t index 9f1d0b872..6de584099 100755 --- a/test/recur.weekdays.t +++ b/test/recur.weekdays.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'recur.rc') { diff --git a/test/roundtrip.t b/test/roundtrip.t index 802a68af5..eb6208d1b 100755 --- a/test/roundtrip.t +++ b/test/roundtrip.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'roundtrip.rc') { diff --git a/test/rx.t.cpp b/test/rx.t.cpp index 668cccebf..e2634513b 100644 --- a/test/rx.t.cpp +++ b/test/rx.t.cpp @@ -26,6 +26,7 @@ //////////////////////////////////////////////////////////////////////////////// #include +#include #include #include #include @@ -36,6 +37,10 @@ int main (int argc, char** argv) { UnitTest ut (23); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + std::string text = "This is a test."; RX r1 ("i. ", true); diff --git a/test/sequence.t b/test/sequence.t index 21f7807c4..33efdd074 100755 --- a/test/sequence.t +++ b/test/sequence.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 26; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'seq.rc') { diff --git a/test/shadow.t b/test/shadow.t index 4c13de4e2..94aac0c36 100755 --- a/test/shadow.t +++ b/test/shadow.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 18; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'shadow.rc') { diff --git a/test/shell.t b/test/shell.t index 4119e6e25..d8509c131 100755 --- a/test/shell.t +++ b/test/shell.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'shell.rc') { diff --git a/test/sorting.t b/test/sorting.t index 10fd77ef0..b5b6f9d55 100755 --- a/test/sorting.t +++ b/test/sorting.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 100; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'sorting.rc') { diff --git a/test/special.t b/test/special.t index 3434d51b9..866ba0c70 100755 --- a/test/special.t +++ b/test/special.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'special.rc') { diff --git a/test/start.t b/test/start.t index f541387b0..5a7a9797e 100755 --- a/test/start.t +++ b/test/start.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 17; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'start.rc') { diff --git a/test/subproject.t b/test/subproject.t index 2ecfc02b4..e85779d30 100755 --- a/test/subproject.t +++ b/test/subproject.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 10; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'sp.rc') { diff --git a/test/substitute.t b/test/substitute.t index 558ad110e..266db6953 100755 --- a/test/substitute.t +++ b/test/substitute.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 9; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'subst.rc') { diff --git a/test/t.t.cpp b/test/t.t.cpp index d4c74454a..e37c99440 100644 --- a/test/t.t.cpp +++ b/test/t.t.cpp @@ -26,6 +26,7 @@ //////////////////////////////////////////////////////////////////////////////// #include +#include #include #include @@ -36,6 +37,10 @@ int main (int argc, char** argv) { UnitTest test (30); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + test.is ((int)Task::textToStatus ("pending"), (int)Task::pending, "textToStatus pending"); test.is ((int)Task::textToStatus ("completed"), (int)Task::completed, "textToStatus completed"); test.is ((int)Task::textToStatus ("deleted"), (int)Task::deleted, "textToStatus deleted"); diff --git a/test/t2.t.cpp b/test/t2.t.cpp index 33c179f6e..b72a0e0d0 100644 --- a/test/t2.t.cpp +++ b/test/t2.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -38,6 +39,10 @@ int main (int argc, char** argv) { UnitTest t (18); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + // (blank) bool good = true; Task task; diff --git a/test/t3.t.cpp b/test/t3.t.cpp index d9746d7e2..31c4cb61b 100644 --- a/test/t3.t.cpp +++ b/test/t3.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -38,6 +39,10 @@ int main (int argc, char** argv) { UnitTest t (9); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + Task::attributes["description"] = "string"; Task::attributes["entry"] = "date"; Task::attributes["tags"] = "string"; diff --git a/test/tag.t b/test/tag.t index f3ec6d248..3bb15b0ca 100755 --- a/test/tag.t +++ b/test/tag.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 8; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'tag.rc') { diff --git a/test/taskmod.t.cpp b/test/taskmod.t.cpp index 6776a1c82..2566ece05 100644 --- a/test/taskmod.t.cpp +++ b/test/taskmod.t.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -41,6 +42,10 @@ int main (int argc, char** argv) { UnitTest t (16); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + bool good = true; // base timestamp diff --git a/test/tdb2.t.cpp b/test/tdb2.t.cpp index 1c4f4aff3..f06dde66c 100644 --- a/test/tdb2.t.cpp +++ b/test/tdb2.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -38,6 +39,10 @@ int main (int argc, char** argv) { UnitTest t (12); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + try { // Remove any residual test files. diff --git a/test/template.t b/test/template.t index 9c3dba1d8..903f8e471 100755 --- a/test/template.t +++ b/test/template.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + use File::Basename; my $ut = basename ($0); my $rc = $ut . '.rc'; diff --git a/test/test.cpp b/test/test.cpp index 90d36d0df..74721b0d7 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include diff --git a/test/text.t.cpp b/test/text.t.cpp index b9ce48229..c6b2bbae4 100644 --- a/test/text.t.cpp +++ b/test/text.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -39,6 +40,10 @@ int main (int argc, char** argv) { UnitTest t (264); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + // void wrapText (std::vector & lines, const std::string& text, const int width, bool hyphenate) std::string text = "This is a test of the line wrapping code."; std::vector lines; diff --git a/test/timesheet.t b/test/timesheet.t index 727757d36..03a344b5c 100755 --- a/test/timesheet.t +++ b/test/timesheet.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'time.rc') { diff --git a/test/uda_date.t b/test/uda_date.t index c2c521a64..d1067534f 100755 --- a/test/uda_date.t +++ b/test/uda_date.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'uda.rc') { diff --git a/test/uda_defaults.t b/test/uda_defaults.t index 95c1ec499..4c4123de1 100755 --- a/test/uda_defaults.t +++ b/test/uda_defaults.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 8; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'uda.rc') { diff --git a/test/uda_duration.t b/test/uda_duration.t index 830b05a25..0d8286d55 100755 --- a/test/uda_duration.t +++ b/test/uda_duration.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 6; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'uda.rc') { diff --git a/test/uda_numeric.t b/test/uda_numeric.t index eb1591dbb..094220295 100755 --- a/test/uda_numeric.t +++ b/test/uda_numeric.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'uda.rc') { diff --git a/test/uda_orphan.t b/test/uda_orphan.t index 8961c682f..002d14726 100755 --- a/test/uda_orphan.t +++ b/test/uda_orphan.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 10; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'uda.rc') { diff --git a/test/uda_report.t b/test/uda_report.t index d85f9cabc..d3be34fef 100755 --- a/test/uda_report.t +++ b/test/uda_report.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'uda.rc') { diff --git a/test/uda_string.t b/test/uda_string.t index 29757d589..a0ff7edf0 100755 --- a/test/uda_string.t +++ b/test/uda_string.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 4; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'uda.rc') { diff --git a/test/uda_value.t b/test/uda_value.t index d080f28ad..2b3120a15 100755 --- a/test/uda_value.t +++ b/test/uda_value.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'uda.rc') { diff --git a/test/undo.t b/test/undo.t index 4b5c109eb..86a5ab11c 100755 --- a/test/undo.t +++ b/test/undo.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 11; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'undo.rc') { diff --git a/test/upgrade.t b/test/upgrade.t index 1f6201970..9fee56aeb 100755 --- a/test/upgrade.t +++ b/test/upgrade.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 7; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'upgrade.rc') { diff --git a/test/urgency.t b/test/urgency.t index 849acf1da..9356b43b2 100755 --- a/test/urgency.t +++ b/test/urgency.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 32; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + sub in_range { my ($value, $low, $high, $message) = @_; diff --git a/test/uri.t.cpp b/test/uri.t.cpp index 24dac50ba..cdaa68af8 100644 --- a/test/uri.t.cpp +++ b/test/uri.t.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -39,6 +40,10 @@ int main (int argc, char** argv) { UnitTest t (54); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + Uri uri1 ("asfd://user@host/folder/"); uri1.parse (); t.is (uri1._user, "user", "Uri::parse() : asdf://user@host/folder/"); diff --git a/test/utf8.t.cpp b/test/utf8.t.cpp index 463e7e9e6..6340b4b17 100644 --- a/test/utf8.t.cpp +++ b/test/utf8.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include @@ -35,6 +36,10 @@ int main (int argc, char** argv) { UnitTest t (17); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + std::string ascii_text = "This is a test"; std::string utf8_text = "más sábado miércoles"; std::string utf8_wide_text = "改变各种颜色"; diff --git a/test/utf8_tw.t b/test/utf8_tw.t index 5a51047bd..a9e93b8e8 100755 --- a/test/utf8_tw.t +++ b/test/utf8_tw.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 5; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'utf8.rc') { diff --git a/test/util.t.cpp b/test/util.t.cpp index e03e25f68..a271c64b7 100644 --- a/test/util.t.cpp +++ b/test/util.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -38,6 +39,10 @@ int main (int argc, char** argv) { UnitTest t (40); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + // TODO bool confirm (const std::string&); // TODO int confirm3 (const std::string&); // TODO int confirm4 (const std::string&); diff --git a/test/uuid.t b/test/uuid.t index 7b0162436..14df09a6d 100755 --- a/test/uuid.t +++ b/test/uuid.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 26; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'uuid.rc') { diff --git a/test/verbose.t b/test/verbose.t index 5a5ef2a4d..4c02176b6 100755 --- a/test/verbose.t +++ b/test/verbose.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 8; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'verbose.rc') { diff --git a/test/view.t.cpp b/test/view.t.cpp index 191bfb514..a7f1860e4 100644 --- a/test/view.t.cpp +++ b/test/view.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -44,6 +45,10 @@ int main (int argc, char** argv) { UnitTest t (2); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + try { // Set up configuration. diff --git a/test/wait.t b/test/wait.t index af4c56d3e..442e15ea8 100755 --- a/test/wait.t +++ b/test/wait.t @@ -30,6 +30,10 @@ use strict; use warnings; use Test::More tests => 13; +# Ensure environment has no influence. +delete $ENV{'TASKDATA'}; +delete $ENV{'TASKRC'}; + # Create the rc file. if (open my $fh, '>', 'wait.rc') { diff --git a/test/width.t.cpp b/test/width.t.cpp index aec637504..9554d1941 100644 --- a/test/width.t.cpp +++ b/test/width.t.cpp @@ -27,6 +27,7 @@ #include #include +#include #include #include @@ -35,6 +36,10 @@ int main (int argc, char** argv) { UnitTest t (16); + // Ensure environment has no influence. + unsetenv ("TASKDATA"); + unsetenv ("TASKRC"); + t.is (mk_wcwidth ('a'), 1, "U+0061 --> 1"); t.is (mk_wcwidth (0x5149), 2, "U+5149 --> 2"); From 88abd93e52279c7f98a1b2d4f24931943ed350b7 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 7 Sep 2013 14:24:35 -0400 Subject: [PATCH 085/173] Feature - Protects against interrupt during critical DB commit and sync operations. --- ChangeLog | 1 + src/TDB2.cpp | 19 +++++++++++++++++++ src/commands/CmdSync.cpp | 19 +++++++++++++++++++ 3 files changed, 39 insertions(+) diff --git a/ChangeLog b/ChangeLog index 05574ca77..5b5a5cf0a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -40,6 +40,7 @@ Features + New '_get' is a DOM accessor helper command. + New virtual tags (WEEK, MONTH, YEAR, PARENT). + Added the 'remaining' format for all date columns. + + Protects against interrupt during critical DB commit and sync operations. Bugs + #1195 Random seed not random enough - removed all random number code (thanks diff --git a/src/TDB2.cpp b/src/TDB2.cpp index 8419bb295..34bbb3e50 100644 --- a/src/TDB2.cpp +++ b/src/TDB2.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include @@ -610,6 +611,15 @@ void TDB2::modify (Task& task, bool add_to_backlog /* = true */) //////////////////////////////////////////////////////////////////////////////// void TDB2::commit () { + // Ignore harmful signals. + signal (SIGHUP, SIG_IGN); + signal (SIGINT, SIG_IGN); + signal (SIGKILL, SIG_IGN); + signal (SIGPIPE, SIG_IGN); + signal (SIGTERM, SIG_IGN); + signal (SIGUSR1, SIG_IGN); + signal (SIGUSR2, SIG_IGN); + dump (); context.timer_commit.start (); @@ -618,6 +628,15 @@ void TDB2::commit () undo.commit (); backlog.commit (); + // Restore signal handling. + signal (SIGHUP, SIG_DFL); + signal (SIGINT, SIG_DFL); + signal (SIGKILL, SIG_DFL); + signal (SIGPIPE, SIG_DFL); + signal (SIGTERM, SIG_DFL); + signal (SIGUSR1, SIG_DFL); + signal (SIGUSR2, SIG_DFL); + context.timer_commit.stop (); } diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index e6d462f10..5371bd9b6 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -131,6 +132,15 @@ int CmdSync::execute (std::string& output) out << format (STRING_CMD_SYNC_PROGRESS, connection) << "\n"; + // Ignore harmful signals. + signal (SIGHUP, SIG_IGN); + signal (SIGINT, SIG_IGN); + signal (SIGKILL, SIG_IGN); + signal (SIGPIPE, SIG_IGN); + signal (SIGTERM, SIG_IGN); + signal (SIGUSR1, SIG_IGN); + signal (SIGUSR2, SIG_IGN); + Msg response; if (send (connection, certificate, request, response)) { @@ -270,6 +280,15 @@ int CmdSync::execute (std::string& output) out << "\n"; output = out.str (); + // Restore signal handling. + signal (SIGHUP, SIG_DFL); + signal (SIGINT, SIG_DFL); + signal (SIGKILL, SIG_DFL); + signal (SIGPIPE, SIG_DFL); + signal (SIGTERM, SIG_DFL); + signal (SIGUSR1, SIG_DFL); + signal (SIGUSR2, SIG_DFL); + #else // Without GnuTLS found at compile time, there is no working sync command. throw std::string (STRING_CMD_SYNC_NO_TLS); From af38b3bb7bbb8177f8d26be18c45b420a25acc40 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 7 Sep 2013 14:42:35 -0400 Subject: [PATCH 086/173] Documentation - Updated docs for beta. --- CMakeLists.txt | 2 +- NEWS | 2 +- README_TASKD | 11 ++- doc/man/.gitignore | 1 + doc/man/tasksh.1 | 185 --------------------------------------------- 5 files changed, 8 insertions(+), 193 deletions(-) delete mode 100644 doc/man/tasksh.1 diff --git a/CMakeLists.txt b/CMakeLists.txt index 882dcbb45..056f1ce06 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ include (CheckStructHasMember) set (HAVE_CMAKE true) project (task) -set (PROJECT_VERSION "2.3.0") +set (PROJECT_VERSION "2.3.0.beta1") SET (TASK_MAN1DIR share/man/man1 CACHE STRING "Installation directory for man pages, section 1") SET (TASK_MAN5DIR share/man/man5 CACHE STRING "Installation directory for man pages, section 5") diff --git a/NEWS b/NEWS index 3eb4f806b..12eb5dc6b 100644 --- a/NEWS +++ b/NEWS @@ -8,9 +8,9 @@ New Features in taskwarrior 2.3.0 - French translation has begun. - UDA fields now allow default values. - Now requires libuuid. - - New '_get' DOM accessor helper command. - New virtual tags: WEEK, MONTH, YEAR, PARENT. - New 'remaining' format for date columns. + - New '_get' DOM accessor helper command. New commands in taskwarrior 2.3.0 diff --git a/README_TASKD b/README_TASKD index 7a3efcf38..b640280eb 100644 --- a/README_TASKD +++ b/README_TASKD @@ -1,10 +1,9 @@ -Welcome To Taskwarrior 2.3.0 Alpha ----------------------------------- +Welcome To Taskwarrior 2.3.0 Beta +--------------------------------- -The alpha release of Taskwarrior 2.3.0 is for testing the Task Server. -Currently Taskwarrior is the only client for the Task Server. There are several -unaddressed bugs in this release, so proper precautions with your data are -required. +The beta release of Taskwarrior 2.3.0 is for testing the Task Server. There are +several unaddressed bugs in this release, so proper precautions with your data +are required. Building Taskwarrior diff --git a/doc/man/.gitignore b/doc/man/.gitignore index a01a8f5f0..19f35585f 100644 --- a/doc/man/.gitignore +++ b/doc/man/.gitignore @@ -4,3 +4,4 @@ task-sync.5 task-tutorial.5 task.1 taskrc.5 +tasksh.1 diff --git a/doc/man/tasksh.1 b/doc/man/tasksh.1 deleted file mode 100644 index 5eab9712c..000000000 --- a/doc/man/tasksh.1 +++ /dev/null @@ -1,185 +0,0 @@ -.TH tasksh 1 2013-03-09 "task 2.3.0" "User Manuals" - -.SH NAME -tasksh \- Interactive taskwarrior shell - -.SH SYNOPSIS -.B tasksh [] -.br -.B tasksh --version -.br -.B tasksh --help - -.SH DESCRIPTION -The tasksh program can be used to create a more immersive task environment. -Any task command you run outside the shell can also be run inside the shell, -without the need to prefix every command with "task". - -.br -Moreover, task commands can be written in a file which can be passed or -redirected to tasksh for batch execution. - -.RS -$ tasksh -.br -.B task 2.3.0 -shell -.br - -.br -Enter any task command (such as 'list'), or hit 'Enter'. -.br -There is no need to include the 'task' command itself. -.br -Enter 'quit' to end the session. -.br - -.br -task> projects -.br - -.br -Project Tasks Pri:None Pri:L Pri:M Pri:H -.br -------- ----- -------- ----- ----- ----- -.br - 7 7 0 0 0 -.br -home 2 2 0 0 0 -.br -party 6 3 0 0 3 -.br - -.br -3 projects (15 tasks) -.br -task> tags -.br - -.br -Tag Count -.br -mall 2 -.br - -.br -1 tag (15 tasks) -.br -task> list -.br - -.br -ID Project Pri Due Active Age Description -.br ---------------------------------------------------------------------- -.br - 2 party H 10/17/2010 2 hrs Select and book a venue -.br - 5 party H 10/22/2010 2 hrs Design invitations -.br - 9 home 10/31/2010 1 hr Pay rent -.br - 3 party 2 hrs Mail invitations -.br - 4 party 2 hrs Select a caterer -.br - 6 party 2 hrs Print invitations -.br - -.br - 8 tasks -.br - task> quit -.br - $ -.br - $ cat task.commands -.br - add foo -.br - add bar -.br - $ tasksh task.commands -.br - task 2.3.0 shell -.br - -.br - Enter any task command (such as 'list'), or hit 'Enter'. -.br - There is no need to include the 'task' command itself. -.br - Enter 'quit' to end the session. -.br - -.br - task> add foo -.br - Created task 8. -.br - task> add bar -.br - Created task 9. -.br - $ -.br - $ cat task.commands | tasksh -.br - task 2.3.0 shell -.br - -.br - Enter any task command (such as 'list'), or hit 'Enter'. -.br - There is no need to include the 'task' command itself. -.br - Enter 'quit' to end the session. -.br - -.br - task> add foo -.br - Created task 8. -.br - task> add bar -.br - Created task 9. -.br - -.RE - -.SH "CREDITS & COPYRIGHTS" -Copyright (C) 2006 \- 2013 P. Beckingham, F. Hernandez. - -This man page was originally written by Federico Hernandez. - -Taskwarrior is distributed under the MIT license. See -http://www.opensource.org/licenses/mit-license.php for more information. - -.SH SEE ALSO -.BR task(1), -.BR task-tutorial(5), -.BR taskrc(5), -.BR task-faq(5), -.BR task-color(5), -.BR task-sync(5) - -For more information regarding taskwarrior, see the following: - -.TP -The official site at - - -.TP -The official code repository at - - -.TP -You can contact the project by emailing - - -.SH REPORTING BUGS -.TP -Bugs in taskwarrior may be reported to the issue-tracker at - - From 7c356a943c2803a0db8600d8f1b59b0d3c8e451a Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 7 Sep 2013 23:45:04 -0400 Subject: [PATCH 087/173] Bug - Running 'task sync init' was not clearing the existing backlog.data file. --- src/commands/CmdSync.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index 5371bd9b6..925aaac96 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -98,6 +98,10 @@ int CmdSync::execute (std::string& output) int upload_count = 0; if (first_time_init) { + // Delete backlog.data. Because if we're uploading everything, the list of + // deltas is meaningless. + context.tdb2.backlog._file.truncate (); + std::vector pending = context.tdb2.pending.get_tasks (); std::vector ::iterator i; for (i = pending.begin (); i != pending.end (); ++i) From 1f3230716f09e562ca2e9d77c589c5aef1dfe379 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 8 Sep 2013 01:42:47 -0400 Subject: [PATCH 088/173] Unit Tests - Added test to make sure copyright is current. --- README_TASKD | 2 +- test/version.t | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100755 test/version.t diff --git a/README_TASKD b/README_TASKD index b640280eb..be32a4cb2 100644 --- a/README_TASKD +++ b/README_TASKD @@ -9,7 +9,7 @@ are required. Building Taskwarrior -------------------- -You will need the following depdendencies: +You will need the following dependencies: cmake make diff --git a/test/version.t b/test/version.t new file mode 100755 index 000000000..d3f6f5579 --- /dev/null +++ b/test/version.t @@ -0,0 +1,39 @@ +#! /usr/bin/env perl +################################################################################ +## taskwarrior - a command line task list manager. +## +## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## +## Permission is hereby granted, free of charge, to any person obtaining a copy +## of this software and associated documentation files (the "Software"), to deal +## in the Software without restriction, including without limitation the rights +## to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +## copies of the Software, and to permit persons to whom the Software is +## furnished to do so, subject to the following conditions: +## +## The above copyright notice and this permission notice shall be included +## in all copies or substantial portions of the Software. +## +## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +## OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +## THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +## OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +## SOFTWARE. +## +## http://www.opensource.org/licenses/mit-license.php +## +################################################################################ + +use strict; +use warnings; +use Test::More tests => 1; + +my $year = (localtime (time))[5] + 1900; + +my $output = qx{../src/task version 2>&1}; +like ($output, qr/Copyright \(C\) \d{4} - $year/, 'Copyright is current'); + +exit 0; + From 26e2b17a447f76869c661ae37ea82d81979a15b4 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 8 Sep 2013 15:08:29 -0400 Subject: [PATCH 089/173] Unit Tests - Fixed bug where version.t would not run unless a .taskrc file existed. --- test/version.t | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/test/version.t b/test/version.t index d3f6f5579..8b9a443b1 100755 --- a/test/version.t +++ b/test/version.t @@ -28,12 +28,18 @@ use strict; use warnings; -use Test::More tests => 1; +use Test::More tests => 2; + +qx{touch version.rc}; my $year = (localtime (time))[5] + 1900; -my $output = qx{../src/task version 2>&1}; +my $output = qx{../src/task rc:version.rc version 2>&1}; like ($output, qr/Copyright \(C\) \d{4} - $year/, 'Copyright is current'); +# Cleanup. +unlink 'version.rc'; +ok (!-r 'version.rc', 'Removed version.rc'); + exit 0; From 938077115e5fba308636fde6b690766a987ca46e Mon Sep 17 00:00:00 2001 From: Federico Hernandez Date: Sun, 8 Sep 2013 21:10:04 +0200 Subject: [PATCH 090/173] OS versions in NEWS file --- NEWS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index 12eb5dc6b..3b1a01b93 100644 --- a/NEWS +++ b/NEWS @@ -35,9 +35,9 @@ Newly deprecated features in taskwarrior 2.3.0 Taskwarrior has been built and tested on the following configurations: * OS X 10.8 Mountain Lion and 10.7 Lion - * Fedora 18 Spherical Cow and 17 Beefy Miracle + * Fedora 19 Schrodinger's Cat and 18 Spherical Cow * Ubuntu 12.10 Quantal Quetzal and 12.04 Precise Pangolin - * Debian 6.0 Squeeze (stable) and 5.0 Lenny (oldstable) plus Sid (testing) + * Debian 7.0 Wheezy (stable) and 6.0 Squeeze (oldstable) plus Sid (testing) * Slackware 13.37 * Arch Linux * Gentoo Linux From bcc9eb3d7a7317aa81692b0c52cd834ec2505ea7 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 10 Sep 2013 22:00:44 -0400 Subject: [PATCH 091/173] Bug - Fixed bug where specifying an ID of 0 yielded all completed/deleted tasks (thanks to greenskeleton). --- ChangeLog | 2 ++ src/A3.cpp | 3 +++ src/en-US.h | 1 + src/es-ES.h | 1 + src/fr-FR.h | 1 + src/it-IT.h | 1 + 6 files changed, 9 insertions(+) diff --git a/ChangeLog b/ChangeLog index 5b5a5cf0a..350997fe7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -65,6 +65,8 @@ Bugs + #1300 Encode/decode pairing is now properly balanced. + #1305 Commit hash now available in tarball builds (thanks to Ben Boeckel). + Fixed bug so that 'limit:page' now considers footnote messages. + + Fixed bug where specifying an ID of 0 yielded all completed/deleted tasks + (thanks to greenskeleton). ------ old releases ------------------------------ diff --git a/src/A3.cpp b/src/A3.cpp index cbe397f80..7ce537bc7 100644 --- a/src/A3.cpp +++ b/src/A3.cpp @@ -1141,6 +1141,9 @@ const A3 A3::sequence (const A3& input) const if (ids.size () == 0 && uuids.size () == 0) return input; + if (ids.size () == 1 && ids[0] < 1) + throw format (STRING_A3_ZERO_ID, ids[0]); + // Copy everything up to the first id/uuid. for (arg = input.begin (); arg != input.end (); ++arg) { diff --git a/src/en-US.h b/src/en-US.h index bb3d1be11..3d57dc396 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -116,6 +116,7 @@ #define STRING_A3_ID_AFTER_HYPHEN "Unrecognized ID after hyphen." #define STRING_A3_RANGE_INVERTED "Inverted range 'high-low' instead of 'low-high'" #define STRING_A3_UUID_AFTER_COMMA "Unrecognized UUID after comma." +#define STRING_A3_ZERO_ID "'{1}' is not a valid ID." // Color #define STRING_COLOR_UNRECOGNIZED "The color '{1}' is not recognized." diff --git a/src/es-ES.h b/src/es-ES.h index ad0cb1bfd..ad6e95356 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -117,6 +117,7 @@ #define STRING_A3_ID_AFTER_HYPHEN "ID no reconocido tras guión." #define STRING_A3_RANGE_INVERTED "Rango invertido 'alto-bajo' en vez de 'bajo-alto'" #define STRING_A3_UUID_AFTER_COMMA "UUID no reconocido tras coma." +#define STRING_A3_ZERO_ID "'{1}' is not a valid ID." // Color #define STRING_COLOR_UNRECOGNIZED "El color '{1}' no se reconoce." diff --git a/src/fr-FR.h b/src/fr-FR.h index 50afd3379..eb54f90ce 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -116,6 +116,7 @@ #define STRING_A3_ID_AFTER_HYPHEN "Unrecognized ID after hyphen." #define STRING_A3_RANGE_INVERTED "Inverted range 'high-low' instead of 'low-high'" #define STRING_A3_UUID_AFTER_COMMA "Unrecognized UUID after comma." +#define STRING_A3_ZERO_ID "'{1}' is not a valid ID." // Color #define STRING_COLOR_UNRECOGNIZED "The color '{1}' is not recognized." diff --git a/src/it-IT.h b/src/it-IT.h index 7d6c0d2cb..2e595396d 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -117,6 +117,7 @@ #define STRING_A3_ID_AFTER_HYPHEN "ID non riconosciuto dopo il trattino." #define STRING_A3_RANGE_INVERTED "Intervallo invertito 'alto-basso' invece di 'basso-alto'" #define STRING_A3_UUID_AFTER_COMMA "UUID non riconosciuto dopo la virgola." +#define STRING_A3_ZERO_ID "'{1}' is not a valid ID." // Color #define STRING_COLOR_UNRECOGNIZED "Il colore '{1}' non è riconosciuto." From e441b8ca8e66a2463b60e6cd01337d1137e66461 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 10 Sep 2013 22:52:38 -0400 Subject: [PATCH 092/173] Deprecated Features - Marked the push/pull/merge features as deprecated. --- ChangeLog | 1 + NEWS | 3 +++ src/commands/CmdMerge.cpp | 2 ++ src/commands/CmdPull.cpp | 2 ++ src/commands/CmdPush.cpp | 2 ++ src/commands/CmdShow.cpp | 7 ++++--- src/legacy.cpp | 10 ++++++++-- 7 files changed, 22 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 350997fe7..c930723f8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -41,6 +41,7 @@ Features + New virtual tags (WEEK, MONTH, YEAR, PARENT). + Added the 'remaining' format for all date columns. + Protects against interrupt during critical DB commit and sync operations. + + The 'push', 'pull' and 'merge' commands now generate a 'deprecated' message. Bugs + #1195 Random seed not random enough - removed all random number code (thanks diff --git a/NEWS b/NEWS index 3b1a01b93..0d1a0fb93 100644 --- a/NEWS +++ b/NEWS @@ -29,6 +29,9 @@ New configuration options in taskwarrior 2.3.0 Newly deprecated features in taskwarrior 2.3.0 - File format 2 (used in version 0.9.3 - 1.5.0) is no longer supported. + - The 'push', 'pull' and 'merge' commands will be removed in a subsequent + release. The new 'sync' command, in conjunction with the Task Server is the + new sync mechanism. --- diff --git a/src/commands/CmdMerge.cpp b/src/commands/CmdMerge.cpp index 31868c613..e1906bf43 100644 --- a/src/commands/CmdMerge.cpp +++ b/src/commands/CmdMerge.cpp @@ -52,6 +52,8 @@ CmdMerge::CmdMerge () //////////////////////////////////////////////////////////////////////////////// int CmdMerge::execute (std::string& output) { + context.footnote ("The 'merge' command is deprecated, and will be removed in a subsequent release."); + // invoke gc and commit before merging in order to update data files context.tdb2.gc (); context.tdb2.commit (); diff --git a/src/commands/CmdPull.cpp b/src/commands/CmdPull.cpp index 40dcbed3a..59cdccf38 100644 --- a/src/commands/CmdPull.cpp +++ b/src/commands/CmdPull.cpp @@ -50,6 +50,8 @@ CmdPull::CmdPull () //////////////////////////////////////////////////////////////////////////////// int CmdPull::execute (std::string& output) { + context.footnote ("The 'pull' command is deprecated, and will be removed in a subsequent release."); + std::vector words = context.a3.extract_words (); std::string file; if (words.size ()) diff --git a/src/commands/CmdPush.cpp b/src/commands/CmdPush.cpp index 43c84d26a..b9a901ee5 100644 --- a/src/commands/CmdPush.cpp +++ b/src/commands/CmdPush.cpp @@ -52,6 +52,8 @@ CmdPush::CmdPush () // Because this is potentially on another machine, no checking can be performed. int CmdPush::execute (std::string& output) { + context.footnote ("The 'push' command is deprecated, and will be removed in a subsequent release."); + std::vector words = context.a3.extract_words (); std::string file; if (words.size ()) diff --git a/src/commands/CmdShow.cpp b/src/commands/CmdShow.cpp index 785e64a83..eccef86e1 100644 --- a/src/commands/CmdShow.cpp +++ b/src/commands/CmdShow.cpp @@ -169,13 +169,13 @@ int CmdShow::execute (std::string& output) " locale" " locking" " merge.autopush" - " merge.default.uri" + " merge.default.uri" // Deprecated 2.3.0 " monthsperline" " nag" " patterns" " print.empty.columns" - " pull.default.uri" - " push.default.uri" + " pull.default.uri" // Deprecated 2.3.0 + " push.default.uri" // Deprecated 2.3.0 " recurrence.indicator" " recurrence.limit" " regex" @@ -297,6 +297,7 @@ int CmdShow::execute (std::string& output) color = warning; } + // TODO Deprecated. std::string value = i->second; // hide sensible information if ( (i->first.substr (0, 5) == "push." || diff --git a/src/legacy.cpp b/src/legacy.cpp index 63fb9a4aa..e58410071 100644 --- a/src/legacy.cpp +++ b/src/legacy.cpp @@ -149,8 +149,14 @@ std::string legacyCheckForDeprecatedVariables () it->first.substr (it->first.length () - 12) == ".annotations") deprecated.push_back (it->first); - if (it->first == "echo.command" || - it->first == "edit.verbose" || + // {push,pull,merge}.uri Deprecated in 2.3.0 + if ((it->first.substr (0, 5) == "push." || + it->first.substr (0, 5) == "pull." || + it->first.substr (0, 6) == "merge.") && (it->first.find (".uri") != std::string::npos)) + deprecated.push_back (it->first); + + if (it->first == "echo.command" || // Deprecated in 2.0.0 + it->first == "edit.verbose" || // Deprecated in 2.0.0 it->first == "next" || it->first == "annotations" || it->first == "export.ical.class") From 89d1bfefe30689ff2726af1d5f4c4ede3e057662 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 10 Sep 2013 23:06:48 -0400 Subject: [PATCH 093/173] L10N - Removed unused strings. --- src/en-US.h | 7 ------- src/es-ES.h | 7 ------- src/fr-FR.h | 7 ------- src/it-IT.h | 7 ------- 4 files changed, 28 deletions(-) diff --git a/src/en-US.h b/src/en-US.h index 3d57dc396..e55cf35ec 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -398,7 +398,6 @@ #define STRING_CMD_IMPORT_SUMMARY "Imported {1} tasks." #define STRING_CMD_IMPORT_NOFILE "You must specify a file to import." #define STRING_CMD_IMPORT_FILE "Importing '{1}'" -#define STRING_CMD_IMPORT_NOT_JSON "Not a JSON object: {1}" #define STRING_TASK_NO_DESC "Annotation is missing a description: {1}" #define STRING_TASK_NO_ENTRY "Annotation is missing an entry date: {1}" #define STRING_CMD_SHELL_HELP1 "Enter any task command (such as 'list'), or hit 'Enter'." @@ -561,7 +560,6 @@ // Date #define STRING_DATE_INVALID_FORMAT "'{1}' is not a valid date in the '{2}' format." #define STRING_DATE_BAD_WEEKSTART "The 'weekstart' configuration variable may only contain 'Sunday' or 'Monday'." -#define STRING_DATE_TOO_MUCH "The date is too far into the future." #define STRING_DATE_JANUARY_LONG "january" #define STRING_DATE_FEBRUARY_LONG "february" @@ -697,7 +695,6 @@ // TODO Move each of these to appropriate section. #define STRING_ERROR_PREFIX "Error: " #define STRING_UNKNOWN_ERROR "Unknown error." -#define STRING_NO_HOME "Could not read home directory from the passwd file." #define STRING_TRIVIAL_INPUT "You must specify a command or a task to modify." #define STRING_ASSUME_INFO "No command specified - assuming 'information'." #define STRING_INFINITE_LOOP "Terminated substitution because more than {1} changes were made - infinite loop protection." @@ -760,9 +757,6 @@ #define STRING_JSON_MISSING_OPEN "Error: expected '{' or '[' at position {1}" #define STRING_JSON_EXTRA_CHARACTERS "Error: extra characters found at position {1}" -// Legacy -#define STRING_LEGACY_FEATURE "Note: the '{1}' feature is deprecated." - // Record #define STRING_RECORD_EMPTY "Empty record in input." #define STRING_RECORD_JUNK_AT_EOL "Unrecognized characters at end of line." @@ -774,7 +768,6 @@ #define STRING_CMD_SHOW_NONE "No matching configuration variables." #define STRING_CMD_SHOW_UNREC "Your .taskrc file contains these unrecognized variables:" #define STRING_CMD_SHOW_DIFFER "Some of your .taskrc variables differ from the default values." -#define STRING_CMD_SHOW_HOOKS "Your .taskrc file contains these missing or unreadable hook scripts:" #define STRING_CMD_SHOW_EMPTY "Configuration error: .taskrc contains no entries." #define STRING_CMD_SHOW_DIFFER_COLOR "These are highlighted in {1} above." #define STRING_CMD_SHOW_CONFIG_ERROR "Configuration error: {1} contains an unrecognized value '{2}'." diff --git a/src/es-ES.h b/src/es-ES.h index ad6e95356..c4403c919 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -408,7 +408,6 @@ #define STRING_CMD_IMPORT_SUMMARY "Importadas {1} tareas." #define STRING_CMD_IMPORT_NOFILE "Debe especificar un archivo a importar." #define STRING_CMD_IMPORT_FILE "Importando '{1}'" -#define STRING_CMD_IMPORT_NOT_JSON "No es un objeto JSON: {1}" #define STRING_TASK_NO_DESC "La anotación carece de descripción: {1}" #define STRING_TASK_NO_ENTRY "La anotación carece de fecha de entrada: {1}" #define STRING_CMD_SHELL_HELP1 "Escriba un comando de task (como 'list'), o pulse 'Enter'." @@ -575,7 +574,6 @@ // Date #define STRING_DATE_INVALID_FORMAT "'{1}' no es una fecha válida según el formato '{2}'." #define STRING_DATE_BAD_WEEKSTART "La variable de configuración 'weekstart' solamente puede contener 'Sunday' (domingo) o 'Monday' (lunes)." -#define STRING_DATE_TOO_MUCH "La fecha está demasiado alejada en el futuro." #define STRING_DATE_JANUARY_LONG "enero" #define STRING_DATE_FEBRUARY_LONG "febrero" @@ -711,7 +709,6 @@ // TODO Move each of these to appropriate section. #define STRING_ERROR_PREFIX "Error: " #define STRING_UNKNOWN_ERROR "Error desconocido." -#define STRING_NO_HOME "No se pudo leer el directorio personal en el archivo passwd." #define STRING_TRIVIAL_INPUT "Debe especificar un comando o una tarea a modificar." #define STRING_ASSUME_INFO "No especificó un comando - asumido 'information'." #define STRING_INFINITE_LOOP "Sustitución terminada debido a que se hicieron más de {1} cambios - protección contra ciclo eterno." @@ -774,9 +771,6 @@ #define STRING_JSON_MISSING_OPEN "Error: se esperaba '{' or '[' en posición {1}" #define STRING_JSON_EXTRA_CHARACTERS "Error: encontrados caracteres extra en posición {1}" -// Legacy -#define STRING_LEGACY_FEATURE "Note: la función '{1}' está en desuso." - // Record #define STRING_RECORD_EMPTY "Registro vacío en la entrada." #define STRING_RECORD_JUNK_AT_EOL "Caracteres no reconocidos al final de línea." @@ -788,7 +782,6 @@ #define STRING_CMD_SHOW_NONE "No hay variables de configuración que coincidan." #define STRING_CMD_SHOW_UNREC "Su archivo .taskrc contiene estas variables no reconocidas:" #define STRING_CMD_SHOW_DIFFER "Algunas de sus variables .taskrc difieren de los valores por defecto." -#define STRING_CMD_SHOW_HOOKS "Su archivo .taskrc contiene estos hook scripts que faltan o no se pueden leer:" #define STRING_CMD_SHOW_EMPTY "Error de configuración: .taskrc no contiene ninguna entrada." #define STRING_CMD_SHOW_DIFFER_COLOR "Las cambiadas aparecen resaltadas en {1} más arriba." #define STRING_CMD_SHOW_CONFIG_ERROR "Error de configuración: {1} contiene un valor '{2}' no reconocido." diff --git a/src/fr-FR.h b/src/fr-FR.h index eb54f90ce..a7a5a7adc 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -398,7 +398,6 @@ #define STRING_CMD_IMPORT_SUMMARY "Imported {1} tasks." #define STRING_CMD_IMPORT_NOFILE "You must specify a file to import." #define STRING_CMD_IMPORT_FILE "Importing '{1}'" -#define STRING_CMD_IMPORT_NOT_JSON "Not a JSON object: {1}" #define STRING_TASK_NO_DESC "Annotation is missing a description: {1}" #define STRING_TASK_NO_ENTRY "Annotation is missing an entry date: {1}" #define STRING_CMD_SHELL_HELP1 "Enter any task command (such as 'list'), or hit 'Enter'." @@ -561,7 +560,6 @@ // Date #define STRING_DATE_INVALID_FORMAT "'{1}' n'est pas une date au format '{2}'." #define STRING_DATE_BAD_WEEKSTART "La variable de configuration 'weekstart' ne peut contenir que 'dimanche' ou 'lundi'." -#define STRING_DATE_TOO_MUCH "The date is too far into the future." #define STRING_DATE_JANUARY_LONG "janvier" #define STRING_DATE_FEBRUARY_LONG "février" @@ -697,7 +695,6 @@ // TODO Move each of these to appropriate section. #define STRING_ERROR_PREFIX "Error: " #define STRING_UNKNOWN_ERROR "Unknown error." -#define STRING_NO_HOME "Could not read home directory from the passwd file." #define STRING_TRIVIAL_INPUT "You must specify a command or a task to modify." #define STRING_ASSUME_INFO "No command specified - assuming 'information'." #define STRING_INFINITE_LOOP "Terminated substitution because more than {1} changes were made - infinite loop protection." @@ -760,9 +757,6 @@ #define STRING_JSON_MISSING_OPEN "Error: expected '{' or '[' at position {1}" #define STRING_JSON_EXTRA_CHARACTERS "Error: extra characters found at position {1}" -// Legacy -#define STRING_LEGACY_FEATURE "Note: the '{1}' feature is deprecated." - // Record #define STRING_RECORD_EMPTY "Empty record in input." #define STRING_RECORD_JUNK_AT_EOL "Unrecognized characters at end of line." @@ -774,7 +768,6 @@ #define STRING_CMD_SHOW_NONE "No matching configuration variables." #define STRING_CMD_SHOW_UNREC "Your .taskrc file contains these unrecognized variables:" #define STRING_CMD_SHOW_DIFFER "Some of your .taskrc variables differ from the default values." -#define STRING_CMD_SHOW_HOOKS "Your .taskrc file contains these missing or unreadable hook scripts:" #define STRING_CMD_SHOW_EMPTY "Configuration error: .taskrc contains no entries." #define STRING_CMD_SHOW_DIFFER_COLOR "These are highlighted in {1} above." #define STRING_CMD_SHOW_CONFIG_ERROR "Configuration error: {1} contains an unrecognized value '{2}'." diff --git a/src/it-IT.h b/src/it-IT.h index 2e595396d..601032fd5 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -399,7 +399,6 @@ #define STRING_CMD_IMPORT_SUMMARY "Importati {1} task." #define STRING_CMD_IMPORT_NOFILE "Specificare il file da importare." #define STRING_CMD_IMPORT_FILE "Importazione di '{1}'" -#define STRING_CMD_IMPORT_NOT_JSON "Non è un oggetto JSON: {1}" #define STRING_TASK_NO_DESC "Annotazione senza descrizione: {1}" #define STRING_TASK_NO_ENTRY "Annotazione senza data di immissione: {1}" #define STRING_CMD_SHELL_HELP1 "Inserisci un comando (es. 'list'), o premi 'Enter'." @@ -562,7 +561,6 @@ // Date #define STRING_DATE_INVALID_FORMAT "'{1}' non è una data valida nel formato '{2}'." #define STRING_DATE_BAD_WEEKSTART "La variabile di configurazione 'weekstart' può solo contenere 'Domenica' o 'Lunedì'." -#define STRING_DATE_TOO_MUCH "La data è troppo avanti nel futuro." #define STRING_DATE_JANUARY_LONG "gennaio" #define STRING_DATE_FEBRUARY_LONG "febbraio" @@ -698,7 +696,6 @@ // TODO Move each of these to appropriate section. #define STRING_ERROR_PREFIX "Errore: " #define STRING_UNKNOWN_ERROR "Errore sconosciuto." -#define STRING_NO_HOME "Impossibile leggere la home directory dal file passwd" #define STRING_TRIVIAL_INPUT "Specificare un comando o un task da modificare" #define STRING_ASSUME_INFO "Nessun comando specificato - si assume 'information'." #define STRING_INFINITE_LOOP "Sostituzione terminata poiché più di {1} modifiche sono state fatte - protezione da ciclo infinito" @@ -761,9 +758,6 @@ #define STRING_JSON_MISSING_OPEN "Errore: atteso '{' o '[' alla posizione {1}" #define STRING_JSON_EXTRA_CHARACTERS "Errore: caratteri in eccesso alla posizione {1}" -// Legacy -#define STRING_LEGACY_FEATURE "Nota: la funzionalità '{1}' è deprecata." - // Record #define STRING_RECORD_EMPTY "Voce vuota in ingresso." #define STRING_RECORD_JUNK_AT_EOL "Carattere non riconosciuto a fine riga." @@ -775,7 +769,6 @@ #define STRING_CMD_SHOW_NONE "Variabile di configurazione non corrispondente." #define STRING_CMD_SHOW_UNREC "Il file .taskrc contiene variabili non riconosciute:" #define STRING_CMD_SHOW_DIFFER "Alcune variabili in .taskrc hanno valore diverso dal default." -#define STRING_CMD_SHOW_HOOKS "Il file .taskrc contiene script di aggancio mancanti o non leggibili:" #define STRING_CMD_SHOW_EMPTY "Errore di configurazione: .taskrc è vuoto." #define STRING_CMD_SHOW_DIFFER_COLOR "Evidenziate sopra in {1}." #define STRING_CMD_SHOW_CONFIG_ERROR "Errore di configurazione: {1} contiene un valore non riconosciuto '{2}'." From f7a6d07d715ac401c3d04d85bda878da9a67be6b Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 10 Sep 2013 23:16:03 -0400 Subject: [PATCH 094/173] Code Cleanup - The 'diagnostics' command no longer generates 1000 UUIDs as a uniqueness test, because libuuid is now mandatory. --- NEWS | 2 ++ src/commands/CmdDiagnostics.cpp | 18 ------------------ 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/NEWS b/NEWS index 0d1a0fb93..12551ca1d 100644 --- a/NEWS +++ b/NEWS @@ -32,6 +32,8 @@ Newly deprecated features in taskwarrior 2.3.0 - The 'push', 'pull' and 'merge' commands will be removed in a subsequent release. The new 'sync' command, in conjunction with the Task Server is the new sync mechanism. + - The 'diagnostics' command no longer generates 1000 UUIDs as a uniqueness + test, because libuuid is now mandatory. --- diff --git a/src/commands/CmdDiagnostics.cpp b/src/commands/CmdDiagnostics.cpp index a76cb81ac..e91f80b10 100644 --- a/src/commands/CmdDiagnostics.cpp +++ b/src/commands/CmdDiagnostics.cpp @@ -300,24 +300,6 @@ int CmdDiagnostics::execute (std::string& output) out << bold.colorize (STRING_CMD_DIAG_TESTS) << "\n"; { - out << " UUID gen: "; - std::vector uuids; - std::string id; - for (int i = 0; i < 1000; i++) - { - id = uuid (); - if (std::find (uuids.begin (), uuids.end (), id) != uuids.end ()) - { - out << format (STRING_CMD_DIAG_UUID_BAD, i) << "\n"; - break; - } - else - uuids.push_back (id); - } - - if (uuids.size () >= 1000) - out << STRING_CMD_DIAG_UUID_GOOD << "\n"; - // Determine terminal details. const char* term = getenv ("TERM"); out << " $TERM: " From 1282d545d6a9b0e130cd0d05d1a5474d2c26a909 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 10 Sep 2013 23:26:36 -0400 Subject: [PATCH 095/173] Documentation - Cleaned up a few old references. --- DEVELOPER | 6 +++++- EXPOSITION | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/DEVELOPER b/DEVELOPER index 763e2f8cf..fa7d7d87e 100644 --- a/DEVELOPER +++ b/DEVELOPER @@ -125,6 +125,7 @@ Unit Tests Needed code and run the test suite: git clone git://tasktools.org:task.git cd task.git + git checkout 2.3.0 cmake . make make test @@ -187,7 +188,10 @@ Current Codebase Condition '2.3.0' branch: - Current development branch with sync features, and new tasksh. + '2.4.0' branch: + - Command line parser rewrite. + --- 2012-05-12 Added general statement about how to contribute. -2013-03-31 Updated branch info. +2013-09-09 Updated branch info. diff --git a/EXPOSITION b/EXPOSITION index c1f2d790f..909f61337 100644 --- a/EXPOSITION +++ b/EXPOSITION @@ -156,7 +156,7 @@ Test Suite many platforms. Code changes are automatically detected, propagated, built and tested on a variety of participating platforms. Grid testing results are here: - http://tasktools.org/tinderbox/taskwarrior.html + http://tasktools.org/tinderbox/taskwarrior-2.3.0.html When making code changes, it is important that the test suite be run to verify that functionality was not broken. From 64e8f34933fdec1a7f76ccd45cdb6d9d58b98983 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Wed, 11 Sep 2013 00:17:01 -0400 Subject: [PATCH 096/173] Documentation - Rewrote task-sync(5) man page. --- ChangeLog | 1 + NEWS | 1 + 2 files changed, 2 insertions(+) diff --git a/ChangeLog b/ChangeLog index c930723f8..641140a4f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -42,6 +42,7 @@ Features + Added the 'remaining' format for all date columns. + Protects against interrupt during critical DB commit and sync operations. + The 'push', 'pull' and 'merge' commands now generate a 'deprecated' message. + + Rewritten task-sync(5) man page, listing sync options and setup guidelines.. Bugs + #1195 Random seed not random enough - removed all random number code (thanks diff --git a/NEWS b/NEWS index 12551ca1d..b0c9e74ab 100644 --- a/NEWS +++ b/NEWS @@ -11,6 +11,7 @@ New Features in taskwarrior 2.3.0 - New virtual tags: WEEK, MONTH, YEAR, PARENT. - New 'remaining' format for date columns. - New '_get' DOM accessor helper command. + - New task-sync(5) man page. New commands in taskwarrior 2.3.0 From 0f416a9f01ba51fb521735645df64af4abed30cf Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Wed, 11 Sep 2013 00:35:25 -0400 Subject: [PATCH 097/173] Documentation - Cleaned up obsolete references. --- doc/man/task-faq.5.in | 54 ++---- doc/man/task-sync.5.in | 415 +++++++++-------------------------------- doc/man/task.1.in | 30 +-- doc/man/taskrc.5.in | 27 +-- test/undo.t | 28 ++- 5 files changed, 137 insertions(+), 417 deletions(-) diff --git a/doc/man/task-faq.5.in b/doc/man/task-faq.5.in index e6c0ee893..752638bd6 100644 --- a/doc/man/task-faq.5.in +++ b/doc/man/task-faq.5.in @@ -72,9 +72,9 @@ reason to back up your task data files! .TP .B Q: Can I have two separate versions of taskwarrior installed? How? Yes, and here is one simple way to do that. Install the older version of -taskwarrior, and then rename the 'task' binary to something like 't194' to +taskwarrior, and then rename the 'task' binary to something like 't230' to reflect the version number. Then install the newer version, which will be -named 'task'. Now you have 't194' and 'task' both installed, both using the +named 'task'. Now you have 't230' and 'task' both installed, both using the same configuration and data. Note that the older version will not be aware of any new configuration settings @@ -86,6 +86,9 @@ Note also that the man pages will overwrite, which is why it is suggested that the older version be installed first, so that you benefit from improved documentation. +Is this a good idea? Not really. You should be using the latest software +whenever possible, enjoying the benefits of enhancements and bug fixes. + .TP .B Q: How do I build a Darwin 32bit version of task The taskwarrior packages will not work on a 32-bit OSX installation on Core @@ -159,11 +162,6 @@ new file, then this command lists only the defaults. Note that this is a good way to learn about new configuration settings, particularly if your .taskrc file was created by an older version. -.TP -.B Q: Do I need to back up my taskwarrior data? -Yes you do, like all your other files. You should back up all the files in your -~/.task directory, and your ~/.taskrc file too. - .TP .B Q: Can I share my tasks between different machines? Yes, you can. Most people have success with a DropBox - a free and secure file @@ -174,40 +172,25 @@ folder, by modifying the: configuration variable. Check out DropBox at http://www.dropbox.com. -You might also want to share the same .taskrc file. You can do this by putting an alias in the .bashrc file along the lines of - -alias task="task rc:/home/username/Dropbox/mysharedtaskrc" - -An alternative to Dropbox is to use the push/pull/merge features built into Taskwarrior. See 'man task-sync' for details. +You might also want to share the same .taskrc file. You can do this by putting +an alias in the .bashrc file along the lines of + alias task="task rc:/home/username/Dropbox/mysharedtaskrc" .TP .B Q: I don't want to use dropbox. Is there another way to synchronize my tasks? -Of course. Especially if you want to modify tasks offline on both machines and -synchronize them later on. For this purpose there is a 'merge' command which is -is able to insert the modifications you made to one of your task databases into -a second database. - -Here is a basic example of the procedure: - - task merge ssh://user@myremotehost/.task/ - task push ssh://user@myremotehost/.task/ - -The first command fetches the undo.data file from the remote system, reads the -changes made and updates the local database. When this merge command completes, -you should copy all the local .data files to the remote system either by using -the push command explicitly or by activating the merge.autopush feature in the -~/.taskrc file. This way you ensure that both systems are fully synchronized. +Yes. Get a Task Server account, and sync tasks between all your machines and +devices. See task-sync(5). .TP .B Q: The undo.data file gets very large - do I need it? -You need it if you want the undo capability, or the merge capability mentioned -above. But if it gets large, you can certainly truncate it to save space, just -be careful to delete lines from the top of the file, up to and including a -separator '---'. The simplest way is to simply delete the undo.data file. Note -that it does not slow down taskwarrior in performance-sensitive areas, because -it is typically not read until you want to undo, or report total active time in -the 'info' command. Taskwarrior generally only appends to the file. +You need it if you want the undo capability. But if it gets large, you can +certainly truncate it to save space, just be careful to delete lines from the +top of the file, up to and including a separator '---'. The simplest way is to +simply delete the undo.data file. Note that it does not slow down taskwarrior +in performance-sensitive areas, because it is typically not read until you want +to undo, or report total active time in the 'info' command. Taskwarrior +generally only appends to the file. It is not recommended that you delete the undo.data file, as it limits functionality. @@ -262,7 +245,8 @@ Taskwarrior does this to always show you the smallest numbers it can. The idea is that if your tasks are numbered 1 - 33, for example, those are easy to type in. If instead task kept a rolling sequence number, after a while your tasks might be numbered 481 - 513, which makes it more likely to enter one -incorrectly, because there are more digits. +incorrectly, because there are more digits, and humans have difficulty with +longer numbers. When you run a report (such as "list"), the numbers are assigned before display. For example, you can do this: diff --git a/doc/man/task-sync.5.in b/doc/man/task-sync.5.in index 479d3870b..5155c11ec 100644 --- a/doc/man/task-sync.5.in +++ b/doc/man/task-sync.5.in @@ -1,362 +1,130 @@ .TH task-sync 5 2013-04-07 "${PACKAGE_STRING}" "User Manuals" .SH NAME -task-sync \- A tutorial for the task(1) data synchronization capabilities. +task-sync \- A discussion and tutorial for the various task(1) data +synchronization capabilities. -.SH DESCRIPTION -Taskwarrior has built-in support for synchronization, which can be used to keep -two task databases up to date, regardless of which one is used. This capability -can also be used to keep a backup copy of your task database on another machine. +.SH INTRODUCTION +Taskwarrior has several sync options, external and internal. If you wish to +sync your data, choose one method only; mixing methods is only going to lead to +problems. Each of the methods discussed have their own strengths. -Taskwarrior can use various protocols for transferring the data. - -.SH HOW IT WORKS -If you were to manually attempt to keep two separate task databases up to date, -you would need to inspect both databases, and detect changes that occurred in -each one. Those changes would need to be migrated to the other database, while -being careful not to miss a change, and not to confuse an 'add' in one with -a 'delete' in the other. - -The synchronization feature does just this. It can transfer task databases, -compare tasks, and apply changes where necessary. - -.SH NEW COMMANDS -Taskwarrior has 'pull', 'push' and 'merge' commands which perform the steps -necessary to move files around and combine them. In the common use case, you -would only need to use the 'merge' command. These commands take an argument -that is a URI, which indicates where the remote database resides. - -To be clear, the local database always refers to your ~/.task directory (unless -overridden), and the remote database is always specified by URI. - -.SH MERGE -The merge command will fetch task data via URI and combine it with the local -task database. The syntax is: +.SH ALTERNATIVES +There are three alternatives for syncing data, which are: +1) Version control systems, such as git, hg, svn .br -.RS -task merge [] -.RE - -The URI is optional if the -.B merge.default.uri -configuration variable is set. The URI may point to a different directory, or -it may be a different computer. Here is an example of the merge command: - +2) File hosting systems, such as DropBox .br -.RS -$ task merge ~/work/ -.RE +3) Using the Task Server and the 'sync' command -This URI (~/work/) is a path name, which means the remote database is on the -same computer. Taskwarrior will fetch the data from the URI, and merge it with -your local data in ~/.task. -When complete, you will be asked whether you would like to push the combined -data back to the remote location specified by the URI. This is useful if you -are keeping two task databases synchronized, but it can be turned off. See -CONFIGURATION. +.SH OPTION 1: VERSION CONTROL SYSTEMS +There are several good VCS systems (git, hg, svn ...), and they function in a +similar fashion for our purposes. -Note that a merge operation is not atomically reversible. You could however -run the 'task undo' command repeatedly to undo the effects. - -.SH PUSH -The push command will copy the local task database to the specified URI. The -syntax is: +Setup is straightforward. You place your .task directory under revision +control. You then need to perform a regular commit/push/pull to make sure that +the data is propagated when needed. You can even do this using shell scripts so +that every task command is preceded by a 'pull' and followed by a 'push'. +Strengths: .br -.RS -task push [] -.RE - -The URI is optional if the -.B push.default.uri -configuration variable is set. This command is useful for making backup copies -of your task database. - -Note that the task files at the location specified by the URI are simply -overwritten, so don't expect any merging to occur. Misused, push can be -dangerous. - -.SH PULL -The pull command will copy a task database from a URI to the local task database -(~/.task by default). The syntax is: - + - Good data transport mechanisms .br -.RS -task pull [] -.RE - -The URI is optional if the -.B pull.default.uri -configuration variable is set. This command is useful for restoring a backup -copy of your task database. - -Note that your local task database files will be simply overwritten by the files -obtained from the location specified by the URI, so don't expect any merging to -occur. Misused, pull can be dangerous. - -.SH URI TYPES -The most basic URI is a path name on the local machine. An example would be: + - Secure transport options +Weaknesses: .br -.RS -/home/bob/.task/ -.RE - -All the other URIs allow access to remote machines. The first uses SSH and scp -(either form can be used): - + - You need proficiency with VCS tools .br -.RS -ssh://[user@]host[:port]/absolute/path/to/.task/ + - You will need to manually resolve conflicts frequently .br -[user@]host:/absolute/path/to/.task/ -.RE + - You need to provide the mechanism for making sure copies are up to date -In both cases paths are considered to be absolute. You can specify paths relative to the -users home directory as follows: +.SH OPTION 2: FILE HOSTING SERVICES +There are many file hosting services, such as DropBox, Amazon S3, Google Drive, +SkyDrive and more. This technique involves storing your .task directory in a +shared directory under the control of the file hosting services. + +Syncing happens quickly, although it is possible to run into conflict situations +when there is no network connectivity, and the tasks are modified in two +separate locations. This is because the file hosting service knows only about +files, and it has no idea how to merge tasks. Avoid this problem by never +modifying the same task on two machines, without an intervening sync. + +Setup simply involves creating the directory and modifying your data.location +configuration variable like this: + + $ task config data.location /path/to/shared/directory + +Strengths: .br -.RS -ssh://[user@]host[:port]/.task/ + - Always secure .br -[user@]host:.task/ -.RE - -or even shorter - + - Good client support .br -.RS -[user@]host:.task/ -.RE - -Remark: Since taskwarrior simply calls the scp binary you can specify very much anything -that scp would accept, e.g. host configurations from ~/.ssh/config or ~username -expansion: - + - Easy setup .br -.RS -ssh://configured-host/~[username]/.task/ + - Transparent use + +Weaknesses: .br -configured-host:~[username]/.task/ -.RE + - Tasks not properly merged -Rsync is another supported protocol that minimizes network traffic, by a clever -algorithm that doesn't copy files that have not changed: +.SH OPTION 3: TASK SERVER +The Task Server was designed for this purpose to be secure, fast and conflict +free, allowing data interchange between assorted Taskwarrior clients, and +tolerant of network connectivity problems. +There is a 'sync' command built in to Taskwarrior, and with a server account +and client configuration, syncing is done on demand. + +Setup is a matter of creating an account on a Task Server (see your Task Server +provider or operate your own - see +http://taskwarrior.org/projects/taskwarrior/wiki/Server_setup) + +Once you have an account, you'll receive a certificate, and a password. You'll +need to put the certificate somewhere like this: + + $ cp .cert.pem ~/.task + +Then you configure Taskwarrior, using the account details: + + $ task config taskd.certificate ~/.task/.cert.pem + $ task config taskd.credentials // + $ task config taskd.server : + +After setup, you run a one-time sync initialization, like this: + + $ task sync initialize + +This will make sure your client and the server are properly in sync to begin +with. From this point on, you never run the 'initialize' command again, just +go about your business, and when you want to sync, run this: + + $ task sync + +You'll see a summary of how many tasks were uploaded and downloaded. You can +safely run the command as often as you like. When there are no changes to sync, +nothing happens. If you do not have connectivity, your task changes accumulate +so that when you next run 'sync' with proper connectivity, the changes are +properly handled, in the right order. + +Strengths: .br -.RS -rsync://[user@]host.xz[:port]/path/to/.task/ -.RE - -Curl supports several protocols that can transfer data using HTTP, HTTPS and -FTP: - + - Always secure .br -.RS -http://host[:port]/path/to/.task/ + - Minimal bandwidth .br -https://host[:port]/path/to/.task/ -.br -ftp://[user@]host[:port]/path/to/.task/ -.RE + - Tolerates connectivity outage -You can use single quotes to encapsulate user names that contain delimiting -characters like '@', '/' or ':', e.g.: - -.br -.RS -ssh://'user@name'@host/ -.RE - -Remember to escape the quotes on your shell: - -.br -.RS -$ task push ftp://\'user@name\':host/ -.RE - -.SH CONFLICTS -When modifications on the local and remote machine conflict, for example if -both machines change the project name of the same task to different values, -then Taskwarrior automatically selects the most recent change. Thus, there -are no conflicts. - -.SH EXAMPLE - Backup on another machine -One very good use of 'push' is to make backup copies of your task database in -another location. Suppose your task database is kept in the usual place, in -the ~/.task directory, and you wanted to make a backup copy in ~/backup. You -would use this command: - -.br -.RS -$ task push ~/backup/ -.RE - -This would copy the files in ~/.task to ~/backup, overwriting the files that -were already in ~/backup. To backup your files to another machine, you could -use: - -.br -.RS -$ task push user@host:backup -.RE - -This could be improved by setting the -.B push.default.uri -configuration variable and then relying on the default, like this: - -.br -.RS -$ task config push.default.uri user@host:backup -.RE - -and then you need only run the push command: - -.br -.RS -$ task push -.RE - -and the default push URI will be used. If you wanted to restore a backup, you -simply use the pull command instead: - -.br -.RS -$ task pull user@host:backup -.RE - -This can be simplified by setting the -.B pull.default.uri -configuration variable and then relying on the default, like this: - -.br -.RS -$ task config pull.default.uri user@host:backup -.RE - -Note that pull and push will blindly overwrite the task files without any -merging. Be careful. - -.SH EXAMPLE - Keeping two task databases synchronized -The most common synchronization will be to keep two task databases synchronized -on different machines. Here is a full example, including setup that illustrates -this. - -Suppose there are two machines, named 'local' and 'remote', for simplicity. -Taskwarrior is installed on both machines. The different machines are -indicated here by the prompt. Suppose Alice enters two tasks on her local -machine: - -.br -.RS -local> task add Deliver the new budget proposal due:tuesday -.br -local> task add Set up a meeting with Bob -.RE - -Then later adds a task on the remote machine: - -.br -.RS -remote> task add Present the budget proposal at the big meeting due:thursday -.RE - -Now on the local machine, Alice merges the two task databases: - -.br -.RS -local> task merge alice@remote:.task -.br -Would you like to push the changes to 'alice@remote:.task'? Y -.RE - -Taskwarrior has combined the two task databases on local, then pushed the -changes back to remote. Now suppose Alice changes the due date for task 1 -on remote: - -.br -.RS -remote> task 1 due:wednesday -.RE - -Now on the local machine, Alice sets up a default URI and autopush: - -.br -.RS -local> task config merge.default.uri alice@remote:.task -.br -local> task config merge.autopush yes -.RE - -Now Alice can simply run merge to make sure that the new due date is copied to -the local machine: - -.br -.RS -local> task merge -.RE - -This time the URI is determined automatically, and after the merge the files are -pushed back to the remote machine. In a similar way, the remote machine can -also be configured to merge from the local machine and push back to it. Then it -is just a matter of Alice remembering to merge now and then, from either -machine, to have her data in two (or even more) places. - -.SH CONFIGURATION -By setting these configuration variables, it is possible to simplify the -synchronization commands, by relying on the defaults or alias names. - -.br -.B merge.autopush=yes|no|ask -.RS -This controls whether the automatic push after a merge is performed, not -performed, or whether the user is asked every time. The default value is 'ask'. -.RE - -.br -.B merge.default.uri= -.RS -Sets a default URI so that just the 'task merge' command be run without the -need to retype the URI every time. You can also use this configuration scheme -to set alias names, e.g. set merge.desktop.uri and run 'task merge desktop'. -.RE - -.br -.B push.default.uri= -.RS -Sets a default URI so that just the 'task push' command be run without the -need to retype the URI every time. You can also use this configuration scheme -to set alias names, e.g. set push.desktop.uri and run 'task push desktop'. -.RE - -.br -.B pull.default.uri= -.RS -Sets a default URI so that just the 'task pull' command be run without the -need to retype the URI every time. You can also use this configuration scheme -to set alias names, e.g. set pull.desktop.uri and run 'task pull desktop'. -.RE - -Note that, when using SSH/scp, hostnames will be expanded due to the ssh -configuration file ~/.ssh/config. - -.SH EXTERNAL DEPENDENCIES -Depending on the URI protocols used, the utilities 'scp', 'rsync' and 'curl' -must be installed and accessible via the $PATH environment variable. - -If you have deleted your ~/.task/undo.data file to save space, you will be -unable to merge. The change transactions stored in the undo.data file are -used for synchronization. .SH "CREDITS & COPYRIGHTS" Copyright (C) 2006 \- 2013 P. Beckingham, F. Hernandez. -The sync capabilities were written by J. Schlatow. -Parts copyright (C) 2010 - 2013 J. Schlatow. - Taskwarrior is distributed under the MIT license. See http://www.opensource.org/licenses/mit-license.php for more information. @@ -367,7 +135,6 @@ http://www.opensource.org/licenses/mit-license.php for more information. .BR task-faq(5), .BR task-color(5), .BR task-tutorial(5), -.BR ssh_config(5) For more information regarding task, the following may be referenced: diff --git a/doc/man/task.1.in b/doc/man/task.1.in index db69dafc7..f64764d2d 100644 --- a/doc/man/task.1.in +++ b/doc/man/task.1.in @@ -341,23 +341,6 @@ example scripts, such as import-yaml.pl. .B task log Adds a new task that is already completed, to the task list. -.TP -.B task merge -Merges two task databases by comparing the modifications that are stored in the -undo.data files. The location of the second undo.data file must be passed on as -argument. URL may have the following syntaxes: - - ssh://[user@]host.xz[:port]/path/to/.task/ - - rsync://[user@]host.xz[:port]/path/to/.task/ - - [user@]host.xz:path/to/.task/ - - /path/to/local/.task/ - -You can set aliases for frequently used URLs in the .taskrc. Further -documentation can be found in the task-sync(5) man page. - .TP .B task modify Modifies the existing task with provided information. @@ -366,17 +349,6 @@ Modifies the existing task with provided information. .B task prepend Prepends description text to an existing task. -.TP -.B task pull -Overwrites the task database with those files found at the URL. -(See 'merge' command for valid URL syntax.) - -.TP -.B task push -Pushes the task database to a remote location for distributing the -changes made by the merge command. -(See 'merge' command for valid URL syntax.) - .TP .B task start Marks the specified tasks as started. @@ -1079,7 +1051,7 @@ The file that contains the completed ("done") tasks. .TP ~/.task/undo.data -The file that contains information needed by the "undo" and "merge" commands. +The file that contains information needed by the "undo" command. .SH "CREDITS & COPYRIGHTS" Copyright (C) 2006 \- 2013 P. Beckingham, F. Hernandez. diff --git a/doc/man/taskrc.5.in b/doc/man/taskrc.5.in index ca92fcd52..749fa411e 100644 --- a/doc/man/taskrc.5.in +++ b/doc/man/taskrc.5.in @@ -980,7 +980,7 @@ a change that is to be reverted. .br .B color.sync.rejected=red .RS -Colors the output of the merge command. +Colors the output of the sync command. .RE .TP @@ -1102,31 +1102,6 @@ shadow.notify=on When this value is set to "on", taskwarrior will display a message whenever the shadow file is updated by some task command. -.SS PUSH/PULL/MERGE - -See the 'man task-synch' page for more details regarding usage. - -.TP -.B merge.autopush=yes|no|ask -.RS -Determines post-merge behavior regarding automatic push. -.RE - -.B merge.default.uri -.RS -Default merge URI. -.RE - -.B pull.default.uri -.RS -Default pull URI. -.RE - -.B push.default.uri -.RS -Default push URI. -.RE - .SS DEFAULTS .TP diff --git a/test/undo.t b/test/undo.t index 86a5ab11c..d17bf8f8f 100755 --- a/test/undo.t +++ b/test/undo.t @@ -28,7 +28,7 @@ use strict; use warnings; -use Test::More tests => 11; +use Test::More tests => 16; # Ensure environment has no influence. delete $ENV{'TASKDATA'}; @@ -44,12 +44,12 @@ if (open my $fh, '>', 'undo.rc') ok (-r 'undo.rc', 'Created undo.rc'); } -# Test the add/do/undo commands. +# Test the add/done/undo commands. my $output = qx{../src/task rc:undo.rc add one 2>&1; ../src/task rc:undo.rc info 1 2>&1}; ok (-r 'pending.data', 'pending.data created'); like ($output, qr/Status\s+Pending\n/, 'Pending'); -$output = qx{../src/task rc:undo.rc 1 do 2>&1; ../src/task rc:undo.rc info 1 2>&1}; +$output = qx{../src/task rc:undo.rc 1 done 2>&1; ../src/task rc:undo.rc info 1 2>&1}; ok (-r 'completed.data', 'completed.data created'); like ($output, qr/Status\s+Completed\n/, 'Completed'); @@ -65,6 +65,28 @@ $output = qx{../src/task rc:undo.rc undo 1 2>&1}; unlike ($output, qr/Unknown error/, 'No unknown error'); like ($output, qr/The undo command does not allow further task modification/, 'Correct error caught and reported'); +# Inspect backlog.data +if (open my $fh, '<', 'backlog.data') +{ + my @lines = <$fh>; + close $fh; + + diag ($_) for @lines; + is (scalar (@lines), 4, '4 lines of backlog'); + ok (index ($lines[0], '"status":"pending"') != -1, '[0] pending'); + ok (index ($lines[1], '"status":"completed"') != -1, '[1] completed'); + ok (index ($lines[2], '"status":"pending"') != -1, '[2] pending'); + ok (index ($lines[3], '"status":"completed"') != -1, '[3] completed'); +} +else +{ + fail ('4 lines of backlog'); + fail ('[0] pending'); + fail ('[1] completed'); + fail ('[2] pending'); + fail ('[3] completed'); +} + # Cleanup. unlink qw(pending.data completed.data undo.data backlog.data undo.rc); ok (! -r 'pending.data' && From 55cd425ff4c2b7695436659be51bf26b8d68917e Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Wed, 11 Sep 2013 00:58:47 -0400 Subject: [PATCH 098/173] Deprecation - Properly marked more deprecated items. --- doc/misc/tutorial/extra.txt | 3 --- src/commands/CmdShow.cpp | 13 +++++++------ 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/doc/misc/tutorial/extra.txt b/doc/misc/tutorial/extra.txt index 907f9b385..95b2c1ee2 100644 --- a/doc/misc/tutorial/extra.txt +++ b/doc/misc/tutorial/extra.txt @@ -5,9 +5,6 @@ Calendar trick Metadata Sync - push - pull - merge sync (needs 2.3.0 & task server) Logo? diff --git a/src/commands/CmdShow.cpp b/src/commands/CmdShow.cpp index eccef86e1..1005fad0f 100644 --- a/src/commands/CmdShow.cpp +++ b/src/commands/CmdShow.cpp @@ -234,9 +234,9 @@ int CmdShow::execute (std::string& output) i->first.substr (0, 7) != "report." && i->first.substr (0, 6) != "alias." && i->first.substr (0, 5) != "hook." && - i->first.substr (0, 5) != "push." && - i->first.substr (0, 5) != "pull." && - i->first.substr (0, 6) != "merge." && + i->first.substr (0, 5) != "push." && // Deprecated 2.3.0 + i->first.substr (0, 5) != "pull." && // Deprecated 2.3.0 + i->first.substr (0, 6) != "merge." && // Deprecated 2.3.0 i->first.substr (0, 4) != "uda." && i->first.substr (0, 4) != "default." && i->first.substr (0, 21) != "urgency.user.project." && @@ -300,10 +300,11 @@ int CmdShow::execute (std::string& output) // TODO Deprecated. std::string value = i->second; // hide sensible information - if ( (i->first.substr (0, 5) == "push." || + if ((i->first.substr (0, 5) == "push." || i->first.substr (0, 5) == "pull." || - i->first.substr (0, 6) == "merge.") && (i->first.find (".uri") != std::string::npos) ) { - + i->first.substr (0, 6) == "merge.") && + (i->first.find (".uri") != std::string::npos)) + { Uri uri (value); uri.parse (); value = uri.ToString (); From 05afa911d3ee72bbd1167bcd49d6612122750e60 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Wed, 11 Sep 2013 01:00:19 -0400 Subject: [PATCH 099/173] Configuration - Added taskd configuration examples to Config.cpp. --- src/Config.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/Config.cpp b/src/Config.cpp index f41e402be..f3c32cf01 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -296,13 +296,11 @@ std::string Config::_defaults = "fontunderline=yes # Uses underlines rather than -------\n" "shell.prompt=task> # Prompt used by the shell command\n" "\n" - "# Merge options\n" - "#\n" - "# WARNING: Please read the documentation (man task-sync) before proceeding with these\n" - "# synchronization features. If improperly used, data can be lost!\n" - "merge.autopush=ask # Push database to remote origin after merge: yes, no, ask\n" - "#merge.default.uri=user@host.xz:.task/ # URI for merge\n" - "#pull.default.uri=rsync://host.xz/task-backup/ # URI for pull\n" + "# WARNING: Please read the documentation (man task-sync) before setting up\n" + "# Taskwarrior for Task Server synchronization.\n" + "#taskd.certificate \n" + "#taskd.credentials //\n" + "#taskd.server :\n" "\n" "# Aliases - alternate names for commands\n" "alias.rm=delete # Alias for the delete command\n" From da7cc6eed793940b1cda9e978e6a00dc56c9abae Mon Sep 17 00:00:00 2001 From: Pietro Cerutti Date: Fri, 13 Sep 2013 08:03:50 +0200 Subject: [PATCH 100/173] Fix uuid on FreeBSD In FreeBSD, just as in DARWIN, uuid functions are in libc and no external libuuid is required. The API is quite different from Linux's though, so a different implementation of uuid () (util.cpp) is needed. --- CMakeLists.txt | 8 ++++---- src/util.cpp | 23 +++++++++++++++++++++++ src/util.h | 4 ++++ 3 files changed, 31 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 056f1ce06..cd74e204f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -90,10 +90,10 @@ check_struct_has_member ("struct tm" tm_gmtoff time.h HAVE_TM_GMTOFF) check_struct_has_member ("struct stat" st_birthtime "sys/types.h;sys/stat.h" HAVE_ST_BIRTHTIME) message ("-- Looking for libuuid") -if (DARWIN) - # Apple includes the uuid functions in their libc, rather than libuuid +if (DARWIN OR FREEBSD) + # Apple and FreeBSD include the uuid functions in their libc, rather than libuuid check_function_exists (uuid_unparse_lower HAVE_UUID_UNPARSE_LOWER) -else (DARWIN) +else (DARWIN OR FREEBSD) find_path (UUID_INCLUDE_DIR uuid/uuid.h) find_library (UUID_LIBRARY NAMES uuid) if (UUID_INCLUDE_DIR AND UUID_LIBRARY) @@ -106,7 +106,7 @@ else (DARWIN) else (UUID_INCLUDE_DIR AND UUID_LIBRARY) message (FATAL_ERROR "-- libuuid not found.") endif (UUID_INCLUDE_DIR AND UUID_LIBRARY) -endif (DARWIN) +endif (DARWIN OR FREEBSD) if (HAVE_UUID_UNPARSE_LOWER) message ("-- Found libuuid") diff --git a/src/util.cpp b/src/util.cpp index a0b148c20..21480df0d 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -229,6 +229,28 @@ int autoComplete ( return matches.size (); } +// Handle the generation of UUIDs on FreeBSD in a separate implementation +// of the uuid () function, since the API is quite different from Linux's. +// Also, uuid_unparse_lower is not needed on FreeBSD, because the string +// representation is always lowercase anyway. +// For the implementation details, refer to +// http://svnweb.freebsd.org/base/head/sys/kern/kern_uuid.c +#ifdef __FreeBSD__ +const std::string uuid () +{ + uuid_t id; + uint32_t status; + char *buffer (0); + uuid_create (&id, &status); + uuid_to_string (&id, &buffer, &status); + + std::string res (buffer); + free (buffer); + + return res; +} +#else + //////////////////////////////////////////////////////////////////////////////// #ifndef HAVE_UUID_UNPARSE_LOWER // Older versions of libuuid don't have uuid_unparse_lower(), only uuid_unparse() @@ -253,6 +275,7 @@ const std::string uuid () return std::string (buffer); } +#endif //////////////////////////////////////////////////////////////////////////////// // On Solaris no flock function exists. diff --git a/src/util.h b/src/util.h index 0206517c4..28de3cc65 100644 --- a/src/util.h +++ b/src/util.h @@ -32,7 +32,11 @@ #include #include #include +#ifdef __FreeBSD__ +#include +#else #include +#endif #include // util.cpp From 04e0df69654e61c4f8353ac3b3c9deb58873d35d Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 14 Sep 2013 11:51:56 -0400 Subject: [PATCH 101/173] FreeBSD - Converted __FreeBSD__ to FREEBSD for consistency. --- ChangeLog | 2 ++ src/util.cpp | 18 +++++++++--------- src/util.h | 3 ++- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 641140a4f..dce93bb61 100644 --- a/ChangeLog +++ b/ChangeLog @@ -43,6 +43,8 @@ Features + Protects against interrupt during critical DB commit and sync operations. + The 'push', 'pull' and 'merge' commands now generate a 'deprecated' message. + Rewritten task-sync(5) man page, listing sync options and setup guidelines.. + + Now properly uses the libc version of uuid_create and uuid_to_string for + FreeBSD (thanks to Pietro Cerutti). Bugs + #1195 Random seed not random enough - removed all random number code (thanks diff --git a/src/util.cpp b/src/util.cpp index 21480df0d..1353db329 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -235,19 +235,19 @@ int autoComplete ( // representation is always lowercase anyway. // For the implementation details, refer to // http://svnweb.freebsd.org/base/head/sys/kern/kern_uuid.c -#ifdef __FreeBSD__ +#ifdef FREEBSD const std::string uuid () { - uuid_t id; - uint32_t status; - char *buffer (0); - uuid_create (&id, &status); - uuid_to_string (&id, &buffer, &status); + uuid_t id; + uint32_t status; + char *buffer (0); + uuid_create (&id, &status); + uuid_to_string (&id, &buffer, &status); - std::string res (buffer); - free (buffer); + std::string res (buffer); + free (buffer); - return res; + return res; } #else diff --git a/src/util.h b/src/util.h index 28de3cc65..1d749b50f 100644 --- a/src/util.h +++ b/src/util.h @@ -28,11 +28,12 @@ #ifndef INCLUDED_UTIL #define INCLUDED_UTIL +#include #include #include #include #include -#ifdef __FreeBSD__ +#ifdef FREEBSD #include #else #include From 10c626b18c285f756adfb5292268c904745c1c0d Mon Sep 17 00:00:00 2001 From: Pietro Cerutti Date: Fri, 13 Sep 2013 09:38:53 +0200 Subject: [PATCH 102/173] Use the native readline library on FreeBSD as well --- cmake/Modules/FindReadline.cmake | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/cmake/Modules/FindReadline.cmake b/cmake/Modules/FindReadline.cmake index 83fe7bca0..8fdaec18f 100644 --- a/cmake/Modules/FindReadline.cmake +++ b/cmake/Modules/FindReadline.cmake @@ -9,36 +9,37 @@ # Apple readline does not support readline hooks # So we look for another one by default -IF (APPLE) +IF (APPLE OR FREEBSD) FIND_PATH (READLINE_INCLUDE_DIR NAMES readline/readline.h PATHS + /usr/include/ /sw/include /opt/local/include /opt/include /usr/local/include - /usr/include/ NO_DEFAULT_PATH ) -ENDIF (APPLE) +ENDIF (APPLE OR FREEBSD) FIND_PATH (READLINE_INCLUDE_DIR NAMES readline/readline.h) # Apple readline does not support readline hooks # So we look for another one by default -IF (APPLE) +IF (APPLE OR FREEBSD) FIND_LIBRARY (READLINE_readline_LIBRARY NAMES readline PATHS + /usr/lib /sw/lib /opt/local/lib /opt/lib /usr/local/lib - /usr/lib NO_DEFAULT_PATH ) -ENDIF (APPLE) +ENDIF (APPLE OR FREEBSD) FIND_LIBRARY (READLINE_readline_LIBRARY NAMES readline) # Sometimes readline really needs ncurses -IF (APPLE) +IF (APPLE OR FREEBSD) FIND_LIBRARY (READLINE_ncurses_LIBRARY NAMES ncurses PATHS + /usr/lib /sw/lib /opt/local/lib /opt/lib @@ -46,7 +47,7 @@ IF (APPLE) /usr/lib NO_DEFAULT_PATH ) -ENDIF (APPLE) +ENDIF (APPLE OR FREEBSD) FIND_LIBRARY (READLINE_ncurses_LIBRARY NAMES ncurses) MARK_AS_ADVANCED ( From 2a5bf05590bedc778260e8eb2d044dc17debe423 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 15 Sep 2013 01:55:03 -0400 Subject: [PATCH 103/173] TLS - Error strings were being constructed incorrectly. - Client-side handshake errors were treated as recoverable. - TLS errors were being displayed as debug messages, not errors. --- src/TLSClient.cpp | 29 ++++++++++++++--------------- src/commands/CmdSync.cpp | 2 +- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index 19707054d..6ffc7fa3b 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -127,7 +127,7 @@ void TLSClient::connect (const std::string& host, const std::string& port) struct addrinfo* res; if (::getaddrinfo (host.c_str (), port.c_str (), &hints, &res) != 0) - throw "ERROR: " + std::string (::gai_strerror (errno)); + throw std::string ("ERROR: ") + ::gai_strerror (errno); // Try them all, stop on success. struct addrinfo* p; @@ -145,7 +145,7 @@ void TLSClient::connect (const std::string& host, const std::string& port) SO_REUSEADDR, (const void*) &on, sizeof (on)) == -1) - throw "ERROR: " + std::string (::strerror (errno)); + throw std::string ("ERROR: ") + ::strerror (errno); if (::connect (_socket, p->ai_addr, p->ai_addrlen) == -1) continue; @@ -156,23 +156,22 @@ void TLSClient::connect (const std::string& host, const std::string& port) free (res); if (p == NULL) - throw "ERROR: Could not connect to " + host + " " + port; + throw std::string ("ERROR: Could not connect to ") + host + " " + port; gnutls_transport_set_ptr (_session, (gnutls_transport_ptr_t) (long) _socket); // Perform the TLS handshake - int ret = gnutls_handshake (_session); + int ret; + do + { + ret = gnutls_handshake (_session); + } + while (ret < 0 && gnutls_error_is_fatal (ret) == 0); if (ret < 0) - { - if (_debug) - std::cout << "c: ERROR Handshake failed\n"; - gnutls_perror (ret); - } - else - { - if (_debug) - std::cout << "c: INFO Handshake was completed\n"; - } + throw std::string ("ERROR: Handshake failed. ") + gnutls_strerror (ret); + + if (_debug) + std::cout << "c: INFO Handshake was completed\n"; } //////////////////////////////////////////////////////////////////////////////// @@ -274,7 +273,7 @@ void TLSClient::recv (std::string& data) // Something happened. if (received < 0) - throw "ERROR: " + std::string (gnutls_strerror (received)); + throw std::string ("ERROR: ") + gnutls_strerror (received); buffer [received] = '\0'; data += buffer; diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index 925aaac96..1be4e71a5 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -337,7 +337,7 @@ bool CmdSync::send ( catch (std::string& error) { - context.debug (error); + context.error (error); } // Indicate message failed. From 8455e5c250d1ce337e817eb56ffa4b233a5d82a0 Mon Sep 17 00:00:00 2001 From: Pietro Cerutti Date: Sun, 15 Sep 2013 18:03:01 +0200 Subject: [PATCH 104/173] Fix man pages destination on FreeBSD --- CMakeLists.txt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cd74e204f..f59266804 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,11 +9,6 @@ set (HAVE_CMAKE true) project (task) set (PROJECT_VERSION "2.3.0.beta1") -SET (TASK_MAN1DIR share/man/man1 CACHE STRING "Installation directory for man pages, section 1") -SET (TASK_MAN5DIR share/man/man5 CACHE STRING "Installation directory for man pages, section 5") -SET (TASK_DOCDIR share/doc/task CACHE STRING "Installation directory for doc files") -SET (TASK_BINDIR bin CACHE STRING "Installation directory for the binary") - if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") set (LINUX true) elseif (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") @@ -34,6 +29,16 @@ else (${CMAKE_SYSTEM_NAME} MATCHES "Linux") set (UNKNOWN true) endif (${CMAKE_SYSTEM_NAME} MATCHES "Linux") +if (FREEBSD) +SET (TASK_MAN1DIR man/man1 CACHE STRING "Installation directory for man pages, section 1") +SET (TASK_MAN5DIR man/man5 CACHE STRING "Installation directory for man pages, section 5") +else (FREEBSD) +SET (TASK_MAN1DIR share/man/man1 CACHE STRING "Installation directory for man pages, section 1") +SET (TASK_MAN5DIR share/man/man5 CACHE STRING "Installation directory for man pages, section 5") +endif (FREEBSD) +SET (TASK_DOCDIR share/doc/task CACHE STRING "Installation directory for doc files") +SET (TASK_BINDIR bin CACHE STRING "Installation directory for the binary") + message ("-- Looking for SHA1 references") if (EXISTS ${CMAKE_SOURCE_DIR}/.git/index) set (HAVE_COMMIT true) From cc5a56ebfacb828f497bc81b0eca32e5716856c6 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 15 Sep 2013 19:19:49 -0400 Subject: [PATCH 105/173] Portability - Removed unused compiler options for the OpenBSD port (thanks to kili, jasper). --- AUTHORS | 2 ++ src/CMakeLists.txt | 4 ---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/AUTHORS b/AUTHORS index e56894b29..9bf5760ec 100644 --- a/AUTHORS +++ b/AUTHORS @@ -88,6 +88,8 @@ The following submitted code, packages or analysis, and deserve special thanks: Tullio Facchinetti Thomas Sullivan Martin Natano + kili + jasper Thanks to the following, who submitted detailed bug reports and excellent suggestions: diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4e78b7e45..2d0c2fd54 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -58,10 +58,6 @@ set_property (TARGET task_executable PROPERTY OUTPUT_NAME "task") install (TARGETS task_executable DESTINATION ${TASK_BINDIR}) -set (CMAKE_BUILD_TYPE debug) -set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -Wall") -set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -Wall") - #SET(CMAKE_BUILD_TYPE gcov) #SET(CMAKE_CXX_FLAGS_GCOV "--coverage") #SET(CMAKE_C_FLAGS_GCOV "--coverage") From f31116f28764e0c151b7e5c2bd1cedb0d8aa63f0 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 15 Sep 2013 19:20:47 -0400 Subject: [PATCH 106/173] Portability - Removed unused compiler options for the OpenBSD port (thanks to kili, jasper). --- src/commands/CMakeLists.txt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/commands/CMakeLists.txt b/src/commands/CMakeLists.txt index 6bed6a52e..733fe6f16 100644 --- a/src/commands/CMakeLists.txt +++ b/src/commands/CMakeLists.txt @@ -56,10 +56,6 @@ set (commands_SRCS Command.cpp Command.h add_library (commands STATIC ${commands_SRCS}) -set (CMAKE_BUILD_TYPE debug) -set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -Wall") -set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -Wall") - #SET(CMAKE_BUILD_TYPE gcov) #SET(CMAKE_CXX_FLAGS_GCOV "--coverage") #SET(CMAKE_C_FLAGS_GCOV "--coverage") From 27f65a821f9d68bf74246084073c034b22e2aa13 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 15 Sep 2013 19:21:05 -0400 Subject: [PATCH 107/173] Portability - Removed unused compiler options for the OpenBSD port (thanks to kili, jasper). --- src/columns/CMakeLists.txt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/columns/CMakeLists.txt b/src/columns/CMakeLists.txt index 652bf151a..e1e1a5637 100644 --- a/src/columns/CMakeLists.txt +++ b/src/columns/CMakeLists.txt @@ -33,11 +33,6 @@ set (columns_SRCS Column.cpp Column.h add_library (columns STATIC ${columns_SRCS}) -set (CMAKE_BUILD_TYPE debug) -set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -Wall") -set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -Wall") - - #SET(CMAKE_BUILD_TYPE gcov) #SET(CMAKE_CXX_FLAGS_GCOV "--coverage") #SET(CMAKE_C_FLAGS_GCOV "--coverage") From 9e7e807909c758377e17ebd407173688849eb96f Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 15 Sep 2013 23:32:31 -0400 Subject: [PATCH 108/173] Sync - Verifies presence of the certificate on sync, instead of blindly assuming it exists. --- src/commands/CmdSync.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index 1be4e71a5..fe557142a 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -88,8 +88,8 @@ int CmdSync::execute (std::string& output) if (credentials.size () != 3) throw std::string (STRING_CMD_SYNC_BAD_CRED); - std::string certificate = context.config.get ("taskd.certificate"); - if (certificate == "") + File certificate (context.config.get ("taskd.certificate")); + if (! certificate.exists ()) throw std::string (STRING_CMD_SYNC_BAD_CERT); // If this is a first-time initialization, send pending.data, not @@ -146,7 +146,7 @@ int CmdSync::execute (std::string& output) signal (SIGUSR2, SIG_IGN); Msg response; - if (send (connection, certificate, request, response)) + if (send (connection, certificate._data, request, response)) { std::string code = response.get ("code"); if (code == "200") From 6fc065e03e80e4fe9cbb063d474dad32222df3ac Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 16 Sep 2013 00:06:49 -0400 Subject: [PATCH 109/173] Certificates - CA is now checked for existence before use. - Error messages no longer have 'ERROR:' prepended. --- src/TLSClient.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index 6ffc7fa3b..579f75517 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -34,12 +34,14 @@ #include #include #include -#include #include #include #include #include #include +#include +#include +#include #include #define MAX_BUF 16384 @@ -95,6 +97,9 @@ void TLSClient::debug (int level) void TLSClient::init (const std::string& ca) { _ca = ca; + File ca_file (_ca); + if (!ca_file.exists ()) + throw std::string (STRING_CMD_SYNC_NO_CA); gnutls_global_init (); gnutls_certificate_allocate_credentials (&_credentials); @@ -127,7 +132,7 @@ void TLSClient::connect (const std::string& host, const std::string& port) struct addrinfo* res; if (::getaddrinfo (host.c_str (), port.c_str (), &hints, &res) != 0) - throw std::string ("ERROR: ") + ::gai_strerror (errno); + throw std::string (::gai_strerror (errno)); // Try them all, stop on success. struct addrinfo* p; @@ -145,7 +150,7 @@ void TLSClient::connect (const std::string& host, const std::string& port) SO_REUSEADDR, (const void*) &on, sizeof (on)) == -1) - throw std::string ("ERROR: ") + ::strerror (errno); + throw std::string (::strerror (errno)); if (::connect (_socket, p->ai_addr, p->ai_addrlen) == -1) continue; @@ -156,7 +161,7 @@ void TLSClient::connect (const std::string& host, const std::string& port) free (res); if (p == NULL) - throw std::string ("ERROR: Could not connect to ") + host + " " + port; + throw format (STRING_CMD_SYNC_CONNECT, host, port); gnutls_transport_set_ptr (_session, (gnutls_transport_ptr_t) (long) _socket); @@ -168,7 +173,7 @@ void TLSClient::connect (const std::string& host, const std::string& port) } while (ret < 0 && gnutls_error_is_fatal (ret) == 0); if (ret < 0) - throw std::string ("ERROR: Handshake failed. ") + gnutls_strerror (ret); + throw format (STRING_CMD_SYNC_HANDSHAKE, gnutls_strerror (ret)); if (_debug) std::cout << "c: INFO Handshake was completed\n"; @@ -273,7 +278,7 @@ void TLSClient::recv (std::string& data) // Something happened. if (received < 0) - throw std::string ("ERROR: ") + gnutls_strerror (received); + throw std::string (gnutls_strerror (received)); buffer [received] = '\0'; data += buffer; From 2599f1a0c65503c68cce2a023f6c774f89ba1f85 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 16 Sep 2013 00:07:09 -0400 Subject: [PATCH 110/173] L10N - Added new TLS error messages. - Removed unused UUID checking strings. --- src/en-US.h | 5 +++-- src/es-ES.h | 5 +++-- src/fr-FR.h | 5 +++-- src/it-IT.h | 5 +++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/en-US.h b/src/en-US.h index e55cf35ec..a988c55dc 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -424,6 +424,9 @@ #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." #define STRING_CMD_SYNC_RELOCATE0 "The server account has been relocated. Please update your configuration using:" #define STRING_CMD_SYNC_RELOCATE1 "task config taskd.server {1}" +#define STRING_CMD_SYNC_NO_CA "CA certificate not found." +#define STRING_CMD_SYNC_CONNECT "Could not connect to {1} {2}" +#define STRING_CMD_SYNC_HANDSHAKE "Handshake failed. {1}" #define STRING_CMD_DIAG_USAGE "Platform, build and environment details" #define STRING_CMD_DIAG_PLATFORM "Platform" #define STRING_CMD_DIAG_UNKNOWN "" @@ -440,8 +443,6 @@ #define STRING_CMD_DIAG_CONFIG "Configuration" #define STRING_CMD_DIAG_EXTERNAL "External Utilities" #define STRING_CMD_DIAG_TESTS "Tests" -#define STRING_CMD_DIAG_UUID_GOOD "1000 unique UUIDs generated." -#define STRING_CMD_DIAG_UUID_BAD "Failed - duplicate UUID at iteration {1}" #define STRING_CMD_DIAG_UUID_SCAN "Scanned {1} tasks for duplicate UUIDs:" #define STRING_CMD_DIAG_UUID_DUP "Found duplicate {1}" #define STRING_CMD_DIAG_UUID_NO_DUP "No duplicates found" diff --git a/src/es-ES.h b/src/es-ES.h index c4403c919..479c3c78e 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -435,6 +435,9 @@ #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will no procederá a la inicialización de la sincronización por primera vez." #define STRING_CMD_SYNC_RELOCATE0 "The server account has been relocated. Please update your configuration using:" #define STRING_CMD_SYNC_RELOCATE1 "task config taskd.server {1}" +#define STRING_CMD_SYNC_NO_CA "CA certificate not found." +#define STRING_CMD_SYNC_CONNECT "Could not connect to {1} {2}" +#define STRING_CMD_SYNC_HANDSHAKE "Handshake failed. {1}" #define STRING_CMD_DIAG_USAGE "Detalles de plataforma, construcción y entorno" #define STRING_CMD_DIAG_PLATFORM "Plataforma" #define STRING_CMD_DIAG_UNKNOWN "" @@ -451,8 +454,6 @@ #define STRING_CMD_DIAG_CONFIG "Configuración" #define STRING_CMD_DIAG_EXTERNAL "Utilidades externas" #define STRING_CMD_DIAG_TESTS "Comprobaciones" -#define STRING_CMD_DIAG_UUID_GOOD "1000 UUIDs únicos generados." -#define STRING_CMD_DIAG_UUID_BAD "Fallo - UUID duplicado en la iteración {1}" #define STRING_CMD_DIAG_UUID_SCAN "Exploradas {1} tareas buscando UUIDs duplicados:" #define STRING_CMD_DIAG_UUID_DUP "Encontrado duplicado {1}" #define STRING_CMD_DIAG_UUID_NO_DUP "No se encontraron duplicados" diff --git a/src/fr-FR.h b/src/fr-FR.h index a7a5a7adc..3f7d663ab 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -424,6 +424,9 @@ #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." #define STRING_CMD_SYNC_RELOCATE0 "The server account has been relocated. Please update your configuration using:" #define STRING_CMD_SYNC_RELOCATE1 "task config taskd.server {1}" +#define STRING_CMD_SYNC_NO_CA "CA certificate not found." +#define STRING_CMD_SYNC_CONNECT "Could not connect to {1} {2}" +#define STRING_CMD_SYNC_HANDSHAKE "Handshake failed. {1}" #define STRING_CMD_DIAG_USAGE "Platform, build and environment details" #define STRING_CMD_DIAG_PLATFORM "Platform" #define STRING_CMD_DIAG_UNKNOWN "" @@ -440,8 +443,6 @@ #define STRING_CMD_DIAG_CONFIG "Configuration" #define STRING_CMD_DIAG_EXTERNAL "External Utilities" #define STRING_CMD_DIAG_TESTS "Tests" -#define STRING_CMD_DIAG_UUID_GOOD "1000 unique UUIDs generated." -#define STRING_CMD_DIAG_UUID_BAD "Failed - duplicate UUID at iteration {1}" #define STRING_CMD_DIAG_UUID_SCAN "Scanned {1} tasks for duplicate UUIDs:" #define STRING_CMD_DIAG_UUID_DUP "Found duplicate {1}" #define STRING_CMD_DIAG_UUID_NO_DUP "No duplicates found" diff --git a/src/it-IT.h b/src/it-IT.h index 601032fd5..013f8f6e2 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -425,6 +425,9 @@ #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." #define STRING_CMD_SYNC_RELOCATE0 "The server account has been relocated. Please update your configuration using:" #define STRING_CMD_SYNC_RELOCATE1 "task config taskd.server {1}" +#define STRING_CMD_SYNC_NO_CA "CA certificate not found." +#define STRING_CMD_SYNC_CONNECT "Could not connect to {1} {2}" +#define STRING_CMD_SYNC_HANDSHAKE "Handshake failed. {1}" #define STRING_CMD_DIAG_USAGE "Dettagli su piattaforma, build e ambiente" #define STRING_CMD_DIAG_PLATFORM "Piattaforma" #define STRING_CMD_DIAG_UNKNOWN "" @@ -441,8 +444,6 @@ #define STRING_CMD_DIAG_CONFIG "Configurazione" #define STRING_CMD_DIAG_EXTERNAL "Utility esterne" #define STRING_CMD_DIAG_TESTS "Test" -#define STRING_CMD_DIAG_UUID_GOOD "Generati 1000 UUID unici." -#define STRING_CMD_DIAG_UUID_BAD "Fallimento - UUID duplicato all'iterazione {1}" #define STRING_CMD_DIAG_UUID_SCAN "Valutati {1} task per duplicazione UUID:" #define STRING_CMD_DIAG_UUID_DUP "Trovato duplicato {1}" #define STRING_CMD_DIAG_UUID_NO_DUP "Nessun duplicato trovato" From d0776c83b53add4c2b7d250e307c173bd61f4be4 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 29 Sep 2013 11:54:52 -0400 Subject: [PATCH 111/173] Bug #1387 - #1387 ZSH Auto-Completion dates are not current (thanks to Benjamin Weber). --- ChangeLog | 1 + scripts/zsh/_task | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index dce93bb61..a8ca9b8a7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -68,6 +68,7 @@ Bugs (thanks to Fidel Mato). + #1300 Encode/decode pairing is now properly balanced. + #1305 Commit hash now available in tarball builds (thanks to Ben Boeckel). + + #1387 ZSH Auto-Completion dates are not current (thanks to Benjamin Weber). + Fixed bug so that 'limit:page' now considers footnote messages. + Fixed bug where specifying an ID of 0 yielded all completed/deleted tasks (thanks to greenskeleton). diff --git a/scripts/zsh/_task b/scripts/zsh/_task index 2668449fe..10aba19ff 100644 --- a/scripts/zsh/_task +++ b/scripts/zsh/_task @@ -98,11 +98,13 @@ _regex_words values 'task dates' \ 'soww:Start of work week' \ 'socw:Start of calendar week' \ 'som:Start of month' \ + 'soq:Start of quarter' \ 'soy:Start of year' \ 'eow:End of week' \ 'eoww:End of work week' \ 'eocw:End of calendar week' \ 'eom:End of month' \ + 'eoq:End of quarter' \ 'eoy:End of year' \ 'mon:Monday' \ 'tue:Tuesday'\ @@ -110,7 +112,16 @@ _regex_words values 'task dates' \ 'thu:Thursday' \ 'fri:Friday' \ 'sat:Saturday' \ - 'sun:Sunday' + 'sun:Sunday' \ + 'good*friday:Good Friday' \ + 'easter:Easter' \ + 'eastermonday:Easter Monday' \ + 'ascension:Ascension' \ + 'pentecost:Pentecost' \ + 'midsommar:Midsommar' \ + 'midsommarafton:Midsommarafton' \ + 'later:Later' \ + 'someday:Some Day' _task_dates=("$reply[@]") local -a _task_reldates @@ -141,7 +152,7 @@ _regex_words values 'task frequencies' \ 'weekly:Every week' \ 'biweekly:Every two weeks' \ 'fortnight:Every two weeks' \ - 'monthly:Every month' \ + 'monthly:Every month' \ 'quarterly:Every three months' \ 'semiannual:Every six months' \ 'annual:Every year' \ From d5bb53d0ee73d08f2c68cc5ee1e89674781eaa0c Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 6 Oct 2013 10:38:46 -0400 Subject: [PATCH 112/173] Platforms - Updated platforms list. --- NEWS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS b/NEWS index b0c9e74ab..f2be4833e 100644 --- a/NEWS +++ b/NEWS @@ -40,7 +40,7 @@ Newly deprecated features in taskwarrior 2.3.0 Taskwarrior has been built and tested on the following configurations: - * OS X 10.8 Mountain Lion and 10.7 Lion + * OS X 10.9 Mavericks, 10.8 Mountain Lion and 10.7 Lion * Fedora 19 Schrodinger's Cat and 18 Spherical Cow * Ubuntu 12.10 Quantal Quetzal and 12.04 Precise Pangolin * Debian 7.0 Wheezy (stable) and 6.0 Squeeze (oldstable) plus Sid (testing) From 7a6c5346361e40012de563ca5913b5303a55e4ec Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 6 Oct 2013 11:02:25 -0400 Subject: [PATCH 113/173] Code Cleanup - Restructured 'undo' code to make backlog rollback more readily implementable. --- src/TDB2.cpp | 308 ++++++++++++++++++++++++++++++++++----------------- src/TDB2.h | 5 + 2 files changed, 210 insertions(+), 103 deletions(-) diff --git a/src/TDB2.cpp b/src/TDB2.cpp index 34bbb3e50..a1df16eb4 100644 --- a/src/TDB2.cpp +++ b/src/TDB2.cpp @@ -1274,18 +1274,101 @@ void TDB2::merge (const std::string& mergeFile) //////////////////////////////////////////////////////////////////////////////// void TDB2::revert () { + // Extract the details of the last txn, and roll it back. std::vector u = undo.get_lines (); + std::string uuid; + std::string when; + std::string current; + std::string prior; + revert_undo (u, uuid, when, current, prior); + + // Display diff and confirm. + show_diff (current, prior, when); + if (! context.config.getBoolean ("confirmation") || + confirm (STRING_TDB2_UNDO_CONFIRM)) + { + // There are six kinds of change possible. Determine which one, and act + // accordingly. + // + // Revert: task add + // [1] 0 --> p + // - erase from pending + // - if in backlog, erase, else add deletion + // + // Revert: task modify + // [2] p --> p' + // - write prior over current in pending + // - add prior to backlog + // + // Revert: task done/delete + // [3] p --> c + // - add prior to pending + // - erase from completed + // - add prior to backlog + // + // Revert: task modify + // [4] c --> p + // - add prior to completed + // - erase from pending + // - add prior to backlog + // + // Revert: task modify + // [5] c --> c' + // - write prior over current in completed + // - add prior to backlog + // + // Revert: task log + // [6] 0 --> c + // - erase from completed + // - if in backlog, erase, else add deletion + + // Modify other data files accordingly. + std::vector p = pending.get_lines (); + revert_pending (p, uuid, current, prior); + + std::vector c = completed.get_lines (); + revert_completed (p, c, uuid, current, prior); + + std::vector b = backlog.get_lines (); + revert_backlog (b, uuid, current, prior); + + // Commit. If processing makes it this far with no exceptions, then we're + // done. + File::write (undo._file._data, u); + File::write (pending._file._data, p); + File::write (completed._file._data, c); + File::write (backlog._file._data, b); + +/* + // Perhaps user hand-edited the data files? + // Perhaps the task was in completed.data, which was still in file format 3? + std::cout << format (STRING_TDB2_MISSING_TASK, uuid.substr (6, 36)) + << "\n" + << STRING_TDB2_UNDO_IMPOSSIBLE + << "\n"; +*/ + } + else + std::cout << STRING_CMD_CONFIG_NO_CHANGE << "\n"; +} + +//////////////////////////////////////////////////////////////////////////////// +void TDB2::revert_undo ( + std::vector & u, + std::string& uuid, + std::string& when, + std::string& current, + std::string& prior) +{ if (u.size () < 3) throw std::string (STRING_TDB2_NO_UNDO); // pop last tx u.pop_back (); // separator. - std::string current = u.back ().substr (4); + current = u.back ().substr (4); u.pop_back (); - std::string prior; - std::string when; if (u.back ().substr (0, 5) == "time ") { when = u.back ().substr (5); @@ -1300,6 +1383,125 @@ void TDB2::revert () u.pop_back (); } + // Extract identifying uuid. + std::string::size_type uuidAtt = current.find ("uuid:\""); + if (uuidAtt != std::string::npos) + uuid = current.substr (uuidAtt, 43); // 43 = uuid:"..." + else + throw std::string (STRING_TDB2_MISSING_UUID); +} + +//////////////////////////////////////////////////////////////////////////////// +void TDB2::revert_pending ( + std::vector & p, + const std::string& uuid, + const std::string& current, + const std::string& prior) +{ + // is 'current' in pending? + std::vector ::iterator task; + for (task = p.begin (); task != p.end (); ++task) + { + if (task->find (uuid) != std::string::npos) + { + context.debug ("TDB::revert - task found in pending.data"); + + // Either revert if there was a prior state, or remove the task. + if (prior != "") + { + *task = prior; + std::cout << STRING_TDB2_REVERTED << "\n"; + } + else + { + p.erase (task); + std::cout << STRING_TDB2_REMOVED << "\n"; + } + + break; + } + } +} + +//////////////////////////////////////////////////////////////////////////////// +void TDB2::revert_completed ( + std::vector & p, + std::vector & c, + const std::string& uuid, + const std::string& current, + const std::string& prior) +{ + // is 'current' in completed? + std::vector ::iterator task; + for (task = c.begin (); task != c.end (); ++task) + { + if (task->find (uuid) != std::string::npos) + { + context.debug ("TDB::revert - task found in completed.data"); + + // Either revert if there was a prior state, or remove the task. + if (prior != "") + { + *task = prior; + if (task->find ("status:\"pending\"") != std::string::npos || + task->find ("status:\"waiting\"") != std::string::npos || + task->find ("status:\"recurring\"") != std::string::npos) + { + c.erase (task); + p.push_back (prior); + std::cout << STRING_TDB2_REVERTED << "\n"; + context.debug ("TDB::revert - task belongs in pending.data"); + } + else + { + std::cout << STRING_TDB2_REVERTED << "\n"; + context.debug ("TDB::revert - task belongs in completed.data"); + } + } + else + { + c.erase (task); + + std::cout << STRING_TDB2_REVERTED << "\n"; + context.debug ("TDB::revert - task removed"); + } + + std::cout << STRING_TDB2_UNDO_COMPLETE << "\n"; + break; + } + } +} + +//////////////////////////////////////////////////////////////////////////////// +void TDB2::revert_backlog ( + std::vector & b, + const std::string& uuid, + const std::string& current, + const std::string& prior) +{ + std::vector ::iterator task; + for (task = b.begin (); task != b.end (); ++task) + { + if (task->find (uuid) != std::string::npos) + { +/* + context.debug ("TDB::revert_backlog - task found in backlog.data"); + +// // Write prior to backlog.data +// Task json_task (prior); +// backlog.add_line (json_task.composeJSON () + "\n"); + +*/ + } + } +} + +//////////////////////////////////////////////////////////////////////////////// +void TDB2::show_diff ( + const std::string& current, + const std::string& prior, + const std::string& when) +{ Date lastChange (strtol (when.c_str (), NULL, 10)); // Set the colors. @@ -1512,106 +1714,6 @@ void TDB2::revert () << "\n"; } - // Output displayed, now confirm. - if (context.config.getBoolean ("confirmation") && - !confirm (STRING_TDB2_UNDO_CONFIRM)) - { - std::cout << STRING_CMD_CONFIG_NO_CHANGE << "\n"; - return; - } - - // Extract identifying uuid. - std::string uuid; - std::string::size_type uuidAtt = current.find ("uuid:\""); - if (uuidAtt != std::string::npos) - uuid = current.substr (uuidAtt, 43); // 43 = uuid:"..." - else - throw std::string (STRING_TDB2_MISSING_UUID); - - // load pending.data - std::vector p = pending.get_lines (); - - // is 'current' in pending? - std::vector ::iterator task; - for (task = p.begin (); task != p.end (); ++task) - { - if (task->find (uuid) != std::string::npos) - { - context.debug ("TDB::undo - task found in pending.data"); - - // Either revert if there was a prior state, or remove the task. - if (prior != "") - { - *task = prior; - std::cout << STRING_TDB2_REVERTED << "\n"; - } - else - { - p.erase (task); - std::cout << STRING_TDB2_REMOVED << "\n"; - } - - // Rewrite files. - File::write (pending._file._data, p); - File::write (undo._file._data, u); - return; - } - } - - // load completed.data - std::vector c = completed.get_lines (); - - // is 'current' in completed? - for (task = c.begin (); task != c.end (); ++task) - { - if (task->find (uuid) != std::string::npos) - { - context.debug ("TDB::undo - task found in completed.data"); - - // Either revert if there was a prior state, or remove the task. - if (prior != "") - { - *task = prior; - if (task->find ("status:\"pending\"") != std::string::npos || - task->find ("status:\"waiting\"") != std::string::npos || - task->find ("status:\"recurring\"") != std::string::npos) - { - c.erase (task); - p.push_back (prior); - File::write (completed._file._data, c); - File::write (pending._file._data, p); - File::write (undo._file._data, u); - std::cout << STRING_TDB2_REVERTED << "\n"; - context.debug ("TDB::undo - task belongs in pending.data"); - } - else - { - File::write (completed._file._data, c); - File::write (undo._file._data, u); - std::cout << STRING_TDB2_REVERTED << "\n"; - context.debug ("TDB::undo - task belongs in completed.data"); - } - } - else - { - c.erase (task); - File::write (completed._file._data, c); - File::write (undo._file._data, u); - std::cout << STRING_TDB2_REVERTED << "\n"; - context.debug ("TDB::undo - task removed"); - } - - std::cout << STRING_TDB2_UNDO_COMPLETE << "\n"; - return; - } - } - - // Perhaps user hand-edited the data files? - // Perhaps the task was in completed.data, which was still in file format 3? - std::cout << format (STRING_TDB2_MISSING_TASK, uuid.substr (6, 36)) - << "\n" - << STRING_TDB2_UNDO_IMPOSSIBLE - << "\n"; } //////////////////////////////////////////////////////////////////////////////// diff --git a/src/TDB2.h b/src/TDB2.h index 199724828..292417fd0 100644 --- a/src/TDB2.h +++ b/src/TDB2.h @@ -127,6 +127,11 @@ public: private: bool verifyUniqueUUID (const std::string&); + void show_diff (const std::string&, const std::string&, const std::string&); + void revert_undo (std::vector &, std::string&, std::string&, std::string&, std::string&); + void revert_pending (std::vector &, const std::string&, const std::string&, const std::string&); + void revert_completed (std::vector &, std::vector &, const std::string&, const std::string&, const std::string&); + void revert_backlog (std::vector &, const std::string&, const std::string&, const std::string&); public: TF2 pending; From f367989afa934dc35b93ec7b48aa0ff92a5b17d5 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 6 Oct 2013 13:43:21 -0400 Subject: [PATCH 114/173] Bug #1270 - The 'undo' command is now properly removing backlog entries. --- ChangeLog | 1 + src/TDB2.cpp | 72 ++++++++++++++++++++++++++++++--------------------- src/en-US.h | 1 + src/es-ES.h | 1 + src/fr-FR.h | 1 + src/it-IT.h | 1 + test/delete.t | 2 +- 7 files changed, 48 insertions(+), 31 deletions(-) diff --git a/ChangeLog b/ChangeLog index a8ca9b8a7..677928acb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -66,6 +66,7 @@ Bugs Wilk). + #1263 The 'waiting' report properly lists only pending tasks with a wait date (thanks to Fidel Mato). + + #1270 The 'undo' command is now properly removing backlog entries. + #1300 Encode/decode pairing is now properly balanced. + #1305 Commit hash now available in tarball builds (thanks to Ben Boeckel). + #1387 ZSH Auto-Completion dates are not current (thanks to Benjamin Weber). diff --git a/src/TDB2.cpp b/src/TDB2.cpp index a1df16eb4..91f5cbea8 100644 --- a/src/TDB2.cpp +++ b/src/TDB2.cpp @@ -766,7 +766,7 @@ void TDB2::merge (const std::string& mergeFile) tmp_lit++; tmp_rit++; } - + if (lookahead == -1) { // at this point we know that the first lines are the same undo_lines.push_back (lline + "\n"); @@ -783,7 +783,7 @@ void TDB2::merge (const std::string& mergeFile) bool found = false; for (std::vector::const_iterator tmp_lit = lit, tmp_rit = rit; (tmp_lit != l.end ()) && (tmp_rit != r.end ()); - ++tmp_lit, ++tmp_rit) + ++tmp_lit, ++tmp_rit) { lline = *tmp_lit; rline = *tmp_rit; @@ -875,7 +875,7 @@ void TDB2::merge (const std::string& mergeFile) // point in time. Normally this case will be solved by the merge logic, // BUT if the UUID is considered new the merge logic will be skipped. // - // This flaw resulted in a couple of duplication issues and bloated + // This flaw resulted in a couple of duplication issues and bloated // undo files (e.g. #1104). // // This is just a "hack" which discards all the modifications of the @@ -989,7 +989,7 @@ void TDB2::merge (const std::string& mergeFile) // inserting right mod into history of local database // so that it can be restored later - // AND more important: create a history that looks the same + // AND more important: create a history that looks the same // as if we switched the roles 'remote' and 'local' // thus we have to find the oldest change on the local branch that is not on remote branch @@ -1293,7 +1293,7 @@ void TDB2::revert () // Revert: task add // [1] 0 --> p // - erase from pending - // - if in backlog, erase, else add deletion + // - if in backlog, erase, else cannot undo // // Revert: task modify // [2] p --> p' @@ -1320,7 +1320,7 @@ void TDB2::revert () // Revert: task log // [6] 0 --> c // - erase from completed - // - if in backlog, erase, else add deletion + // - if in backlog, erase, else cannot undo // Modify other data files accordingly. std::vector p = pending.get_lines (); @@ -1338,15 +1338,6 @@ void TDB2::revert () File::write (pending._file._data, p); File::write (completed._file._data, c); File::write (backlog._file._data, b); - -/* - // Perhaps user hand-edited the data files? - // Perhaps the task was in completed.data, which was still in file format 3? - std::cout << format (STRING_TDB2_MISSING_TASK, uuid.substr (6, 36)) - << "\n" - << STRING_TDB2_UNDO_IMPOSSIBLE - << "\n"; -*/ } else std::cout << STRING_CMD_CONFIG_NO_CHANGE << "\n"; @@ -1386,7 +1377,7 @@ void TDB2::revert_undo ( // Extract identifying uuid. std::string::size_type uuidAtt = current.find ("uuid:\""); if (uuidAtt != std::string::npos) - uuid = current.substr (uuidAtt, 43); // 43 = uuid:"..." + uuid = current.substr (uuidAtt + 6, 36); // "uuid:"" --> else throw std::string (STRING_TDB2_MISSING_UUID); } @@ -1398,11 +1389,13 @@ void TDB2::revert_pending ( const std::string& current, const std::string& prior) { + std::string uuid_att = "uuid:\"" + uuid + "\""; + // is 'current' in pending? std::vector ::iterator task; for (task = p.begin (); task != p.end (); ++task) { - if (task->find (uuid) != std::string::npos) + if (task->find (uuid_att) != std::string::npos) { context.debug ("TDB::revert - task found in pending.data"); @@ -1431,13 +1424,15 @@ void TDB2::revert_completed ( const std::string& current, const std::string& prior) { + std::string uuid_att = "uuid:\"" + uuid + "\""; + // is 'current' in completed? std::vector ::iterator task; for (task = c.begin (); task != c.end (); ++task) { - if (task->find (uuid) != std::string::npos) + if (task->find (uuid_att) != std::string::npos) { - context.debug ("TDB::revert - task found in completed.data"); + context.debug ("TDB::revert_completed - task found in completed.data"); // Either revert if there was a prior state, or remove the task. if (prior != "") @@ -1450,12 +1445,12 @@ void TDB2::revert_completed ( c.erase (task); p.push_back (prior); std::cout << STRING_TDB2_REVERTED << "\n"; - context.debug ("TDB::revert - task belongs in pending.data"); + context.debug ("TDB::revert_completed - task belongs in pending.data"); } else { std::cout << STRING_TDB2_REVERTED << "\n"; - context.debug ("TDB::revert - task belongs in completed.data"); + context.debug ("TDB::revert_completed - task belongs in completed.data"); } } else @@ -1463,7 +1458,7 @@ void TDB2::revert_completed ( c.erase (task); std::cout << STRING_TDB2_REVERTED << "\n"; - context.debug ("TDB::revert - task removed"); + context.debug ("TDB::revert_completed - task removed"); } std::cout << STRING_TDB2_UNDO_COMPLETE << "\n"; @@ -1479,21 +1474,38 @@ void TDB2::revert_backlog ( const std::string& current, const std::string& prior) { - std::vector ::iterator task; - for (task = b.begin (); task != b.end (); ++task) + std::string uuid_att = "\"uuid\":\"" + uuid + "\""; + + bool found = false; + std::vector ::reverse_iterator task; + for (task = b.rbegin (); task != b.rend (); ++task) { - if (task->find (uuid) != std::string::npos) + if (task->find (uuid_att) != std::string::npos) { -/* context.debug ("TDB::revert_backlog - task found in backlog.data"); + found = true; -// // Write prior to backlog.data -// Task json_task (prior); -// backlog.add_line (json_task.composeJSON () + "\n"); + // If this is a new task (no prior), then just remove it from the backlog. + if (current != "" && prior == "") + { + // Yes, this is what is needed, when you want to erase using a reverse + // iterator. + b.erase ((++task).base ()); + } -*/ + // If this is a modification of some kind, add the prior to the backlog. + else + { + Task t (prior); + b.push_back (t.composeJSON ()); + } + + break; } } + + if (!found) + throw std::string (STRING_TDB2_UNDO_SYNCED); } //////////////////////////////////////////////////////////////////////////////// diff --git a/src/en-US.h b/src/en-US.h index a988c55dc..639cb2e61 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -833,6 +833,7 @@ #define STRING_TDB2_UNDO_COMPLETE "Undo complete." #define STRING_TDB2_MISSING_TASK "Task with UUID {1} not found in data." #define STRING_TDB2_UNDO_IMPOSSIBLE "No undo possible." +#define STRING_TDB2_UNDO_SYNCED "Cannot undo change because the task was already synced. Modify the task instead." // text // A comma-separated list of commands is appended. diff --git a/src/es-ES.h b/src/es-ES.h index 479c3c78e..623115503 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -848,6 +848,7 @@ #define STRING_TDB2_UNDO_COMPLETE "Deshacer completado." #define STRING_TDB2_MISSING_TASK "Tarea con UUID {1} no encontrada en los datos." #define STRING_TDB2_UNDO_IMPOSSIBLE "No es posible deshacer." +#define STRING_TDB2_UNDO_SYNCED "Cannot undo change because the task was already synced. Modify the task instead." // text // Se añade al final una lista de comandos separados por comas. diff --git a/src/fr-FR.h b/src/fr-FR.h index 3f7d663ab..c86b23196 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -833,6 +833,7 @@ #define STRING_TDB2_UNDO_COMPLETE "Undo complete." #define STRING_TDB2_MISSING_TASK "Task with UUID {1} not found in data." #define STRING_TDB2_UNDO_IMPOSSIBLE "No undo possible." +#define STRING_TDB2_UNDO_SYNCED "Cannot undo change because the task was already synced. Modify the task instead." // text // A comma-separated list of commands is appended. diff --git a/src/it-IT.h b/src/it-IT.h index 013f8f6e2..8328e05ce 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -834,6 +834,7 @@ #define STRING_TDB2_UNDO_COMPLETE "Undo completato." #define STRING_TDB2_MISSING_TASK "Task con UUID {1} non trovato nei dati." #define STRING_TDB2_UNDO_IMPOSSIBLE "Nessun undo possibile." +#define STRING_TDB2_UNDO_SYNCED "Cannot undo change because the task was already synced. Modify the task instead." // text // A comma-separated list of commands is appended. diff --git a/test/delete.t b/test/delete.t index 4d07087f6..8ad1ab2a0 100755 --- a/test/delete.t +++ b/test/delete.t @@ -53,7 +53,7 @@ $output = qx{../src/task rc:delete.rc 1 delete 2>&1; ../src/task rc:delete.rc in like ($output, qr/Status\s+Deleted\n/, 'Deleted'); ok (-r 'completed.data', 'completed.data created'); -$output = qx{echo 'y' | ../src/task rc:delete.rc undo 2>&1; ../src/task rc:delete.rc info 1 2>&1}; +$output = qx{../src/task rc:delete.rc undo 2>&1; ../src/task rc:delete.rc info 1 2>&1}; like ($output, qr/Status\s+Pending\n/, 'Pending'); ok (-r 'completed.data', 'completed.data created'); From 5f98e41801725645d8cca14d7892db387520f9d3 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 6 Oct 2013 13:55:42 -0400 Subject: [PATCH 115/173] Unit Tests - Added more undo tests, to cover both cases for backlog rollback. --- test/undo.t | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/test/undo.t b/test/undo.t index d17bf8f8f..52411dccc 100755 --- a/test/undo.t +++ b/test/undo.t @@ -28,7 +28,7 @@ use strict; use warnings; -use Test::More tests => 16; +use Test::More tests => 20; # Ensure environment has no influence. delete $ENV{'TASKDATA'}; @@ -65,6 +65,15 @@ $output = qx{../src/task rc:undo.rc undo 1 2>&1}; unlike ($output, qr/Unknown error/, 'No unknown error'); like ($output, qr/The undo command does not allow further task modification/, 'Correct error caught and reported'); +# Add a new task and undo it. +$output = qx{../src/task rc:undo.rc add two 2>&1; ../src/task rc:undo.rc info 1 2>&1}; +unlike ($output, qr/Unknown error/, 'No unknown error'); +like ($output, qr/Status\s+Pending\n/, 'Pending'); + +$output = qx{../src/task rc:undo.rc undo 2>&1; ../src/task rc:undo.rc info 1 2>&1}; +like ($output, qr/Task removed\.\n/, 'Task removed'); +like ($output, qr/No matches\.\n/, 'No matches'); + # Inspect backlog.data if (open my $fh, '<', 'backlog.data') { From c0c935e8fa90a4efdf28f3a1385ee9da91de43d7 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 6 Oct 2013 14:14:30 -0400 Subject: [PATCH 116/173] Documentation - #1279 Assorted corrections to the task-ref.pdf document (thanks to Benjamin Weber). --- ChangeLog | 2 ++ doc/ref/task-ref.pages | Bin 1095682 -> 1354111 bytes doc/ref/task-ref.pdf | Bin 134570 -> 133138 bytes 3 files changed, 2 insertions(+) diff --git a/ChangeLog b/ChangeLog index a8ca9b8a7..ed234c211 100644 --- a/ChangeLog +++ b/ChangeLog @@ -66,6 +66,8 @@ Bugs Wilk). + #1263 The 'waiting' report properly lists only pending tasks with a wait date (thanks to Fidel Mato). + + #1279 Assorted corrections to the task-ref.pdf document (thanks to Benjamin + Weber). + #1300 Encode/decode pairing is now properly balanced. + #1305 Commit hash now available in tarball builds (thanks to Ben Boeckel). + #1387 ZSH Auto-Completion dates are not current (thanks to Benjamin Weber). diff --git a/doc/ref/task-ref.pages b/doc/ref/task-ref.pages index b3b35b79ac0348b026140d6db581099775922b1a..ced04a0af8bb544048ae127ecfe440a214eab33c 100644 GIT binary patch delta 475805 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€Zh+4 zosy^dRng~-m;#g>D@_<*+v`R9_{0FC0MUs9H!2;xy z3NprP2&3&mA&d)OXZ9bCJd!c2>1*N?Qyqd0Jczwu{Al9*krK??V5_4-x9p?PvWyB8 zFWP>3B=H?vfN4l23o`kvors5#j$}q!_ug7Y?2ycWIogj}lOyBxTr5@5|5(|sLvn#T zrwP-=vVw)oH+cXC-oVtStu9#)Hl9PyIN1V%%r`&kDr*TDJ10W!@06N9l=QxmaUtI5 z>(3ncIeV^ysdT92KQOilY+UACzp<+eT#BtCmVL6YRzzL`9w)y>AI#*dQxb$Ptj0mEu zB&Wo;S)r3$WtT_~gERBQuzFv((s2~2cV%WbXT2rP#=Okc(B)dMNv?l+y`#Cd(oaA6 zmtm>>giPLrIUU^+{IG8;P6K4Qt}U;!VK`?O4eE_5v|7LKk65SAiJ}q2Ib~GjtnHuf z%rJm4!t4m-LI%0Ii}mCc+Zle;wRrR90ZbUh!g1Lo#YJHPy0_il%zu|d-k!)bw|)0} zEJvJA)nqkiMIyCnZ_SCQ+VfxJuv;`L@uCw}v zW%u(p&+hpVJRcyzsifM(wNkCZQbZTY0IyuA_6Z@BhT!~jd(I3f)pZ>Uk_^1*$)B1J zFg@twRA?tzl7v1_E+oFCo1jceLN{KI9&rF29j?-92t^uV`H3lQqWR zXhox3#a$H|Fk_61S*@P5Y0KDIH!sy6!M;W;+ANCe_{e9Li^L5~e2v#DRrmxXdC7R+ zPgMlT(|!PIaS#>*^CUhNH#kyH3&u`|!wvBb^h0(#898nW`5CGMHSadM&W7_RzN`U zfy2?1F%V9RN*3oT4nmX$H6gZ>e=el)R-UVyR9BwyX&8Bt%HjF&4VYz zG^;V;6!9qbZ5m0jBtW6~y~bJv<+;_p+@DD5g z7L+D<3rsMOZH9wEq-*ETTuQ1k|R#P!MQ5k{rkiJ{c^u>%tVs{-5uNYMB+GG$o- zceBLXWaD+Bp3;zvcS#CSzA``j4}&PC=-vB#4NUc_g0z+~9mL)rrzT)&025MZ$`;*X zL=ri?dSH>Xa7mIKkaP)m?Azz=lkeRF?}^+(A5VHFxu9oCg^4rU5McNg5{EIOB#Wd! zcCsEq$=B827E(5T>71b}Dr&Fv=yh;mo+s}PsBs47POY$GSdfQF%kAm_07XM_wC=tEpbm{d}zFpT**aPmFzNJrdXggyYz*ho)^`^WXK8B2NU*t?(xM^g7|sKpM{+;2$uWKb1Hv0p^&n zd7w0&6c|!58t8Bewgu#cSRZ`Y-=fb)033AqaVmhJCJ&)a_b%py9`d5?^&jtQq z7SO3wY+Eu9Isndu&gctJ&`iG9cO`Ahb8FpzG9NedM-!JmD0C;fHRrBRSUPv1{0_zp z`Qj?{lxSU)=B78yF2-dW+Li@#*ECF&Ekm2Eo;pn%PXCcZu@JYc`KU8T%5Ra`kG3(i7Kpz-H_ca0WkgBV=(#Tb}IH>}}#Q_;dJcebtX*ol;XJ{rc1S zSuW-7l;N_q`e0ZC>L}*;$0krR62`vN$TXUUi($@^kHm=4I{QdY&;OpLWM(h%1H`YrDpboC*BKJ`3xB3o(I8qAe|=sf3BR zmeux229nlN&NGY;LmpZPDN8Gka_U7}ymfIdd!pBQg)4BX!sq$W>*?`fh4~+&p5#XI zhQnr+Ur}R$N5N!0GF&zg=U!8jz#We`!2JqT5!(eK5d!xJcX7|&Gs7rF?JfeBqABv! ztN1_~_sw+ai%Rp$2LUCfU^qQr7+M^e!7D&3cO5HNuDxW};}9hzz}EdTj?1 zm$YLHVsfiThS+Ai7c&R$;yhC?j%EsG+f}h72D5iPe_H(%OF0-v$+FHbHpmHMrNk2g zC!9%3z=aEbNS*S&UL<3|O9{;gPK^tf6G>h~QDMv5bQKD`UEn*=wlm*G*h5%$p-~N) zw#CfBwvk+!%6OZhwFNbb_AB}*z5Xzv)D7fvgdIW znYbyu7wj%0AV_+rBJ3Wkb0mI2Y}DnP-H(Lw{7{Xb+t9rAw2;)rfe6AFBaN2HctkH+ zrc#JPJ_bBYSRUr|Fw7G!w$!XnTP>JwItQmi);c8KG-*qg-RGq0KA-yf_VjH4<{>Dc zcBaS^mLR#~0~^<7ltfRPM|?>EWvtR=Ki!Fvn@JzK=@`0qD;rqb-W%(7cnvC_Q-^zr zlpG0qMaBPB{a-SomP8nfj7Hkxw-`e+V?d()s9#+zX1hlcKuI3!2k5&|MVFm zB%;Gr;Tv0yQZCyrBR?c--hYD7=&&lL^k=&a@s{p&F}?RcRc0i2oTka_cn~r2iwl-_ z)N}@NcQW~j1LoPNG4A{f8Hi%jA~|Kd4;wD3bpI@OUsF)x+#|>*Zdcd-8s?U< z_USt@`p0B5#XI<4NCDp(0J3HZ%PcXpI{8@|`(j)VG>%y03|5=&ZQnVoa!K)z?>)ka z;~^2v)95?wYs{n)K@eI#dHoQNrUQ+av*jE)IXB7qGMYJRFJ7CfwV;sR+Za8R)~#Vd z2Gb0%jr|RB6hQdTW@S2`sQvEiuhK8HaH#%Wnk+erfCRUVEC};97l=2I$1+R?o28x6 z*Im9d{Yb#@mu-22V#@`#$Joap60zNDH_@@Vq?%CL}5NA4TE5gEN(Q(p7~s$i8D zwLt{pypMt6LdTbXVVQ~=%_20VmGDw@TBocqZ$gA5lB+mSmKWc0uB~8kB$Uc=z8MSl-f*ZjCQ7ztjA+Vw%NOyxh zzfM}3D}u0ohGw=T$K)RUz)6Jp;GX3wGsk8Sd@f5NI+jHzat)bxkTREs@i90mBQ5FqHgFJEzH~Rwfd%FtZ*#wi z!4^zLiDQHwqHf4j*_Q|-F7Y?du6uemEO~YSvyVa?8?~pyBR30%eN`L1y*Rj_i29Q6 z9STiN_@=z_f~KZYvAU*)W(T)*`73F?FZ0M7nakZY>rv`j#}&+h@M30E=U0f5%}7CQ zzsAfvpPdp1QuqCP%aHijxjz6anPKa;-2pQ-%f55G5+8rfHLP1gUAN3!Fj>vfnuAZ$ zxx>vNj=@!^4Y(8bovbk1i^a>N+R_DL_25+K*j8tV`cFGC*Auz>8{J6>M@VQdcvWpJ zZE2#j#KXdJYI&8QS}yF65gbpn-M|Wf(KyW#d=bY$;Zh*dvmC%^f)aT~!5aH92%eGo z%r;@oFQaP##}a(=M#UztJhn3wHuyZ7TvYX!a*645laU#{Hes_IMJZ~vjW!xA?5{q+ zmGv1_AGgdEAN+NpXsF+#F5|PaGh9#C=yQtM-m$$I`(iP?Mx3W)3cx-Sg)POLrvuAt zNGiaG3_$Jx13w+{154r=P*8+x)+j)Zx2X|do!lEGb~!j*=KPcQ))xqO7x1Ncc5Mi} zV0o>ad?WB`_WeYQQI*=PYP-@#zp~A%<6F!PMjP<>9OmAz8sHTVKlB}a*utQ%=&3QG zx#4}XmEf*`S^bsr#*&2Tnos4D87H;fN#b)ooTy=tL_VDh9AfK&CEXeG3*adi8%H>z zaRsAPg0>!PLkO%M&dXWGZUn*x%PZ)aql&uZ7IDByITWiJ+C*&ob82Qxe#bc z)&i#DyLE9Y!5Uc)vXbp^>t;Ue6|cz&_SoAv6`Ox2VY>U5(kEH*Alc~ppiZpEG&wrr zgt{~5owLu*&AMDg((Aq9pCY9UcMqja)#F6D{ShbV=}~pwrJ$0)rO8D>y#TUt-koK! zqf?dQ^1%6J%ZK*F=k}L#hF=ck)aYeWq3n1u*ZdGgnsyos3u#eR+B1wc3foFlFf zF2xe#wnyyc6mn&mq~k6m?=;y-P~?s14r1 zT}eWOQqZfbQi`0dz`Fu8xUSTxA{lQ@oMpYfY|5rB7YhPLn%~o~pIEvGQOu#?AjrAS zEa}d=5OrodEJjaP*(K3c<=x2-LYMll_}Yn?Kb3!?l_In^K;kcw#4lK+Ld@uEv}(yRo#2@T1Xjl5|;WT1P zj_Gx}Qs=v0eO{pM*|SCqB#O4W=%3$K(h&q{nrnC|#+M>A{wC|J!6xfc*^>j}y{NBn z5^VZw3N55vW*>@=NEe%LnNk2~voi7n*&RBP3yyJ@Muo>KyM@eEy@Z@D97-~@bDn;p z@?WxXE6pfpF)D5v${p(w=$)wPpSdgE|EUnT41uc`0iE+>@kPXV}zHK2C%Gi-Hw zW(+U;Tt`=1DR%GojWG z%6mNsjYnMS0H^Oc(9gTFw*aG6Pao~FqRrdUT(c?Va@Nr^x%sFsqYtwemVEv96iYcN zS3fYHxBPJVMrRT|G+rU3RlUACUu+4lr7)$4%(}S< zc~BAm*b@0e2nhZ~po`k3RG1AjiEiM1bU^h=5X%!!n+59It_7~>Q$BLVJ#1 z(kY(;>2!Y}N7qRcn!oV*cIzEMUc1}N{Pc)=rI+;HgQN3!^cZAz;OP%P=sa4pZ^_qw zYs+~{$3N>rm<0q9rkG#7NkCPNW^@%UJe*$!R6r*}?c~Zc=O_eT&@)skmX;AIQstLg z*V;{8KQ_o5kLhz0AVEBz+$@(0<_$)CxQ@II@7)W3UHvjj2i7 zm`Tix#;*yZbG!B6GZ66(F){m{px2d7e8Joa)RbkZ0`aB%)t)se0WJF^yD}BjcOZFY z!e9?Gk?QM28BKJA?`K9k(CiutZlWVPfBfd*3SA!ZU8#=eL#JJb-DP2*q1rDZp8%dy z%Aqa0Ys;2EcV+<`Sa3Z{w{1=?=MHjJX}OPbPgK{x$20vwVWM`)sPvNW-W!Pq{U{gt zXs)8**DubER)%V`dXmqc&+Od`)YsR#zg^`z*Q{p{Uru&^>~WqXZBLf#;Q)wC^D6ew zYWvr02bwde{HBDtNE0n(<~mu(-fS3r01VMxa&$YXey_HWaV)4<=Q`u@*F`P#@eYs+|A8l&$USCqY;#E~Cp~tjpfDPxm-}$K0;bN(g&8?+w+`KQq0PhWJio zpEqLgfU4c#vQEzdUou31wr8+g0y~O?Z3plQy4#Kcz-Iw!8duT?%!c*!(%cxL%nNUj zW@%zLY7=;d?G*0(#IC5>(9k*&eV?&@dKFJ0i#O|lU_8#dg{XeF$B{~>cd-vW64`s5XHx{veQF2LP)cm!Db2q5Hb9?vyKL!}K(AFPnJ!?@ z7B1z+dU5SF$y^6JOoG71=vzWP1e5`Y=EURqo$QBKBF;s8GY}tKRrB~553j2Kfb=!c zdeD2wSHCg!`Nd1csiv4+buVUfC4U1vT>e*_1mAdt+Aadgkzz<*k+dTZd`&Xpr9+GX z?|CkNJ}0%Rs|!w26$q^+axdqD>&6@APS{Z+RNHg7gRpI(zy8<_{9`hmUuiiLR7@RZ z#Qo+Wki35LoU{VLSpyN>z@`gu7suih0_zIL5(Frnaa`~=LrFL=2Ia=%Rz$&*;9p;! z$2|c)4pddI=k_DESRgTN_UeVBvK^pkd=b#D0pe{r;s}xoc$D?VvSUrzMrJG!DBK^! zc}rMhyabinpFcPQi$#mRQCBc?E= zI`jDxSM@G#MfV??2?Klc-#U}>n0>P!K??bYX8!Na0RPe(x!ueUZwb|F|Ip6A_vZh_ znEz`lf&U-I{9lJ0_%AEt|C=%Y*C7Y~?U*ayButawW5V}0xEHwn9l9&nYrMaC%udbT z0z{wNGq&77Zd4byqqgNz#5Y)V*#p@bWa23yfF=ZPbBZ|P`x-ZXZ3P0Z>rDdJC=Xl; zTK$NLxlFd?8cWN;A`Xg6vaAW=GZ4gu1Iy`a~XGJov}qZNs zgP8%?<{0Wb^#uYu7TiVucE0I2wUCpnV_t;(pQ%>$~GDX9qS_4 zBnQyj_kqhH!!}dy>;{aO1i8eOGH=+A!kzr^@swAj$L(Wt=V~83jT%o&*aW&eZ2osF z^j|_Dusfg}D)^n3tA6vSWPw>m)pv}0psOt|U-eU6J>F2Ai*)*!;~sbOduiwN>>0T~ z4QB-rKaIgb`vtV<5PoI=a{*xS{I84e{;S8f`V6{z1JsHO++z~}NZKqllkxP8Z1LR@ zY#2K2gOB+8BaTL=F>2H?*7D@geU`gd@Oo&*8? zs$j_TqXCRRdX;;d!MB8f77ff<5%;c>5(5?9O9Z+ANBxD8P|Y z;=1OZ0PVoe-~XLg4n~{;W1Nfs@K_9J+>VgJr1PdN%!kO9@s?$my}ls9wgN+edA1S2 z5&-&da7tmc(0pJWs070ju){Lo!YyXm0n-~-z%}Es>of6(WgPbdVWu5hsm&2VkU)F5 zZ^sKx-n0VluCb*Suxwm;U4Jnf#rF7D&3c5!=oU}}wCso7*;V#)l&eNy zPST}}s$c#{Gae3No~UYeJCuTZ0Wj>oIr9{>C9B=oP6_dI`8)-V-(eGQLT-W9trD19 zpvZFJW%;XL=Jt)TdCbE?^|WdRCnx$)e>{)U{xdz&T|QSvmdSZ9nvNR%?(E` zd!6k&6e%rmE$Ubt=<^6*4}gDOmj6!|YJ+FD02(><%GF#@j~+&}VRL@|pO3S_zg^Qk zqlD=w0u8t}>1H$%m;;*@E1yBKO3lirhgJ35%Jsiy%e}G9Rrpw+DtuB%;_`=X31w|L zwHuE=6NgYtrCN}OzpM``c0Fw&?08h;a7(=gd)eCGxcqD(rY`^c0kRMzA0?B5%#_z4F5FYFtf9DhXUSSP}`ooqWgI!Ng&#>F(btB zGq~pI>jO0@UiVJ&ymHYEw8IhQ!TkepzuQZSC%KyAVq|!SH(`9t@z&h^Pg}rCObZA0 z)p_LKBzbf90WQYnez(LA91pi%DX-A$Mb9>Pyb5@lezixVKv#>BU1{#5?^`}zo!8Sm zR5vEw@*7S1&FtXE0!j@cAs~%s{H~CH#GF1Lt zbX=yy|J&2elOKsO1W~RS`*{C~o-rLsv43PBj*g%#0=h?`jmBl;-ZdK&go#M^oMDIY z%BN}H?KgVqd<@W=J&Czn|E8bIZ^$xZsu&zmJm^Txl%F&F2od3WMTp0Lf^kXodGpL@#M;C3L12-21r)vQ59? zrNsd94cf}&Q$0U6p#z6my-@x}aUDc@vMfN9eBMIujE+`dSM>sLB!v`m%J>AMOdtZMvmi$TPbWn4!2U{rT(}{r&ojH%wEW zfb76;2f2Z4fCUERE#`z1gy2EL6Qec8a%RLy@v1h3A8V&v+LH0@3H|c%cim!;s@hE|n(nw#vabfv+zeLU zJSnrO55@&q_4lzIef@#ImZuhi@yn}utjt2RtC?0GX3Fu`fv4Ec1~lY#jo~rDGUN*4 z(Qh6Ra05cey=Iz|sZVKqPMlJM6Gp|x6vScuq$+x^{g4bq2rl&Vfp_K+sV2Vz9evHO zNMrU-7@Z9C=;sWsI5O020}vPky^k+A&o37Gy_>-_AT^nE?lK(}sm4B~C*fmox@V-; z&I)5jKa}h#HoBJ)7d;P6u62@8Z!gdW^zpwd>NlpK_;LKN&SarL&NGjm&)Ec<8EtneR`M#ioCT?F6UsIfw6rV}^C zX?8G~Hd?^UWdtA^_&E?B+db2yi81z)DIsN%7B7*``X6m@Hwvh6q4p^k&>MDZq{D)0 zh6fS4g{w8egDx6NUa#G}P0|rw5~o%CYQ{jG{Z^3v!!6sU<~xJezHc7ewQUz9V(0lk zRQ|g%&VRXMCdg-AGjzzm?!6^%@h4b1k3pPQwhSZTbM7sdj)2cH1WSHpovX3(ew8Ml z)GJ>_@qT>G`@e3s;jywX6T0ZA?I5o3;BYAKo`^knaxw*X4oLt9%X*AdL{U~Qidc$M zgGI4{-|dB@U7~$f7iI8XLc@<#EB< z5GTmg#Z5SX37Bfq#5oH-S^g;b^}JKtm=3tZf=T##J7!_#{xm8a}{9=>@{VxnsG1}FDnK=y#-yLV#&^D;z$!z->xMWex3ba`YIVJr8RMnl; z@!({RS2OjlMqeH}S}>cjK2BCY^<>feEky53UW9cEFpV8&Xb-|XpwX`K)l4L{+;n>J~a?^r9?8)^H4I{T{6Nl>qv9|^*evRQFI!?r@ud0&3A)it|`6vekTgBni zH?FSgi>;ih(}g%y#xLVM8g%Z?3@u(d)^obtY0SVwq%p02c%?MhOq=z~HJmO$A-Ce5 z+35h5MRWvsJ-}L&q%Vi!J)$jhVx+wKJI;^1YA9v7D4)`BaxVEcA{8M7xDm(2KRLEL z!Xl4zY7De6g6XT8y1r7EnQID34Tb1Js>z@jU)M11*X4TOlYG75*So#srYm4KdZ3Fd6t%)+*_8?Bk}hg;&;+MF7y zYr~`sW%jSi2o3Ho9QQnMBUv7YCZDa9JAIS1oHe=ZQPfZ#DJI{hJGGceHjQYhxS-ZvK+cSn^!=l@DpU{HH_hTebx!fp8DY z{~dD+@faZl^BFH)0^{eY1s%RcKnkzBR*AktZ6gJK{T9Ds_$)xJrgqACm4D(&pU{<> z!t>D{*OcLA(CF--u&If9mjIPgV98g0Fx9L#XBe-kRk1o~-qW))ZrT`DzPy^b_BFkH zV&Us92!s%**reFQo#LKQ6-b$oc}vJn24TyUUMtz))e-b!rf_-0kSpw|ReXDdOc(?~ z^(>E|-^Ee%#VoYY{8LqXC_ni1mW*AcdZoJa5GS2}x|Gi)$8&N3&t!mkdNSY6Rf$;+ zs;&yRMVzJKyCO$h{I%Q19KTXVU@=+jEby)oIfusR>ytB~)%pJK;9+Xt;-%X&@4vLq zeRZR_^X-!7V1H@pO87`@#g_fIl|a?}iS$8lWK%(Jc(d5*8m`XU$qBkJ1#vRZzR}o! zVyJpMs1$v&?qjvXb0V-u{ao1t_1$&0U#uhVoVn(=FZk76`}J&JmNMx2jAof|steFI zCCsVb1V|v6?J`X!ooaCv9-rbtFSvEOz>QL0LNAVNyW6vz+P!_3X}ng3UG2N3Q0hMR#x)Z;EG_ups`?`Z6;di z1yzm5H#R2^C;Ti?TT`O=L3Q=mr0XK9e1zoP=eZm(6r5##V{mlP9Jb_|>6kMqV&yD% zP+88OCwqBC?-KQP+U?s7ch5tTK6W1)=uoxkI7Tx+_N_kJ)MT#<{P+`{IG)u1;1b<2 zJC@C^69O#CY~Ke|@5nw3|IfS2ZCnO4Lgj;!H21!IF?~wftRzDx1B{X~b$mG)dG~rG z+@IK{+?07HdcNf~U$vE0b-(I|PXnD*=T+a`^t*L7l^5e4ap#fz+q}4&MTv@0SAN7s z&3Rlnq;DwgZGHJqvBUx6Zs+39pU=zDj>qwYix2^I*tzZv;lA+(ztFA<{nMNO7ghfi z*3|w*|H3FLDk9Pq1f*JMf)tgu6=@wpB>%BG zF!%nR#r5;4ugCp&h15la_e_@wmOMSctkD_WkXVka{{zDKe~ZuC-jcXjkqGSi6tDwk z;nZAWyarob*~kMr^pI!Gz4qlav8*NriyW3<_yWZKZwZn;xmt|+%V3`&ioB3_+7=vy zb@%jl50t`u*M&zMkXU{rgw@E88!-ZrGBO$rBCVc%Isvp#K4QRW3Qi1hnnCwm18*1H zF|Y^!A4m5P&?ih?8(7fiUbUBq^Yw)}R}59cR#9=~&>4bppn#`Vr3^tlZL3>x;3jb2 zqTW+i4EpLVtE7s3!QWKZ>#(2%s;#%~1#CMi<90?2ftvuI{(LFWFxUB}f4tw$6akBOLZmW=*@Ktud3FeMT-v$s+N9+qzzVeLR@U#Y>hq0 zaf|#bd!wh|`OEI+yEmXP&DK@;>h=yyv!OoNy6XIWtB|e1GywN&T;ejKcBoCZ*|39Dfxene&gmM*(-`Y9Jgd~oHcOr z4UOXLwD^lR-WaWMpsN{C-b^!jse>C^s{Nk(1TgCLk)9ARZ3!+*rI0`;^WdadV6g}V zuH2?PcCD9UY8Q5C4&oO0_%ghQZT3Mzy0^2UHIyp(mBtTF!Tn} z-$QO($s3XQ7xOjo3Ey{Gfk~I<%eiMZsjO$?I-$iLx8;lH752X7irY`G8G>Hp#x2|T zYd;!)o1|cVjiflsy@_17APs3KR343U`eItK4+Rtwaq)$~j43J$R=hkp>%J7W_ZB-} zYai8RcsWj$1S8q*R`0bHhm6MGz&+}Q26A2Duh2tpG#kFwhtWoFlV+oZ$ zptomrT^$fE5R1tf=iV3oe%QKmyhDl=+6W?O2hH>&a8`dcvv`JvqgGmet1S7HNul|I z*){{}uTE9VO?gwU6^YqdTP0hIFW4u#rOYu(T`X%wz<$#iUV@(ZBvVBF#8ar*OAf^B23o?v- z5Mne_nFR{ivO^l#t8Zq-JSML^ls@fO*MC|)rKR9(Q5J|t7hUN!mzF$J)7=^by_Z77 z^$1Lzmz}KoynoNFPodJjcG~v)nCi9Y0K*$!xwiu2!E1NyCKCVFL3Aaa;w_!5h>|Pm z1c(WyGG;)%!RsT5FYD_qSIToV)dZFWmV)87oxa+Dqy8|}8AdSJB-`{J-!pig<`nVk z)`89W%~4hN7e7O@_L)y^`0I})xOA87 zC`L5CdvPIXo0kE$R2!T)4^07?p^R0RyR}R zn*K^U#qhkV6?#H@po|O#(8&GA(a2U^>(vzq)1L^u_e#DWHHYa}m*Ezb}ETb9S)(A<)kx7M64(Uy~{Q1;Z^9Osu~Ahqf*Jy$ffhYuEl zjz1_VM4Zi_6EadrYrlxkF}d2n)eC3fvc_bnFL)5^ho21}fu2mIXEq<^Yb2d#M6UEo z+(gqP-UgGDd>@Sa-+&#yEwQu6;54g8*F|*T+d~=)~l5ChWxj?>u<{F~%!t*VIh|Jd?G9UIf`_eAc(`$cM zF6fDl?gHnGw(?uvcH%}L>mu^Met0OQa|R8+NHNo$HuqOdG2}xZ5|732JWtCpO1Fqr_lcUt2V=due=|Hu|NQ%n=;HO+U@x~euFU~xh0tvF$u-Z-Uk#?>r~#~y zK)u$QWbhIh34p8|mB@5a$&DqN(IAmsE=0j=%v_%tESe7LH|P6`P!{(*xtwX=N9aC&B^S zn$e#s&L$1Ab}h{U&Fv~mT7-lw4{xdY6i0(2R&Cvt*$^;oUCj!$X{)|_J+re@N8~%K`zyKF(@EH@`BI%fRb###JVCR2>6w~yd?ADGeDC|u_*{?x z3|$aDp$s~SY+&^%&royJ-q)I^Hjq-J;Y8a!*y|EGfVFp!+@y|blUo> zoM5RWk@Cp=St@<)D!n3)XBc!4dH`T@#~H}M(ZSU{iSuLR7i0dXyq7WUPct|9NxyFC z{PDK=6)Jex=-Bz>))~g)>whgrJCvzF0_eIB^avLpFQQIF)WqU!Q}85(oU1!Sr`OH- z@H(kx^z_>wUPWrDej7OXXsye{Nkw_JW2|Zo>u)rGz!X4Bu(QjdjnlpGA>a^HhSZoT zrI>&kP0oJ`z^M6}Ur0g}{ncRsSdoE=Bey5nXF&uq5RpOLtz@fGd%~r^Hnob@B=CDA z#LOL|X~g?<3e7a63N`Tv*IeI%xQXq!VQ*r+&9&*@Xk0NJVovOzPJ&GnJHwoi;RPlG zASz|w)l(dwPgh6(E(G|xWdqA~Yv@^~#|I*X(nC+7CS0bIFT;9gCjtM|z}=)CY+K6A z6xr0#)K0qsK6wCXFQ&G7rXmpjM0dLXVV!py6r9GMUsnynlg#hZk57Ww)=H{lP(zB=a(B5;BzAEU`8Q&@1_}f6u4q_7Dgv2a9$o*&b>S2ot%9Y01WAil}L>4Fc z1S4I`K&38>pO@EGX(ifzMjaBceSG15#b@qJcY)izfl|EOMafeKl#K`yK+x-2=nLWP zo8t=F1FS~WhmWm}dQ_At#lMoT5UP{0Tj3Z|oNmsksZP!g%%%%VJf8jir9)`2jtpbz z!Tmd`ufkjw1Ogvr&k_IQAn0A*y9y7LpJ{o*;Gy22|HLpPY3|H8th?@M>Dk8k)nB+BJcxD|#3OVl^-Y=gQey?EtPrWqsS+rabS&q1h} zzj&pHp=tg(hR@=JznE>M+m?4eKRo%{fZG%XJv>$H&TpwMso^q_mWC$WE6QzmA>)VI zD@RqIv`1;k@1q;DfVtVpAtekU=x=ovc3Qs<*_D(8x)4A|7m2VS65Rmiz?<38gy^lr zQ|ipfNTm~fD^JER-+pZWDna^`a}%6A>p~71QM=cejAS}tIXW(^&rzRPRe|nLMlvxk z(O$W<9KVVQDKk@2u(CW2F-6X=!zmlB{vRQOFDoQtE(2S$x4z|`NVzG?-+z1#kF9sA zVETH3Jrg4=t!2A+GM7_AKJ^ZIgtDV6J)zvDr!Lq0*8U^GJ68eMarDB&`%>1y4$<8M=) zuerDe1#@BSh)pQdGTDsVn+Zh&&&yZq)hY5iQKU7d(I;6RO;MGC&7*5B@gZxRUqm+QXobp?*U4AD=MPyo;N z5yl*y`yOjjS@Z&-{2|4>Vq=bo0K}@Rg9m&87pWUz)c2& zI9qVhD2P_925)=^=cGnE+^|`sC8sf?%#fI)NgC`_o$GxTt2dbD(PmMtK9Yj&jKauMK7C36z3xUV&V}RCnR3Z%L^tCYh4olD@h1 z?8ofWj=p%sD`y@}!>(!8Asj0RBZla;X6z|IL8{-v^$_m5$9DSiA4m1L4N(af3+^Ok zxyPF7sm8C>=i+lUvu0O%&3wT{2kO61=KX4;$xKb3OxH%D<**s~K&5Kj`d#Pdga@y# zWI=!+h7ie;FuA>e?BWUhA92%?tCMVIblWDDBC&i5IrcD;>8L4kVx|h=ocIIo>+LO@ zI61pxCZAp+6z!<~*ytituaTv)=jS*ZeOXL?4$juZgsz4)qRD>YwN{2gnNt6M7aUZJ zbpxE!M*yG{aMJU2Fm6TH_cf}JzgmbD1 zo+i)L#2_gr#cvvCu}(e;{x{afc^h z?w(mpoKJ+K2Ia#kMHumDSc2rkcp-11jGZ@ z5*$>`oGQIMjdyIGM7X)Zy;wHUU+kq41(_pv^px}VnH2lZm;8J(CNg1P>r3WtH?|&l zVZ}cI?V;WdHH@0Wt8B@kC3toQp11G3zWZQ;1cV|4gNhQmMj^)Gd!jCTBWwS0xL>P} zIbLV09o+P?Z|a4Po6v=L6qz>?@B)VP?WpZ-0G~$HrZ+lf6*;o# ztdTvN9;+(-sh{4Zxzi-WFPSMo(kGvCE%pdmWD8jGdx(A-sm=*~P83VP0X`XHnZ-ec z*bfjR=j=zPHy0)A`qq~>6K~N&aG{}C##zi5btL4%P4=2z;OLPxON*VmgyyvU;-IY1lKY_Y5iiHvM zB_WnH{a#$i@M~->N#Y5R<((TR+c)~#JNUWF2ZxwZa*p-Pb7|yrA^-~-MRWSfHK$xSZ~S3KRxD*+=+?t`%17%sHvqn6Ty=*8T%?0Pug6*x zo5u6g-1+EXgORLp@}pbHk=y5ezUF&<;t&&xxcs9z7h^S7l6PPYwCv|kIBYdezS>{k zhn1%4%=PDw2!m}8~My%CQp=)RQ-C6A^oD_ zVrUcaZuT_TN+ODLe}nyx)dTS97?!L(T)!%Wi7kq~lFB?)CHl+11?#KLJ)Y=}pa^8# zxF(xv(6?$2-v0!{WrLip-Yk$@`@4gcJ4VWl%ckz7be39{t-;TJ7yhoED231tX`q=O zyI(z^5L1ZE@8D##_8e44gHZ(yc`?pbV^z=69pOD8A$A?bI(5J7W&cS|dGRDpQRYd{ zcg`DJgkoinF6&XsN^!>SS)hZX>2}gq`G+RRd%YG>2YJPLcyJ`Zx+czERIn9{gQ{v^MiuTkES};h>C@w9*UUojb7-9fFP?xAjU9 z^TFX4JVh{~ZFFDWv!0;jk9K=&QvI2GhpJ(JPs1kuAt9T>V9*P7g80I>HPDccd6vV7Jo|9C-61^LE+m6@7*8-Cl{+F?7pS1Wb05 z_zVO??z9Wb;|5>**@Xz}P{sTAbpm{1+ygpJFK0i#p%oU@aBn*QJ zzQAqFQ=LkEN>=khbaV75@kIl$^+#^iTGZOMA9(=Xw-o?%oh8?ti!7p=g(Br!4<Sq{>Rao6SWAtJ5pTql4VMOa!*kQ5T03NlJRf@aLsXNpB5-(!5G2w*fL|D0ECqO2=|Jg}9m-@}sitZJ zVjojO-gHY0UjEdPLoYH)-(0q3?W$S|CU;R^N{An(>(74{9e%qr%*%q&qT+R6r1R=C zM-ko!0D+V}A=Y~0J|bw7W%@qh)yNd_EF zgZ4-WqZu^|Dq;>nZ+kVT5_RZQJZjfa>kO zNq)uD6YN3TS)2Nmh;b+JsVQXZgs-+)RkOV%b4a1wBx`5lmia6_3o~E`Vb)}7q8$cw zNr{*5AEp8b=!Nk9Jj~@z-UKM$F7E|!bMA-odZTXTqvv9)og1@z)c(vF`iGtQy9Jm# z!+d2Y|1}m#i(T&|I?Rn#b&y3Kbp-Q-tM~h~wT+ZV2YGk%i zbMVszo5%_G_(8$0)r(DP5T{_bt5?8uN*k8oW#R;-$K29^k5iC|_^k91s-BZRG|OB|c9={6W#y+^;6sFrFF@;ke4&oQ;$k-24UG$bN>N}b zWUcNtWPA4~Fa+qlj1i*BACP^&QK}z}GVm!|!=CihPPc*Y5d^pY9Jux(26Z zTh=4eRr}rtzx+}m6mvtKl_$jh4mRtNQGP>4{Y0)F7133Rvy(aoWkGLyT2xq=B|OIS%htT?FA+>&e^;#QB4TYM4PE-%vbCLk6zR9NBI?-dZ*zi|{CHsp09 z?vHf>4VZU&Iu4A2z0O(j(M^@=l9q`EZ9vI;l439VzOgxLIaqj12|*98ww*Tjn3Q)9 zzV})igy=0>n7%TVO=YBIncKDYS088yJIC~*Z?;15{h8P$#7uRSsrncmWR!!NYRYS9 z!)9#}iep@|Cj=X>kt5TE_fDcoHRub7^V-qgN^|;(7az6|#H``@JOe2=yu^V^DVJpU z$&z{?V(AEWzL1{FZO+>#ad|?=hbFONF-q1kBgN^*VCan^U;F&pdP`S9SAw%gwZM<@ zcNo>_)uBtt7qjzj-hnY~41KjV36N%exglk@6mr0!0Nib}U?atm-zj_}_%YT7;Xi^F z9$QMl%6Eu`f0qQK;hFM50ECDo85nVH3k4`5(Q@etZ(-ts-UaZEgT(9DJJPM zx6yq$zS8~Dh_KolS7eWGi%Zg<9Com@7C?ZJgeW6XM~N5*4-+aluCwk27Z{M^u_^W1s9ltqI%P4g@We_3GfSfB)~FE#7F!tqYA{%hmNi zj^DHG;lTfA9A2K=+wB`!IpjvtHoyF+J!Mt#nDEvRJu>d6FvDP*e6jI_1(#D=sog>Q z#6)6R`RpG8WOlY2Df_isoqg|BOZl}bDXwR-91t$fPZDXvS}p{wsGg(@JqeTv4I8%u za0bD4A)s}Te_69=nk{g0zQvGwJPwkPQ(WLBo|_aVjYHdxjy_E$Ss4 zn4yV(F=y%fWx7FaBT)^w(Q!reT$H@@UeEXQcMW~AczY$IGbFAs%!}9T+1dK^$ZXde z_5{4_$a)8SR%smTai`wD=q3L9(AhsRnUSXl&kh?Vk#KPolq)Ik6sUpyy$7+IF)JDL zsWOpRUY=DD$-24_i#Gr@{1y+ZBtJn0Z#|tZNG107C0O>4u=IfOC2Cb<6mbaNeUMn; ztB%9)&8%jmXI$@=t4yy4d#+qr%(ex=kv6wmm#k-MZ%$p+Z2**<4s%;~&@I<3Gu1J$ zn%p=FG&^uD=}HG)s?Jb5(-m(t7K(xdvzwhY?WfuIhP zZ;^m#C*d&`ggQ(tjnZ*0nO@t=@^cBQk~t!LrLrvt35)ZZ=Sx{jV zGE}RV;HdvCHx3f`koUn*lD(zP;MBK+Tk%m zSO9~MRgGm^Qvxv2N1Y?@23@&uI_Bbn&gIwPH`m#!dKZ!m7@_&FEDd&=S7V%B!^j}= zi)nFxnNne2V~<=*uXO%LeqyJD(Fsp;GkQYZNa10gBHB^rZY@ne@pxsu?O@eOoO$G( z)7p0_{Mi`0O~it2m(j0k%2xCgyx_~>LIi*Y-vziI5L@LcelJJt->Ru=4NpD{+@u>1 zW5Dw(FSdbO|6))I^IKK`T2NTjd?q~x_JvQbsIIrn)W=RTK2F#i-=zV#6ZCj#Sqnj^+**s`~UN}uN z68j13F;$G&ectk~z1WP8~fnS0m&CfaHowt<8Q-r$;_2(f}zYhJ9P2H%>77$2i zt#7vZt)oke>&cbIFrHTtg2e8>?P5z)i#o2R*lE-$Z}2%s^ceY4>YC8Tb<;sUI z$nAguZqv#a`!n)rn=$q*l4>8KkU2zw#v|y%$32p#+hn-Q zCI75Dlgeci4}n)bgMiXdTATHXSLYM&XQPEir`-OTt^dsO0-@Ajf?~V2R=^R@+nvFr zGlX@#;Fzb{KzQrTmD>grCO?s|=eY#tty~oM{@*OCaO&C{eNd~o$=Zrm< zUwY@%RG5}7j@7ds@B1|uq|jr{TwAuypPGAfm|dS3jY7FF-5W*rZ+iLV5S`W7RO(9Na0M?Z1MVo zBhwNc<3}W;H5RUhDj4-Vd%tmNzr7-%utq+XL*Xat@qZk0GDMq0u$8`Z7guVN1E;4t zu`C%@#}qOyKW6E_Y&fzCyu72-6DN4zabVsW+ADc(9XQ3($`8smZlvn`z_+(oSNM{6 zEa2SQVz)ToN@d-2`7`VO;d2XlfB)7uz2Tx&Rao*f)L35IL_f-mwwXWAt-|BDI(ufK z4XK=8(OrygPg|;LOJ7@+32tsqQTGz$Zn!Snw4-V}*#0F5+WU3*Y*pDndEN#{g)|eIn7;0nhWMG`3q7CuU5tMqzf|B~3&W$zz!s{aT%4t63RYRZnbVNH}lS%3LQG-i%C3fEVanEjT zpRzd18AMNJLOil?J(lk}xZif>ssfA$h1kU3AD>xnm~OZ?M{YR%9E-NX{8KLe<;HA% z@K2>55GRf5KmLH*Xgla)LtF+1EpPg_wxo|?ExU;X*E6CZ zg4v9R{|C>*Q%|xzT(({2Jo<-W5-x@(Ozw#OZZ8(B6CG=kdA=8Lmax1&(dap?_> zZLL7|hP_elf;SI&TS4w?fU5}(J|Oe;iP3&6)xN(k=^~8Gyz7aWf9+1ho=B>`*D7uUr#Va&qb6x!&wSyZp)q9B_zXk+-)_A@;(N2m8UMH`q}RMxSEInw=94I;%Amq-Cr+wmG?I)m3@(Hn2**`8dSaX|*}62vbA5ssp8YVY z=<^_DI`};z*=jK<bq8nuiMO+Z`cKL(`V^BSuGUsObAE9QGrA(L7^{Pv2m2*m-JTHr+7HZ3mwtW zJgGdnP8QH$J?h=E)sb*)OTRR5Dea@-bwE)o?c&lfIeDSgOp?nX>9vea)Dx}aXa&o2 zRUPRy7lrwiKKXi{vj+y0rX#mpOy2z?P&yrXWo@J+qkAqXj|as4WKp_XaGmgdmNQ8% zubVA5o=-h&U;6irLi?jhZU{4aG1|5H!z8T~Uukg5sbhhjLhbK5CZXRb4_uW+H3wl@I|0p))vt9Tf;&<62NENrxAm+{_C1`h6Kw;S(MRURQy+?$?K{1(Y zb!yG7*PfaHm)?9a;>rRg0KFxz3#L7Dr5Mh%6WjwjHi1O*Yl9ZT_;`HV?_s~(SBm_# zF=ql2q_*$!wLkQJab%BjIw%&`J1at6iQT9~BQ%E}e|`Hfc9uO;wfW4{+2)iY;-@#~ z^AB4mr3@LooN5L1s*A+1Mkm~-1qVrS- z2X$|2O%!QP`loSgCSfD}tJ@k?;ab_7sRxO_npI2oA5X#u*w;}uwG3n8y14hA5q5%S z=1*PX3si!>g|iqIud?~){073tP1Jo@@k@nFos5~FmR^t~S}Un?S6=|)i9L%t*}{`E zoes`F+MHxsPZIpK>P57C8gq{qN#AtM`D1!LUU~F>&XT!7*IE{pIJ%`6UgOB+0p6-am{7Oh!02NsBv4|)005s z$x8zFMYUek)t#U8STV*(!f*rjfn->|XMnwMx#YhrhzI6&^Y2YRyIC2MLg-tbqIKC2 zuLoO0{DyvY4-6D*`-H6olW%?qgWEr`ZUmbXks%!3uE9hts{Y$9n8MOU8S!s4H&T=jiyi?#=}6+c(z*#kIvtkd$EyCU;z9jKXP8(w9@E2P*<}Skh>FnYM^oc9#~5#J zrjYG}!e@M5X6f)>i6EZD$i=p~U2v_XuG5zf(H&Pj*YkO&#=0d>w%q~FCPqD=$!7yT z`fuf$K+ch!TpO?@&l8Y@1j2my>ufLnImUZMiyv<($r6<8%4k6kRnFDBgoD+mLdDtv zxnUHqG&HTHsg>kh@e!2rv}F&tv^AX@K+1Lcr9&ISGMCN`41u%kPJ0vrR%44^+1M?B z1cjIdsgGllpdC$Z9XJ(#eIESkvYfg0u<%{|b6q%qU(8vp!KGWM$NUUNJQJZDG9BYP zYw_by$*;O~s@Fe6cQ=?sQ#H#{NFRXWGC?55nocBbKbEo}K znee7ZP$g}37fMG-d^f1iJP()iZwW8=Vh50l-v-h?+s>&*@pkdOK#Apk_-KB zL1doBN;F#OvVHR;OU8!?>lmw;H7Ip3J!a+A>W{XPRnogRRx~32r{v}8jljHm9C_WD zMj=gRf)@#)1l$|vcItGQZ~H>5N@qkL=7N1SkcJN*0CHedZg ziDO{9Hkaiz3fhUHNGg3bZ?QaRD5nPy=(9SR5+u_TD3W1~&tOS6W{ugIok=GY#Z#J; zUKTqk(faAZM|H^G7pH@r$WE((ipE?TrN*o%tw!+i=b6Qv4_@qDZXoZljZ#JVj)ELw z0k1`dT@48Xrww7HfrRGv;KsgvEhbZwYdWg22uA_K-Jf$!!=<6`oo z@up&?{`8rf!@HDz5Qwj}0PO~1XSv5va-^iFbm$q-0L`;HChl%ajm!s}^DQj$6%Rfo zA$%^Rh-@`5HU4dLl^cKd{`=fou@2Z^I(`h`1S1y(7~AD2@#d7x_1@bx5xWVh{!v>E z&ZQ-v_iSEAl(#oUE9U}?C-nkGa=gCcl`p3Uxr7$5jH`JpsRNe8g*t|IF(doQqy`y! zk6K$tgE)Ygg(+NM`ksKNDZ*Wmexx_M;pmlW*3chkVVvt1a%eeBp*@sYQ-Z(jKZ2(t z91(*>#e*dkBPETYt3SrtXR9}V4L@EmCSzzd#JLEpi&Cf=z_?HinoKXQ+FR6;fV1ZL zj*inFeI&~LH>4gDS4@x`M)ck2t?LdZH)CE-8kMD!FG6~xH5 z3z9Jh&mnz6#XNYOfY=3@rkvbhrBC`Fztcn>a%BkkQz=3~r=`ESSyu=& zI$Q#!OZ5g~d@Jl7hCajCQZ&c%iRx;^P8m`@akGoxiQ6@FP=o2%mT~{-L~Oy3x9j4L zB;#61E0t-D(-UVsXE=Td+Uv~~7<>`h> zT0P7gS_xJ`WManI%Rg+8_>Op-`ftnnt9%UUgd z_2byX2COH*UvvY)2$ww7?YdC%d$Xz%B_1$G(0pasasEe_CbI@Ag! zw?-MN-hF%hD*y30E!})@!?8mtRR6WNiBSp{TYcnVBRcWn(VRhz;~-CCj4vGSD_rsf z*7d4HyUFyuA^o_GDGwvjWD!yO#P$4T0Ir#W{WLD$BIj3>mXSmE>Vjw9>Sea>j>sug zY)*^?hOD-lON1`WF|O#7A=GX<3K`d-O}*Sj;c+shGFWCz^SKEBrj4DZzGMKUqwC9? z>kcWPJK43#3G1t$Xi#=G)eWR){VxXE1N!Da4pD!yWLG*}wDj$+3Ma#99q4ZKWn5ck zbBDbMt@5c^ffu);V-5N2ZSOq~jsDR-RCY(UzWey_bLIt>D+A=f9G5xFZBtkP6~HIM zMHw}Yzr7XHH^=No3NpS=N}9*osm#|k^P_XxXpR)LuVR93PS2~zsVl>){=Vjy1?Ttb z9sQQ-c00iE2k(_q>xb`30gHzdzDjh|2)tx4twuvWH%9WEo-(*sy<<;h^?k&bb|a?- zA>eFL$sbgZ1$0~-^(!YQ3`O)<(h2a2?7A_o1Y3vbtY5!OQ#jIV0-xrVIEH}p^J?cFLlYrQ?iz;?`-5%$Cw4$>dyiW(PBBLvu!tMPx+Tgk4~c%!)l zFo38I3)7EoQRyD$w{;A<66ARx7TP+Pz}a;>rI-x#PNr($=<2=>CM4}_t#>-9{|;RH znY{n7>DHSS`r=_7m=%yH z92@}0agQgy3hlQQg6;A9b5)e}c6tfvi?6ApuRJatlW^du4J}!RXju0x)hK#x&I)6K zUznb8|H6NypJ-iH@FC0lZ(o+@RnwUWL90i$HbY>~0ffvDL3|!FLw_e?ef9J{mYB!- zq(avIkK@$}`+Yk{n3VY|;`zQWqtD34<^h3SvPDU&kkPXQ84eSxcnn785vXD7&ccw9 z)j3%}O0s zqeAm%QBI>QaViNAc3^mho@!V(=YHJShNWFc+?^Gvw_Vx#T%YA1V3P2Yc48nIuq(7q z3slkf9OCN6o?Sj?H~2H zFpKq#6o-DV(QK=iboi@^_WL4m!wSYs6uSKv6)I<<_a zzr;Y+=kDQVD#EdWNo)E*gH7V@p*0O9Gf&}yz5f$bpnC(c+3M*1VL5@|*p?9Fdi7f8v)X}+{P%{mJ}zG=HctAh@){5#>&bdZI_LFh zN?f5iCRB>tE}qRR89=z4*|LyH;MT7BSaH_zSo{xB&1VJohCq6Yhl1^Hn1JD=o)}}V z8;4OS%`R$b8l7oqY;VftHcWor_KFSvHr>5^E%JCYw^R~vqYK(#%(|?{Pld)-f<)`q zPV@3Ld)@Y-NQ`ohTwfj{?3k~iOt#s;3)%g0$<4+0Q3LqzoZ0byOBe`>U~P#V9RKC} z$h%;~p1!YDT7@-OEn5uAaWT5~ZPBLaZwP+vq|~Q~R!L9-B1Fw?WGOu|Eq7jRb4B^_-BVCq`_aEr4YrN@^chzu{Yj^%gVKkIxK6S*Sm(S8Yhd{ASGQ?bT##xF&Eq%J zO{gotlmZchU@Z>O`Uu|Wxq4hIN)V+{6{OtVsTp#7B?i!O zIGcf}@J!dd?(nTDgs$e9Zu8i-(h2pz?|Tj9cyDisQl@c+u4S|&^>J$+kB6iXdiW&j zXcG-!T~dQ3K^6tM+6uBSrd&c^|AilD!rtQw!PkDk6#{^LV=pzL(nt| z2RU#H)o5C3SFQ@i&4qzbEQj(wA*Zv+gJW6^g!ge=f*~ z<-bU zE&DTZr#G5nUA=;9)rJ;90&}Mc+N=s{nY%Zio>UYhO0i2(&|YP^6o7;(6YxLwM*OID znNs*bBfPOALw?9j4tS<|9Zcy|s<`%{y7aE4-BsmZT8}ZmuBi-dnf~3+Jo{xSQd)Cq z4>iU>Ze^%#ISjU7zq8LCHviAAB5{640cKgF^E1SrL%n`@kfMCd}Pk$C~w35 zca;=0_n-KIql7;HcIyp%Lu0S>sO*fNPzl_!ybWMJ4Iga*klnmffuxd*`M(WeP^Y@_ z)L!AZf|(iEZ7;Wjz7dV==n?ZS0;E$Nw=9@x(3ALv_?|m<37y2ardde*h|>PTpb&BY zc3cEI9Y>}aTixazH2Ab}h24O1lz0NT;x%)SOJR`jW;d0*QH01hvL7-9v%UhIHmp0s z#Wc=tdth#(zS4tzgSv4$JSVgSOuDhTn2$2hsE+VeinVB*HJ?^hZufcv;c9J4x0Op& zFor1^_IoRbZ z%JOffJ~H&M_pSjIB4SKCR`6jG;5i%}=Ne44SujtJsr(b>jI(J50!Bjs7g($^L(0S+@8h>c(Dg74kGGRQ0)up~O3Hrk*PpTgkp{uX`|bXXU9 zirBC((N2_;wBv#{SvOl$;;V^G4L9%x7jmj~WHd<$K8QuL54lEjOL}G)2}cNWNtm*= zmjV#U1$`e}p?Nn_K=Af+hVY!<3XK76h0vf-6|2qxra9GhIze zkG;;UIqr|s&Cg?(QY7VAhXy|b6Rqe2=O8x|CpS_t(}jms`ks=}*t!}}hB?O*1XwVF zY1y3tdnpX-eUzAgunXUFm>_px3k>NNZA3CDf@nv)DlohGI%#MJ(8e;Zpd%BQDh}+? zkhw1N`%8)}Xy|-`f#I0OEuG$pi6wMxWAq%s{-;aZI8VYGV;$km)H(Ux)9>;!^*}nF zbsHQg3exV==VbBB8&j>ZuriGgYwiAM(Bjd?9|i0#(9lkg+ys;vJDmlGGS z(?0BH?O`&0IMe~w6xTY)Rj0vMM6>Ml>!Gk2X0_G-#oBvDHPycFg7}IeA|fDNK&7cP zktSU%6cJIR2Z)H&2oa?O2y8{^0tx~OLSDK^iIgN#BVC$wkWfNGlM<4EKp-LS?006J zv(E27bI#0KXFg;t79VzY_EYwAU-wl)nkbc-87Y|-C==F|gU{eg4a6dj9TW>la(d5WlbBD}wI5nVy5t7gg#TX0eR#2(^I zQ_1szX(@Fqcji5$`YuA*Z%gt zOZL`zL_V*K=%F}0Tu3EJ(z}u2M~cA zY0vcBntG?g3iH`r&^Iz`a>j))jWw-9r0slS{ptkr#in z1$4`^3_6&`e!<-c6d$EhxOLt<#n=vOjtR*b-h=ljk6Ii?rkQ#Z!y-pPEnlb6vS+)WiVb=(iL9l0B(l@mWc6?D+gH@{m(X} zn#34C9`g77U|TB}N6>t5dyTa4=~LF$?&F;10p+pUj6V|wzJaL>NtBPy=Sjnz<&@mY zegpe;t5#IJAt1;onOox%V3@X_LZl8|hd58m`e*y!^!{0RrIZuSNuO;xkG~9ft4@iK zZ{fbHPS%hozGo9-06+S=f*r&`^-t5Ir8O(vCz-eR5u=(0^22|w-+3_oWrjPlpZ72ASGwV+5AKy*8e6=bwVQSuq!)4r}(?vCx^%i{Dge5F@i$Knf>j6!83^ z94R^gvSrZGfr09n-B^L;Hq|Hl&NX)vya=>cUQ2h~|1#I&dfye*XVP}$c#2Ien@$U?BI|J8J#*>DvV>^bJV zib7*wgZhEp7NRg)7O@GJ`VA8G{kY7A7Dg7D+q|8Syy~X1`R2sknvZYw*FO(eV5+ME zPJ~COY>_kDfHE>qGkXyQcg zvpDpL_!mcEC#U96Exlm>)xm*vkrCkTUgm08PztmijrSAx6@fpO8yUD@b7%n;U-Y4_ zSIi?s;kiHvnGroFk$4Q_tsg+*{!=GFzFB8^S5UA}dhNsIC;Za%Ppl@o%hQM7ue|Ls zF_t`5z7HwcX5ZQhWaBHKvjIG`UQ(-Taf$Q`q?lBGz1g5$(8xJQ5zEdaA0F17nom(e zHje>@DB9L{@w?G^2&e_k^mQPW*Czy|0A?X|pIr1Sx%P$CMUNyD z_4K>ZRMA%}RiOJ%p_<9N)-OW$O@wToa!3Nvh6yf8+S6Nlz$+te3W>(zA`xG!nxq#Q z#+I0exJ&k7!=9frsWpAC9(P-^Sf8TUsn(&z7X@(nRcM6s0MRHux9X9N$VqpB-#a8_ zg##k>)RR5P?&VFRQ%%gM^^TR+rjW|-#`rYF|v$nF;Z8)e9t2SRh)lPv14a)kWNb>l?MkE)wVvajb3S+9vZ z>%!aNuYbG>EMY!)9`+AMK}DE+Y<@9HI_FB+%;mL|24{F;&I7W2YwYvr!#1*@thj!V zt2C8E_7ezs&6lJ!ij;WkMkdW09bb*qpmmmgZYws(X@03vS#5UXHd>ay0Hu7#aT>58 zMeUw%QgEKg-R^IyIgOLFk_kd4GObzO2cHbNScae@40!x7q3yO(5Ba*D9|=^Hw7)-A zIAW`55g$AiU6(XO(mByb8dZYHs2vj>?Oqd_=?I%C@>tq&^*fD)SHp+98}^ln?@nUC zY@Eb9bkp`3X@?<}FcPfJtv)k=bR&}FmY1K}`Ph&Tb^;^kJ86HRw2zn=S|3$Oq}S{O z*VBPkt61H;iG@5Uft4j@%Q%)T{h?Pw7r7blDZF-c%>rVtM&7uVu_i~UE`PakR)8)N zseSN5S>KrMsKQof35~FfNqD~Q3ItYgek{6Cz3?^`XAQj*wZL;>>Hs(%{E4$yU!cZ6 z$US;4CE4h!7M?Ch+HE5qL#&aSX6r8ff*Ep;fj%_de&q0}#C{(q16}HX{Qe&+ud?jV zqqQYhLZ@Dd&%O_e)ntJTqsJA$DgG35Zv~p=4m6|%pVr)Lol?5Jn*!=JAuS@g613S; zp`AK%f5h@Dlfm+Qz)@xUxd2zTcd)}4|1p)#dXv9jK$QMwR94Lcv5G-VW1f^KyR8)| zX~fT(&=AsO6l^#D!p5QR7&i@{e0oX|^5JNb5#ad+~@RcC-lc*g`lJ_M`PqZvdy~c?n;{887auvv9J*+AaseF z$nIIo9ZN8K2((-iZP}_blxO$Mif5BdqQ7`YiqJeuK3hprWB&9~c?>@7Be$lD>U++6 z8)JMF00srd+rok+S7@DlG$d>yhzUbLs3%O>+E@5ZHM z`y2i!Ri4NRbkBk~^w;LG>IxGK5*98x*i+;Rmh8u;K!eYSd5>i=u}89hXN84PXf14O zd||=hP8r{ue>e^|ijmO5Aj&z*KcTNP=OS%gAKM;QYj~<|L|LQmoR3@XBJ1}fSlqCg zxOOTq<2kii^XRg3xOS5Mjkz-EBd)8nDi9ZF%Y+YaP1}xEv&&8A`dg4(G-iM$=sC7DQY%g1n=45vueB0Z-N~6LZbq8B&-n!dweK_U*W2gv@-C(- zzBl)uopF6OR3`TLIPnqEi7wsh$3;TLAs^6zl#WP28mhI|JFgKx9^_)Hq_l1WayvmN zMI}mDV9!%WXzX?N@l#Vicg;<+AU-QF)q#@C=ca`eEE~j1?6)X>k%6@3F7)K>4QiX6 z6DpRaN`i{tI9bG-{81sMh-v%UTyyhV-OYb9*iTJ+BI5$K_OA7N#dl0#dk3q#aR z7$@5X?dLODg79`%VVc*Qe9*5I@SK6Puw}=Slk$D5SU0fYaDHN(vNF-iJo@Jp1~J_6 z7%MmbHsVvg)`EhEhmJ|e5M_dl#TyuPv6r%8xz|A2(Gmu9*|>`8-3=c zB1GEazi6e96)T>%THma19G`&0Bm`*W&C9e!QISKz(wS%N-Br7QXn-wcC14y#Sb9Z@ z;A$JMXYFTuhnN=?=g21DEZ#mE8MaIp~m_{GJDy(T8}g5y4oD)u{cy4+TgvDuD6j#_*x7utAl^u zY$2|DvB&oD(@Ij#4dBe>ehih*IIgf2_D2tTX`!&S?=z=Z8(@1UU zM19`!u1ase0E4`A_rQx9S2UiTv*(B^FAQuEJ^R*JgME&5hgQ-CbKzqPT&(ohba}+^ z(Us4HiKbE^&1(9Ie#cW!SDDQu>M8kt?pseNZ!4k^WB%Ze13ve?30Frgv(%f{dRM3l z?>;Ql^y@VyKMSjoYWo{~g>gVvpYv)3y%)tRE11_|uBSm!ZE)|yaor-^6vR1aU}L>v zeM}0n7B6}vnQ&|&%d|CL{nUkQXy*3T3cfEee+q-fv-lW#$YiNqGHB?;DWy?O7m4nC z1@pwc^IZeV5LcE6goUn4MLkN@kU0PEscRYW3np8SANFy+h7KV;Xd+!%)aZ&o&_gBh zsj55%s>usXVN5ck*P7#)`!e*1c(+U51b zb8umHU+yVT$f_FSgpO;phr_vEmN#mXe^=gGO3}n@Pm2uS68fny(&{)Xx)hYE;gRM! zts`h4BjqQt_@}|rhd4U~s}5^^$1Pttj&0bJ&mkT(G;EB=R{jQRwbv)-thkX^>Tkx9 z0O2$;%&vK;wikc0zo@559kN$Ri+d4&GxOfj=bOUFjkCg%{Sy>H+U&4pumYBmqmdO{ z-7JmjrWxYSX6(fuI;ZG;b5$)(=~n(dW3R(mdueS%Dg0c{{vr+>G{#LsEd*b?s|bEn zVYpF;Y@pCSkr^i1bRMKcyKA9OS9k$Debv8ebsvwE<_K%Wa0{QeUoQiqUAeG6v&wo8 z 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 z zMnX#u&!fR*{P%k-v6`wDO7k84%Fk*f~;_D*5>aa{NIV=ZUpA7IVlD2*`V zzqlq115*r;m+{ZO%Y-?heYjqRksW7!Fxh02wiNi5@^|)&B#~)$SVZ1!)! zXRB7H8GoAf@7L_wd5~$eChY(>dqVVI+Vd~35i@kOr|tZ=0XH6qGwW`?mn3(CFshbgBj0V3LR3a- z8cIefuQ+K1rd~>Q=Tm)q-6AD$eE%8f<#5MQ1&PJbbo$x|gznvgKa{Ptb0N4GvE@Gi z+)J~D?>eB47@b4`ZR)7I?X?aONUdI$xyN1jp|oMq*Fe`QZCi# zeYfbv@ADhh=mLH_DFi9#{VQ zGpElj=!Ut!#0$Bk2{$=S?xQE}c z84Z~RD9uJkQDMzwo~@>dkmle$I;UhyUU3mP)u#2%$uRrWBbkSxO8w;XG9fP3?xK%7 z!*&FrY1xDkx*H>5)0deLrU_>Glp~zuXp2Fy76*)SD+SvBSLZeQH8=5hHFv4UPhW!M|eav$cSJ2gGyB`Pl}!If*(!oJ=)`j>C`V;8z1@ zCXlrgpg|_%?q7Wk#%^O7+nFUyqnu{Dd}I8~malm@6_RlxQk|Sfbuxpke`c zD0al*0w+o^KQ*zl5a@^`d#(;oKNU`Z7liH_gNO_j1y(|#7$qFagHMPfUuVD$^bb&h z%~WEV8U+I5MI0C-cPfg(i(}x9j=X6?#vXj1{mXrKLF#{#21g4P9QX!p!g$`@9zd|o zujl~n9Sc9uHRt(HtkB_afMu{IB^0@fzA?go`1aOFcv*K~rMvt{RmDv5JbnOa9(u>R z*mYrRwr}m;S*2;&v4l{LnBL|Vek?DYJUP019W#mH*~=ultG;F%Gm>ef7%-rp%5JMp zZ~w5DA(Z)5KOi`hHeWp=oc63uc~L%1URtGKPk!?1O)Fnz!h05g;~bA;v{0ApaIC-% z=po<ZRGQMSCFopIEC4P{vL~>JA4VmTGb{vB_KPmcCs5(gz=JOUBI>BUK219 z1N!2Oi^$`Pt6?Fu6UbAgABwGWV9%b^=2vQU#qhWT{4{gI!0@4$U&0gTG`v%_uBVNy z<5(BwUg=xW9QFCAye|O>whb)=>+8sviyWU17#4DsZRpP*d^mVrM<SC_kb?om|Dxui%;JjF?_M>bu0&HGr5KU52?*!-JmWj-=q*m5*nFK zXmmMYrE6A9!yQApwzLC0_Va$oPe-ZMy9!GrZM{@5K z<8*>9a-8akf7*lr&-`^@<(aMHSdDI+;Lc+?T*{ncOv&G0MvEc$i1YfshV9d>e0v#;Un z@D?;0ARK+k;YaJTjG2l~4B?oK_vnW?K(j@)sKM+9z`p?YCKao+^2fQtS@zNDss6F5 z>gi`c8uhJZF=zH_(1J8lq|sT7v?E%Tg%kW|-%F4Cr9|CfHNzU9s7)#EtN>)RL*`cB z&%TPOFBH+r7w?bPL^gK7_lwpbmEz)gV2`mn1S!Pw0E0uxOLV@nw|E0Ru;!lwqO zevuV}9##*4N+dJzO!%#^M`~tIEzXwQc^_IimDT~UdiC>^%o22 zTj3dvlu-s;SRMEcS-8^#Ahjwk)Cm!uSk^76OI&4turEFPbZ z0ereo!c8aVAsIH%+O0U!)c6_++@KhDDdA-E7l!9h$>7R6jJ`|D4(n*KF0wh20pxiF z2BtrE8m}%*BAfdCXdY~pdVAj8;hhqe_lMo2_+AAOkYOBKA*xanMpdVUBQcT_tOVOW z&Ejw(en<-{ya>bPM-$xL>b})Hkz37sZ~Y9tLBQXBbhkq0JJ=2p0-;D*4Z6e2`ch1j zO*sZOJN|RhbW5#7ydn1lT%GcFST_~?wzsV4{U}-K7D$cNp&;%{$7X(xp3wP>iusqK z2Jp%QeP=|Imj@L?b^XB9?O))nfbHOWo8rv=*=H^k9KIYGs)t>hpB+`6T)FeB)DyUL z?tO<+WN1mxp@B%P>+|^=LxEvV3PV~dxa(Wi#UiU+xBtAu|D_jbZNU7k<*Ptew9JU% ze$2Sqzp#`7`eIbdVYUz};a?K>gjz!&H^irem8GZXI5qg7vd_DrW%K@W)~tx2RzSRo ztTDRV@dYAZA$z6W&fndi`^$r{@6rty85_MzcNx>0Uw#>$WjRpITaf!X{m)T;f74xa zA5J|kuL+e_gaqBnKD-Jk)Lulw5xZ4@>#g#PIBwC^D*BGrA~ewXp~J)4vT*0Hvo0X*lx(w zu7iJAA9y{dz*USdO$&f5{!OpzGoYVdBAMKfLd=}5)}A{%-T&4s`rg-b=MZPakLIBr zK!XYv>mW0bMtF_kXQ?`Y0(Ah;iV?RFKn19|8)X;$#t!Y_hejj2f7m}Wcn9AcG4e=U z!OEC>q)RD~*Yj@KP5=;0;B^<*$?WJ_Huo8}+Gmp@c=``f_bT1$FK_ecjgkh9Z}=ou zwoJ~3!h8L#uT1jF#Tl$ET$>hw`b>WE1XBBM7~e5I#5bJu zKb^4S+azi>`=cry?0`O>ps07L=IpoC^sEvr5sWlqI+L?hW6TCZyn)nP?rE)-T;z-QzMN3OZmPnD_u ziAgfP`o(W=3ixZz0h9Bt72%~AnG z7MUz3=qZIr{VUJ6_!k^($23U~szVB~6JI=`7tnu!&xlr}#m{@_frq;;sNpSF#+QP| zN#O+R2K=C4$=%kd=l;hYek;4*(4tkv-=V*nH`E9Tl8{&SlsB}MjoR67`Xs-;z@Tcx z2C}irA?7#@{8^+dgKXE#-6t4~WC=3%OZy$eZ|QgzRCivzyY7+{vu>g~{!li7@|#jOB>)dCuxi+;}R zh(`NPy~n263}}v3&Ol(*KKO}(sOep6HlQOMu$3UH7JY_}^|ZIM8}kjDJ@z1Y2#oVc zntk2WJRVNsfdfLwxEZ3aWkC}xuR23x)L5&h82h9A$gV+aQp@VH-`I?0?fowSJHydF zFnJPgeq(Vo?~~;OWoK~@jjtQrHe1<@8KxI78OW0;p?-0RttAgV+$m>s-vU5&^G(&R z{pT~4ik=6}F#QSjTc*9oYVGFydE<-(a2t!}19L2YH#qMLoc;|>tfFo9y_%tw&7K+A z^P4`FK1XEC??i}525nokV}9jSdd({?;%Mn?G1B)u*)J1S0}L4Fg65u0CTBnT0W0Av z>Ta`cYB80^6NDss4XKut;(-tz6B{@R;Z~>C_N?DKT*bsJaJf1L+11D$@4K-=R-BeA zO<_h@u8RS@Ru88k1{aUk2!Z5P>`6GH+gG_Mh?e+A?I^#dyIaWLTs6xX0fhmPYj=|UXI zh!KJ=Vvta7Spus~ssEY&N@ONZKDMjR+2(YPmj4s#xu_%k-H}GmvYzuw6T4f3eJY8t zKA%Ic6XQEbYe0eRq_z{11uh$i-(T>tfnyANwrf40{m;G&Xz|^9><0syxRYL! z$}!ENdu>00KP1~^F|p*;`z7l&!;{015FN*5OrLKc{H)mR8U1{ieE8^|NgIeE#wh$P zV#fE6Irph}EBWgk#@FE+!XGmBUZ$swN#A>#jXdI z()WN@$7nXSofK`l36HcU401Ti+r5nYwA5uYkd$(raOpRua43SWlv>D_t z7PD*VH-k@yyLm^QR`1aI)A!QvX8E-<2hbFmm1xDw^SN|nW)i7$acw*OXJDWe7EB1} z+p1}q36VqvW_HI8F3wP7{_Ubp+NN+dSGSvw`{|C>;<|f~jNhfyXw6IQ!>Kl>fugfd z9@QoMxVB}#tKZuKt%kOV>ot*hwG0BMChKUpQ}8%{m16zcpP2>owaR~&|>A8I(zv>4=tnVWQvTFmCFg=&)YhJ~a z&xJFDn}lyS>Hh-ehbvj_n~G!kR`b}_JFT@=Z}Qc~e$X^w#&4A#M$bMRBx6R&xu`Hx zMtd$};AZ)dN7>*clSH_00uO=fXW@g+|hyLaXb247xKiBCb{6*aUHwVq8Bano@h4C2+USxa{ z2fL@S<}tlF%&bn%XAxTYQF@J8QXj4Jff#XVUVbb7(V%K!0n0=0dPZ&|#QEN@5dMFx9m|RdnPcFdrN=niGA#=)B^0!*jrQk1 z0uMgws@HxLJof^At4!bFGf3aDp#uCUBwf*S@AE?+w>eG4^D#f-l6}mmjT4y#Vf{68 zA$neZ#=G4R3A;Q_FNJIUdle8qphge-Al*v+zGoZF>1`B_MzGI}fXk5HUqA^bkE@TTpy zoahxfhnXtgQ32CmC2Wx=>B~{l^MOde#wRyGzlEM1ibvaQs^!x^FyMAj5;6Jv^w|iD z^vn83847Ixh#$0Ew{~j;j_X58P!;XxX9nC}?JjXnR}xc~4NgwvRfS0nTTKb(y6q!< zQ>!~O?KSxhdwz86-k!1?vX)JTUf&9^Ii@U2{%4;~ZXH`0Lk|qt3F&arCdVq%RII5ZKOuUcJ!F#O}ED({tX)JE5A5uC`nt^!xA_lUBk5-R@k-) zuaQbJ@eDfL70G9jWa-^+&TlPR8yRgDTgK~Zl!xgOJrd_L1&mS~`cyylBc@_o4BtOa z^V8AMQ547jSnbyO!ml-$Xf2|Fe9hH#6^gM!X0PwrRtCcwNCk5{5>1RcsvWL*EL(y{ z4?2R+)NmY<8KlMB8B|rBEm!nBj7ysXcb)h=L|=Kz?Y8e{(>J2G=Qf|RuJ|x~8%LZx z@NU#G=;;YyvI`899#(TLh=OKJZ@!~!K9|$=>aytJeNI|(xdD0~K4kp$>Mz|L58nfz zBcH%#>U*#+`su)bIe7nX1yx%9<^a+A{--4SA05(>0*9a3q77&NLiy1MM&OMRoW7|$ z66sSk{&@g@4B?ouRQGJ`gl%Y8xh-b}bL46%zoouyZpS5C_M zNfWs}<0$uXXyn`F%NH%K9ExVFu-uW6&~EcKBDaivEuaE@O@@Fp$oO zYgQKBZ6cRuQ0sOLpjSP0t;d7w7p%Q-`jy=hGw+1r9pwX3<$pYP|?ic}^N#z4c|M=Nurtg*fBWdl;1D>tJft^`|x zw#gmyN*w!1u&?0n>venfDLh@|c9hiH1J9ThWt~m4HR4uNy|1+3s&8uj7g3!hY`gOr zP8MvdBJ){7YB?XDV^j5A(TjqS4=#S<16)J@pDX#_UdSCM#2$iUwQN#naLp(@OTgNP zXrk1hR6i(YC8`X z#>KdY2GV%0g(Ql8Pm;Bf`QdckA6IowmQg& z-Z{wzi=<6UgUaH=V43BgeY2dc@zhc)g3i3q zRAsM?b3}YVN~{By+}N{EJr@q#{=Fu4rc}pn@4Y@>(W0S5P3YaW-cMsOYel2IxP>IZ zrc|p{`xh-F8`N=+bHhh*t8XW&ht*iN9Qp5qvNE#6!Qo0j`_A9q2mXj34s;b7ICApy z#gFR=8$D<^?@}&f73LP@-y3!K!wX5KL3+Jc@1{8makzvJ@Mc>bI{#B^zP2Bb?-<- z?6{Dbz>OvCxBJN7et*r$1V)xR8R@eK{>NdoBk4~cLteWWwL7(?PmJ%syleVBVjeT3 z5t{#~-?~2YgJZX*kNN|kMV_q#PL-|JUbf`FrV6qJ*x^Or1g8pn&}x!}UtDv!rVg73 z;^^(|-5LWa%axR7=rJChUA-0!C_ewQJZ}Hs#)%9@8vU&89)J_(*ZnXg6=#1(r*KWX zOx*%XR-BdmkGuMho6blMR=;EAHox$H{LQz$1%cuOs140$+rIV1(g3elT#)=&1jeX8M`~?_o>_bf2Ll3M@omL>MD6 zfPh^R!|P&NgUYZf9kI-2`pC7~Z|T@@-|5kfD)2Lf%_z&}n|rv07h{@%isefGoJkk7 z;jnUkc{#rSo+B&Q9&a_F%Y}Gobs{ff-hO!~scX;@c{%9%k*k;JJ0l)%_LZVZR+>E%u{Rt}KxHIT4 zvwx7Mh3srL(DWREh^_7yBKRIM&6P729fp=CEX_Uqg7)i6ZW3)9g!20hvLO!OFV-?;e=5Hj2HkIjXOy^|Lpr~ zzyvE_N7wG=`e9o2ci5&ED9+7`V=1=! zECh#)TY~0%fiYTfdUwi$X6jP|qnF7GdT+>PgUB%TZyr`3WE4D32TQggfzc7FYC9=X zNRo>q_19_mGh=m9wK7h-#dT0~D2uXG;e;pRVERaXc%~&T!F>MaOI|Y7^h)sCEcTeQ7+mb}a7N zgeX)(wP$ITXRiA#p8NbhuI%uYJ542Mt-S=2Cnbz?+2~Y*7)#HI(edW^r6;*e`6Bsj zSu9ep(i#6QjmK+5o(qtQr1S7)bjRJrj7P`(|5v7$(Z8))thl2A1?T`sg&BzIodwXj zx{*Lbj!I7HM1%J5IHDTO;Nq-{vA-Ruk7x@TeTL`#&f>T!2?wO9^@4Kg`Jb>ey58~2 z78z>PgG)w_ZAQB-|8-kHrX)2YEr(@pUC#M2P&KAlmk|;oW}{)_!woz8Li$Mml6GOE zt@r5%8WG@o*?*a%x4&At_J*?eLc)>*Z1N`||Ln`yrTF?7x%a;EK_inlqa$0K{zwW= zE-mo8bkM{tm1gR6pU>w5)TQgRo|#=ySv@j;lkGEO5u9{3=UC6Kv@@z5DUlsHsT$T= z;p)7=Z+SGHXw0pu-@j0idP(kY4A;(N{v(&V2fG%0T&+G_dq@Av;FXNu#qR)MyTKsT zUs7+x<)3|Bl+>*Brw$CjXbG~b&DI@eYta&pvrgQuW_l+VY8QK!xS+!B5C?h2LP+Ns=ay?*xbaH2&WOV&MOc#9oP6 z1vD3}r^~H<2c*-K*PpIA4+S;U?@F_;WZR@9JG0(BHvZ=6`hE}o1E8j0#DQPFG;m{ssTI|_&=w>2oIr->>b6(0#ln{fLGt#>AqE+v~`<^FRQ$XOobhge*8k+ z=Ai6L7BJG2&9$MdXUE#xy)^*~4o}TP)U|*w^<5Pz)JNMQcg)~sy_?P~DAM=r$O>)c z6q$Raa?l^^J5jFOA8$+km8zEW5!$FVx~&kc!%pO^Z!Z(EGDJLn1PWeV13)3PJ9 zB*oZjthlKjX}DM@#Nn4ekIJxB()A0P!z-e~QupcHEtd~X>r13;Lz&B)#kGm zVXvbzE!%TvEENq`CTrQkJ;`spFU3S)*PwrLySJ)2%b9?azVfu>aTMidwi5$*Qw0dX z)E0zyZl-D9Eh*2VXAV}U-4?nV#{kBSHE-41(fswpT;u>fawMDIck^ZPbVoSRKR^3L zt>g>8UeQIT_B5e{;wDdD>bGSg%paHOF>XceoQ3ShKtL@qY8A2k5X^p2ZesAxcEE&Z zn9)>{>m{&)F0d)ZL^e^lF+W{J>lrsiT__1!AC6nf7ZqcFr`;n(lU?Ki%lukm)Qo98 zzM;QVM@cbgFBf?>pu9~r*mkzha;&~iC#Rpx5t^-aK}Gw~77A~$qZfC_CKM*L5G9kv z6EG6xX6&?#=7BTr77rH`nbVtzdoMVb*biACGy>Jz901+#7iZNT%rg-g*`Vwt8u3XV z&R7sZtEs&8v*JQve*q^10x*-#l*4PPD*x>3)1Qf;HMk4{Q}GQNte42?QGHWJ?xq3j z3iU)U7ixK+iNvF?915CaQ6eyMgHMTSM?QRoRm78&GR7X)5 zxr{Lfv&^e!lYZ{PMs~55HMRwQ?{)$fAJexNt25V)KDjf2z(~oqH58BkeMnp1d{J?I z>hNSWsM%PN9QREn_LHa41zHKpw>8)yMl-}E{NG~Tm|t}-kecjgYyUCXql2E+2*>$M$W zOQ|b&bzec8^-svUhGJPJ{FmbIe0%$%a42>>H=@8%u?x~s;@`iuluoi1&o-UARx&A{ zcg5@%l$%hW8(Qn?U{y*spe(b_t#WDoWM#Ca^M(O*B^=u%&>$tVZ7=|Kam-4+Bq1~J zhu5Ujv*#MQ}_J4UAsd08WN*$$v4W}#z? zHjt~8Sz7+p`2ZyU>hsyO=w#u{M*g%MH&7R+HV3`r$OE zs?v93dA(Y&5HhkNV0gGLpklNX8N8rR!IOAFud_=moY5P4!&%hGb!Kd>ahYhs@5d_D zq^A`TJ7dbRlIp{=$I=e5lZsYcBqP!805w5q0`;}KrM9i1*#GkaBG;?v%!8*m`!o5M zs;|yQ&FSs}ZcEXcG&BwqDMQ^7)mFwEmyAJHhE zWo96>YelGoiv?K|*P`-;cKL<)70dW9PSZj9Mi^D0BjI!pwfmoaqn&IS>fQ}tazo21 zSv6V(txpJSUhd1Xig?w$~J6J8GRzN z?fKWfZcU5t77v^c=#G3J0F`ZlA+HAQw3eO0RAHxyc9L)CWT3k(^O-X8?Ba3!UP)Xt}XqzrBO5Y%NfdPf@C_+q&$1aw^FUY^P5-pcGRB>ut zph=`nLUDws;pR`J@GR;MXB5C|2iKhbZdTq9axp_qB~hp2g3IscB>vRBC;*L-6f=4t z8ATE^f*VPo&HDkO>aN}sC!IIajD`E`TiLd?NHLTyxxIf=aYDO)@OPCe0;3RrOxtxV znWwGKM=JibVG1K-Q*$qWnWKz8z*=O2n97c&cN|?tc8sz@NT^JkXhccvtrX$cbA6BN z%WG=;sBc{?^~_aAtFOP(J~v)@j-q+@9V9ht)v8BtmjWo{WoEm`6s1^NYq|S-Ox9^t ztku@_Z;m0+DlZDEwfYUQc|%HLH;Qpc`tD!S-kW1O$l2=m%*hfwlD*JKY^Ck zW+Tit9x%gwS`e)YBy$U}7VU=Uh)1UQ^G1~_kF4~}goS3QH(eiEO3pldVQlTH_I#4O zQ|vlfi^pX4^Kgt1TWT+Xa}Gcq zw>eI}4+nUNHon?v)VRBC&!60xPs>sQ6mHZiW8S}zeI=XpWUeMiHr_6lpiyM|tLSp^ zE#>nCo4C*rM_5Qh?Wh-mt7Y-tybj7z=K`YJov|^rUV(}G3s?k@PB%zSva*}9xbaN0 zY}II@>8A-+wrTnH>)MDEgxp8p3E-T}vJ7Rk=;ujqf%tDL#ea;VvX2tor&UKgt}~!7 z9``93s*S-!T_fFTrXwqwuyrk~44rSa5zGAwSyv;56n4c9zhZuhCr_2AfA6LROD;|C z-nx&HY|1)2#I`wEM5{ZGq~EH=D6%3fm5>yNq$zm2HsQd=TzJ1pes}foFQ8*D+neqw zQ@f)jV?(}d{5Qj4xpZlyJ4KI7pD-9i{q4H-+RNI>S`lZU%Az#HxH#Y4U2LBOtwLHd zr8``i?Ibs9y~LvZfaZA>m1ASddwWaT_RqKvu37o|a9fS}#eDQHt*VGGIV$pJ6PMO- zmMt`_#F0kdVd%rNo5p>Up}7ivq#%SIg|_Br~ps zeYiIbN+8maEyC>HEMO8ka512cc*8#Qoj!l4#QaWn3QgRIK5_?j%jj_D7w0Dfveopn zZ@Y`Og*}EoV8^~kd+e>-zHG5C$-SkbRu{Zd0fSY~gVI&623)&DzW-F$a3;i}kyM+=9lKP*w6gcW)&5d{YdzCfurR@-ot;%hJqxp6x8}VSqSeM! z)US5pW+U%{f6WTh2l9=ovSW-Sh>)pb92YB)T0atwwku`pSz+(CW26Rz8x!Z{9wA!?{m@nnNLJ{j&1^>+Tv@b&_AI{yyWOw$ zJ}((w;rxUOc;i)H)#`+yuLQY=xKSqrTrCisVD<}0i5~;Hxu%|0e*GC}m zI35Xc?aMRKa1SdBqpKJ_%n!+`-UOp3s;4NZi$~E-zY8*z!6w3nH2W2r1Z+@GchUJYx@UO1|6E3so zKdZ&~$sb<%eC=b&jNX%pT1rY)9oo5QVX{`S==oYFIa`NZj~xhc-KAqAbYkH5(u>k6+qx6}JQ`I30~JlRrkw;$-ZstPI*4uTIhg&`|LT%(_;|o=~r5^W%WUO+rPc-TDo86%#Z0A zclVw=ief`Ti2U}`6wqKo`f9tyq4lj#r!4oqGH%+$wUNlZo3^YLaF^a(EgL4PF+8bY z!y$aBK?0@!8*R%3l-C(hwBaBfZ4>J6BOfm6_%oTJRXsudQ`rcA;GQCJ-6jbGCa{7S zrG&WWtc=ai{UrAUQMBM7o_??uqr}L{6t8d3reU3$h<6pC-H+1+bGlqZJ(}%AV|P-h zyBgbDTS{+MdLjxJp8G1w|H)2@O>e07o_FyJw8{tou>m*KHj6Xvo2grEfBcjOFV6GW zb|pZ@KJO_lL*Fk$(^h=@i3CR$g^||6(FC7m3)ZcpL86k`UW7HLj)`CDt_|8y7%26Z zttNk>`+9o%Ugk+ik`9UG9AF;;W0Eo&!r)X=<774?h%8~IC-sl3+JHawEW}Gks5YDc zu78yB#!R;DVAbEM6X(-cVR${5h^oh69+IMz*1v5lqPGHq_|H6DLAx_Nud&KOy-ris z2ZoIqQ#IVb_jGAh(!$8(#fpA?DH_j_5$jq)-M}dFPTxvZC-zUxH}At8onj^;A3tB| zI@aSzfcxQ->zA-~)d_Z<9xh(@a_yhR0;TUDx5m0BK@nXAOpo6nCu~)NAQR|(+u}^; zKF}eH-Gd6`aP{n3jiODnTMbp1BQ2z}AT*R$ia~Uh0z}3~7lz*|ymV-Zqc-U~DQwow zC%Hr+*&q{4wA&BtEP9F+4$mS(ztl$C3f77%hH}?OVH_b>hX#NTO9{3lY9LrSQ{LGY$f50-z zM`^U{z5{f2+#ACD2s?2@{gVs)-GTmrdmr31loH1q?G;A`m#5#3Ul{awbFFv_+RD4l zJqC<`8s2}A&OV5N*e@ky>(WV6tipNhosg|H4oUfzXpN*K3v`O}d`Wyrjgxe$W6a_T zVQJa{>8}N>xl=WWPm9!vDoI85QVr(z(-GoupfsoAop%XR#BrPjxxV+&(CD{U!|@@u z^{xeq)SjNwkUx@MRR-v3a>D$PG5nn16Id!zX7z9*~qe@%ag8i$%kX1hCZPRHJ z&b1wZJ_R>^wTTsvjlFj(NAXWxUp4wD_qa3t$`VS0YSi8%2~u4T=^KHgE`&B_3Pxn- z@UpD@Sz6ns@p%SuV^#&tMVsGd0LL$D@5jI4AAgG$jCLRw;z3up3w0oPOofuLO&M|h zgGYVaqRe^jplkg=0?(I+ARqT%oZSC*9Q{?R%6?guy|W4CDOUvx9Mk{pBLo}&EGPQH z3tQ9E`>DV>C=UI9N!pcUhD>i1G-nI4gc}1SxiJ^e_nEjiPyG#Ubz3ut+RCy4VE->o zz+#JF&pgi);{EBUQrpiX`(;j0DfGl$b@ojH%UCFmnbzo}5Q7flM$#FDF^wUAl;T@NH6}ALaJH$U4ucrnW9z+Yu2FsnVj-M4D2Sk{m>8L@b9IAV-lJ zAR-_E0$Y(@L_k15K%_~HbfqNH1w=YXC?P>mN+6+x07=f>-#6~PGPqt9ZOUVQ- zrt8Sm4r)~#lb^D(JTODEpEf-7xzQ#iXaT84Ir*k8r8{vimCVPK!FBT;nZeX{>p-aS zROHQ^uGUHicL8!R>!06qy$^a;8JJ9^pY7>6arlDyn z82{qHA?!!icM`XMD3U^m2m>UT2R&k_m0U4eV1laj5ElNiL#+C(N=C4Av#N0Ku{dd6 zY~$cj%|!CxbU8zs9#!s=kAX9~*=ei?l{4(-wTa-sPUTBWAxSm%@y)HVl5MV=%HMJw z_+~o|8$`00Ta-YS0ElaA8V1>I$p;S0+D>N(8EwHmojHh3s6ZqTVBvP3wp1-wUefOz zobh_vLuD*@Xlo4V!xId)w z4cY$9e3{cVkJ)BGSEJ6}=hybA(d>Fy3=_c^VZUne3)0G&#}PZgnOa!BWK=;}?}?0s zN|hDUwF-ncwb%ByjFHcb`R~O9Hsy*UFpXlUwTxho2JW;|Ns@o@ z%g(^+8QHq@2_N}szbk_>z8b#552efaKfgdqu&miHG=MyjDePY~LL^krBaesWLoCCL zd3uwNWoodPr;sO&*QNZ;(r$+4XFA$hUpsj%CpGC34aVYU@T$RH*(b$<@IsFkzfd|? z8(xow%MK`7(Mg#C+Ks%)-v;_-Jc+GTDhXt!k)>?zY4&G`APhUJFX-EP3cAGnD!o6n zh|U5A=FAz1jk}eowVaL6gu^9Hz@YDj| zt6d`&9|AUNkRcwywaYq+{Q<~Vu;bg1Q`)a~{yh{A@alo&)hI;tIBusOg)&`uWfW)Z z@%RZ4ch2N*ujKll3T@Xba|9?r2T}kN1(M#;6v&Gf1Ip*^KLLTGN&%>#^^x|w#fk;z zZus&<-LG**`H0G2%8tJ?xX-Eh_P|0xzJNn`@a02GQaez`^%a1i#B8Elc<8lcFhj=x z5Sn3V=~%`pZK$Y9H)Ov5f?0?&cC&Rcc?H~j9}(cq+@o${k_V~y{aQV7u+;o zmU2dc+Gp`)_J6Vlsa!Nevx$=Mkrf_zp0KTv-q6h3^f@ErH|k2om|I>aBnCts)*WJz zJ_H)j%l>XTxIfLBoJ&G~XbJ9ML@|$+VLn(M^T?CH^Lauw;6Qw~_Q(ag=9`Ri{T3%L zx~R3`1x&%-tZy1J^SQ*Rh9yyzfu$?uo{8_slf?5f!;$=!%DCu>{!WH^&NKJ^Sm}Ch zg#*KjuPpkdD0+=QwBB(eAJ%)@t-Y~%i`8Nd)5;eF@fwzqx%xChr>LHO8SrRjSI3Cr zI88(b@!#{#~gqx?gwNb!I(nhE+`3jL-g$dR<@=(rX2iIJCO3K zr!isTAAhAo>fl=Ai3#^IPs%SE8(*Kf;*dg`+~HCGv#jJK+5Q9$WzIPc#r>;leV;&QI!_#@ECH)tJg zKeAq5c|w=>DRBjT)((*$^tGPs7p^Bzs>z{Z_PR^H5kK&UF)|KCHJy9Gp0 zLes)?;1V_fIlJxnppz)ywQ=Gn(}~mt0yd)`jH?!WsvFnD_!QTnP36a1m(m>|6DkTqs@#H}zon3AU{S|ob&xas6)0BmW(Ax<^ z@PozZLs_E_HS+<-j394 zd+c&%xcb-$(Y}MNE}b~BqvT42DZ9cS_Hs@N1WK!7k!7r#ql;R*_CLM^7CH`=>RC@a z`!@C&qLd1Jlfj~Elh96%v156VVMJV)4N|0{1%TlYe`pRC4`DACCo7fKl{Da=>v@8l z-*tFs1d3E&l5VN))vT5LAgi{ql|fy({3$u@~vR$jF4RMV?wfRd=%9_&;3PaZA7eWHQSLoeM!wn8kS#_6Zg z(}>V4v-g_?r%yG0PY?}q$yhGC;#{(`i2j1wt*_O1@T_sC2}n%YgIorQW8eX(&hi|_ zc-pL%nMg)Qhj}!MIb*{6?`xrDsWX$;NCOzT&zGIkXAF7YB_w-YE$=xeEx~sVu*C*f z)6PVC(;nO&^G799a-MEtT*IdvD}EH{w(-BBj`l^}dSqDj+j90WzqK=DYRt+nERaR$ z-;%qty9M5Q1mw59LU)*;w?eyr*8@e=S6M-PX8BgNm??VTrofkv)pEma~nL``>0HZ^NLA01IBtTB6Y`M~21Pl;aoWj`^a z{loJcyiQC6IUpK{YSAq12&IT>EDLG!8ffzjn7!1?co5NjJGIvIz&C}OV58|+60yPcVf(F)H~;Z*Y%B4o!-ILe{bF$SXBI#|2R?~T<x=yyefmo7e5kGlwt4snUgF>j-XlZ{5fC@4M}k+)!|z+?n2AZx^vf zsp=G9JT)@dVJ|+d z0ed`_j(9hqk*GDO#Qjjk%CN@xuk%KH1rMKktB^lK+Wnk5UsaW@7@WwMTHFic4&C>; zpN2o+Xdkq^a&F@YgPf=cFu0fK;IyJOp%w2lDZ+~nnLPSC%aC>7v@0j+*`tujR3;C( z8z`y5$}#1OSvQ;M&oU?$$JaD{&yHnN6_qZx>!Q90y>&=4;Z}ij1*pE8pB&P-r|k0m zpk(XL>Uzkti^?~^@?&AgUIjY^m(MRaL1~Shv(6y7bwW>{5`qTzKTk`?{e?bf+{s!( zYuc#{j2X;5j#1&wy<`^Hn5l4YQTt^NP!Kkbq{VbMiv8|vpo~?0pWwG0+E0fdwO*RH>8t zC9yKYcxC3?w0(1~OPwiKRAl-)i|s*iqoto3c*|r7{$z#pdlCZ^cON?ykMsbH(K`Bx zco)Bqp25-4|9l#ws`$ja4`?o5Lx!d-zEeU;_VsxgB>r=C?f&AX)0KnnIKOeTK$b>B zPV@c>|1%E;$lzPuMT{D5?RMvKv&-s{p!m1_Dsi$CB6#fKqC;qH2V=5vGsb^8ZT%#KNqPZu*SG9y!sE!u7@aK4 zGYaBl-J9X6_oM4A*ZA_hRJo&;&R5pUr(b+}tMT|P>3-Y%Is0HR>Kk~^nVe9^NDX%8 zDo)nN<{zAFY5fu^vNkDC<&`~fDij|6X7D0i@u7R!t>o0pR-K6qwh;f&c;5XtG=3ujn?R+h_{TN91i0oSk=IXkfUKJNO52JI8v)+T0dC(E18 z3yNDE9R11>W@Z+${sQRu#!6Qt5d+XHV%oqzy!xc z7qij(3?!R(#jX0u3~QU+vVoUIV9ySLo3uzjM_hs?43NUWO-vur9e+pRr_jC?#4bJF zk5h)4U1fT=R|W;|{FFJQp3KYv5BDY@l9_KR=H{wt=|x)O*=SZ0OCR!p%F-RY%F3Y|HTggf7AYy?4z8giTnoKWT2nkj`=> z-8sVSoNczNs?>5ASJcFMo6iQoIx#7wQ%#$((Md~7Cn(SMITB}PJo$NI>caEf_)Dgp zT|Xzaj>G0lkab)Uh2xbVR5xtEm$}tW^r=6J)vq54aHDheNLqJ1nA~1QbeLwOn7N5H zBnl1+Os_!gXPO4|F2_Ip_fWZgbXTa`ExJfoh_WUNwxAqnHss%m<^cT6jR^0f>2IC7 z1bYvscqf|(##BmCM!E~TYfA4FkaxR7#k;kkr$OY}^%mU)^jVMKyjU<;`l8>Hkv~@* zy98}gzA@@jOzxzMH z);>rtw}9yfu1XDfuz(5ZJ#Yl$&6yyb1#fU%6!bdXt&=AyGI*P4U5Rq>sKn@?PK<6$ zAb3JDFFvlG&~%qh7fE~bBIM%bN3N!C-#`ki7Loic`#HWbytp@AC7ygB&JI%YdH*FA zj_jtJZ59ZNpA1c~J(|mP{`Xg95S6(h_Qy$x84s=ez=BQ!ngenx)a@V@tcmP9`^v1< zKrR04bcFDMVnm!4n|QmzZ1Jy|pvCL`w&nf@Dd;Ui=tgMQsiz5{yJ3wx-m3k@+1}NR zBB3Pm!K~r^q3s;QzoSjTkex;|7dTHtQ^V;FSaVu|;idg+M&GCi!K~U^1>N%Z;1T8Y ze+*UN3;3_I>VLlZ-+%9m82x+bwN~oChn$9iKS%0T)&HOO0o6aie)!e@V$q@h%jMP5 z(*@hS4;2DtEdM=pOF1~;|B16c1m;=u#Y1>CHsYXCqucS{^i(y0+4O=lC65DgBsJl; zGLNb_ak+AR#R0M?HlQ!%-N6Ug!u> zjnx2|xtr&=qX3um^A@F-j1Z9tWjttQy~5berwxxi4!w1AN7g_hG;ks;0s66A<+^b_ ztNEjTfyH*c|0H^xo11ae@BA=a=wfF6eQ0`4YxQ%oj|lZ#e0f(c14nzgz$u}SVuL4H zN(fXa#BOL^qaUH`{cLkqX~_?@2tQR}RQWhj`m?2m9?+bN*6zR8B#`+YWabK2V39Of zw+^mL-<*!Us!}knkv6drA-3t@;83IgeZgxI?Ize)ZE{igsrvT;4*}U!B04(N>BnF? zDY|EOjuEP?@BcY>bc--ZKFHYf9@in|+JsqRm`UUZ^&!ZdSUG^WcpD4e7uKv;C z*56-iyrLJM%sqH0qAci`!}t&85~RWG1tqTFL0i*aZgj|e2uTo3Ue$7vrQ;%Y`gsVa z6Gd!>AC3H#od4GJbPsl;UNYgcjq&|58zlqhUz?n7L@Q1?t=SIrG9C88sy#GS_8$P` zLbbZDQ(EGvVsktp^|o>zj~+-@r#=4TeCV=NNd;578?QLYx=EZ(ir6ObdCm!XpIAre z-(RenPwR|~6N*y1tC4V&%jD~fR_cpid9)AstCk(MnMF+vL8^LV#*z7{{oLYdW>*n_|B!W72$Wr)w@2cT{v-?4$FC6P4OxWEJC%j| zysC^lw8u`T>47f-ESV-=+xmb*^MvLG)1>aQMrnO#76tVZtv8i&uf}dF#obAvU`nd@ zZ1}+Ta<;{=(%SpaEm3`AqLmj>nR|gUm*jrmaCLsJ20s^)ij+4vxWUAMX^cSiht)9E zF@M-uM`qlXl|=y7qzq*rmEq%0q zt1UF^$Plzj#jcpw2MU8j`Tk9LotzV!HRx5XdoqSkc%-5&`u5$~jM+WaesuSAhHTKv z!Ri(}kfkF%xlGSbFUE=eH%1?Tuy&JfS9LuL4>K^bFmXwZD2aH(VzOX2ITI!Rv=O63cg)qn#$5O;%}pUp{|k##6-WTE->p z<3mb39O}M(;O36H`z`80okX>!H*$v^u+!+8sW!R~c4S}d?piSvP+fLVW-t$er~}g;IMw?|NR!}7fZIm9F_g@N@`(&5EQXoObFoo{@pMM zGbpRjp0LptNl)KRubrK)sq8en;P$*G>h9O4g{8;bK3NQ&Vn~$mZTketk79^VUCQ?~Wh+v#ku1~VQFZV52klu8ZrFwE*X7T5p=<`g$$kee zHmegRxwgQSDt$>cgX0|tj6BhdsD4#HBW z1;+a5iB~fH+V8I>7Ar5sjUqj2%_@GjuAvv<-oCugRsL>ka!+vyNWMp~DBr4OEU?pA zfd_w~phw5CN9nLOaHP;;fG%9gIv&-iyi{7U(&R{;{%hFb)`X3(VL9UB^E#qd{%K$$ z&?o)-;xVO~@yo_m4}YxH+fXrmIzi3TeY;Kd<0b2a^aDqY@$Epf@_O(44UN?{ppey& zY}R5~h?!eh0A(^=eB8@n^5Z+xlIjOnI@Ug+9x&tdk#~~|6XEJrC7x{}(%()BEctJp ziC(J(hwWQ5^jg6}j(8WIhnYyJ1mJgSX^|O`klQFz<%?rPUKsonV!E)A`&ey^Mz)LH zErsjW?pbyhUJ=CsaXJ@Ez;nss*+!?6=os`IYTt;{`VsT8%Sm{muJ=bO{m7;_+~IS= zN*DrieLB%zB%$T$@$5ShS3Xp@s$LlZ=2MZPYu;!LUNnP1=StLrs76)+ddm8dD=R~Q zhcOW@y6%!LdCS4Xm)#opaYb2At&sC~!zb>;jdm6f%bt!f0vF@Z7TbXqRn)?)*1C}5 zEFrjGpE-3ft>K_DV4V2lK9RGtYx(v7)rPFTg1tI{3TboM zL5%5En0eEv^7^sVTTZ~#X&Vda9`s@@T+BOJI%P#MFAEFqnvX@%EE8JbC<= z@ilOmBH>_J!UPQgV-p*H)ur?;n5V;+FIL-5414wewW~F-1cXMOGw^J`UMYiF_hyYU z(%5N$d*0ax?-_ZJWBmuu{+SF;FY?)Ps{9owlCCvb zt@W)+Z;VH%R)L2+?78X}4`iq8yoJsWZd%t-4NP%4J;=0yB2tjr3HxFZTf zm(+eb${41Rf)wpLx$sK$Efln`x59ffBw0EmNJE-jY5w$buuuAg048gF zqdluQ$Cr1!-AwX(_<}XT(cA>p6+5RPckD|7QoDKv{12*Cnvw_#Bw@Y9fQD+r>wF%r zTZNodi7s?766tVvp4dT5f39%xh)8bp^$xq>E7o4ozOZQfi(eX(_2!|F5y?i?OuhiH zAwAx;wz1chulO|f`1gP^vYANFxRSPA{{_*sjw=Ou(ZIuEIw3Y-BSt5%N8z758#*+a zen}40(HojJC9>eo-UV$!qo(vA97@Jsv+ALZnL+x^j4S7UBA9M0-3^9K6Vsb6Ju1p2E-u*jWcApkIfWMroXlnZQt$(LP2^`TXS$7w#QdbJ7LR^8)e< zeDPQX(B^AO-~DR4G!_8Q9zb;l;vr3~<1LP8B^!dvE847?ezln245C6jKl8g*^M#B% zt~N@B*CI@-BD>8S zGv(IhJMw52Ns;)Yzz9bg4B%1iLY~Fc4Bl@Z(WKtlvPqQE*FI3aS3NdiluKRu{5ADX z!d~rw(nl!z>Kki`BjCl?#9wA6a)g*X3w+&#GgudoW{{0>-Ku??U);!)md-fWQepEu<@YY?w3)=U-+y4$s*zZ2nluIWwH4OgG`1fY zV?Sa|XsQV}X-Jv9@b}(dPTY<6?Zj@___`Ox{gopBE%yTW)tp&I^h=mU;{S=E+ycU{h{^kAjO7&Uxmw`E>friAO(4r~8{1t^yQ!c?!!k1{W3LFRK^Rh@C zBz`7@qS^_GX@Yb?;`a?k07~iS(V|y0-Taz~vpEG+SPS9;@(Ho*(ch@C zr)3-8*GP^ouB86C&_D}hnCDaf{DUHzvX*(MCmJf)+HM8C7Vd(Klmw9&pb4xE&yBeFwlQInC4{d!fx>Pr<#ezM&r zNwE1G8tXRmO8|~_r;#bJfR47w)dZlI$M4kUJ2Pmdsujm8lo60W#yy|@JU<1qHu2-djE zv(L;G^hbB|Y!pNIx=2iU($}OoCm}jIaR>G)I57$AuTjbzQFq~QACF3ps+P2HCc^K& zs=g7AOD*kbbL*;i1A^MlG^C?r_GyQ;n#oZRq^;GtTELCI!IZ&>z zySb0F{WF`V@1YrOZ4+Gn%qHGC?5R0pC3VU%tYC)O*v<&MGR)!)q$mqdcW1rI3o85R zq2};mc5ceP7cDu^=_~MMA$FZ=HFHF$>e8|B)!Zn;c_?U2P!E&FY%IvfL*+c?t}(Tr zY06FJj{%y>&K;`(RhT@Bu>h*{-$}Py(%l#94)h~}-KH*_BhDV>O3~`<`!Vyi(7|U;qHK&6p8T5S8NtQlsGP)u_|K>l=^yqk?hN@Jb_)L^DrT6;l1kou&!uNJ{ zlY?2==Pher#j-2s3X9}D5LWm`(3K)PzNP=g2bkC?5bZNpS@t?u^=Ux0HlwSeSH}Ng zf=IvO+duavkA*#I=uEC{L0!^_PweAU%+1{Xh`wv);UD34t#Pv=AxZQ@-X+06!!d~m zmk;5xIp_a9)Z5M(CG4sI%RK*oBJ81^yjZ+KGY!@O#6UGaH8cRN_~C6`_I**;N7el@ zSM}m548Gm}`{){K6D$Qqz_}J}8oCY4Kf1eb4JL@CbGB{|*Y$%{2CqW9v)YV4y&^VK zokyK2NXInT^ETc!rZw~=V1J0grbztmVkYr=FfdR8S$7Z?SvoaPGS{}G7R1=hHxqbz zwmPy2P_!bJqx!+ut53D1T!|9;F^y&kbBS{4io<^hy+p>2O|o0gom%6u{Q?b~#em2@~A^05iu{sY+i$ zn4PCohcB7xWxu>q_(;KJEldJjb*%CHECYJa8i>?|#bnW=M>Cl@?>w7ydC3o_O)(RE(H$B$V=O|j$;qdI5SV$g}O%TCeU`JmX)05cU zSB+7nas(lK9(R}1Ir8I`brw3h%H~|3()Z7+6pZeuuC1oSBSZ4);9h;--}==Tr<(iz zUf;{u^#{{oty|aX(YHpDT&1Vx09>sl;&N~^3$f0qXTYtq(;K@W%*!e-Xj==aF<~c} z0Kk%ynYMcY*rExI;QjW3BR%n$Nh-jotUjR2RaV$D$!O?k;IYQ0H^J&2cO8P%zQskaozu8@ z-U|B9TJu-mEzs2QkZHc$X<-or=S61HZ&HTeyMZ@hjp0skCt7zBSuQG70Yuoir z+7-<*!F-*#X{{b(CfJCMN1lX=Gcy(>ixcTw9h{?4x~P6d+W-cBT%%txzFDC-$2ncs z@1tp6i+iJk-2kNTb2>g4437zKVezN-0Q`7CCUPD`d#c9d3H$S+?hGrlRLQGgzS7)E z@JwTHQTMx7)x7S!dNS!$>Ee%GMYfK}hnI|!CSh(HQw8(Tj00u+u&*Rq1g5=*JoutQ zqgC#=NPnTDlS5%UL)lzBQR~TUqFL2e~%7$dPLR+(Kk_CPVFKi%@cd*Xacgs3oK>|Y~LQFo^^!&obq@&N|CJkcIrJa&JnPdDVoQeZmQC-)8$ zyu#b`D6_lW8(_ou3^1RT$E$&afIc={7oQZSv1fSo2oL%U!o8`xmAtGc=`CEU1r#QF zDCty0bptw9r~T_kE2qxlrmAJK@!x5xYdD%Axov_kvgHOv)6t~8A@}sy=v_Lryi~5V z7}46_!-#D9^4ju={ra!gnHN<>Tb7xM^jD{~>oJydQ&xfC@64AMuc;1o>wavl4`?+&pDqIY_d z(3_^nu`PoN%@090_hqgsQT=7@F1ZUE{d}qf%-6tbpv?=QpFp>5b-_}~(L;o<*yDkF zqrGM?-KR>`Yfa>KL!;R9rn)S6KT~-j)LdLKNYr#${brQ?swROc3qaO-$}t^Z?WwK5 zyLEYaZohQ0@EKzn(j}Vm5?scV{AcyV*^c#mRPnd@b)%1-BjD;^{}}(0<&Ul*0c|jt zi|)Z7#DVZa&&JJ#qVYvL*fAq9px;8(;&U!VJQL@?dKoP|ZPtQ{$5cTloh3w$1gLW# zd$mq1f(8!Irr~HH#FGR^`b;43>}y1=j)2 zlQ7y}^NwH<^GWB39VM$$%GLCe=t>n87Jp$PtSfN$sd+ka=AP#{3rOU;uz-iIaZLA< zNko2Q>bCkk7uBOAYzPV_+~l3c$}ro|^Q%VqhDQ1Z4BxOGZXq;nof8(PXK zjt9~s*NH#cDde>^r$s6`C9ok*E6YgD)NyL6spRrjz0i7HYtY&lfjavo08b^k+N5dU z(Tkt6AT=tFA{o0TBh#odWb@_ugWgZV^| z=sC??|1k}=RmBo$>53^DU03l6P)s!MEvgM!K&wqV%zPgz=a%xhU8-UbvN+=2~hDn-q@Q>t=%a#u|@-3Uk2WYjI0R9b$>7CWs;luWQKW+_2Iy?t1-o!VDP`}k{KtvXho5kB z^?}gP!Jp6`##81L-DbgMqceU(d?k4H<)2`ccgZWlj4;SZ_TAjQe0WIW%_X9|hwELV z2tZ5gXRK+1wNg(eAvi&}PwjW;V&9l@)#M@?*A+6WIdJg9zLLnI|00nItpg(rpNWRy zMg*&xoX5Nj^6x?8(sL&Tc8Pz|3D)tKZF77~lMk#1bnPgW#5J3&I=`-uGmg{tp32vw z#(H>PY!X9)gl0cc&*iM{!{{W&783vt)RwbCm`P+pH(v}R9WOGb7f1<7;vp_?s)l0~ zTpt}c)ds6ZBWebHv|5x5Jki z42cPoiSO7i&UBF(^!EPfp%A9QzIU%Ag9H2L-Rqx^z8=!wpy1Z>X?%=~aSh-&bCj%% z>h!g@cUX=Rhw!fi-?p#Hc|vRbkqJm9b}D}SdB>Z)VP&talzs^NiIvMTCK9c6Vmd3dhH~5>@T)TAugB-XyG9V2^Ssxb-kJPGy1|gYX zQ*RBtb5BZ@%)^uTu#RIzO_NmY{kbcx%o0j@p6K*S17pMc_;;yG8TY(hXL`^wLsz<< zeZ2VjbG%P)kt-7eGRt@`P%e*u{bS39E3YebQYG`WZd&5G3iVS`x zNhCf1b_gTi29UVD>PxXkzT^Se-SOj#1Fdy0Dc+3{(pex3L+q|{iT3HZ<;>R?9^W_J zKhw_`r;D`nMdme%B*Hv#Jb%E9x6u8ldSKpoi$cGX#E$hYR~~51`99~8(>+xbK^)NC zI`U0cL5;e$0h@o9SIs6p_X?9x?LZ571WVS(*%^fZ#ms4^>WRZ*Gr`NvIz_E3$okcl zWZ7RCl{cDF9<6Uy2hL8rld55BqaRqOndJvJRG(|=`;pPF7FsRE`*>PU!KXyOo3 z@GnxQMA9Sj{n?SFTO^|m?~2NzW)*KSQpVq-Q&x>No)CeM)|5$0$NHU7LVE*=W{Zx3 z9%mv;FwKk@@b{4>!(w+%Y_hJQfuQ#u6Ueh~QIILLT&8bGS>ZFfiTYQ&9h2(Q8T>lv z(^tR=Bh4=F`6?O0&oTk3ndc8oku0U*I(-qV2|Y)7mbA5)aBAR3NBx#yFVN86dDTeC zRUsEq{IEpHw-nK%j^J)B0gF#KHmnoLt0zxcEgw9MwHT_4pZ=pl{sQ)Ly0mUD>`WvpHJG9;Irohgm!x%-1aIzavvTVPe>QO#z@a&PgfgoL} z?A4>d1mM%@!TUKY$5O+$WVWC0AmXsoW^LC=WS z+GDtuos)c~_2qY+iM}#L+Hk359#ieWs~nJ$m1i)aXX00e+IP)yshGipPHf!7M}?F# zUDM^`=H#NkH{A%gX7>@kCH#BH|D4XMxgNCxFbYKDNo7t21?QhCu57ci+2VWZ#E%t~ zJdVRHmLJ?XvS7h0S;b3@DL-nh#@A)Kgm2E>;*+RuN~uaHJo|M%oY!;ATv_*8N$6eB zs~YuRm+CLbS=cXiP%hyFwrcWQgV{k`|EDkcfqs0{Z(fJr33`?ffqC31OlsGDMWDJz zlS{(nR-vw5kLgggl}g|9cmD{x+?#okqNDShWruUm6#)r}SQ82w#^Ik9zfpx_HQ(@g zi})anH9A+@yZLgntQs2iDa75Y5sDfHqcd7BYJSFQQUJ|_dNbG@Pzp0S>#J2 z#mkRUxCK*Z4KKZmq?cPJz^X5K&hZazH!$sFJ4ij~4`$xvdGCl?%{t!!v|7ia=&vB< zWY@$5uWx@j|LU!M*TgRT_t2wfOt;Vlwm3%!7Yh~EDk=sfjVb+xTPceh)<&aCV4{YY z#Z5%1c?Vj8N2b-i*eJnrwR5pt!Wbj_`mVH0E?$aL&p>~qn4xV8+zt*(iS(iG5+rJ;rBwH%D$tFI4dO=n7(UGn|Ha# zqZuMO4v-?T>g0n#;Vv{NNo=sc_jb_jNQ2TN<76wX(>2F?t(7b-g50{dWyt6w0ky!N!$!vzXj4?b$c_Y3+=Iz2WMO?q6h=}T}M$`zzLMK4&$ zS)e*bNEXGi)TO*8N_U90IsyzYR~gF`%G3kC<#|09On%m+UZ5y+eaa5)vO5i|4z{L( ziF#Ddv*6IVP+dn>kt#Klyup_w;DFiq%2B3mYvoGU4^zUqYVf&pBPeARpkXF7W$E!N z+0+NI=i^Vi+&PIMTH4b#s9f{2&Ufk5S6?2Mv7kxq)Tj81O_Nn?7aE7#9nDVjsslYw zDcAf?qXN&YL24~{OfLoUkKtu$uyzuk15+Jt8J>G=Y ze0Rk@tv)t2V4(B9=}`-Xd*{B9nhuq^CCcoZw{Mu!qodX~vMrmlZ;h>`0}oK8%Olg~ zH1o{OrN+-jDO$vz?u$nMJgs;it|*3#BAqFz8(x#6@r4&xkLH^BGZE&`dmgPnrJhUc zbV-t_QlCq?qwdh}R<^y&dHDUE|0)}BY@Brd?GE$iiyHlj%KA*}Nt(Phs_E`OV7zat z{4o57Vm!CX+6I^;xA)0W4KVWNxhdn8yE1!o&G`!3xx}#_C;?F@C3DN_1EH zt}e&A56-7P{mq3^`z3Mi2JXffhnuB5My*`yiBPK3{d;_EXVOB<&c8Y+#QTZL#UReN zVRpXtU5Or*ZRec6Da{psxymX~vAz&O8n!3C@}VLIx7cSvO8li$8P)$WVL~H^fnU7f z^Ep|E+&@&Q^ZoyRJL}~aDR}Spe{k}Ae4y6;(0^XIYjjK2o1{qOt^g<~=W)t$a;D_% zDL_sU*1^g42jS=XIxQIsQppSYHXZv)9IkOakB6mpo)fznXa9(3-JK;(ANoUk8C-c( z#Sw5QPaDkGt!>*W+e9WfU7(jl`AhOx)4aQKs%D+$^zWF}DYiNkr7D&Sg^#B@Y+S>3 zTr{Tqb^hVG*0W;Zy^)zNug1@jUR6rexiUo9T^){{kN3`#mXbIk8b7CmR z`Wsn8sb8bVpH838;z^U ztplW=fxXrFapLZUHn}GSZx6~q9k=7rI!F|#ys5M46bD3DrbFAfs9cq7)0!b4)opk` z;l!$fM22sD*%eb-*X3jvZKYMQ3cq8GuisoyFLaV*_Rzu0(G5A-T{>@hZW;sFAfn*j z!OJb${tf%LmIDI>Pgh?ED$oY;Z7F6>C#6lN7<tZQ`X&QfwU*q||d_`%@GM&+`ipGux@)y-#-raLEJ_IuPWJ(ac? zIa|8a-u#wXMW9VnWPUU9#(@fOPXh4_yEIt{N1n-C-*$^%dqfoNytd)c#g#3Qu&iR4 zq2R(^h3XejNHO@!e|X8h^RP2^B+Rp**#Nekbja$g@Y%cNZT~d$PSBT*^ebTA8n@5= z61Jk}oyAO3##6$^#J-2g)4e_|pR3G^(rAVqo|BAa*ouFD!HN!92J9c`J-W5^(D-nI zi!t$??rz;ED6FB9nCO--M$>pwHV3~jvg4@OowX5}0kZw5g`SraSKmHT8IiGix)5k7d1Vu7nsQD^hei*Ci{j008s~q9JJGtxA=&Lap zAfwhJ8d=#{-R%u@^l{JqL3ki3-g*M8rQ55K?*fqS(oO@Na7@1a-!9-3VNi@<~CJsfQml*NJ6KmTUs zw)s4wB7)ZNDY_?2YZx0OAA^$}+2Qrvuz(}^Y|pDee=MU)3~KM+JN>$wvFoL+rd~0u zQy4uFrp*ii8CpyPG?jd<6p0yD^)G*0GV0P$mm?!crr}VAfBV-Wl`XOqA$z4EvSgjgo}`q0nPeT)n94RX+$C8<2t_FS zF3cE>VUjIdvd37*mSvc+j*RJl|DNM{-uzzuU(CV0GKYJv`@XL4d7hth7`M)ghTdtQ z`{_y752(f+w%}d1e!5)ytLI6~u7*vRq(`#B+n$}*rk0TIsI)itB!=~_F>>3$QH+g7 z6jNPI8!Ffer*z68Z}}k}pA_V>F=oD+SQ^!=_ou4C;~CcBIdV?{y14=* zmXNS8sQG`Kfc*g3UuWb->`vMM4mep+fiW-tWBC&=>|TL&PwgCX8{|mT`)$*mnUicT z-=PQlaJ0n?i>!kkMLX=|ztX1(4ze^E#l?&YviYD7E(%;(GiPrE6|>h04X?T29td?? z&%NR^)dMmkJB4(4XDeHbhcWVbjMyeE;+16^g>!)cK-Q^Y=ZnbZ<$DcX6qUU@9OEc*UVE_g|=(79WuT7p*P!^Vc; zst166^UPd?0(n#&9t|OcbBnbW$!*6z4s*9mdW4A4lLRUFdjWrIGu`P*M*UlIw6Zj1 zZxQ1im!VnuX|IAo2Lt@`V0%%kMk%_p)ug*qc?O1@Da6>Le?qUfi99Colo!CG*~^{= zW%F*6GoU;YwUezfNhWVE4CcAVkYnK~fRzuwQ;zIrL8Q$=9u#h(sDxcn8Xa)Lrs!N@ zT{ORGF1NGXBC!f+`VnvH{o2j;X)(0E{GK5HVPnu`ejnGhNa{8B8*vB~$#_60BjdKH zo;kG{JEYmqTRyMkTQenYCR`uHf)1)c6i`Br^I6{bu23JWX6oD@V3KR==79nf&mUGi z#5Fw=y_eCfCvbqhQdV)L@6DiXSITV$t%>jYXPRX^Bs7J)QtV`&B{ zNfWb<6pnihH(R7~W(e0tG&TMdvqZOU{A0`iaK`8E+AFwd09Y5_1HkFVcj(lV!i41J zT@mNlLhrwZ6F;N6iqEta?!?Bv6bX|*?4bBC(N)&!<~!?NUI0W0#|`B(@?8sqO>AG&g>gv=zvlwrXRagPs#9BKlcxHa(sYe>aj9XJ0FFVA zNGn0;@eO*C1`23^&u7nkJMZGldN!FdJCpwP-1rMZrf*GR#O|&cm1b0%mnZEpVIfq{ zjj>(9Ys_2wQ_f`nC7*0<$IZA07zB;=8Z>}~@>oQ{xcs^A+YS+Rbu(+zkj3^(B7Q%8 za)v}G+75NdIc$V97oUa96_Z__H`RiX5`iPHLVIDSiFN=zxQP%Mr(^nQ6dllkJE6LA zhX0~#;^e6H$;l1)a+Upz(7LFeWsG`3kN&o;3?Y& zdN&LOtlilK?p6lf0R=gX=WO+%qbf6;=Qr>SJ$Vxx8+@*xSp!gaw+VJ%3DVU z279Luk1b>I)~j2OaiMmKE88&I?jPKr`wa)cJMg%cecU@RcE&=Gd40I?jQ6C>5JsOe z#RG@&EBV#;7=V}(YKt-)FA55eHdMlcYFT0`#Soh)mj8%?((DI3EEo#%qbLyN)I0VZ z#5S5Fe;*Oi`5Tc)ajzY88#I^zuE6k8zZXOsgd<9 z8)NHPT7j74zUQS=W}6r6e4l;X=rc~sbE*gUwVA7Uvr&Bao=^sG4d?sgCQu>)(yF)lo~}+*;qy?B1o}+#hef}vf6ubjH=R#)G8-hp0B`o6JikV5aQe} zK9f?BG4C^yaMk(aC5x#(g-#9DZUZ+CSMe?%s2gZ{!DfC%8h7B!C z*R@$#{31O*nU255NGJnyjv633I>T=K&sct81`R!M8z2J0Yj zdcx?yjc}NG2pl`cpgUNCObtdM-NyRW_Z=Z2)7gYGXp6S~C1E{6TA%x zU&Y)&Es!VQk0B8EWZS|999pGrc6h9P>7;m}w9KF&Z;C}k$}*^Nbq_Tehs zw%5Z*Y{27KrT=(ACEAr@Mb;{35m)nKC!nVEkm+ABwN}!zH?=-y!HD%g_0J}@c7sGlQrjUW@;A+? zom*xzeaIZl@TmG2;z4F*7sle?9Z0_g-oS*Z59zhJv+E2SI+}@&-*g%Xz2q(8=xG-7 zY|Otg!^Jzt?8G!4e!edKMERSRDi=Tb3B=r_#KC(|jLl<7GG6A5VoVsV6fy0YxZc-W z)FZ7|m&A1%YX{XdDGjt{wR!B9AH|5P_G9R1_ardgdwsX+#jd8^=WSRtzz?4Pks#>Y z8P5os=DzRD@EV5lONH5hjiwoy8s@(qW$-zgmEgwJ)6<Fg_p2^f%)>^BiMLMfHiwtM&e*ek#t+ZE7`m-z>DlYzE55d&=n#OHJfhLn)&cX*A`WZ9j9i_Hj9J~)Ypaj|J$GSXz}A8Xd;meGPvF*Lo?Cp6vtP6v!L0ydFy}%44kqOD(tv|m z;n+X6$Ev8KBQ|L@jxxVYpKa>KhFdN@4%i{_hRR`(gCtkd7_5mUN0)D@5 z0m;C3-XeHlWN2~4jogNhl5F*zb{Af)R%<4yz8p+cy~89mCyeFpVtIZ=f61}jqgojGFs;xY=@0{(Px- z4RiAsZkDn*c=@qtdmud5xIjK?E9ks&)$d8*$}i93a+CnDv5p&zn8~8%k;H{g=jex;WW%Nuj37#n3o}- zqev_Z!UBO3mg}6%dyKtlR0L3+k`}L{{fUft%ee2HalJmi%W)9-SZ)~kjIyFKHcob2 zN(U@E&hQ@Oql(4q1^LiDN;`G`xzDaN%Fyr;@(ks|gpM!H)B1e-luN_ zNuIX7*uRLy*)AkdV^M-#)$c#Nd;8v{bmLdJRApyMC0+Y5d2)l`vtLv&^tsSS>UGI2 z%bMN1^?|8dONu2>&ped8m<)MGDU4Lj0krqNo)Tt>GjH_kILtcn-o(*w*EUM^`!Iup ziblPOP{Jqr5j^rx!$K!QQ+LZS>GIXs&3AXW1po1N`3c8izljq#O^N(#D^!?>2U6(Mq?=&Qs zIeL$+LuUHW%AK6#jU%(AQxVxfH3}qlib(g)ULYFMCO3SM`A$u z1cghTk{ewdhar>_bncFGKPHey>6%$#K4Rp$&zMkB6*vYmZo_KEOaUJk+d)yIn1@lJ zHXqy`f1Dc(g&cfnJTuWwKe^JLb&W0)Do%Im!DZ#5AU#>xsH^5hH_qd&BhLKXo41{w z6zz3U90IQ7MoL6G{Oyxz42BN&TR8o#>;&d`NG zRu!l0iNlH&5UVTYz)pvI>cad^ybN62=$dwP#gT6SFXmAB67(3+b9(9&<}U1{SD%x& zy;|H(X;GVE*4k#{Go3wiS9A+o4K%dvpsj&EuAF9a5)!OhWyf4qvKWZ4RJePB1x7SVvvIsk& zqe)xqZ6ygZ9cFl=0i?a66=8v~^btfqgON@-Ne%g4Q6>3Hyr=9`*wUJX=RiB4v2QES}!dl1banv6#=< zIN<|EQAwFBj|0JQ)&<&Ns4Sl5mL>HommWT>;{6m32|Png?U6B=oN@WN$xn>R|2B4Z z@O08832t=r_fSL*hng{_RkYXZulxh)L)4!iW=dg7chlE6 zJIdX0UT$`l21!D8g0FI>FLs5DUwKs6icz9z@A%N5@s}lkDalkZ;@HdZ;#R$HP!($0 zQBi6BEt4T#=F0b;%yuU~Wox+_l{31Q1*N?Sh0-iyhcNB@DzST6l{@bPK z=iJ3J?oJs3KdKb~*z3+2{j9Z?g(hhP9 zn}W`zsf!M(1XUG7#OK{z>bN3~`j<>9keF8oXrT?%fQq3J3x+=n!4mJBjLow}1IGPW zu}hkt2QHWAU~5g~f-)Z&p8P}%um5-`^^xtiOcvr!%mpMq;FfhCyP)&%M*m-p)XwF} zHQ6K+yPPL8Zbra`Ws^TvFD>LfNxR$YlE*G!vC^qe z0&3aB?hL$4Znt0j_#ioU8Ff~54R0KVwuJs(KCZ(x#fvef1)F>cF`D-?VQN?E!`Tl8 z@o=5KqqQlPi~im8uW`+l8CqiXA3aKdWr?Z|no%n~p;^~+rhF%daI=yr14Z@^2SExA zYi=xHue8r$XIz}BF8mxib7r#YAR9D~J8v3b2XIrOwynXs4K)tNK@06A`FZzuzC z{m7j@_h0_|PEh-pe{43j)e)1Lr^?GWdwoVD7Bq~~rFh4pbvns}9^sn@*+fCgdL+J! z0-Rg|QMc>iWf+Cec9Y(3Zvg7q`Q94J#)r!rZ4k~DE?g!73CdI*?7W>f=wD@>VHlf4 zw&+O@F@tBFu7)&>Yv9dPd49E`YZFac&WIindO8!e=PP}B!pnlT0O~Qk-_KSupQs6d z=CsJ|)9^y4rH$AgYjc``qTAP)2epY0ZN5d9k2e35;UTUKe@ssb1SS-ixr&Gos?tU6 zWHt1tUqhphI*4oZ--1Cs>GH3(B!u*$<-T$=sfEt62ZhNYx}-F%gAu*^6-+nU=(#LS zwawS9*{iYBrj2rpj1~e%vr@RkWBO4Mn<#%>_w#-CTZHLm>XoO0+}woC7A7ag*;*o0 z#+8rysBH;1la7xAjMGh_614o?7^eAbrcpn?A};RHbWdQ>&u(W^$1TTt^+87|#lh<( zB^)0ZGzY=#w#z?+!u_$j2Wx8oazY{~r7Ft(gxb zlj`5MzFXNB%2|bV&xH*QQ5mGxOp6yfFxs=9z2B#JSQ2Pps%fOEJ-=Boxqytg=zrBV z$R)?`m{H>F#!iZ+w2yL|!qCchozt|8Z#&Nm;$|Vj4s`$d!mP0gT-;WMlyK!^q~7m7 zB0{CE)|IDCN(a*hy{ck^)5|Y33`T%XF?aD?Ez`^D)JxHF2A9NAd{a+49g_a+-+RyA z!X~hOYUD4#N^QF`D&v$>gA=oFzJ+%v9UYa_I5ifQh>h$?HH;HJdE%_6W7dmvNo;aC zL%1IK|4_5bx2yveD3b$EJ6dXPRT&hXZCmtr%+g$p>CUx}$xBboglwg|1@2gSo1S#k zC3F@%i0(T2w&Iy!%r%bB7k>Zorv496{y%;l0pNe}^8fP&{5^ydWL5nT1>psiUZkx< z_WmFK>pkK3B8c93|DR{3xWxZ~?*B{wZqWKK9uFG`M_uUcb2YD}f+-A=!pAnZh$k&lAXEXyd z?XOf1c<dG`io`myRA`yCY@k$pWpD5fCmTl&KvAtKbTA_UlEt33l4zrXxdFFe7gI^uWt44 z%dwEi@hWVVUrADsa`%tUYgCI_V<5K7jWPR7PXJc%avBt59VUB93`FhTJLo^@mNIk| zxRiX@0U~*v{K#YPLc!OGT(E5&v3|)kKOltLFbE$-3@SqVTGBsWMZ@!pVOlb9C%qyA!_8$Z3V`mEo zB-5uIT4lbUg3XG1n+fY@aw^+CM>Nqj zkAe8!-YW9Cw%FfYvNnR#mipe&$^7Xh{iBC9)l&kK9^5v?UPOH?I{M1L5L9(}e^prL zCByosSiG(a2O2vBP*6|M6JbIJvzx5bv!mh$CA@0rG8%6k#*Kiq4W)N8f{Ks4ww8WZ zUrV}*bBpGo)@#A2$+-;u?~Uw@bs%d-2Ijr#z2aN+Coqu=FCl~s-t9Q|Oed)guL5a# zW_YybQgvSU!1>!*NsF_Kueb7*iW#C5p?KuTjrBe#`HrfPo@nx-QFs0eR ztSD7wG9jP&9Mr$!RMYP>9NN-jjeV8tl1A%IH;R%709 zuXql!VgV0-wBhdi<$WOc438N4$F(hsOAxAjip2YG7au>n{__}cdM~}TaCOYWW@L_9 z*rTyf?*({|S&0otQ~zv_%#EaFEgqrOv|nYK(iC6M2Ki-h3yB#)u{ThtlBS|4imu=S z9&+OCvkK`TJ}2ADNo;4B`*e$)x5JHsm@9P8xa|N&px~b&9aCg}Z|U-hTzIYZ-zS9g zjutxk?kTB5t8Eaa*W;ZS zQnK{LK1ls#qdxB0;^lyNbV=npEP0}F0$IYUWVyM_cjor4+ZFtU83S$YZ7j(HJn{4l zSs%3n@T{=p_s`aggv8gM{*hRlTR7V4e@P0PXkRy2UU-!~q-yQ^j{wv<3h;6;%Z?NR zB=|gNp!xr7c9R~+0^iQ0ZaEzKvT?+~=aBO8jP5kW<~8c&(_FYMde~vvV`rkC;#l`K z-?(y+Ku5>m5EonT}3HzovDUCpOg(`cz9ZSZ`jCvL?Xe;^l$RKYaN=) zXEVAzPCqP+lcsdQ+~V~nx4BqBKI^Xr@{tGLhszs*}KVnqg! zd37hT)T@0x`!=xgKjIe#{YYF)J^Ub+YGD>ZfEz8%?W($S!8#IvK@Rfj?ue}j-5G}2bn=3X2!uO3HlBFYDM!|9wJt8TW@vj z^t?{^x!Jv~_|xejc%(ZNPf=liP zidd5x4%oQdB_w-c(k)S);bzrIeR}}i34Z$K1}~4>el9471h1^y{T+V!8J%nb8bK)# zVbhT<(fvSdV^u?~DRuqf6DvxR2D{T4{*zzMhutVeg7Tbw$U!Iw#VhWR%di2rrT^F< z+!q`>1T4?Fzf*1p?xgHVgJQw8gEF0vedXmTt~KUW`pEaG<6Cen1a(iu73?7_M_1ZJ zILKDxs^NeKF1X>n!=erhVO4mN@)3r1hPITf9QhXSAzp5CI6@=r7NS@-_)ACWkDc>&SLMLr_G4S(KAsYRDfL08 ztFpA{BEZUXtF+a~(m&!?@HFh-eh2g`SY7`rQtcWxfPQ2tZN&HYCEJufMb(Umy2RUv zr$xF|%?|Yvc&6w+fKjJMCg_Mx%Y(y?@?1J(xD-4=c_?&oW@@*{n+;L1nMPhGdl!#O z66;^yn~UZun(2FTUC#-;-89{PNM8@v(U_G0B7hp8HN--HIITI?cu-B(!T^tJ$hNHQ zTMzBoFI|$gi65}$CKkTyx9@!U!z;_o&r{@%uSG!RfYDGoKHUNp1T(|>-^YGTk4R0h zDX8sVr(WyuuO>`5W`K(+ET$rE|2#usCpE1(o2T3#>Dlr(`!%Jeo-W;-U$&D_bQmz) zzYd88Wt@dg_ToSV!J+oGH(PotEVA<{+TYM_fDcz02|aut=?*AiTr0b{SEZJy z(&@eWLSz0zt=of7##NJ!=ianJ4!)>S{Squ5xgW?7c4D~F3n|={-`AtRI5Ol|!<_)P zBjj~$WpQk5cFmYM*Hy<)@fY(rfX-Bp__KnX?J`jsBjIQg>txe(FPkm84JO9w2AzRK z-Ab=SCuhLzAonJbI0z}vXi*;TK?qiSmPun5Z4Ue$uLeKqX#b<@8~{gnrL12{GlMJq zNt#a?F4ri%Ke=Q?R_}hY)lhn`pc2u#hgVHYq3+i^*xlM66+gtm6wClxLNC&GN-4Dr zr)kb9F1r;=#?^a~EdH*uew@+r04MQz8R5<6M=@h(a2=nOe{?LEiR1>|*?+VZ3k5@R ztx$%sDomV_42F(eW|Y`ggm#pFPxa7GjaMW;RZENX@gR~?wIyl{3qbGD{2U?14*In4 zGK2iYkn|b7%Q~rF0-$|ol-e!MdP%Th3`?ibHpV0VMV`s`2ObUFzZ0>%+NtEWEe7#d@ejQ%; zVAGkttqk7*s)}W#buxZm;5df2`b7DZTTYl7!ta_fA^BLq^2*(JGKCs`Un|KIHNnWd zoDsid8|2iS?p4;weF|BoAEW6q4ZNB<1JYmZ8P$}ZPV(*IhIu1G0U`^Vb*xNT}jWj|IGQonk5RTbn(X^3fuwB7jy+-&IN)^h*h|cU8)_joTkklgk^L@RSWRYpd$GdCld zW??`J3?rVVWF7%a`_AaN`pV}2%rT0lWRz=k8rMu69pV4;tGnaE`&fT%*B{A&z^I`BcB4);bdF0zrY{WP#KJ8lhigKpR<0pD2Lhu3Kd zTN!n^>=FGes~HJ~g2qdo`?CqrjRO5(SRSm^9y3bjsquu*?AxMzbn=L=?hx?-@c|C8 zrNMhKW(aSYI=o5mm{g2)%tZh&YdnoH?rT(Ls?aoAxli^7LnNFB9uCgn(}RQNYI#2G z`Rr_%a%!C`{=KSFnBFXS;*QFjkO`43cs`*1(IeZe@gt$+4j&vBf-3z(+1g-ymIWnU z=2+-ed!Wf>9Sg9dg>NO#tcNi}=;o@W0dx!>qj9Vg#-)>98F3i`Y>VBzC}mJxo5g#| zJd~@K|9#nzt77$DRfzoT6nVELl$T)$R->T@vDx9Fe6-#;owFr~K!SBK#aGqW8zGoH zN*;xcHC+z8lBm{Fu2L{n(=w2mnD>TMd^xJAS?Y^R#LBBP2DC$~#c`VJkf`Sy>E-#?Rm7CX!vPPB3_K@jHjTd%PpXHn~9h5Yb5tz~@OIl8%qCWcQwB1#Li$0XK`dCHmB~XY-V(ca{>vp8|+1 zix_CNrQ*ZFm;SkxRL)iQaTDiHcij`nGew;=r*ImpfEvU;uYBp@D1 zPTm_>@lJZhuxbQGDw#*vLrEjs2eu$1@`q;{BQs#Rf4@krcf=Ts7;r-OV;$$&{=X$Z zAwxHR8>6GAjBW@lBZ~apWM7 zj%9xz*M@REs;VXjsqd;>nv~9n`XYg`;IZX-adL7P>P|YfLg;NRx3q{cZhnR?rV_gv zM9otb_GM#s&NjE};Q6nlxJI>~=ACHk7JKwf8LwH2kw3`aN_b_@(F``r{LPMB)v?Ie zJhg0Jn4kv03rOg4Vx3&j*raj%)$=?wl{?{FF4g96bmjCE^$4X$pYp}x3MT&K!#tU0pLKW zytM%fn>vaCXuID+MQB-tbO{#UD0Tv{9rU!|w*NLfDT)6I=7DVp8nhm*p7V+69`S~* zGX2@g@gwD;#5wZb?#N$Og{Q0+M6I!_Aj>`oUbuprA%%&wyhZTLyxJUQ*ZXQjY^kcS}VCEhisWHk#U%G?HkQ6r+Sv5U&sA)G?p#k~nSt z$=SindaS(h)35R6g8oTSyKPOwfrDacg!_2M$=mmKB9CgDO)#Mhmt4l_mMMPXjRG%c zfnRO-kfU$g^X>9Ue^sBn3HmIk-{~V${}wM3{eb@|>>BefH(j&iIvlV(p%H$i=5KN+Ra7z#()ti=V{PQ2Z$cjf-@9L)dl$s=7;Xj+C% z)PIlbS;*!lmyH@te;Oz!HT}SNyAD@u+ijQMleWBs74$=c;hdN@2Cil>+ib?#x;T6p6V znfs3eew_2kvi2nMHyOoE>$xm)c=)-Z%PaNZZ z|J0^5a`m$gVIDb&wh_duT&5i=xhKG~>uPl9Yztm^%%kQsI?7v!hP8MY{je0iV6en* zQYkY<+ywg_UAG%gF%HdgbF@Nvw@n|?tP}MzKap*FDt|i?38`7q18Yc94RRRqtlD0t zM&?g{ZGRu;mnZj4d)QwxIO~e6O)FMVCxYkZ6&816drqSdh$PC6RVZeNX!A;-)7nMc zKjt{pcTI%q^3TicJ6Z~(S1;?twrm`&ipn!^egQCh7xfpMWf+olMC&9kT`7WS$DJ1I zyl&m+Qz2bXXMGkcC`lbz*KG+Cs0PPKc8@j&R)0A2KOrflEp#U}fPa}AOq+5HEV?Ly z8LsUEKN2}(u>QQeBAbloTb?I?{@(r4*-DZUXsH45FfI$p23ZX@t(ksC(ot5;)*jZiSmNa=w ztg!_juB_J5EZA2z1y|v7`^&gvn@kL9N>z6LQAyu^YDa|>aw3!zM<*}xtARK|nSf}D$|Z#_FxA_xptEWSOptK& z?+$mgWa3!0q{YwMr`#V?AO5~}O_v*jaiw|g_%ouX#pEf+vVG}SAJCj8ODhx$1sB2z z$nJ`lVs^F`1>wJ2Q)*Pko#vGxbF*H~3(zp@vFuhL1~ivMz66M(lofM_JJ>G+i$nf) zsIFG7r-?`Gx=?duBM)xLjSm|wjT1kIGE!2QBr|ZBbrFI*Kpk9N1&)tXvw|(rmmEXT z;H|^a$C^v`Mo;K7hRrnhZX^*-b3VYxPLl-SEJ0e_WE!Um6}S$W3Q+=DMf zwQtO^Lp;mPg!&LI_2%}-%k+M!oYBy`6EF~Pasa0s_wPN%G@uQN5JTCpw4sXJkojAG zkz4A4d{?hKcbdHquj$~5yYiKcJ0lwKP%J0w%d_WtQy}3&7g{O|xpb}E2JEYY_=8#b zkOROl6oZgB48Y@H<}~#WMd;j{bismb3b(M8$u_T`6Lr7^J2Kmt>EQn{@-7@AZQ{Cr zLy5EHtjFaA_hR|g9=i6e{w)X6Nf4GjW)lm{Xp9hVlsPrgIqpTQ->o4;FdTUCqQ|nI znfX3;mc*%(L-vdwJ)hszB=I!pIoVJ70}VJs9PS@mR|RQgPk!68ofKY4$IrCo(+yZk~1+1ZhE(4I+h`*fLD`J<> zYPupPlIZ-yKYar_xCt5WKeqKXy5YGK-#7Md2`4a>XG4Og3!|74u0i=Lq*E2Z*0F)s z!4XsedE6PRE#iUBP06`ASKBB029s|hSNC+f^34eJv>$M;x7ZF&kVtVw1?TEhy6{+A z!~Bg2fmf^Eagv!^86gCOVmZjmJ#-^_hllLlhZuV zBh$w5suGde!qNxpHe*$^*$+8#A#ffe#ncQK0q2Iyc3?fKX zPYlC12sWYewuoyJ=x>K-2PN!0syEiHudz?&C{p;!Mv{Og-qaU)S-0=)bsL1ssoVVW zvkd=ekH`nj-8rnSBxazPMTnYWIW!$v*$SfLFS6OZ#assqQhM+Q!Ah)%?Un8Sa(~?3 zQ55~C_9R;X!za zt`Q%BNVBPzNDMSE*LW5M@F9Ff_wA5S9EBIv6ZeG|P=<*~Eo>3a9Ot|68k#-R;(dgl2 z;Mw8fHFb#Ob$p9g1TKDwkpczdbXbgG{)&1j#~U?s-Bn6BFMw+jYbBbg-g6W<6RF7O z{>0hn?z;Kcn~F}Bgw;%J2({jRxqfo=#%R4CYO#@|o4mQ|&HJ0wtl&=<8)(y$F=3kK zIQ_A)i3W<=OZ3_M9gLq=uW7elXo9@cm%3!miFAKQJ=`GO1RU{UNx%UfRc=lPS~A19 z**_B=L+FpPr@M4Oc=`fvr5~Ev3>wTlc``NyOA{wXP0{o8UDdeg8bOZ6! zJ?{_ANtKUJ49i(~6}olx*aPOZu6G6kSHvlkPirV%w_;QcJ`o!yI1@rd*u86f_G8TqT}^d zysGilT^sBtlZ?WJi~>rsi6o6|7MTTv6AA$Nd{X5C=$8HS@wqBmuYCU+BiNA+g0IHb zU%3tz^rv4ecl~ui6;69Iic;iE0P#$+mRSv7C@hojT`vi&z&BrMA zZD(^DKJ~7-F>}UBHq7&7o|jF}1WI#X2WXhwlkKp)Mg61WNn39P1)OLiDr9Df324rE zsiC;J#r(Y#<;|}ZnmoA$pRRWk{KE9zQIk>Ny& z1fRjfA?DMPaRWbc*KfHPgzrv$ww`J{yFnOmG3Z+S#Pz6FO$~@2VPsw|iHTbJ<78e> zHr$MxqJSkJcVcfGq(XFLr^&p>0fvPYO)gT9_*ZNWDIA_-`+724p;M8V_u+cFwQ^*# zc5Nx!vu~AZrK}&d;HPd`7X&k3vEO{XG-`cYd=$6dD=GO4eH|+E7tIL%`2Ee!Oj)=| zoX)E*f6Lr1_J*nHDR8NtLJRe_T2SKj?+};Hyq7?%lD)vF}2@i z-Wl+p7bx?#c&M9RqLg~ete0*LM1*%em<4r}WCAeay9k`XuniDJXL)(i?YA9F%P)5Lu*ZMBUvd2i4r3nv$0CCc`9Htte-%uD{ZbMFpg+Te zVfBygDfHkJ_R!MMJV^)#L}~>_Zk6&z|K((WVW`wX_BZO;zmvUVc5UIV9x=d$@fTbM zk>jUq8xvC<;JtE1!&5_yb+pGys5uDH>*yw{(yw~oqP z_@LLvRlA|qk|5m{E9zJ^MKCHLH7Sh_Lj}-_;8x$Vnr_lRpWy6;@h@tY&Cgpn;S5jl ziA;s9e!+j7)_mYnkGSTw#mg4jol012{)*+yP#ebn>7Q-3k87+)1Ene!zP<{E?B6@3 z>rR_3s@5)d%kZ_x+)Vr~Y*Jqb1Ic=OS9e2H5xwstL+!|a8G+m6%28beMI&DCoEK*S zTDzV9H$p3mm~2?ccw!$ySa&q(eso_fr&OoP$UU~_ZDrc2M0+Dc%}V}Zran!`4(e6P zZ9MImo|RVcBMIFIECZYl<=N3nN0o0C^(gA~cP6!ea6c^Tn0)>Qp<#gHk8d{h<8;W5 zQTb#2+(7s(E@cS(PkW}0?Zy8v$AZm_arR1K;^R(gic>iKP7D#ijSR3Rz>zOV#yV}(pMWH3 z94LL5gpFdPX@N0B(=tblVn4RW!GKmhsfR=6k~?GwkD~9DOKsFVAq!m&3O@XH`SjCq z;W*qN)SX*SDWXc^B;$0m$A&>2jVbJWRz1mHC%O5YPbaMy$E!sKcLIX*CWnO{ri@Mg z$v(Md0SKaF?~kY@2$8+DJYNqkCwV__EAX4idt{}^^2>Hld=Y<>x_Rp>*PM@KkSK2? zv?ic9kT%eg%96v6;EYfT&ClOVst~@`4GznjV&2aMhm9zR8i{(?D!QF%Ns3Ij+)V}| z_PbadJti>(FH&WI1TFNAv>zbB>SCSh^9S=s3{O*9ZS;(}r~@&?!Fqssjc(^9@7}crAx8AsUg}5|JZ(H)}#lWC^v6c24{P z4-OF*5+~K-1g>fm*pI&DO*PC3{b`Sk%Z~8p74S-5OHqn?Jr`i#9wRsSDa3xkR3`2$ z;3MyUd1Eg@zm*#*9p!H2E-&5)048;6c%T65)g4rzO=b?Ik0cvKC6R+P~kB+i7k+Z*N2XlE)m&!iOK1;Yot zraXQ@`(5y@`@Qq*kndO zaZ}LsR_WT>Ck+2;;v=ayC;uOB?-|up7wvmnupl6!6a@iAiUqT|_`YL5NBdDUlLFO_VAEB7`ELCJ0DRkg_Eq&%2*<&U?qbXT0P6aPJuR z1A`Gp!rnW3?X~8b^FM!o=Drk*#4ht=3Sn02ReN=U@U|sfZSWT70-bvvU{#=a%G4~2 zhMP3G0g|ow{6j0IXUh4>u;BFhxq{kw4^qM*gOpQecD;MjLD#WMTcOPcL5*jjm3nbT za8xce)dD?D9NVPclNAHJ5PKI8hYW1rAvb!MuhxsL1zN~@veCZ2>c&-ywa>@Td!4=P z`bMk#f_=)V^b3B~S3DsI=s0%yZN$vU)A3gvU4MW5dFs@e&tgU`yYz>;StcC4dHhi@ zTUGXOsUqv!Lfb-%E^I1+pl&j7lIr<62wFjTRTKIIn&@Jr0fsSDP}T?j z+0hOe{dJeV@^H0scC1-Fl@O9VjucFa?XNfgm9q1mtzt#wHr+NHFw}wLRxomT1pRe< z{T!f=nF+pmO9f_S(@z=N&IUYyU)RvHs~(Q49y<;vMy`J1J1!F<*3rQ>W|TOG`t(6_ zik7pzTXiNGRt%5LWCfCisWNw#Uym(ad_EID{hr+uQAq9A`hdI3K$5I1-jnO9T`wPj zRaIPgt`#Ws(hGQa>(Y*NKEccs;bY+C`Ath28X}L5G+Oey=EZe>jJN$kI6tqv5^rTr zSUP=bJn8JJp0monW+R0@1H^kLY|Q2KW%RiztO?W;QS$NY;xnS?w~DLZzI`q}eIl|I zWAAM-aT8j%PC^VLhzx+@jTjk&PJvK9i}-m0iiRr@z~TaXYngMczrnGfn=SXKI@4ri z)M;3EI4z*~&uk54_xacd4tu`)A@arkzT=>wW*$#gPbFX1+Q9$!mFy1e;U_2ps`P<-H zS{AUFdVj#WFPmJ!9pJ48G|(>qk~nv0KJ;9WjA>VaK(#x1DRQVyygWjPd!>pDN`3Iz z)XO0iHis1DH*P7uS@KssgtQKmeckZa4w-t@yzvuqOA3M-o#OFNqZzRjNmEwJhzrYb z>=*ucpO&Hi7~1PI`rK7OH| zO?{@yQ@+jBsHYhOez0cml@gB2Oiu<%7816p@AVOlq^&O6*S>j;kf;X8S}9_zC(TRn zdYD^GF7QPICsg9bh4=B4aniJ*tLn_3%d=pHY8@i_q+a5pzw5{)1qO+>1msiV*Q|c! zJ?u2B{QHEy^HbED_eJDRY$1AMKrI8(d(&2Qi2RSbO?8HJIEwTelb9p^#ixm{IBdm*y*Ubb&yE@*p=RL4q+AwfwpSs&;0tb!;b z)7Hci-QY(iqF+^U8CNdJqda@Fi=|Faav|6=RC?3KOQLwd;eJRq3rFlixoN-XWXz;a z?In9^zb3wqw2Tik@HvTVvntlt54qQDHsjRl`xTc~^4CMDW5|;{{ivMBEvRV-ZY0PJCx}Y@cCIWPXf>72Qm+^U7;deQ60q_NL*s`|% zQ)iPVB>?c>9;!8Sutn#!4&ZNuBs(RZ@58 zR100HRVwQOzN^zOuxN~uFSPpgR$^)EVwVT-CB3`syPL4Kb^!>5oqRPytd+?`avV=) zUOY#T23au4^0~n@T7&gaj)!fJI|>IC%&Zz(nYrtYYRI9BPkEZz&3Bkxh13XtVbf%S z971dB=#PSxkDCrDtLRpEbp-}Lr@tInO%*owFn)TLdj)#5UgLDYz+xYnv*j#2P?%?e z(vIz&r7gOre3$AzZ>msdE8?V;aGP77q;ZF%d|O;0SoqJ?47SRK+W_tsTNg6!g5bZN zA1DeYVMj5-6XcQ;W*crZ}Hh6F%JRb$9DycDnKimcc!W6x0PNE9one%=pK^3zpYj|(}y zPnEi2^GqxIA-LtkcyrkN2mNqX~ zXVM*p!uTDSGxki*Z2R$H*Wga^mv20rMN;b$*PJQve2)cX?Zz@-Fr_i}Wx-r+yOX~2 zCaLdb_7=U@wlOt0!Ge04ZM&qwQ3W+yf@Le)+l7DXG7!=Ez04tdXYs9|tPdcvB4geJscEcwcCIeVT`00=k`e0 zx)ooq)<_JTAIQ(4)0?k;s;sQS&L%euJAKAF>_>M!J%`Z%4WXo!@no{h36@eEMGDMf zLJ)c>tUpunbr}}g)~vK3Nh(lR3mjo~*N~mL%w#W@Av*Nn`MobXgs4ApuTRCAB-w)` zHZ&D>Gp%=hla<9i1l_&sq?ZU$RUK7S+3v!5AV}}2kYQ_MeqMF(jnRZRbL3a6SzXC! zwIAuG*{EY=8;zIT+N{2XiN=QQd9-dpB0O08>oT)yyfZw!Gl(|!p%hhWIJ@Bs5&3PY z_d8YK+gJ4=w3l94DmuTt#5(vctGH!TqqK-7*Z-?MRrttE)3_QV#c*`YvOtI<$|LJ=oQA;K@UUzLi4|_${tO zq+6gP0mFctijtzBI5~3=YQ+V^CL8y)(a*Fp;As0+3Gq~vgL71LcK%&H^3JiDxPTFK zO9pZ}cCTi4#@~rA525+ztdYi?EO3B|92t{x2E*Oi>eq%0oO0bDynlZ{Js^S%qDO5* zqF_JxM3!e<{t!k@F8UYdna`eU*Xu%Vpb`r^1BFzVh*rLh4%DDxN8bjO{4@B0f)y0p zD`1@16X=^^jKJxav@?x`f4iNG{{GJn+i2c*sR43*Y^%YpD+do>@x9RoJiNKOU#=SU zYg>Ke{dPJ|gkdWLxa7@_YBF+&fJu;B8wG_h5$B&x6Ma3mu* z+8~?>$l{z>gqWDsH%=s<@B~K!(2eAtD?@fQSgcX!=T!R zTPx_0;MH}b{Pzw1(9|nyBnA=OhuVbWMX+Q`wqtYye}T(enYWsMHXl!32%0@N?%L{w5|LV! zfxl)%NfcXX0hZ@nFNsPKD#?un*@2B!e=5mgyB(f+^}&reP+jqfdZWxAQ*2>86)8Im zm4E)UBbh4@Ls!Va5dX&w-i{6|`JCFVU9z#UDUugPu5Z4$gLUa|I=@>^&_!C<;wSeh zbc+R2J8Lc95TX7&@@!#QOdd8d(x)g^k-?TS35Vlm(;fFdoaXkK!wD8F%Yo{`c zEDEw;XCjN=5>pH`reqt8mg44}NsM(N>fDgR_ z;Q-IltQEnD27X89orN?*9jpmnv@tgo(%3Sg$MS!9twQ_oR#@Y|{qg_sO~C)<y14(Vf81c;f9Qc5tbcmkecDSHl)-GfBpU*zp1xqgn#`=BjuwDe#eh} zowBT2BPg)_(f-ellwet|>3@G68YsGRrX1%5K1?~4bofr>KRb;6eOs8ku@wGT_hCx| zt7buHSCkEXUgS1uK~iu$DC2YVY<4*6wca7>m}hd&0LQ0IT1kZ+@9{EpQL(A5|^%x@1U7xwR! znsL<#(ZJd{sF?Hbk)?=s?;jhGc@nnG##_gLRU2Rm0{%eAW`RNmVOx;;SIG~egD&(# z0}b|n<(z>3uao-soQ9OjK!OR|<5y@>%nD_~GdcDcxA59|`Q(@#Yj^(+QU6;VM)PNl z@56x}Y~8F&C95#5jH~Hol*=@);>2ljuqjF*%U2$_n>u;KpR+>mFi0-yQHxa7lT_iq z3e2~$(lWi8t0f6bi8DB(=TqhlyzlU$tA&22`||2)la}T+{Uocr6E-e)%f7gk*8kd| zOV$21YiwxghC5^b47)mciYkig_G56$G2WTdRcz)$(7WA7%TmteT$h%WkN9|>FPh^M z|Dhgm3+6Rc$+fqQE3jpkZ2hKIjv~j811#fst)4wS(sjt8Z(Fc$x0A!}B*~)`TI|Hb zkm~s!FU&vQxn5dR@(6R=h1dHBn_wmplyjQ&gIOK_Eu8f`U+q3B@v>sW%aXQ>ouWZU z#1e05YV16^60iR8_Xod*n_+?Tn-eQ@zS;4%%s*V6k>!Q(3IEBJBjBHnR@Vd2a0Ub* ztAspyzg}x`mXlh*9*)N+GOdNZgsPxeSt-8#(p7Fr_1dvdSbW9PRt#+ZjA9eusSKc% zdZYKULf-w?6BZdwC}+o7M-`J;VPLsF=(PCh^1*-<4lu;wcE2wlBF^ah^Y<>XDgEGp-f}oSB!M3d^~He#fKkRoIC$O-CMfl^m@Y*^Wc>E^AR($BTcC5`lp-=F1fG; z1AonSIr;c25vCS+>iZ%~D99M%8WY9_=jx$rgXGUdgcXkXcAi=V=UxQ?uj1cEa<;qM zF{+YXw6fIW{vv?F7OW*vw9m5dT>BlKi^XB#sw01J?2&CKU0$Z*^FMM2|8Ls+zkbVJ z{!Lxo+XpPr)wg#zWP5u5&#!!|FEquUF4zfmhwh8%{ZG8X4#!tuA+**s5jk*4@INTZ7iF?t%#sY0(add4n@_0-3afiff;H~sHlk49DLVIN2U(;;%GYlGlHEg# zqbEd0hF)^rKo1n#>|$@#@LN`X>rD2?FU8J6C@a0F!ptW>mSZiB$>%-adGM^c!Ly>* z0qcm&q3N2zo?f1uk~?j?e#z~cS$0WrF8(`0c#SB9GZ;Waq}jGv=Dw$IGs7+^Eag>Z>30^#`SO(; zz+Np&Kf`D-S$@0BPzb5ZT~-x|RrFKE+R0o5c>)P34BVA|aP$`Q>EG`NY%-LT_Bx`)eG zQy7=6L?5+FH@qoOsjG;Dm5Eye7NrlME>Xf1G}^6D+W5kHEVKp@ zBDh{*j0p);?3Q|hfq@#J*xO)=lKT?&zU1Tkhbd>z+6Bky{J7DQhvxI+4(+=3@JlqR7A#`L*nk8- zhO}KcGFN6mPEj~61h#QueD~ySxqwc$nn1S?RQx|FOaUd&rB0g)>&IyfG!NNu~e5y zem_L+blk>$AK*&oPGD(pYe(ky@{;*e%{S(@%A!<|AC20TGK+)d+I=hA?t8q79zUh} z4D!7{j-FivzAzdgpKC-cqydq^j~n*zU}t#I{F-#SMK_By8hfH)hzkv4hK#0p4=8a zEdMQ`iWVBOF$l~;#V_q2--~-k5TG}{_@5mLww3w|nBn%%4?%r5h{7o3?>xjkNkmDe zmln@ehD5)zzv9egk?n0%jpk$&DW3+F3d4r|m{89ov__=y_sRAG8=j(AmF z9~~H&dJK6mSxdJTtNqSTyrmGW869uhG?{x)wK_Lsm8l!D67I&stdDKC zC*m$_6RM1bt@E6$*;Y5GU{vmCU!c4?h|jTq;q_K7UXrSr0-8!4|Pi4!+J29&` zHiMjNoPK>X&fv(=IhRD@;)K?gdi>hb!4<}>vL_$0&oPIsJp33=fV{PXQ<<7ly0n=G z9meEWlTMwsE=#WDKWn0b@7krGjk06o3#g*1_o3Bea_T|(=*WEVxn_)?AlYxU6L? zu~BBA*JQY6%eXS@rJH)cdtJZLiGCm*Nu%OKC{XMhl z5p#(0Djq*;0rVMx2x#gjb4;^K)w#MM3Qtq_G~RmEQuo*$>c@`!X5?wV7}tSOGxy1# z(DE2ocMU|SC4F4<@5_MYOKStr>||72yS$3;b~{?(go#PwdU#4nwb?0o8HbReWg1}0)Rc*-EUaA7MjIwOCiG%4Cw&Kw4# zR^d9aY+$uredM0h!;2gp^GCgZwUzP$ht<;|pBo;k`*vpNRm(9RFb#nC!cwS*V69Z@ zi};P-#)npnPJ0LIN=R(fHB>m6D;=@yJA1V<{=C!f%E>6D6#nx>Yhru@oF&y>H%0)O zCWL&*bWE&kV7E2Sv;>)6XiK&g9;>abtvG8PEMH(zV1CF-%GcEK&h=@;lC$*$!gzIP zYo1VS;oRBDUE>@CAuq+>HHGOhogY&Dt}J#4v4T!Oh95O z?s)p<#s^S^0|Rq@A+T_hfrd-@Z`p@?LKG@BvB5WD>^{|3Qn#CgvdWh7<#uc5HJvT7 zCs!Bzs+w`EPAZ#7|Gru2-~mBBhIvx!tMG|HR58h`-<9{xcvnN1e=Zle&XR36j)Riu zX3^T{+epf(zU8&{EEC8DWgu!&V_w|;ax1~EA4UzAiad4|F@C1o4Gkr}u!=O>uO)Wv>yZ} zGbtiN+WBlq9waQq1teo`>unU4_?(>|-x=cwF&RE|eq5;hM$fO3fNr#J%8^o+kITu< z`me+hD<*Cl?|?6d8x-D^RThllf4H4w6Q8Q#V8)SImxj0(_%`&SU(q$5$Wabi3yiuu z)eVpeuylUOaBJqlI8n5PX`P)N&9Pv`$)es^=P${x@6qrWV3c;c$T;jTtRPdKgcx&% ztyJ_@hZBqOt$+X#@Fencg)xbMm{w2BmP2_U(X`YI$S2d&e~m>V<wbo^-zWui8?z&Qv;wn`=~HZoSCsghZY*(jWb#M3obUpN$ISbe}2Tm2wq8{di; z?k$bC1p30G%{$0CXen2%ysmgycefXh|1Z%8QIQlu^(@9D81cuWRa%`1v9pv~mRYuY zu-M4F`o@i2ZuxXAG+uTI@j%zEfv;ONC*Vs%#zyjX6y+?$%i2!VlHEavTq&lBkxLCn za#35GaRD!1AU87AW2?gL!s?IGr=SR2?G!+p-kB>A_6vS{^h(jjlg53#zU-xywr(g* zk9u92;`j?$udTCg>!-0eX zZ2c8h;6x1fbmhccaL^W%A8xt;)gr3ZI6B$8zF=1kZq&iEUdVgLeKj2gR;e6new z)MWxtd&nUZ($ryUX&oPEQ!GG(Ps7$S2iYrC-f7Fzr;6mobm7Sa2F!2D_K?0vaz}K z@}C{UKN^3fz!Q4NC3f$->zo`coZfU!7o0DyhmTJH7jz4Yt1|mIzG?L*Z>W&f%E|Bj z2Id-WEm6pS?3TIqP*r6Uw4SovZ814a^--rQT?AeCjJ1_|F{UX$fWc<-@T&r?wN7vA zXtGOI4>wm`_OI_eA0H6)?)H_tDnB7-dVO9`9|&)zUrm6Z{HQJ6NW7d+T^G&G^~({9 zG9yArfvdC46_LoJ&o}J&?%J@PUf59tW-uqXhqqyPS+L9+1LYGIXQB1rv-5+xvRZ%% zLox0v0}9VJoa2GfL`Mf+e{@jvFcJ4vX530sRJ`e!^Zj6-t$VZ$0nl#>u@fi9QcuJo zC#mst<7mn$Lc#$h)_P-$u776%!kKPxqf@JRcPs2`ZS?Hy$)ybMeY1{EfBHX6uPA0@ z;kSZum=Lb?7@Yx zff)S$W(MXE&XBz~73IZPK=p{s>897I5oF@M$h2gKJ>-AUl97I<0j`hh6XiMv*Pjnt8<%-4Ygd7d<3_Mvl%`xl1<5QTc}FU%J+D0^tKUl=sOCoSc1aEF1P^jb+OZJ5MlO1 zzR@c2q%hPC`W+RBVOg8v!tsFp7AZn%3!z%^z);0Z`ZK?}l9?froQ7Vk(-&ve?R#k;x{-rzkYFT1Bh zZXBXH=iB7B-#c??eItd+`fDJu8>Mo=hquHb~% zaDvJOUbk=G-i-Sqe|!9tUiIO$3xO}PO9qBYF$}0Wgp`)GEKi}`?j>RZR)pPt`fNS! z$8b#psv-V;rOzMj7crdhbpFyb?L9hq;pMrn-yuFU_(P*P8t+?+D-$iGd+HvJBLAsYd=;ncucUT= z0==HPI{2NlUHE6{Aid=>`ol=Z_>eWpazrtk0}LCwE`8?OY{wXTC`B@XR^m|{9xP=w zUv!mdsm>f=BIYv9%cDcqZ!fEPrY-VqUWfM-xfmRBCAB_ImqHHi^P90)p$KfhFp}UJ zvIn!+hoPC&m|gIWF=n|ndzluvunl_@#ISl+-0_Uiy@kF9#pzk&EA{H6f&Aunb<94QI=25xSc6hDPL4p^T`;eX zA6#~*`Z;v(*fr%Jpg)g4jrFmesYsXt;?-Fy%$%qKFnY7aVaos^1Y61<^vpp&`el@> zMYe}ccWExzX*afK97~Ycx2Mdt4+VT*<_`5aZ%}nQ;TIHX6?AJuwP(oIux_I1z*24~ zGN6?5apT&$dJL2d363)Mn)u0?l4z2RpE#y{o+soA3g0HP{hi;}gE$x18ky{{`6w?# zSi14q#$YW7^r>>+JCf!b`QMw zaXUYtrqyk1S^0ck+K5j7JYpiA<$mUA)KQnYbl<(~Q#y{HjekxtqtiGFI1g|SdtaN8 z)bjJyoH*zZ$hSH{WUg-C)qI zn&)fmjfz}n?Zd4Wf3&5{#usvf;~hC_-_>8c^}416uD?6FyrNQ;`7v~jYM7b+eAO|< z@sXh}Q+QE`MPm}%Fp2-{IARb!)zP5KG(LoKJ5FUSI^P@&_PU%2H1$rRh!yieo8r-7 z)9!-5?*w2=9{jv_`)NWq7{=o#aI`^zcFF-Tw*cn|W}N};q@-n=w+zUkr)g`13TdHJ zl~3~{diYG&R4$|C(oQ(m)G8m=e3w)NWv!xt&i+j z)Nm^92Vb+srH#f_=ZuF3w;Fo0YH?#XZoSU0Gm&^zEa?4W|E95`q>V^ocG-LS;#!^S zD4G(tTrX*3oAuhzcVGflZ?sX_>(hr0^!n}f)aV=+PzTeBe01FQvWH@Dw?YnXzI1Zo zmzb`tB|R)La#S(Q?s_1aQYzqe+^e_v4~h}PJwj+Q7UE){hSk_Z3;3NGt&(PO(dGFQ zb3B3gw&f8UNkXi;Y0Min>55Kb$MF=!R)5jN>C>;?<5T*2i~sV(Z6J7!&)CpSn#SN< z2woRJ62IuL+vZyD2}z2g{>sBa^5GgUUaZf*f?@#x(i1~TpNBo$hx+4njO4(5UkFFI z$I2k8{=TRHgd}LUq0O<$`Y@u(auE$o);+b0-_i8$@0*gmhepzPC>cyL`?B&BQNAw; zzY7V8F86Y;v4$42nX;nTX4}37K&ko~9eq^3)*n`nq zYiEL98otTEKx{1{3Q4qIRoak;YzKm{BO63;;T`YCRI47)td9WAFZN;@)C18#!S6?= zWg&XXH1&xq74g$bGzSY`u|Of0*Mhc`7Ch4hBMN%)4g}_dk#?WhgjT9}YY~{xt|yal zmx+mX_D%A83u2lo#*+gL^c->vdjj3@Csk&w!gPusP#j+$f59)=A8zuIi`Xu}DYH5m z4TDAp>cQ7+L02;j(*f9z0FWI@>4TjHepi!D9CWZ4Q~X*DoQ$9Z$!EH0v1gZbi%i)C z&0ly2swe{ijV92|d#a;UN$q=2c^wEVl^&z*b2^bC=HNwsenliht+!GYnN&UaGLx!6 zENn$8>yMOV)Hl+D>g(zrW>gj(MEQFYZjYTWXq0W(R!0l>Ah{@rzrW`Y%Po%a)kqF^ zfBQojcXvrML#5{^NHhhl3n##&&mBr!d7Vv&HtY1evh+*(Oi%L+cD9m|LYKZgf9Kw_ zwhf*G;V>}yE=Qj|+mt|z3noBu^HVO6J1&iA+7f@wdg=zc-|Q299Eedt3@nR(KZ5xv zea~Gq^F}|q38->N7P#`ql!o8(mK=H>NO)T3S?^Ui_XlT5xa`z7;#fg2C5PK~a8ga` znDEll`MJc4mEXMkGq++IDrpR5R)oT>$RXMa0L}I|v!5a6B_X99-d7(yzdpVI zSGZ5(&O+7?7*Kh$ttZN8*C6g>2{d#aTN^c7wh~FRu{=d5x)avXr8iSwS*%Q}*1#|i z3MrkDeSFW`O5)6ol<0jDd!Rv)1--Hx!g9HRFAm< z0x3PM^x^)u@vcz&fBN@;z6Y(9dyhzE$)>~O3^q7M^i8XkV_*TW*C&|l479Wjm2lC! zFKq}5`vk2RWpBSN0Rl$4k_9fwQ5BBG9C-FMQor3zcl*78W*9pTC!IG((QSPG=UOeR zJ8B{Z0|_D53QEn0c2|9W_54lN@t*WPT{ZFCfhgy#MzI>p8}O91$yELBw}O$AOiW+8y~^l z09dJ3ePxv63l&(PWk`>boR_t9WRa|A+PIz*b6oe2DXwHlMRH>7HCr|v2V4TTp&@87 z$c3>To1q{pm>t9Ptt`Uru5FBI9s~sBtNR`pSVOUNW8Q2}#H_hT12RydHtrO8Q2veK z>@dNc-*tb*>cB|HmuLW?f_`v&$gUxK4RROXl(Uqa1TvDSedr;==P$Cl$*Ti+vf`kEeRO; z7uoNUU+SjkJeQC-dMnW7h+}X?TK5-XsqjM0ZMR*k83 z4sLT`RxZwZyV}5?Jp})OKe_PFj_QNitf^+iF)g9XLS`ml0I*RF%hM_SNC!L`4uc_z z=|6Lw65>kBNViQJG!Rk?Vi_Kx8B6df%!s2sIL5AL5Sv%T@x9}c)wR#&+z$8R)F<~Z z8|VizLbzJ1uBZxB3er9{@RjzZKv5kk`uY`d%LfxnyMniO4;b9wT=6F7z#4}FVi!xV z7K!TE&FMJ;8-v-%+}DaD4?nfceQ;5L3Ic^$F-z|h{cS8bTV>pAzjci*e~_wAOZZZ&aSG~Z9aDNC!ZT3cFw zVd%waw4+{MVu)SondHh|1$>-Eec||O@0K@h8nW*Mu(IODp0>mF8_?pyl7O70NbOCH z)>U7%mb_ZV_kxCKW>&a>O*NUExv^kZUd~#dgm)NWOYcNT-AZB3SR6lh`I~{j6)*`J zLHKe4O$%sF`ZhQ|9xgX^gEi`)`FCsAxP`t2 z;9q*il6}qjvwE`nTyzv$X`>~}tq;9ky03{aoZf7UwmaXj2RMRwEsiV`=g+dg|Maan zV^8|^3bym*X>S~1YvVoe%@H8j z)&ZNen8cRdXdD8NDRpolukQ)Zyg5SkCpP?1gxhpc?`4~uNS>RPQBOk<89_C`A2^}DCxCB+z`e}q$D|x z8*Ka-r_Vmne6hBXnmGVW*Yqx_zsPb(Dso=%pC4E1uUa`|xhX-%EzJxgi;+QmfKB;G1q3+n6sWSpRet0` zd&r0vSinBX6cR+7Byw$O>aZ%{pm#3gDGd7Nqw@FD`%aK!T-nOFNRKY;8q~_{Dz3;gqgj<+h6V`%s|2ekROo_wRvxw2~ z(k?6cR6tKFC5Pmx!fRHP2B)d1 z*I0Ew=PI1fioj0}RBhha^C^9NeWtsWIS0RArc|$UtU6Lxj%S66kYoVcDF{pS_Ri9v`Ke5;&I5twB931EyCm5>NBVARdK9#N{ zH&e?F;~h|+ER``9=UxIc*qc{ahy()@CP&C?k$O<8KHHX2mf_CcC8P^jW?ZgLutGxS zHUU=YX|Uy~evda7m8#>uRh{GIalMCl#)O0O6aOZfC$SqvArB zs~P3n>B=cqRS{g55g_JO-6Gscf22<4LxL{KN!)?PA6zpw0s%S&f3!vyASQ4+ zSXvt$=cYEKy7FuAUiFV_l7an_)&)7N;`z|iPQL_u$0c-tf%SFIi3+x3vCIZ z;bE+pR@o}?1m?sJu1*8!#9H}+IG}nLeZl@3YkPxmc(^IUJO$o?x$6u!X*a<)`bvFQ*2_(q)2^7yki=qxwHbrceQTnHU?tA$ zNT$w-SGdmW4klp~ri)!|r)>@AkE$jXk!^t<41MPmQGw;=Du?1K}WGdmfi_!;=N+CMvPW{xXRhw^K0h;~SqBy61F<)KuZ zegqhc47V3zW3Kj*mJHRo7%0)v)r)|?t*xn!`-OcMvSajXqE^>O z8_~{_JH#)1>opLVBnY8+8f?cH18D|A7|d;PJnM#yv@54EA{Jb0fM`B)JiO?J$*7*m zaX%IF+a-SQcZpq;>?L+c2q3ZmePuY!$zLCiGQE1v`*+*DyN=myXLKta=2&AubVnZ9 zvHoSI*`L`GoY{6gPi(<( z?pnH$Ebn_AjV=ZJE<174Dr=1cX;r+c&W2%@XsphSXVBKKaI#d1L2bd%Cq9oK9YFJr zbt1zV>cXubyxnAVj1&go4wNG<$RQnv%>+!~{gRCPC7-OQUths}BR3V}o8oUI@~sEt z<&CYUmGp(D4WYQi`$mv7z|(nn44&4%=IwyW4~YINjaETy z3_&OTjzyf(T{?wi2|)7c>TC3jcx{ZJQN)&R1aFM7BIIPo*fs%%iL@sAP`X!R^)7FK zKDby?Fzi}lH>Z%X$&7zypY4qAuGc3Aqyz=gz75g_^6xKN@9R(;|JV^ehQ~YLy;if> zR#T2#G50A%v^J5ileIYoq;aRNI4IpZpQm|bJ+@Ij*Uas6O&_?jjr|)WJ9!yqmMl6o$ zUmFsKjLv6KjCYN1w(i?s+6A|)BRz%g75UQ(vtlWzw_&x{)xIp-1M1l`9E0VirH^RK z6CA&hTrb>>@rlg)HS&9f)Nc>`g$?<7g+Xm_F03(fzR|K$d)vo??4fXdr)W zC}_?|!L)(o85gkxjKaK{#*ebaR-#Gjhp_&ah61G}!TC(X*6BC?7J1`G709}WG$Zb2 zbmU;k1yc9>)Pm}F|H)`idID4;xN@@MJQXPOatD-P+rnLC?fXejK7w}NW~SVp4UZ^v z*?k@C13EM^h4j8D?m>hO)8Fx#9(7^mEO}g5kPcW`CW+03SlSFi0UbH)rd@{WovpG= zu47vL*y;SR{E**&le!482$mg@?xTK)yT7`Z#}6uf4uyuo`mvs9Evp_`6SeFz?_O}C zIg~Hhano*2MUCL6=d=3t#Yn>2@=0O6;44YMJT(Sj-LSxgy~n1|5l^=qqSz8w*$0yt z(zce+mf=kgTBbOV33I%Z&CFViQ>{)Oos&3cdLc>@Ywj+pS`t~$E}dOOO*NW8ZX&$X z_--RXw$8hK8Sjl_NK`)L&{T8vAGhJrD~ZPrE2S!YyFGeuqWi!PGp#2E5$rF}v=8v{ zdc?QLkvR7-ju7|UkHD2Z6E0XO#ehUA|H{}y$Me8=6!eef4(lA zCWSx>7hO(BYRH>bhGt%sd>RV2hVFo;6{g+p=>C3?E}yaa2JVRXdu}@ z13V+qLVPBp0PbYb+JT+9jRPcWK%mKiqRsY-`CdT}A~2=l&B-X#hM!`(s&!$i;fK45 zZ!^p{q2Z9+rY66FSAxo9CKP?ppNWCOM?UV^?R5Mx>}E4Xn5|RD*iW){XTGFg*?OMu z&VbA_yD8%^$zPWQoW?AU`^qQNu{WI0Po;jhb)p4ee!>|#btxx!k2L=@B&-v5=I(1 zA&5H@S2{L2?^pme<3{LbWet&eJvHeM-u=0c!bX*6sL4MOyEQJCSNDCjSc^P6ZR_3f z&7f#l$-C8Z!E8kZSj-xtoAyUqjcsDe=G5`ykI*6VRpozcA<58}n_R2Bxs7ocY5PsU z0&yoct7VAC2l^ZEG}2*aj%=~&M)bQ+1Em=@0exDV4Yi}>WNTd0nE2Jl7V-~ek5ISC z#t&8`I!n3QKWLxb1i=~ukHX*dl4>_OQXMTo=o}_C^E&{|C3kDWW$XhXYs25U-Cg^0 zyHtDS%PXi0&t3%rzZa20T|DlO<=LX{EjeE7;tVg;hKy+O-=^4^~`S>*jZh zo^5k~Ss@y&-6nGJC-jw0a}2pgw6$)f&xl=kAyCDt!rZ-*+=tWfKuUjX4OIAbN&NKZ z>lvEXfZkMIMaPL|O^un9O~&cPye!wLk%2~xZ*>J}`qml$yFR_smXE;uS(^c_x+_Cr zM&FF%Df^*tWeEFmf#JnftTwJ#N#e<4gRg=inBw`&{vmSursMc2qrFM35xqG=N0C;1 zFRb>|rt80Zr1Yv{Zo&(pM_B;vIsQ0{A*v5xcxuB99D_LNguQ{B;(hRNJ6da9G|{~n z>i+)n!NUD+0Nt=LvC~XobR}x}UH?s|4&9$d-#P=rW!ngQjqeM`j2rfn_^J1aPaH$1 ziOr>Ut?OZkeaMIf8x|>LgkGI?Y}G`&Jf8Ko+Cd~X#gzU?q)t(`vLJ^2T{b}k-vfji z7Pbpnc(JxOpHH$%lQ!Pyl)J%y#+IpPY@cZAGyHHmK!2=Tmr$x37|TmTe)|c>T|!`obEI;@V^J{*wVjYe33K z43W0g25F9Uq)(Zv64i#bE(bd+}N=u9}9~>$U5ll+xPLOcl_7SZs5181n(lKR_yqp zcFo^h92Pot_a6|0;Dpp=A%A>W;U$B;9NCy93#9~}ylEZ;%?MA5^7!Fzeq7<&^R}QkK#@Ztd~kad-A8g=J$b0_CpSypzx)2>_^oL(;0=jx3RgS z4H_lC4C}6zIhZEg20H7J+qO)uLtP$oEi_p@8nwmI5B1(E^sF`{GXLfKNPuGv>V6F3 zv2kQ5o}l0T0SuoBL#ZD*dD`K^GWv5}_rJ*g>%)^G#GND@Zw675%&XeE>XSat@ArhNO;gXX0xJhcWS(#{=< zL|%TzyDyVbtlJ`lXr-vS9%%*+<6ts{lWYvKsPltUV@_7lPEEz1LS0W3?d75aALl~; zNb|)>TD<=4B5D<06#g4h_c}J0$2z*!4CeOIH)ar|D@vRzL94MXm&fu~>H8cHUv+AE zEN|Z`q*z*5Hqrw$Qs203y#@w@ZMJxTknyS&Z!9I$Rs20vvdwa2JtyV+Hc zB4ZOy*a+hzWAk=c{O9h68xx+9U&--i&z0R{zSSJQJR&yBahp)H^#MtfXm=2>M# zZ@H!zk+Fhj^wR2#y%~24<%eXwQkM0RN-6V7{|{qt9uCzX|9@*QOG5T6Wer1FOP0#s zgeZHc?4~ivHW*G>Lx@6Alr=FX%oxicdq}cQW*7{z4l~w?q2Kv@@B4S%_x1bdzW+FX zjLUKz*E#Rk_Iy2_&%Q~Uk}l@j91`hsDE#kF6*DKTm_ggzr^aC_GZOek?(JmZnVO8l zu4L?bexLSvqhxo_gxLoRBC1uZzt>9oBB8tCu*D$sKQ`ot-Nr~D%dZ!=wE;Bhw@3(W zPVyk34losVU!tbC#OS71V?D#@$Lp?nXX(svRIdQV@X1Y?j2BP4{_y?v?Q3TSfJ&(@ z4sgj*7T|+fQuFw{4=&^$T#@L?F67XCpUEL0S8ICeebTf3xwkRl=Q8g7W3zFt$otIl z#4$iufGxyv*3A);1UD?$4zQ3L9Q{238H`AAcm!?dRv)5MQhm3w>0+Ict>chBiha0EzK zNGi#*8|}2QYmitjaUJ@xhFy!F#Kw+frD7+vIyn&G;o&fi^6nW?;H_hz`RzXGwBwa& z>Wpnk$#p9a6EB$;?rMF@^_KB^=i3 zuf!EIaT{AJAy%ai}$CNShgZaDJ;6?KpMJTa0Z^4Ibd zaB3ktHO23E30&2MGSM~Dc+;$;PFtO!9opwE434lh*JE0X+dbuv!)G`9&n!1%*Iuwd zw|G9Leyg4qojZ1ZATVd&q%G{r0-qTy_PIemedu`Eu}{ZNup8GZ?7Hg=t;MY z$tv3z*`#da28qpg?f;}3xxo%Z&41MZarm*jqs3_x{AX<0n+1~48_vJ`A9oaE= zdzFZzch9C=L1%rxd{bp6#Un=&%T_#StB0SS1Y(-hd>q$WEYBd6Ih9A4TRYX9; zL4!kLWnXW(FQ!Fjw2~r}ee-M2^h^R>hTY+iyW{&hYv+bAT@}0&0-^Qga*;S3(F|Mz zS&|%+P(`WblQ^2S__5*C1BNU%pW(3!dg_`M?sD4o0M&@Z14-o0Gz+Y*_J0_|$YYX2 zQz`Np0+cb^kyV?5J;sFP(H(zawM|LuQh|bMRqDsm;dmuKvimIGf8%%Evxw`784!s_`0=zEou$t%C`&Kjj9tOqRsIluROY3xR73QSw0N==EUeI;9I6Hoz>-9pRRU)J87z6`5F^Qk z=~d2BWkRT~$&Lpf@?nmCZ<0zEt-MKkr9qH)aoY@Kgi?^0o@qPhqY>|^bC_FpzJn8iz(DbCVEqK5pfS;0p~^N zk{76}pJBV1%~Z>ilPC*@c(NPS!7m6NymV#s&&dkuA#0ftrMWS<{vpN2_@qHO5BcNwzi@?~w8=+8{2Juma92rrjh(Fj@S zY#hHcUfZC1y9BgcQ09*zkFe&A0H)H)B6=ZLjggsE;-D2<0&?1aNz?cHHXR2Sxk@Vv z+>Z4Dggf6w?=~KEIfY}C^{W@UpZ>`6@w#lW^m=Z{)fkss3ZZ?mZOorR1Sz{vynd`n zuXRs4*RK_?H@Iw(3F-LJ-L;kOJ;#ZIF3L&fWw#lCV;pq{$IvT^_~P6>gZ7;$8kBi` zC*0f4+9|{@g~&?6=SEPt10swzJXv<@R1J5}c-twq6hSDSGD8d!ZGoohx;pp-&sscUL*OSR+r5x@(* zbEyAD{|HfLZ!1Ux0?m&=&A7=lSsr^ziirE`x4DL2ReP4_6W6D4{&D5~7GJM-oayj; z9(a}+j@9dux)U(sT2%4jfE>%Jl?fke_FCUx30Z7vY|MU52C`9C_XNO7{<;R29hEy~ zo{6Ela-b{nRL77td(=O50RUtrB+M9n<`;Uprm80K8Z30}vD2QFfateTp0p!6R#2BH zVCwzkIRbRXS%PYk%rZwr>?cqq*kO@;bTF<85ga~yHwi=a1uefUofNkpQ7(cRJbsV~ z^Yo^uxyMmPtPN&d#29NVegns00x&Ih&6WvD9#1vBey9d``w9T!yk7?&R@V+{*kQ2= zoOl&kY!;-T`c}VQ-rJmjXG5(ME}y0lOnJ)`9gloufh*W!H7Q0Z{6d*c>p~6aG14R9Q{otZo`aq5LI3@JmQk!}CZ5iRQ(vk?cM1&qJ)Q|9b z?3RU1Vnd5X4p42O`D9rIqTWEV*r~P~yll1mdM17a!DyI~==jH$sD-D<4(3hkHAvk~ z)k@u3D9r5I)9jg0w;gYXHK)$*=H_W*(|(*Xduw#|7x`y^ zzK{N~gWt^}tPn=obksP?67f82pRg_Zu#r9+cI@YK*(~q4K3+rZRB|rM8L{z(j4OYA z@#$?IOim;*mj^tZo*_f1S{;3e?VG7HhP!@c(;wJ}4781L(=A0lf&yW#FVf)Dp{=W* zr1n(-bD6?ZGWD0zkNoL9XD870bHLiEYhtlsU=4nca3H$_Z|HrjviHLgH{{r}?c_9~ zn_X=d3Lj#&ZS(A7Sx%ps)P;iq5)kkC+BK=&(RsE>dql;nK1~USEUXf$j#&)O()Wua z8Tj^vpXIt7wXPyNs?c~1e=B+1$?H!&hrD*co<;3*YR{@SUv1{ven-8s)hIA;m32Kz zo(5EJy{%BfZYG9a&o*6!e2iM%x@`rOA*7F4T&PWVEsfM;$?bmvy^b-$%)M!gN?-=A zK$`zX(u)^(M%2Fcds%IDv}s6;biXi$01fgrkbd#9JwVcq-ysFdo8Cl%5LqXxp@tQM zRvB~lT5Ap0!t3!P0dnv#Ou}PI--OS`i3H$*C5h||?UtB14k{b#Ly|lgT5&;K;CMSh zc}=~n6pP_oTnjo{NorSOWe@>~h>*ZlX%63CInBz7R)Tgj&12;4a(Z6$fh^0BzS=;A z=_l+OXF%p#fur7epuC96rDDQ3v7OP_hbx-?fHp30^M?>%Pj*f=8R6z;dEQQ2uTe=m zt^G^|$bO-0zcsT?@6&WYe+~G8C*7l0WU+VdS|*fFN3RU%q}?9_$lW3Nm0Fy|Msad` z5+69%^z)IRLTr1R88HP4n?x%Jc8o4F`g}}aX;9vAq*S}0o?wm@V`6DZb4@(H)U3qm zK7TgDE&JyLt?;kZ@cB@k-k5#LBAItK7oSCFZV@F>HeQpI`$`p!mLFX$9Fd;bj7u$9 z6E(vRIsK%CV*rZd{k;=Z!8VE1$gBHV1VMVHxn6IFIEc_mROiU5BN8G$`&iB>!u1YL z6*pyB4NYbK0n-PW*WY=n#3+U_hP0F;+peI&hdEMhCM4l;^Enli(aA*x+FK!l zl8qNNECt8M+Tf)^UUjd3)K}NwhE^Qq+^va@xkXYy=G&US)EC?OSnec!Pl?07O$t#k zVv~lqIE2n*oTHpG7le*zJck2^hW)^-mUfZ1ccmf@-Z19wedHuVv+e%c3I=oV8)W5y z8Qh5(yF^(cihp|Y*h2PCOsKTx1vjem%|Rho!!+~*d#D3ChB!!2wwZK^y(evD{Bm(J z9e|lT4HaT6M8j@W-6?Bv3|6`V?Uvk*>z{2;v;<@oKzd-FA4JC8p$rMW<@@CyMs8DLo=fDBKKA|! zzCLrs!{$R_ps~wS%eYBU^L84k%muY%HZ#IIBOy|T=Egr6gbRa>1&c7*>g`K4^y~Qi zMG;ZscLzVyzrS4i6&hEkpP+vnm@3ZWJK$!S4h8muMTHRR8fGb5pz`BFJ#g5UB7&=R zQhZHC(*D#pM2Rt$E|dGGX@gGvRaenzX@&pTZuvZFbTIy~flB{xoEnej^|y+$(Xj@9E6S zuE)^)(d6bl{@KP*jdvgaXXFLqe*PcY&wl_0I-Ui*Nlk3t0f{XGTp)nK>WAl)AG(x{?KD=#4V1pN!|uuSFgqI9I(knZ$#78vF2zE zeI9&@j!FT=9!cVoeRynE>r$^fDXOdT-OSA+j#+PBsm2P$2i@%ZFoPks$R<2YEC!remc#vV z${>Wor(_WWqcTzY0f>mNna^=TE4{}PJ#C&=DJ7ceJaphs;OIj(Y^PSy1z8Z$W`3|J z`QfM)k3*~6#MTaFa@}+e`}4QlEyf6OG+D>3uQ}PF(CD6#s@k!iY9(KiaRaE$)Om6r zxo*f@FT^9l^&kV^ix{2jbnQa}}_~=a}>im=hrs%+3 z$=AD4FTWx^V4(BbRO>H_@=SZKM^QDf+E)E#Ar z&CZzzwKkcW#&>JsY0PB7?Pp-go4IjwXwx#bndf}^&aJ$AnKOXxp7;ku!HWtRyn6%h zPi3k0G`{*P9>+w(R$GqXnP!ZeUDW6e=~TR2E3j&HxO`7 zrn+uq;DGx|Fv4E&O&ga|nxNN^!rP-?pi@+-r@=a5cd17Y34PA?=Qk z)M$+{mGUj*rYKyKN)?5;?9y`m=RxUE!TRGd$Skq~kV(5eE!vaZl3etC81UWav&2?| zyC1O+86vCHU~CoC+i%k|Ey!#|s!1dif&c6Bs6`SYAAra>?}>PWZDl2ca1(Q|-d@Vg zG97f~vpvAR32@c_qju*8K#Sb}6pjKB? zgn)R?0Z(I(zc=H30x@Kcj!2nbPPX*P)_x9-w*&*d9G$R|#N3I~x!D?>`N}g$rTGb2 zrrwWVwJ!@oW5?WIehY(3Z2$Nblzi84sCoJh%5G@7-bt{&A$Qqu9s8zk!$IUhcG6Xj zv&OdTnYWMM(bAlA7DbRxw33R`_R-Umae2U5mJ!}Lf){xq)e@IJaXd}-3%-OF;(rQ4 zq3B2%JHMN~DcC!qFyumGWj61H6f6!BM>ap3?EKVhY6u=exHQ$cSiT(A_vsh$mEg&{ z`D-&-#c+_%7;LoR!PRqHLMRQhx$w~`$qDK&Q`Znj4SCijP0j};-3jY%5n|K*!k8qT zV-IIO=-*_Ve&$!swGtNG=p_?70aU}~dUNGO^B)*tvXcQLRPGmViruwm2*z*zV>^W0g+J=QiyvIc&sw>oj9u>w73uX`zklo!wKHTx z=t~vto{BOv?Ouue!d`P9pwcqoGg&XoYoX=bY=T)PTQ>IxVn}OL5OxT!AcG9-yCdqt zI>IMj&~DeaUrsA+Y%EXB|Msiv0%&8?*w;R!bN(TcH16_f8m>FpDuL5aWSNyR{S?>Y zC}#(;u(!0P5hWKTXzx3bnS1q>&(YSD6H!#nJ)NhSdp9%qVikZ}t6pH<_+jz|>vp}x z2RbN0AS_PrLBbr08wRpZiu}1Keod7z`PHY*kWp#=D~>JU)}?>}`^XUyrLe5FN*Oqv$v{5q`a)i`Qz+9V zDJX>qUS1UxcL?OXWBR1zsvaUte`z4{;%T+mW1y5{U-Hn_ar|<+x^5IYK$@%5!Lf?7M8)#(F+!)7IPNJ?bbaDlm zPSc7LsNc?4#TDxs6Hkh4|GbuD|JLWDdC)oQacmlo(2bLNk4iJ0fIHR9>W_=rc2Vc) z6-mWRx0c|@bG3}q)$j`jB1pg#A6t+(VF;*(UN#+kDJz`6PE&poX`_)gB|+wBrJN^% z%eIqoll;ffeSgZ_zV!QZWnfrRuN_>*#=d7+Sw77=TJ36d;l-n@9Uoa5X09;HNKV!AvjG*&$KRCDO1UH0#T;cWOOUgRlD5iC)tn!}UkLxE!z*yqaS z0_H}XjQU9-YgP4zlEZc;6^?{j{5U zD9Ft#i1QM;oD%l)595*jn4YJFQ0ARS7e8NHu4%;X1IBUG3B$o5e7^~}F|JcGJx_yG zP`pWZz$JQhr$%td>OvU84!}yGf0lV<>pnYp4sd02#G0P}`p*5YfIY?v=)UgeQ{Nxg zjNSRKUoG3#Vb{!s(wgQNLs=CpsK7$0X-^Ww#-jWF(jb4_8=mznZu_K5_KU=)v(1)# zL~3n6$1_IJ^i?tLZ+eQZr;*X7^}|1lLj1k_0!z==Lp|}?C*GPjgio#5wkXtgU-QRt zlPvn%BDwWs7$;(M3;-Y)uP2qh^s^Is^tJid!PUZ)&_dOTzkXInL+vLfl4dVFYte|p z6^?+%@i9e>jcU7%`US%w(0OgM86K1l2R;zWy!u*1sCNFN3ovt?0^&jW2m1XGAB+ke z!*L|swZzw2iB%2>23kV{M5NYug(~GT8k>IV<n8eYoU#F+4D^cEk}-Y0TOV%bIW;WA23v&vn)_j)2^pFsJ)Gz zKVc3{L&8qLXgHEa7`XZh@*4h^z4DRjr>Bqd+Jtp&nl>|I0l@Y}pJB*hDK0E%`zp9SgL$?LAp8x2)(BRfSP*rAH z5aDIHXUVLGNVPkzafA2e`MMU}j@1DL}}cBD2dY{c3!)ipP3O*F{s1xtIs1Z6XWNq&kF8P+?@ zx=wdUvVcE=2UtZds;^Z?r1v1s%WAf25|Yp8b53IX%^oIJw*-|K)u?tp~ji z*liGv@?AlPP80|SEdL)xhvIiVKoa=wNj_)2#o>Zn zKSk>L1s9qG7!t84laI_9gFzk3DRRTbk0XJ!n|*#X4BFvj`o)JH9vQ+<+4;{u?>z1A zEEeFRHmIY9VH$LZNF*OCL*Cr5tgRV2y75*@Gga6j#Pp=RCST@Jw+bU5px-m_Zg9F+ zUm510kFL^s1tm<+Z0kH?GvYTrAZSd-KJei)P|)}>B%FB}R^|TU>r-jv7cHW_N+}Tm z+vZu{1c|#P&smCv%nLj1f>0R{xfop(y=P+Ms^9+(P8!#tRVq8r*&rqo-u;#jaMp?; z9HDc!`7@8tw>Bx)rU(N;x;J-jcrZFv2A1$4ynpdGj@-|vKQ^2vA8#lc^(D&a&M4~; zxPzT^y?Ged&$k$s6$i%+g>1hgJiO-Qqx~l8K{uaha^?@}`W-j(I^NHn0+;ZLE6wO; z*Iz$R_xB!%PsaUYQ_CMbv9e4}6=F8DiO9thj+Ha3c3TJGk8k7yWl76w=irYwZcDAt z8XMi^Q8GB0t{BP1i9gKOW8W` zu+pJV#^B(09S20)t;Q(^NBNBW%PG!Iv56YVng;6VbM6ZAN{Jj#&7{-A6H7IIy_JLC zOqBnu#F%^`lGh55UHKO^DY`>wWd!)7i;S*{Qx}gok{4Rg0$XyN!Gx!3WNt_Xp8uzw zwaL3hd~=m-w9iA25~SAjX#BbK&`L*4%x&Jnb>GpJ=yrHpVV4!m#N&zd#t+p?6Sy)m z%8B0FO3@ry*-8%6z3GrYh}g6>^%LRIKo5}#&#E2{fCi(V+|z`eh0Sb*%il(xVqHyH zZq<$T8dFcZaFCLU*swU?3uSqIo0NW4-kk9 z%zWeyzw!9vX0(3)s^fAseIY3CcPwb!h_M8TJd=~^zkFI1P2uU3QML7! z)8|z)jzE+)uF3@;whRYu^)eb+MAIC;tAas zXH5Uf?skNDlCFh{JK3ngYdpORUhi0I&)FpWHQ<>EJ6^JPPA-n10?!A*d7Wt=fm7K~ zMQ)~1WZ!v3DHE4jLsd*R0OAspBIrjwpLI z<1ey{hQITu^{R_O6C}G7Rcl6p@l)yMb8y5}4GW?K!t z95_PoLc_EXF*+L42s}6E@BY(eMNVy}2)}SAU*6G0kJOz$A5{5UvkFMtw*M|_tBK|c z*$!jgpqinK0?L?1$|@S>E?mKXfEo+wlwJAT7p3KZ-7CM>=Pr<55(PPX`qaz!y%D5i1xuS;c(d1WB2bVwC(U=XkH-56XL7`j(Z0kCg(^s)Lj^^O{%)Z7Shr;pGdl_wHO_V`CGK zs<1M;YK9NKX{IO%nox57C&&BW*RCL_+l(Kjof| zUZVWR!~b1`t`7ZmYdwAd7`Ob#W(Wxj`acZS*fy8eU0=FLGD_kC#W-x~@Qx1^6D|~8 z3p1=@y!BboQtE~DDc8&j_fKU}t%lMrl@T*~9xG(X}rv_g;zfcuw`f4lUd zVG?7RHBU@2dqY}Tk|&VKhhH61c{$J4PAMA!B4L&$)&C>n+uCx%sI_STBt3frd2taLCLmPqny6qIwL%&a+>AFBm$s_ z&+Q)Q)&M6cqT6I@8Urb!^-d8N0vqZRkK4b}8OSM0w(pk49OWr|yoXvKK^>a`+B^D= zIU}Uq@|4p!^X}cc0jy}U-%le3S7Y;bR{Ch=_juYN0d-ZEo29DQv>K;ZpwqxFeb}`K zuTJ1p;6*H&mk4FJTi>k4O+zD;R}~w|0z~hB7wijNT5ZPHEc@gfi(fKS?*#%RpH=({&-GU{)pmhWM0mC&3%gu$% znIg+g zkB|&6-9+#h1$n^!Oc?m_o+7D36VCLXOENUMo~w8Dj#(G8!`&ag2p!d5$bB? zoAAZ|Ofb>hq~{v~!7n=k$FcmR9tX>KT>ONC_i`ssl1*t&Q$Ya((e=Si?LL>QiyyjiZTQ zN|Y_=_+Gfi``5xH6k;QmwE&!BwjG>V1LAXK7#+i5ei=hrh;xGE_ziA*Eai2I7jCh zq{TGNv*9ID%AuitcqaT>XMl8?LzRPcfB|pS_k{Ca25-2}2JEhVvlM5}P$i-P1TIg4 z8AP~>Zi^i4iM~}oG*g@OJt(v!dD{wk;oyJ{rGuQRw!N@KyzO9*yInxQFm$~HF zMOf?#v2-yiW1p&Oknz8#vu{oUe#1hy8!p(yx|3KP&qO~NkI0GBSRY37==)+njmjSk z?J3STSnkqhBl`H>&YGRLa|7dn1yo1JHr{uZY+`=o@kNf(K1rO_&5O}F|Czj)D^pJ& z64vqY;_FuuAlj*#RoeWpPaM6@>zp2%_JjS!uiN{d_UqM6aaRr`yz9B+0dUvMavI`f z2Uf|rsbtMEw?|n4_Ej%JbRJ4uPPWP{MO3q}rGER1{lO^uk^#|u+1!6DD^L1%aH&%QU!<@At1{PJsO&`6n zqKVclEB@KH69z{*ZwToI*y}q!O|t0!bSXRCI^_o#z0#w=Km`0xG-?JHYo>~{Cp(jm z++)H^QHr(u#faG?qfw){_$e+G$0K&cY^Tfa^Hzh@x~Lwiq%2P{-owA3N6zhu+nGwt zC_C#DD0_GlIec(!KS#qdZpTHGIWe6VD`H5Jt^UlV-c|xFM;6$|IcZems@fcXWc%Yx}ad z|7BjyWE-@%Pt9crOu4^>rM|$yz)kOmOy~0Dtb@}-rzOIgoai1{W*Hwq0(G+RA@wJVuK?6cDaOr=|Z*jN4yivS|q&asDHk&;cGNL#(X)}m& z9YJ~cFfi0Ftou3JKv(os6*G4M8G0b*(&XoQ$j{eu}X2Ptu-q8MMlWeZaS_&qM zgsa<=W%=&owk*$$gL`M64kRd)ai82nRgGEJsjVTlJZ2TeSp|fz_m_Cje$5Q6sK9Y@ zUAa$A^ILKmp^>h#1g*hmuLN0eBi>*rFh~CxAVe_2FuMWPwW7XhKscvSH$TrQ-lQgT z5K+~saWu{@RN0zOdO-cDp`9l=dO^Pu&pL~@+W&Z<$dYA>Qn}=&Z5u0=4vwU{HWLXd zR99UimZN4g02)tMnkckM!A|p<5*BW@NUUX>iOY-go(`0=RWacwLp#a}cRQEg(fWFD z)e1NdfEMwlpxm#SE`V(u`I|vTG@L`8JGjX4hU2VDSzaBM=1YLon zPE;T@xlC+dn^oBjRXk{@_o|H>rT(FJNC`vcuGu|KAIpiG)ksZkrdwf7`HWJuo9TLK zGtTVJ3e*Eju7$}{LB=Bx4{f^yKdEPGzMlY3Y3|3E5obHV`CcsQCD6I=_l(JCd>j7&;ncLbm#v=gSB7vs5i(yryasoJTO4_uT$1#51&I0j zu*iYeOX`A5x(rzo;8jxM*jtIDMsmKTDd9;s-Y{1wQzkE=6L#$b5`bEK4X%-dxc6 z_@&4*ohD$4E-srqeIRu(DPr;r0kCdRC#2f-G#iG4KznOPza0JN8qS(~MthoA+n=O6 z_$utH`!_BlKl%v>6CiROma#$OqF z8PnGgBA*)JSFu+x9y}8#&C$d>|9P46#3fJDS?_{(`RSJtDy1hoRlhSXjToxH>xI$)0$%WKDo zF{?XVIQMgcJ`*&G7u(vxG}aOxY3IcR`M5J+&L%*R%tv!Tc^wKreAL?`Q+^nmD3jLi zKOP>N%HltAcaY#r-)R*g#vkw_F*XeDR2oWq)X_EJr5#D{!)I6~DI!VTx)ropZV3__ zF6FEKYb!Tgb&#Y?F*trBRdMo-=hn&we~|6`x+YEwL6UY;>QZobgqsvEwc z#lKqQcMI6tehVH9(Y~&N>c!Pe6>3B3(FGUzW;`*7L;n~|bNfhJm5UBUU0~>MhzM>A zd&WdELCVyUlnr&*;yqTmr@w8tU!ZppgdgOp(=EIDIhOR!FbrUV{>X<}t=h#IKBXjs z+MZIGrLyk~l{d~WVW&MfICmbXC+)!bqhQYZK$#IhL+^HPR-GL}nDhT*>z^Nq==}kb zn-R1!@M&QmBDgZNxw%nCh!rgU5?9g($!>aTJL2=?9P5_M*90jym{Owp{@HR&0DoZ~ z{0Ra=q8^Q3dNzOj=wSc+p zc(-RVXHD2sY{=np$=Yw>akVcDc5t}zou@B8CKm=QXxkMm)blRZW!v%IPb24#<`PX8 z!9M&g5Tb)|c6B!YVy*{Mbb*9jbIKV(47ozMdw?VWi=mCsce;o?KCavqI_6X0UX!SA zrnXT{9zD;A;3Ou{e`gSV=RO5+yl>GD8MX@{@<6xkAw5o)Rof-q0;cpu^!-xFc#u$= zJ;N+v1gpd!2s6&+oi1j~5}WCtx9X$@w+sh@MB6@gml%E4?Y94ejqk5lm5kF;lzh>5 zHeqk={>}@Q)U>70jS>=QODZnTFh>`S+ih1aX)Gk4=FJyY<=<@IWl@LeZJ%27H?Z1ZA-oX%?y3u<_97tgYvB7q@A|--{qlXjS+h zTfRu6HleF^66{(i{9_we1G^R)Y+*tCKbUQuxu-$f;bm|W4(w9p3e)vtA;BEzyY|hA zJ%i-%FS36kb4A-D@1BB_!3EQ0w8itl&bgIC-AXf1y;;)@=hFS z_Cj4O<%EYF`vTeQ#OV^D3$bY0FNt^O{;{z)2~J#x_(h5`+5h}@fqs55J3t!)x2Jh6 zquy=^J?Y;`eG0QCf1{kLY8(kt)IY&=9I|SzPu$(5LiG64*Z*ivoEyA!zoG1D`IzK7 zSCG2ZJ^;8rQPaOQ7>MSuzz(XLt62_U-}3cFjgIms3fT=vH47oOl#|A%A!LG*6QNOEvu3hpS+Jif8k0 ziQwJqfk^@9s@blmWqES2{m>GB(ltCB|HsH+Nw^qaG11+Ep#$`vdH$R zZhd6LUT)&pjUyN8>n}=Py#ju-w_kB%63~*%m$+@-)xH$uced>$fm6JI3rL4Y= zJieW7C|mQ+<7NFdsfsyi4`&C{m7W{3BF!eR)`sV3D4wYXF-Lf0SF5;SHPPLE5P<&1 zGSfru-TBPz>5r`LX~M<^bgu{;iVEE4tML$v0qsr7O{Rm&V+T00^=(t~Y1v=9N#A5N3n+O?gK z94+u--;Ia@+Zyfr$064D=TXaefVbxQRn+@Ln*68b+H&$LUoi;y_&Z9qu@H33 z^oQZQ9C`7PM{5(8wzfozUYp_{1_XbL`>>v;9>dG=zOwsIT|8Yss*o_EA*^$LI%HU- z5Jchyl(f4O(hqZTNx^&Hei!9%uQ-0$Wr(^Z;eq$tW9*7-EM5P>q0f$VwMbkS({Bqq z_EPH%hf_@4Pj!c>cnU_})OOLMi&OImNLbMq^ z`3#@v8U8zmG83h?61eFvgKRV!j^%3Vs#)w`ry=x2QQE^w%9~)Y0s#|y(Awljxg@y4 ziNrvM><8sVPrlt+lRO%+?YU%Dx`l{8I6}mz1c`;T=<$r=IC72@0r&euirdt)1Ps&R zAKsaHCrGd8E1Oa4mo7SeT=gG7U1I`=k&*Hs#%IB8&?9uS$Xu08z5Co8<&5CY?XL8@ zM|ZybVktAd5N^lcA?VBBzWP+UntUUyXmY zAOzC<(hP(%WaPi_v2&&syt*=;IB{L$mrtY!{ZB#!+BZxqeiJa4vK}rL6iMzt7y3g1 zc_D5^`Qye%Ue;JB`Xz>(0d=#_{&%AroL2t-8CK?rFkOgU;-?v|QEM0swin`RUN?HYe=5+6Ze_mZx`HXh?I z^q5I`IG{@Yx|2+=S)LHm=+}KWaLe3GeFeEiT$!I<{$LfP!h{m;zu1BK2O(yE3$402 zeP81}lmj17=sR;h|KfShkgFaE1+xf!H_)z|!UWp%B(gdvS9unB9E{vlAu&oou2Iq4 zCr^90wWexY#FZy@em660{zgwD?Y3X@o8>1iL0zF$B4uBtXRQF)T

_s6Rsb6>sl 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

    A4Ju=eqAG?={kFqowp0LJ&v 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

    94C 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
    5&=Saw2AV10MSAlWzY9YBq)45Cc-90BE2c;y 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 Date: Sun, 6 Oct 2013 14:24:07 -0400 Subject: [PATCH 117/173] Bug #1356 - #1356 Command reference now mentions /from/to/g. --- ChangeLog | 1 + doc/ref/task-ref.pages | Bin 1354111 -> 1354399 bytes doc/ref/task-ref.pdf | Bin 133138 -> 133133 bytes 3 files changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index cb18a2c64..aff55f433 100644 --- a/ChangeLog +++ b/ChangeLog @@ -71,6 +71,7 @@ Bugs Weber). + #1300 Encode/decode pairing is now properly balanced. + #1305 Commit hash now available in tarball builds (thanks to Ben Boeckel). + + #1356 Command reference now mentions /from/to/g. + #1387 ZSH Auto-Completion dates are not current (thanks to Benjamin Weber). + Fixed bug so that 'limit:page' now considers footnote messages. + Fixed bug where specifying an ID of 0 yielded all completed/deleted tasks diff --git a/doc/ref/task-ref.pages b/doc/ref/task-ref.pages index ced04a0af8bb544048ae127ecfe440a214eab33c..9ef3ddd00caa60a7b01dd377de64ef1240545155 100644 GIT binary patch delta 287697 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

    oH%fh5R(3N8QzNO4W~{RyNUI)NO$`^uMZcjw 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 delta 288143 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%0AD!1J9uf{n&zL|c_ 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%0AUSHQieLYton^$z-~Oa$K=i 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

    h5{Z^f1%&qK27*fk8n5 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ⓈN->>$|)y?hQ;@a%josSs3dlkP% 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 From 812459bcdcf5ad05c87386b7dab50fd3affb19dc Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 6 Oct 2013 14:29:38 -0400 Subject: [PATCH 118/173] Bug #1352 - Added reference to #1352 in the NEWS file. --- AUTHORS | 1 + ChangeLog | 2 ++ NEWS | 7 +++++++ 3 files changed, 10 insertions(+) diff --git a/AUTHORS b/AUTHORS index 9bf5760ec..2d385ac5c 100644 --- a/AUTHORS +++ b/AUTHORS @@ -181,3 +181,4 @@ suggestions: Roy Zuo Friedrich Heusler Ben Armstrong + XTaran diff --git a/ChangeLog b/ChangeLog index cb18a2c64..a6750a19c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -71,6 +71,8 @@ Bugs Weber). + #1300 Encode/decode pairing is now properly balanced. + #1305 Commit hash now available in tarball builds (thanks to Ben Boeckel). + + #1352 Terminal crashes when using taskwarrior's zsh completion (thanks to + Ivan Freitas, XTaran). + #1387 ZSH Auto-Completion dates are not current (thanks to Benjamin Weber). + Fixed bug so that 'limit:page' now considers footnote messages. + Fixed bug where specifying an ID of 0 yielded all completed/deleted tasks diff --git a/NEWS b/NEWS index f2be4833e..d41760c3b 100644 --- a/NEWS +++ b/NEWS @@ -36,6 +36,13 @@ Newly deprecated features in taskwarrior 2.3.0 - The 'diagnostics' command no longer generates 1000 UUIDs as a uniqueness test, because libuuid is now mandatory. +Known Issues + + - There is a zsh bug (fixed, but not necessarily updated in your OS) that can + cause the terminal to crash when completion is invoked. See the issue for + full details: + http://taskwarrior.org/issues/1352 + --- Taskwarrior has been built and tested on the following configurations: From b105fd8440b347bcb7d1b58c64d716a02dcaf61e Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 6 Oct 2013 14:35:00 -0400 Subject: [PATCH 119/173] Feature #1297 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - #1297 The task₋sync(5) man pages is rewritten with examples. --- ChangeLog | 1 + 1 file changed, 1 insertion(+) diff --git a/ChangeLog b/ChangeLog index ab078d425..e515fe614 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,7 @@ Features Wim Schuermann). + #1250 Support out-of-tree test runs (thanks to Jakub Wilk). + #1256 Supports default values for UDA fields (thanks to Thomas Sullivan). + + #1297 The task₋sync(5) man pages is rewritten with examples. + #1339 The configuration file now supports JSON encoding of Unicode characters, by specifying \uNNNN. + Stores un-synched transactions in /backlog.data. From 316faaa4118936063adf45bf4b289856a1d28ed1 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 6 Oct 2013 14:47:08 -0400 Subject: [PATCH 120/173] Bug #1388 - #1388 Updated task(1) man pages with import/export script examples (thanks to Benjamin Weber). --- ChangeLog | 2 ++ doc/man/task.1.in | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index e515fe614..a22adfe96 100644 --- a/ChangeLog +++ b/ChangeLog @@ -76,6 +76,8 @@ Bugs Ivan Freitas, XTaran). + #1356 Command reference now mentions /from/to/g. + #1387 ZSH Auto-Completion dates are not current (thanks to Benjamin Weber). + + #1388 Updated task(1) man pages with import/export script examples (thanks to + Benjamin Weber). + Fixed bug so that 'limit:page' now considers footnote messages. + Fixed bug where specifying an ID of 0 yielded all completed/deleted tasks (thanks to greenskeleton). diff --git a/doc/man/task.1.in b/doc/man/task.1.in index f64764d2d..12d0f4036 100644 --- a/doc/man/task.1.in +++ b/doc/man/task.1.in @@ -173,7 +173,18 @@ Displays only a count of tasks matching the filter. Exports all tasks in the JSON format. Redirect the output to a file, if you wish to save it, or pipe it to another command or script to convert it to another format. The standard task release comes with a few example scripts, -such as export-yaml.pl. +such as: + + export-csv.pl + export-sql.py + export-xml.py + export-yaml.pl + export-html.pl + export-tsv.pl + export-xml.rb + export-ical.pl + export-xml.pl + export-yad.pl .TP .B task ghistory.annual @@ -335,7 +346,10 @@ provided for exceptional circumstances. Use carefully. .TP .B task import [ ...] Imports tasks in the JSON format. The standard task release comes with a few -example scripts, such as import-yaml.pl. +example scripts, such as: + + import-todo.sh.pl + import-yaml.pl .TP .B task log From 9099a353eaa463416f3dc526994491022ced4747 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 6 Oct 2013 15:30:35 -0400 Subject: [PATCH 121/173] Bug #1286 - #1286 Cannot use "sow", "som", etc in "entry.after", "end.after" filters (thanks to Jake Bell). --- ChangeLog | 2 ++ src/Date.cpp | 28 +++++++++++++++++++++++----- test/date.t.cpp | 4 ++-- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index a22adfe96..c581984d1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -70,6 +70,8 @@ Bugs + #1270 The 'undo' command is now properly removing backlog entries. + #1279 Assorted corrections to the task-ref.pdf document (thanks to Benjamin Weber). + + #1286 Cannot use "sow", "som", etc in "entry.after", "end.after" filters + (thanks to Jake Bell). + #1300 Encode/decode pairing is now properly balanced. + #1305 Commit hash now available in tarball builds (thanks to Ben Boeckel). + #1352 Terminal crashes when using taskwarrior's zsh completion (thanks to diff --git a/src/Date.cpp b/src/Date.cpp index 829cab59a..c7400a657 100644 --- a/src/Date.cpp +++ b/src/Date.cpp @@ -853,8 +853,7 @@ bool Date::isRelativeDate (const std::string& input) found == "eoww" || found == "eocw" || found == "sow" || - found == "soww" || - found == "socw") + found == "soww") { if (found == "eow" || found == "eoww") dow = 5; @@ -865,9 +864,6 @@ bool Date::isRelativeDate (const std::string& input) if (found == "sow" || found == "soww") dow = 1; - if (found == "socw") - dow = Date::dayOfWeek (context.config.get ("weekstart")); - if (today.dayOfWeek () >= dow) today += (dow - today.dayOfWeek () + 7) * 86400; else @@ -880,6 +876,28 @@ bool Date::isRelativeDate (const std::string& input) _t = then._t; return true; } + + else if (found == "socw") + { + // day S M T W T F S + // dow 0 1 2 3 4 5 6 + // ----------------------- + // weekstart ^ + // today1 ^ + // today2 ^ + // + // delta1 = 6 <-- (0 - 1 + 7) % 7 + // delta2 = 3 <-- (4 - 1 + 7) % 7 + + dow = Date::dayOfWeek (context.config.get ("weekstart")); + int delta = (today.dayOfWeek () - dow + 7) % 7; + today -= delta * 86400; + + Date then (today.month (), today.day (), today.year ()); + _t = then._t; + return true; + } + else if (found == "today") { Date then (today.month (), diff --git a/test/date.t.cpp b/test/date.t.cpp index 42ec59cac..e21adbf77 100644 --- a/test/date.t.cpp +++ b/test/date.t.cpp @@ -337,7 +337,7 @@ int main (int argc, char** argv) t.ok (r11 < now + (8 * 86400), "eow < 7 days away"); Date r12 ("eocw"); - t.ok (r12 < now + (8 * 86400), "eocw < 7 days away"); + t.ok (r12 > now - (8 * 86400), "eocw < 7 days in the past"); Date r13 ("eom"); t.ok (r13.sameMonth (now), "eom in same month as now"); @@ -352,7 +352,7 @@ int main (int argc, char** argv) t.ok (r16 < now + (8 * 86400), "sow < 7 days away"); Date r23 ("socw"); - t.ok (r23 < now + (8 * 86400), "sow < 7 days away"); + t.ok (r23 > now - (8 * 86400), "sow < 7 days in the past"); Date r17 ("som"); t.notok (r17.sameMonth (now), "som not in same month as now"); From c1492d80105bfed209503b6f222c5c5ec6ecbc32 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 6 Oct 2013 16:23:43 -0400 Subject: [PATCH 122/173] Bug #1273 - #1273 Query with negative relative date differs greatly from absolute date in past (thanks to John West). --- AUTHORS | 1 + ChangeLog | 2 ++ src/Duration.cpp | 2 ++ src/E9.cpp | 5 ++++- src/commands/Command.cpp | 2 +- test/duration.t.cpp | 7 ++++++- 6 files changed, 16 insertions(+), 3 deletions(-) diff --git a/AUTHORS b/AUTHORS index 2d385ac5c..aa6914eb5 100644 --- a/AUTHORS +++ b/AUTHORS @@ -182,3 +182,4 @@ suggestions: Friedrich Heusler Ben Armstrong XTaran + John West diff --git a/ChangeLog b/ChangeLog index c581984d1..42af439c8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -68,6 +68,8 @@ Bugs + #1263 The 'waiting' report properly lists only pending tasks with a wait date (thanks to Fidel Mato). + #1270 The 'undo' command is now properly removing backlog entries. + + #1273 Query with negative relative date differs greatly from absolute date + in past (thanks to John West). + #1279 Assorted corrections to the task-ref.pdf document (thanks to Benjamin Weber). + #1286 Cannot use "sow", "som", etc in "entry.after", "end.after" filters diff --git a/src/Duration.cpp b/src/Duration.cpp index 57246dd98..2919e861d 100644 --- a/src/Duration.cpp +++ b/src/Duration.cpp @@ -368,6 +368,8 @@ bool Duration::valid (const std::string& input) Nibbler n (lower_input); n.getNumber (value); + // Negative values are valid, but do not need to complicate the validation + // check. if (value < 0.0) value = -value; diff --git a/src/E9.cpp b/src/E9.cpp index 7464ebd4c..5cc4bcd88 100644 --- a/src/E9.cpp +++ b/src/E9.cpp @@ -185,7 +185,10 @@ void E9::eval (const Task& task, std::vector & value_stack) { Duration dur (operand._raw); Date now; - now += (int)(time_t) dur; + if (dur.negative ()) + now -= (int)(time_t) dur; + else + now += (int)(time_t) dur; operand._value = now.toEpochString (); } else diff --git a/src/commands/Command.cpp b/src/commands/Command.cpp index a713691b8..6bd27c00f 100644 --- a/src/commands/Command.cpp +++ b/src/commands/Command.cpp @@ -463,7 +463,7 @@ void Command::modify_task ( std::string& description) { // Utilize Task::modify - task.modify(arguments, description); + task.modify (arguments, description); } //////////////////////////////////////////////////////////////////////////////// diff --git a/test/duration.t.cpp b/test/duration.t.cpp index 374c8563e..7c9097b43 100644 --- a/test/duration.t.cpp +++ b/test/duration.t.cpp @@ -51,7 +51,7 @@ int convertDuration (const std::string& input) int main (int argc, char** argv) { - UnitTest t (644); + UnitTest t (646); // Ensure environment has no influence. unsetenv ("TASKDATA"); @@ -728,6 +728,11 @@ int main (int argc, char** argv) t.is (convertDuration ("10d"), 10, "valid duration 10d"); t.is (convertDuration ("-"), 0, "valid duration -"); + + d = Duration ("-4d"); + t.is ((time_t)d, 4*86400, "-4d == 4*86400"); + t.ok (d.negative (), "-4d == negative"); + try { Duration left, right; From bc3bae9fd21372d9e71102c02d8bd3e2e5980c58 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 6 Oct 2013 16:46:41 -0400 Subject: [PATCH 123/173] Bug #1410 - #1410 Incomplete Date Synonym List in man task (thanks to Benjamin Weber). --- ChangeLog | 1 + doc/man/task.1.in | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/ChangeLog b/ChangeLog index 42af439c8..c590df4b9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -82,6 +82,7 @@ Bugs + #1387 ZSH Auto-Completion dates are not current (thanks to Benjamin Weber). + #1388 Updated task(1) man pages with import/export script examples (thanks to Benjamin Weber). + + #1410 Incomplete Date Synonym List in man task (thanks to Benjamin Weber). + Fixed bug so that 'limit:page' now considers footnote messages. + Fixed bug where specifying an ID of 0 yielded all completed/deleted tasks (thanks to greenskeleton). diff --git a/doc/man/task.1.in b/doc/man/task.1.in index 12d0f4036..c58989bb1 100644 --- a/doc/man/task.1.in +++ b/doc/man/task.1.in @@ -890,6 +890,22 @@ This sets the wait date to 1/18/2038. .TP Next occurring weekday task ... due:fri + +.TP +Predictable holidays +task ... due:goodfriday +.br +task ... due:easter +.br +task ... due:eastermonday +.br +task ... due:ascension +.br +task ... due:pentecost +.br +task ... due:midsommar +.br +task ... due:midsommarafton .RE .SS FREQUENCIES From 1872a87838f6b2c995bd9f19c3b4d9b84cfc82ae Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 6 Oct 2013 17:59:55 -0400 Subject: [PATCH 124/173] Bug #1268 - #1268 Edit doesn't accept changes, if task has completed dependency (thanks to Dmitriy Matrosov, Michele Santullo). --- AUTHORS | 2 ++ ChangeLog | 2 ++ src/Task.cpp | 5 ----- src/commands/CmdEdit.cpp | 16 +++------------- 4 files changed, 7 insertions(+), 18 deletions(-) diff --git a/AUTHORS b/AUTHORS index aa6914eb5..3e4dae85a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -183,3 +183,5 @@ suggestions: Ben Armstrong XTaran John West + Dmitriy Matrosov + Michele Santullo diff --git a/ChangeLog b/ChangeLog index c590df4b9..aaa873591 100644 --- a/ChangeLog +++ b/ChangeLog @@ -67,6 +67,8 @@ Bugs Wilk). + #1263 The 'waiting' report properly lists only pending tasks with a wait date (thanks to Fidel Mato). + + #1268 Edit doesn't accept changes, if task has completed dependency (thanks + to Dmitriy Matrosov, Michele Santullo). + #1270 The 'undo' command is now properly removing backlog entries. + #1273 Query with negative relative date differs greatly from absolute date in past (thanks to John West). diff --git a/src/Task.cpp b/src/Task.cpp index 3ff4ccfe4..30a28c199 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -990,11 +990,6 @@ void Task::addDependency (const std::string& uuid) if (uuid == get ("uuid")) throw std::string (STRING_TASK_DEPEND_ITSELF); - // Check that uuid is resolvable. - int id = context.tdb2.pending.id (uuid); - if (id == 0) - throw format (STRING_TASK_DEPEND_MISS_CREA, id); - // Store the dependency. std::string depends = get ("depends"); if (depends != "") diff --git a/src/commands/CmdEdit.cpp b/src/commands/CmdEdit.cpp index 03b24f718..d716f64fd 100644 --- a/src/commands/CmdEdit.cpp +++ b/src/commands/CmdEdit.cpp @@ -660,20 +660,10 @@ void CmdEdit::parseTask (Task& task, const std::string& after, const std::string std::vector ::iterator dep; for (dep = dependencies.begin (); dep != dependencies.end (); ++dep) { - std::vector ids; - - // Crude UUID check - if (dep->length () == 36) - { - int id = context.tdb2.pending.id (*dep); - ids.push_back (id); - } + if (dep->length () >= 7) + task.addDependency (*dep); else - A3::extract_id (*dep, ids); - - std::vector ::iterator id; - for (id = ids.begin (); id != ids.end(); id++) - task.addDependency (*id); + task.addDependency ((int) strtol (dep->c_str (), NULL, 10)); } // UDAs From dde99939e908d3d43c557fc3c4cf170d5a2ca92d Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 6 Oct 2013 20:55:09 -0400 Subject: [PATCH 125/173] L10N - Eliminated two unused strings. --- src/en-US.h | 2 -- src/es-ES.h | 2 -- src/fr-FR.h | 2 -- src/it-IT.h | 2 -- 4 files changed, 8 deletions(-) diff --git a/src/en-US.h b/src/en-US.h index 639cb2e61..4a425d236 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -831,8 +831,6 @@ #define STRING_TDB2_REVERTED "Modified task reverted." #define STRING_TDB2_REMOVED "Task removed." #define STRING_TDB2_UNDO_COMPLETE "Undo complete." -#define STRING_TDB2_MISSING_TASK "Task with UUID {1} not found in data." -#define STRING_TDB2_UNDO_IMPOSSIBLE "No undo possible." #define STRING_TDB2_UNDO_SYNCED "Cannot undo change because the task was already synced. Modify the task instead." // text diff --git a/src/es-ES.h b/src/es-ES.h index 623115503..798edc583 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -846,8 +846,6 @@ #define STRING_TDB2_REVERTED "Tarea modificada revertida." #define STRING_TDB2_REMOVED "Tarea eliminada." #define STRING_TDB2_UNDO_COMPLETE "Deshacer completado." -#define STRING_TDB2_MISSING_TASK "Tarea con UUID {1} no encontrada en los datos." -#define STRING_TDB2_UNDO_IMPOSSIBLE "No es posible deshacer." #define STRING_TDB2_UNDO_SYNCED "Cannot undo change because the task was already synced. Modify the task instead." // text diff --git a/src/fr-FR.h b/src/fr-FR.h index c86b23196..43a1a72f9 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -831,8 +831,6 @@ #define STRING_TDB2_REVERTED "Modified task reverted." #define STRING_TDB2_REMOVED "Task removed." #define STRING_TDB2_UNDO_COMPLETE "Undo complete." -#define STRING_TDB2_MISSING_TASK "Task with UUID {1} not found in data." -#define STRING_TDB2_UNDO_IMPOSSIBLE "No undo possible." #define STRING_TDB2_UNDO_SYNCED "Cannot undo change because the task was already synced. Modify the task instead." // text diff --git a/src/it-IT.h b/src/it-IT.h index 8328e05ce..0ba8b5b13 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -832,8 +832,6 @@ #define STRING_TDB2_REVERTED "Modifiche al task ripristinate." #define STRING_TDB2_REMOVED "Task rimosso." #define STRING_TDB2_UNDO_COMPLETE "Undo completato." -#define STRING_TDB2_MISSING_TASK "Task con UUID {1} non trovato nei dati." -#define STRING_TDB2_UNDO_IMPOSSIBLE "Nessun undo possibile." #define STRING_TDB2_UNDO_SYNCED "Cannot undo change because the task was already synced. Modify the task instead." // text From fa59d0d77dd6052a2903f9bab0c159e6852694a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rainer=20M=C3=BCller?= Date: Mon, 7 Oct 2013 23:50:56 +0200 Subject: [PATCH 126/173] Unit Tests - Set well-known umask for permissions test. When started with another umask value the permissions of the created directory would be different and the tests fail. --- AUTHORS | 1 + test/directory.t.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/AUTHORS b/AUTHORS index 3e4dae85a..cf65848be 100644 --- a/AUTHORS +++ b/AUTHORS @@ -90,6 +90,7 @@ The following submitted code, packages or analysis, and deserve special thanks: Martin Natano kili jasper + Rainer Müller Thanks to the following, who submitted detailed bug reports and excellent suggestions: diff --git a/test/directory.t.cpp b/test/directory.t.cpp index 5afe0eb2c..7ca8787df 100644 --- a/test/directory.t.cpp +++ b/test/directory.t.cpp @@ -130,6 +130,7 @@ int main (int argc, char** argv) t.notok (d9.up (), "parent / --> false"); // Test permissions. + umask(0022); Directory d10 ("tmp/dir.perm"); d10.create (0750); t.ok (d10.exists (), "Directory::create perm file exists"); From 7a79e3b6734b89dc54ebca393bf65c41bdd28e5a Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 8 Oct 2013 07:03:06 -0400 Subject: [PATCH 127/173] Documentation - Removed double entry in AUTHORS. --- AUTHORS | 1 - 1 file changed, 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index cf65848be..3e4dae85a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -90,7 +90,6 @@ The following submitted code, packages or analysis, and deserve special thanks: Martin Natano kili jasper - Rainer Müller Thanks to the following, who submitted detailed bug reports and excellent suggestions: From 044f8301446186d79ca2e9afa48ae518be203a35 Mon Sep 17 00:00:00 2001 From: Fidel Mato Date: Tue, 8 Oct 2013 11:50:24 +0200 Subject: [PATCH 128/173] L10N - Newly translated strings. --- src/es-ES.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/es-ES.h b/src/es-ES.h index 798edc583..cba82cc2d 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -117,7 +117,7 @@ #define STRING_A3_ID_AFTER_HYPHEN "ID no reconocido tras guión." #define STRING_A3_RANGE_INVERTED "Rango invertido 'alto-bajo' en vez de 'bajo-alto'" #define STRING_A3_UUID_AFTER_COMMA "UUID no reconocido tras coma." -#define STRING_A3_ZERO_ID "'{1}' is not a valid ID." +#define STRING_A3_ZERO_ID "'{1}' no es un ID válido." // Color #define STRING_COLOR_UNRECOGNIZED "El color '{1}' no se reconoce." @@ -317,8 +317,8 @@ #define STRING_CMD_SUMMARY_COMPLETE "Completas" #define STRING_CMD_SUMMARY_NONE "(ninguna)" #define STRING_CMD_COUNT_USAGE "Cuenta tareas que coinciden" -#define STRING_CMD_GET_USAGE "DOM Accessor" -#define STRING_CMD_GET_NO_DOM "No DOM reference specified." +#define STRING_CMD_GET_USAGE "Método de acceso al DOM" +#define STRING_CMD_GET_NO_DOM "Referencia a DOM no especificada." #define STRING_CMD_UDAS_NO "Ningún UDA definido." #define STRING_CMD_UDAS_SUMMARY "{1} UDA definido" @@ -433,11 +433,11 @@ #define STRING_CMD_SYNC_NO_TLS "Taskwarrior fue construido sin soporte GnuTLS. Sincronización no disponible." #define STRING_CMD_SYNC_INIT "Por favor, confirme que desea subir todas sus tareas pendientes al Servidor Task" #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will no procederá a la inicialización de la sincronización por primera vez." -#define STRING_CMD_SYNC_RELOCATE0 "The server account has been relocated. Please update your configuration using:" +#define STRING_CMD_SYNC_RELOCATE0 "La cuenta del servidor ha sido reubicada. Por favor, actualice su configuración utilizando:" #define STRING_CMD_SYNC_RELOCATE1 "task config taskd.server {1}" -#define STRING_CMD_SYNC_NO_CA "CA certificate not found." -#define STRING_CMD_SYNC_CONNECT "Could not connect to {1} {2}" -#define STRING_CMD_SYNC_HANDSHAKE "Handshake failed. {1}" +#define STRING_CMD_SYNC_NO_CA "Certificado CA no encontrado." +#define STRING_CMD_SYNC_CONNECT "No se pudo conectar a {1} {2}" +#define STRING_CMD_SYNC_HANDSHAKE "Handshake fallido. {1}" #define STRING_CMD_DIAG_USAGE "Detalles de plataforma, construcción y entorno" #define STRING_CMD_DIAG_PLATFORM "Plataforma" #define STRING_CMD_DIAG_UNKNOWN "" @@ -846,7 +846,7 @@ #define STRING_TDB2_REVERTED "Tarea modificada revertida." #define STRING_TDB2_REMOVED "Tarea eliminada." #define STRING_TDB2_UNDO_COMPLETE "Deshacer completado." -#define STRING_TDB2_UNDO_SYNCED "Cannot undo change because the task was already synced. Modify the task instead." +#define STRING_TDB2_UNDO_SYNCED "No se puede deshacer el cambio porque la tarea ya ha sido sincronizada. Como alternativa, modifique la tarea." // text // Se añade al final una lista de comandos separados por comas. From f55bf67fc7f04354f52cdcd1bd75fce012c9550e Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 21 Oct 2013 17:09:16 -0400 Subject: [PATCH 129/173] Documentation - Corrected suported platforms. --- NEWS | 4 ++-- src/CMakeLists.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index d41760c3b..c0cc09b3a 100644 --- a/NEWS +++ b/NEWS @@ -47,9 +47,9 @@ Known Issues Taskwarrior has been built and tested on the following configurations: - * OS X 10.9 Mavericks, 10.8 Mountain Lion and 10.7 Lion + * OS X 10.9 Mavericks, 10.8 Mountain Lion * Fedora 19 Schrodinger's Cat and 18 Spherical Cow - * Ubuntu 12.10 Quantal Quetzal and 12.04 Precise Pangolin + * Ubuntu 10.04 Lucid Lynx and 13.04 Raring Ringtail * Debian 7.0 Wheezy (stable) and 6.0 Squeeze (oldstable) plus Sid (testing) * Slackware 13.37 * Arch Linux diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2d0c2fd54..a888d8691 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -51,7 +51,7 @@ set (task_SRCS A3.cpp A3.h add_library (task STATIC ${task_SRCS}) add_executable (task_executable main.cpp) -# Yes, 'task' is included twice, other linking fails on CentOS. +# Yes, 'task' is included twice, other linking fails on assorted OSes. target_link_libraries (task_executable task commands columns task ${TASK_LIBRARIES}) set_property (TARGET task_executable PROPERTY OUTPUT_NAME "task") From 6c985b76c3dd18c4f570adf69add6c16835e023d Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 29 Oct 2013 21:03:39 -0400 Subject: [PATCH 130/173] L10N - Added an error message for missing key file. --- src/en-US.h | 1 + src/es-ES.h | 1 + src/fr-FR.h | 1 + src/it-IT.h | 1 + 4 files changed, 4 insertions(+) diff --git a/src/en-US.h b/src/en-US.h index 4a425d236..4ae879cfd 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -407,6 +407,7 @@ #define STRING_CMD_SYNC_NO_SERVER "Task Server is not configured." #define STRING_CMD_SYNC_BAD_CRED "Task Server credentials malformed." #define STRING_CMD_SYNC_BAD_CERT "Task Server certificate missing." +#define STRING_CMD_SYNC_BAD_KEY "Task Server key missing." #define STRING_CMD_SYNC_ADD " add {1} '{2}'" #define STRING_CMD_SYNC_MOD "modify {1} '{2}'" #define STRING_CMD_SYNC_PROGRESS "Syncing with {1}" diff --git a/src/es-ES.h b/src/es-ES.h index cba82cc2d..b0478dcc3 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -418,6 +418,7 @@ #define STRING_CMD_SYNC_NO_SERVER "El Servidor Task no está configurado." #define STRING_CMD_SYNC_BAD_CRED "Credenciales del Servidor Task incorrectas." #define STRING_CMD_SYNC_BAD_CERT "Certificado del Servidor Task no encontrado." +#define STRING_CMD_SYNC_BAD_KEY "Task Server key missing." #define STRING_CMD_SYNC_ADD " añade {1} '{2}'" #define STRING_CMD_SYNC_MOD "modifica {1} '{2}'" #define STRING_CMD_SYNC_PROGRESS "Sincronizando con {1}" diff --git a/src/fr-FR.h b/src/fr-FR.h index 43a1a72f9..366e224fc 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -407,6 +407,7 @@ #define STRING_CMD_SYNC_NO_SERVER "Task Server is not configured." #define STRING_CMD_SYNC_BAD_CRED "Task Server credentials malformed." #define STRING_CMD_SYNC_BAD_CERT "Task Server certificate missing." +#define STRING_CMD_SYNC_BAD_KEY "Task Server key missing." #define STRING_CMD_SYNC_ADD " add {1} '{2}'" #define STRING_CMD_SYNC_MOD "modify {1} '{2}'" #define STRING_CMD_SYNC_PROGRESS "Syncing with {1}" diff --git a/src/it-IT.h b/src/it-IT.h index 0ba8b5b13..3c0274c3d 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -408,6 +408,7 @@ #define STRING_CMD_SYNC_NO_SERVER "Task Server non configurato." #define STRING_CMD_SYNC_BAD_CRED "Credenziali del Task Server malformate." #define STRING_CMD_SYNC_BAD_CERT "Task Server certificate missing." +#define STRING_CMD_SYNC_BAD_KEY "Task Server key missing." #define STRING_CMD_SYNC_ADD " aggiunto {1} '{2}'" #define STRING_CMD_SYNC_MOD "modificato {1} '{2}'" #define STRING_CMD_SYNC_PROGRESS "Sincronizzazione con {1}" From 6e0603234e7b8e26efe21ee65d5e09c27db85abc Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 29 Oct 2013 22:43:55 -0400 Subject: [PATCH 131/173] Documentation - Added references to new configuration settings. --- NEWS | 4 +++- README_TASKD | 6 ++++-- doc/man/taskrc.5.in | 26 ++++++++++++++++++++++++-- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/NEWS b/NEWS index c0cc09b3a..c0caa0b0c 100644 --- a/NEWS +++ b/NEWS @@ -23,7 +23,9 @@ New configuration options in taskwarrior 2.3.0 - 'taskd.server' specifies host:port of the task server. - 'taskd.credentials' specifies user credentials for the task server. - - 'taskd.certificate' specifies the task server certificate. + - 'taskd.certificate' specifies the task server certificate for authentication. + - 'taskd.key' specifies the task server key for encryption. + - 'taskd.trust' overrides certificate checking. - 'debug.tls' shows TLS log information, for debugging. - The configuration file supports JSON encoding of unicode characters \uNNNN. diff --git a/README_TASKD b/README_TASKD index be32a4cb2..74432a2ca 100644 --- a/README_TASKD +++ b/README_TASKD @@ -29,15 +29,17 @@ need the following items: Where Task Server is running (Default: localhost:6544) Name of organization (default: Public) User name added to server - Key UUID generated by server + UUID generated by server Full path to client.cert.pem generated by server + Full path to client.key.pem generated by server Set these configuration variables in your Taskwarrior configuration, substituting from above: $ task config taskd.server - $ task config taskd.credentials // + $ task config taskd.credentials // $ task config taskd.certificate + $ task config taskd.key Here is an example: diff --git a/doc/man/taskrc.5.in b/doc/man/taskrc.5.in index 749fa411e..ba915fa97 100644 --- a/doc/man/taskrc.5.in +++ b/doc/man/taskrc.5.in @@ -1354,8 +1354,30 @@ User identification for the task server, which includes a private key. .TP .B taskd.certificate= .RS -Specifies the path to the client certificate used for encrypted communication -with the task server. +Specifies the path to the client certificate used for identification with the +task server. +.RE + +.TP +.B taskd.key= +.RS +Specifies the path to the client key used for encrypted communication with the +task server. +.RE + +.TP +.B taskd.ca= +.RS +Specifies the path to the CA certificate in the event that your task server is +using a self-signed certificate. Optional. +.RE + +.TP +.B taskd.trust=yes|no +.RS +If you do not specify a CA certificate when your task server is usㄟng a self- +signed certificate, you can override the certificate validation by setting this +value to 'yes'. Default is not to trust a server certificate. .RE .SH "CREDITS & COPYRIGHTS" From d6d6a098f3c72b18bb45f525dc5ff1087a963b71 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 29 Oct 2013 22:51:55 -0400 Subject: [PATCH 132/173] Documentation - Added new configuration settings to 'show' command and man page. --- NEWS | 1 + src/commands/CmdShow.cpp | 3 +++ 2 files changed, 4 insertions(+) diff --git a/NEWS b/NEWS index c0caa0b0c..578cf14de 100644 --- a/NEWS +++ b/NEWS @@ -25,6 +25,7 @@ New configuration options in taskwarrior 2.3.0 - 'taskd.credentials' specifies user credentials for the task server. - 'taskd.certificate' specifies the task server certificate for authentication. - 'taskd.key' specifies the task server key for encryption. + - 'taskd.ca' specifies the task server CA. - 'taskd.trust' overrides certificate checking. - 'debug.tls' shows TLS log information, for debugging. - The configuration file supports JSON encoding of unicode characters \uNNNN. diff --git a/src/commands/CmdShow.cpp b/src/commands/CmdShow.cpp index 1005fad0f..5b13bbf41 100644 --- a/src/commands/CmdShow.cpp +++ b/src/commands/CmdShow.cpp @@ -189,8 +189,11 @@ int CmdShow::execute (std::string& output) " shell.prompt" " tag.indicator" " taskd.server" + " taskd.ca" " taskd.certificate" " taskd.credentials" + " taskd.key" + " taskd.trust" " undo.style" " urgency.active.coefficient" " urgency.scheduled.coefficient" From 5a0dfa634cfba17e00ec52877ba25209f8d177dd Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 29 Oct 2013 22:59:04 -0400 Subject: [PATCH 133/173] Certificates - Implemented TLSClient::trust, which overrides certifcate validation. --- src/TLSClient.cpp | 15 +++++++++++++++ src/TLSClient.h | 1 + 2 files changed, 16 insertions(+) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index 579f75517..27a31b0bd 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -46,6 +46,8 @@ #define MAX_BUF 16384 +static bool trust_override = false; + //////////////////////////////////////////////////////////////////////////////// static void gnutls_log_function (int level, const char* message) { @@ -93,6 +95,19 @@ void TLSClient::debug (int level) gnutls_global_set_log_level (level); } +//////////////////////////////////////////////////////////////////////////////// +void TLSClient::trust (bool value) +{ + trust_override = value; + if (_debug) + { + if (trust_override) + std::cout << "c: INFO Server certificate trusted automatically.\n"; + else + std::cout << "c: INFO Server certificate trust verified.\n"; + } +} + //////////////////////////////////////////////////////////////////////////////// void TLSClient::init (const std::string& ca) { diff --git a/src/TLSClient.h b/src/TLSClient.h index 45e9f0cc3..668a04992 100644 --- a/src/TLSClient.h +++ b/src/TLSClient.h @@ -39,6 +39,7 @@ public: ~TLSClient (); void limit (int); void debug (int); + void trust (bool); void init (const std::string&); void connect (const std::string&, const std::string&); void bye (); From eda9ac56da7f5046725aa18bc243b49cd008aaf6 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 29 Oct 2013 23:02:32 -0400 Subject: [PATCH 134/173] Certificates - Added certificate verification callback. --- src/TLSClient.cpp | 55 +++++++++++++++++++++++++++++++++++----- src/TLSClient.h | 4 ++- src/commands/CmdSync.cpp | 20 ++++++++++++--- src/commands/CmdSync.h | 2 +- 4 files changed, 69 insertions(+), 12 deletions(-) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index 27a31b0bd..0ee60c201 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -54,6 +54,39 @@ static void gnutls_log_function (int level, const char* message) std::cout << "c: " << level << " " << message; } +//////////////////////////////////////////////////////////////////////////////// +static int verify_certificate_callback (gnutls_session_t session) +{ + if (trust_override) + return 0; + + // Get the hostname from the session. + const char* hostname = (const char*) gnutls_session_get_ptr (session); + + // This verification function uses the trusted CAs in the credentials + // structure. So you must have installed one or more CA certificates. + unsigned int status; + int ret = gnutls_certificate_verify_peers3 (session, hostname, &status); + if (ret < 0) + return GNUTLS_E_CERTIFICATE_ERROR; + + gnutls_certificate_type_t type = gnutls_certificate_type_get (session); + gnutls_datum_t out; + ret = gnutls_certificate_verification_status_print (status, type, &out, 0); + if (ret < 0) + return GNUTLS_E_CERTIFICATE_ERROR; + + std::cout << "c: INFO " << out.data << "\n"; + + gnutls_free (out.data); + + if (status != 0) + return GNUTLS_E_CERTIFICATE_ERROR; + + // Continue handshake. + return 0; +} + //////////////////////////////////////////////////////////////////////////////// TLSClient::TLSClient () : _ca ("") @@ -109,16 +142,26 @@ void TLSClient::trust (bool value) } //////////////////////////////////////////////////////////////////////////////// -void TLSClient::init (const std::string& ca) +void TLSClient::init ( + const std::string& cert, + const std::string& key) { - _ca = ca; - File ca_file (_ca); - if (!ca_file.exists ()) - throw std::string (STRING_CMD_SYNC_NO_CA); + _cert = cert; + _key = key; gnutls_global_init (); gnutls_certificate_allocate_credentials (&_credentials); - gnutls_certificate_set_x509_trust_file (_credentials, _ca.c_str (), GNUTLS_X509_FMT_PEM); + + if (_cert != "" && + gnutls_certificate_set_x509_trust_file (_credentials, _cert.c_str (), GNUTLS_X509_FMT_PEM) < 0) + throw std::string ("Missing CA file."); + + if (_cert != "" && + _key != "" && + gnutls_certificate_set_x509_key_file (_credentials, _cert.c_str (), _key.c_str (), GNUTLS_X509_FMT_PEM) < 0) + throw std::string ("Missing CERT file."); + + gnutls_certificate_set_verify_function (_credentials, verify_certificate_callback); gnutls_init (&_session, GNUTLS_CLIENT); // Use default priorities. diff --git a/src/TLSClient.h b/src/TLSClient.h index 668a04992..d7462fbee 100644 --- a/src/TLSClient.h +++ b/src/TLSClient.h @@ -40,7 +40,7 @@ public: void limit (int); void debug (int); void trust (bool); - void init (const std::string&); + void init (const std::string&, const std::string&); void connect (const std::string&, const std::string&); void bye (); @@ -49,6 +49,8 @@ public: private: std::string _ca; + std::string _cert; + std::string _key; gnutls_certificate_credentials_t _credentials; gnutls_session_t _session; int _socket; diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index fe557142a..4d7daae20 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -88,10 +88,21 @@ int CmdSync::execute (std::string& output) if (credentials.size () != 3) throw std::string (STRING_CMD_SYNC_BAD_CRED); + bool trust = context.config.getBoolean ("taskd.trust"); +/* + File ca (context.config.get ("taskd.ca")); + if (ca._data != "" && ! ca.exists ()) + throw std::string (STRING_CMD_SYNC_BAD_CA); +*/ + File certificate (context.config.get ("taskd.certificate")); if (! certificate.exists ()) throw std::string (STRING_CMD_SYNC_BAD_CERT); + File key (context.config.get ("taskd.key")); + if (! key.exists ()) + throw std::string (STRING_CMD_SYNC_BAD_KEY); + // If this is a first-time initialization, send pending.data, not // backlog.data. std::string payload = ""; @@ -146,7 +157,7 @@ int CmdSync::execute (std::string& output) signal (SIGUSR2, SIG_IGN); Msg response; - if (send (connection, certificate._data, request, response)) + if (send (connection, certificate._data, key._data, trust, request, response)) { std::string code = response.get ("code"); if (code == "200") @@ -304,6 +315,8 @@ int CmdSync::execute (std::string& output) bool CmdSync::send ( const std::string& to, const std::string& certificate, + const std::string& key, + bool trust, const Msg& request, Msg& response) { @@ -315,14 +328,13 @@ bool CmdSync::send ( std::string server = to.substr (0, colon); std::string port = to.substr (colon + 1); - File cert (certificate); - try { // A very basic TLS client, with X.509 authentication. TLSClient client; client.debug (context.config.getInteger ("debug.tls")); - client.init (cert); + client.trust (trust); + client.init (certificate, key); client.connect (server, port); client.send (request.serialize () + "\n"); diff --git a/src/commands/CmdSync.h b/src/commands/CmdSync.h index 6bae60f49..d4cee496a 100644 --- a/src/commands/CmdSync.h +++ b/src/commands/CmdSync.h @@ -39,7 +39,7 @@ public: int execute (std::string&); private: - bool send (const std::string&, const std::string&, const Msg&, Msg&); + bool send (const std::string&, const std::string&, const std::string&, bool, const Msg&, Msg&); }; #endif From 7c08ce749f98a84d7176c81af2cf08cda11effde Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 29 Oct 2013 23:03:21 -0400 Subject: [PATCH 135/173] Certificates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Stores the host name in the session, for handѕhake validation. --- src/TLSClient.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index 0ee60c201..b40756e32 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -182,6 +182,10 @@ void TLSClient::init ( //////////////////////////////////////////////////////////////////////////////// void TLSClient::connect (const std::string& host, const std::string& port) { + // Store the host name, so the verification callback can access it during the + // handshake below. + gnutls_session_set_ptr (_session, (void*) host.c_str ()); + // use IPv4 or IPv6, does not matter. struct addrinfo hints = {0}; hints.ai_family = AF_UNSPEC; From 1725460728ff0a092761def02dc5ca5f067da6b9 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 29 Oct 2013 23:04:12 -0400 Subject: [PATCH 136/173] Certificates - Stores the socket in the session. --- src/TLSClient.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index b40756e32..6d8e520fb 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -225,7 +225,11 @@ void TLSClient::connect (const std::string& host, const std::string& port) if (p == NULL) throw format (STRING_CMD_SYNC_CONNECT, host, port); +#if GNUTLS_VERSION_NUMBER >= 0x030109 + gnutls_transport_set_int (_session, _socket); +#else gnutls_transport_set_ptr (_session, (gnutls_transport_ptr_t) (long) _socket); +#endif // Perform the TLS handshake int ret; From b77ac4114cb8f70d73be4bff317c0a52bb8a0448 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 29 Oct 2013 23:04:48 -0400 Subject: [PATCH 137/173] Certificates - Added feedback from GnuTLS to the handshake diagnistic message. --- src/TLSClient.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index 6d8e520fb..a3bb42d96 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -242,7 +242,11 @@ void TLSClient::connect (const std::string& host, const std::string& port) throw format (STRING_CMD_SYNC_HANDSHAKE, gnutls_strerror (ret)); if (_debug) - std::cout << "c: INFO Handshake was completed\n"; + { + char* desc = gnutls_session_get_desc (_session); + std::cout << "c: INFO Handshake was completed: " << desc << "\n"; + gnutls_free (desc); + } } //////////////////////////////////////////////////////////////////////////////// From 517e48506e592b13ad9f0eb554b2cc8fdb73648c Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 29 Oct 2013 23:05:21 -0400 Subject: [PATCH 138/173] TLS - Corrected ::recv error handling. --- src/TLSClient.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index a3bb42d96..f42a20b51 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -347,7 +347,13 @@ void TLSClient::recv (std::string& data) } // Something happened. - if (received < 0) + if (received < 0 && gnutls_error_is_fatal (received) == 0) + { + if (_debug) + std::cout << "c: WARNING " << gnutls_strerror (received) << "\n"; + } + + else if (received < 0) throw std::string (gnutls_strerror (received)); buffer [received] = '\0'; From cf051ba17485aeb33633f585ca5fb3e3ebfbe743 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 29 Oct 2013 23:20:34 -0400 Subject: [PATCH 139/173] Documentation - Added recently closed bugs to ChangeLog. --- AUTHORS | 1 + ChangeLog | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/AUTHORS b/AUTHORS index 3e4dae85a..767eb1aa9 100644 --- a/AUTHORS +++ b/AUTHORS @@ -185,3 +185,4 @@ suggestions: John West Dmitriy Matrosov Michele Santullo + Scott Kroll diff --git a/ChangeLog b/ChangeLog index aaa873591..2585305f9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17,6 +17,7 @@ Features + #1297 The task₋sync(5) man pages is rewritten with examples. + #1339 The configuration file now supports JSON encoding of Unicode characters, by specifying \uNNNN. + + #1385 Need a way to configure the trust of self-signed certificates. + Stores un-synched transactions in /backlog.data. + Adds a new 'synchronize' command to sync data with a task server. + Adds a new 'initialize' synchronize command argument that uploads all pending @@ -85,6 +86,9 @@ Bugs + #1388 Updated task(1) man pages with import/export script examples (thanks to Benjamin Weber). + #1410 Incomplete Date Synonym List in man task (thanks to Benjamin Weber). + + #1414 Client does not verify SSL certificates (thanks to Scott Kroll). + + #1415 Client should not require a SSL certificate if the server has a trusted + certificate (thanks to Scott Kroll). + Fixed bug so that 'limit:page' now considers footnote messages. + Fixed bug where specifying an ID of 0 yielded all completed/deleted tasks (thanks to greenskeleton). From 169cc7b5cb56e9b21bbf7f9eb3ff49659469788a Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Wed, 30 Oct 2013 00:20:38 -0400 Subject: [PATCH 140/173] Code Cleanup - Removed unused header. - Added ctor initialization. - Removed misleading comment. --- src/TLSClient.cpp | 5 +++-- src/commands/CmdSync.cpp | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index f42a20b51..fd1e8dba4 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -36,10 +36,9 @@ #include #include #include -#include +#include #include #include -#include #include #include #include @@ -90,6 +89,8 @@ static int verify_certificate_callback (gnutls_session_t session) //////////////////////////////////////////////////////////////////////////////// TLSClient::TLSClient () : _ca ("") +, _cert ("") +, _key ("") , _socket (0) , _limit (0) , _debug (false) diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index 4d7daae20..153f7d9a8 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -330,7 +330,6 @@ bool CmdSync::send ( try { - // A very basic TLS client, with X.509 authentication. TLSClient client; client.debug (context.config.getInteger ("debug.tls")); client.trust (trust); From 9dbad510626f2f26cca4fd1b35553152915898f3 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Wed, 30 Oct 2013 23:51:07 -0400 Subject: [PATCH 141/173] Portability - Added version-specific GnuTLS calls. --- src/TLSClient.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index fd1e8dba4..f6dc1141b 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -45,6 +45,8 @@ #define MAX_BUF 16384 +static int verify_certificate_callback (gnutls_session_t); + static bool trust_override = false; //////////////////////////////////////////////////////////////////////////////// @@ -64,11 +66,16 @@ static int verify_certificate_callback (gnutls_session_t session) // This verification function uses the trusted CAs in the credentials // structure. So you must have installed one or more CA certificates. - unsigned int status; - int ret = gnutls_certificate_verify_peers3 (session, hostname, &status); + unsigned int status = 0; +#if GNUTLS_VERSION_NUMBER >= 0x030104 + int ret = gnutls_certificate_verify_peers3 (session, NULL, &status); +#else + int ret = gnutls_certificate_verify_peers2 (session, &status); +#endif if (ret < 0) return GNUTLS_E_CERTIFICATE_ERROR; +#if GNUTLS_VERSION_NUMBER >= 0x030105 gnutls_certificate_type_t type = gnutls_certificate_type_get (session); gnutls_datum_t out; ret = gnutls_certificate_verification_status_print (status, type, &out, 0); @@ -78,6 +85,7 @@ static int verify_certificate_callback (gnutls_session_t session) std::cout << "c: INFO " << out.data << "\n"; gnutls_free (out.data); +#endif if (status != 0) return GNUTLS_E_CERTIFICATE_ERROR; @@ -162,7 +170,9 @@ void TLSClient::init ( gnutls_certificate_set_x509_key_file (_credentials, _cert.c_str (), _key.c_str (), GNUTLS_X509_FMT_PEM) < 0) throw std::string ("Missing CERT file."); +#if GNUTLS_VERSION_NUMBER >= 0x02090a gnutls_certificate_set_verify_function (_credentials, verify_certificate_callback); +#endif gnutls_init (&_session, GNUTLS_CLIENT); // Use default priorities. @@ -244,9 +254,13 @@ void TLSClient::connect (const std::string& host, const std::string& port) if (_debug) { +#if GNUTLS_VERSION_NUMBER >= 0x03010a char* desc = gnutls_session_get_desc (_session); std::cout << "c: INFO Handshake was completed: " << desc << "\n"; gnutls_free (desc); +#else + std::cout << "c: INFO Handshake was completed.\n"; +#endif } } From 9a7752b07a919b9fb605601f20599b4b668c5800 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Thu, 31 Oct 2013 19:17:06 -0400 Subject: [PATCH 142/173] Portability - Fixed OpenBSD build error (thanks to Aaron Bieber). --- src/TLSClient.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index fd1e8dba4..fcc33eb52 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -36,7 +36,11 @@ #include #include #include +#ifdef OPENBSD +#include +#else #include +#endif #include #include #include From d9d7affec08325afdc836f880ca68b6f36535dfb Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Thu, 31 Oct 2013 19:17:45 -0400 Subject: [PATCH 143/173] Unit Tests - OpenBSD has the same limitations as other BSD variants, with respect to regex \b support. --- test/rx.t.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/rx.t.cpp b/test/rx.t.cpp index e2634513b..eae83f6dd 100644 --- a/test/rx.t.cpp +++ b/test/rx.t.cpp @@ -93,7 +93,7 @@ int main (int argc, char** argv) ut.ok (r9.match (start, end, text), "e there are matches"); ut.is (start.size (), (size_t) 6, "e == 6 matches"); -#if defined(DARWIN) || defined(CYGWIN) || defined(FREEBSD) +#if defined(DARWIN) || defined(CYGWIN) || defined(FREEBSD) || defined(OPENBSD) text = "this is the end."; ut.pass (text + " =~ /\\bthe/"); ut.pass (text + " =~ /the\\b/"); From 2eac71801aa23adfbf012fd99b985ff006510a45 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Thu, 31 Oct 2013 21:00:50 -0400 Subject: [PATCH 144/173] Documentation - Updated platform support, AUTHORS. --- AUTHORS | 2 ++ NEWS | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 767eb1aa9..69d1f8f9b 100644 --- a/AUTHORS +++ b/AUTHORS @@ -90,6 +90,8 @@ The following submitted code, packages or analysis, and deserve special thanks: Martin Natano kili jasper + Aaron Bieber + John West Thanks to the following, who submitted detailed bug reports and excellent suggestions: diff --git a/NEWS b/NEWS index 578cf14de..d7035b01c 100644 --- a/NEWS +++ b/NEWS @@ -52,7 +52,7 @@ Taskwarrior has been built and tested on the following configurations: * OS X 10.9 Mavericks, 10.8 Mountain Lion * Fedora 19 Schrodinger's Cat and 18 Spherical Cow - * Ubuntu 10.04 Lucid Lynx and 13.04 Raring Ringtail + * Ubuntu 10.04 Lucid Lynx, 13.04 Raring Ringtail and 13.10 Saucy Salamander * Debian 7.0 Wheezy (stable) and 6.0 Squeeze (oldstable) plus Sid (testing) * Slackware 13.37 * Arch Linux From 8ad29bded737fa1a20d50fac9f8a1a453576046a Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Fri, 1 Nov 2013 17:35:35 -0400 Subject: [PATCH 145/173] Bug #1381 - #1381 Invalid JSON exported by Task 2.3.0-beta1 (thanks to Kosta H). --- AUTHORS | 1 + ChangeLog | 1 + src/Task.cpp | 6 +++--- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/AUTHORS b/AUTHORS index 69d1f8f9b..8889fa147 100644 --- a/AUTHORS +++ b/AUTHORS @@ -188,3 +188,4 @@ suggestions: Dmitriy Matrosov Michele Santullo Scott Kroll + Kosta H diff --git a/ChangeLog b/ChangeLog index 2585305f9..9386e5ab6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -82,6 +82,7 @@ Bugs + #1352 Terminal crashes when using taskwarrior's zsh completion (thanks to Ivan Freitas, XTaran). + #1356 Command reference now mentions /from/to/g. + + #1381 Invalid JSON exported by Task 2.3.0-beta1 (thanks to Kosta H). + #1387 ZSH Auto-Completion dates are not current (thanks to Benjamin Weber). + #1388 Updated task(1) man pages with import/export script examples (thanks to Benjamin Weber). diff --git a/src/Task.cpp b/src/Task.cpp index 30a28c199..ec6e9679d 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -797,13 +797,13 @@ std::string Task::composeJSON (bool decorate /*= false*/) const Task::const_iterator i; for (i = this->begin (); i != this->end (); ++i) { - if (attributes_written) - out << ","; - // Annotations are not written out here. if (i->first.substr (0, 11) == "annotation_") continue; + if (attributes_written) + out << ","; + std::string type = Task::attributes[i->first]; if (type == "") type = "string"; From 65cf8367765484b77eb2faf512b8b3896b683a16 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 2 Nov 2013 12:44:16 -0400 Subject: [PATCH 146/173] Code Cleanup - Removed dead code. --- src/A3.cpp | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/A3.cpp b/src/A3.cpp index 7ce537bc7..e424481da 100644 --- a/src/A3.cpp +++ b/src/A3.cpp @@ -1374,7 +1374,6 @@ bool A3::is_attmod (Nibbler& n, Arg& arg) std::string canonical; std::string modifier; std::string value; -// time_t date; // If there is a valid attribute name. if (n.getName (name) && @@ -1398,22 +1397,11 @@ bool A3::is_attmod (Nibbler& n, Arg& arg) // Consider removing this for a stricter parse. if (n.getQuoted ('"', value) || n.getQuoted ('\'', value) || -// TODO Need more things recognized before it falls through to getUntilEOS. -// n.getDate (context.config.get ("dateformat"), date) || -// need Duration too. n.getUntilWS (value) || n.getName (value) || n.getUntilEOS (value) || // Redundant? n.depleted ()) { -/* - TODO Eliminate anything that looks like a URL. - // Exclude certain URLs, that look like attrs. - if (value.find ('@') <= n.cursor () || - value.find ('/') <= n.cursor ()) - return false; -*/ - arg._raw = canonical + '.' + modifier + ':' + value; Column* col = context.columns[canonical]; arg._type = col ? Arg::type_id (col->type ()) : Arg::type_pseudo; From 8baaa1031c1d2fc027be0c766194d18004924eac Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 3 Nov 2013 10:43:39 -0500 Subject: [PATCH 147/173] Code Cleanup - Removed obsolete comments and code. --- src/DOM.cpp | 40 ++++++---------------------------------- 1 file changed, 6 insertions(+), 34 deletions(-) diff --git a/src/DOM.cpp b/src/DOM.cpp index e99310108..c121f11ee 100644 --- a/src/DOM.cpp +++ b/src/DOM.cpp @@ -73,6 +73,7 @@ const std::vector DOM::get_references () const // // system.version // system.os +// const std::string DOM::get (const std::string& name) { int len = name.length (); @@ -86,7 +87,7 @@ const std::string DOM::get (const std::string& name) } // context.* - else if (len > 8 && + if (len > 8 && name.substr (0, 8) == "context.") { if (name == "context.program") return context.a3[0]._raw; @@ -99,7 +100,7 @@ const std::string DOM::get (const std::string& name) // TODO stats. // system. --> Implement locally. - else if (len > 7 && + if (len > 7 && name.substr (0, 7) == "system.") { // Taskwarrior version number. @@ -143,38 +144,9 @@ const std::string DOM::get (const std::string& name) //////////////////////////////////////////////////////////////////////////////// // DOM Supported References: // -// TODO .{entry,start,end,scheduled,due,until,wait} -// TODO .description -// TODO .project -// TODO .priority -// TODO .parent -// TODO .status -// TODO .tags -// TODO .urgency -// TODO .recur -// TODO .depends -// -// TODO .{entry,start,end,scheduled,due,until,wait} -// TODO .description -// TODO .project -// TODO .priority -// TODO .parent -// TODO .status -// TODO .tags -// TODO .urgency -// TODO .recur -// TODO .depends -// -// {entry,start,end,scheduled,due,until,wait} -// description -// project -// priority -// parent -// status -// tags -// urgency -// recur -// depends +// +// . +// . // const std::string DOM::get (const std::string& name, const Task& task) { From 56d8734e1a088ab3b864d9f27af07c23df1781f7 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 3 Nov 2013 11:41:59 -0500 Subject: [PATCH 148/173] Documentation - Added the taskd.key configuration setting to the task-sync man page. - Added discussion of taskd.ca and taskd.trust options. --- doc/man/task-sync.5.in | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/doc/man/task-sync.5.in b/doc/man/task-sync.5.in index 5155c11ec..49de5549b 100644 --- a/doc/man/task-sync.5.in +++ b/doc/man/task-sync.5.in @@ -94,9 +94,23 @@ need to put the certificate somewhere like this: Then you configure Taskwarrior, using the account details: $ task config taskd.certificate ~/.task/.cert.pem + $ task config taskd.key ~/.task/.key.pem $ task config taskd.credentials // $ task config taskd.server : +If you are using a private server, you are likely also using a self-signed +certificate, which means you will need one of the following additional entries: + + $ task config taskd.ca ~/.task/ca.cert.pem + +The CA (Certificate Authority) will be used to verify the server certificate. +Alternatively, you can override the cert verification process using: + + $ task config taskd.trust yes + +This is an insecure option that should be used with caution, because it directs +Taskwarrior to trust any certificate. + After setup, you run a one-time sync initialization, like this: $ task sync initialize From 8c9bc99af6129d415f05c329a63291ed64e68d2f Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 3 Nov 2013 12:04:21 -0500 Subject: [PATCH 149/173] Feature #1423 - #1423 sync vs. push, pull, merge collision avoidance. --- ChangeLog | 1 + src/commands/CmdShow.cpp | 14 +------------- src/commands/CmdSync.cpp | 7 +++++++ src/en-US.h | 1 + src/es-ES.h | 1 + src/fr-FR.h | 1 + src/it-IT.h | 1 + 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9386e5ab6..8c62c2a1e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17,6 +17,7 @@ Features + #1297 The task₋sync(5) man pages is rewritten with examples. + #1339 The configuration file now supports JSON encoding of Unicode characters, by specifying \uNNNN. + + #1423 sync vs. push, pull, merge collision avoidance. + #1385 Need a way to configure the trust of self-signed certificates. + Stores un-synched transactions in /backlog.data. + Adds a new 'synchronize' command to sync data with a task server. diff --git a/src/commands/CmdShow.cpp b/src/commands/CmdShow.cpp index 5b13bbf41..b2fa840ac 100644 --- a/src/commands/CmdShow.cpp +++ b/src/commands/CmdShow.cpp @@ -168,7 +168,7 @@ int CmdShow::execute (std::string& output) " list.all.tags" " locale" " locking" - " merge.autopush" + " merge.autopush" // Deprecated 2.3.0 " merge.default.uri" // Deprecated 2.3.0 " monthsperline" " nag" @@ -300,19 +300,7 @@ int CmdShow::execute (std::string& output) color = warning; } - // TODO Deprecated. std::string value = i->second; - // hide sensible information - if ((i->first.substr (0, 5) == "push." || - i->first.substr (0, 5) == "pull." || - i->first.substr (0, 6) == "merge.") && - (i->first.find (".uri") != std::string::npos)) - { - Uri uri (value); - uri.parse (); - value = uri.ToString (); - } - int row = view.addRow (); view.set (row, 0, i->first, color); view.set (row, 1, value, color); diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index 153f7d9a8..715abf645 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -78,6 +78,13 @@ int CmdSync::execute (std::string& output) connection.rfind (':') == std::string::npos) throw std::string (STRING_CMD_SYNC_NO_SERVER); + // If push/pull/merge is configured, quit. + if (context.config.get ("merge.autopush") != "" || + context.config.get ("merge.default.uri") != "" || + context.config.get ("push.default.uri") != "" || + context.config.get ("pull.default.uri") != "") + throw std::string (STRING_CMD_SYNC_NOMERGE); + // Obtain credentials. std::string credentials_string = context.config.get ("taskd.credentials"); if (credentials_string == "") diff --git a/src/en-US.h b/src/en-US.h index 4ae879cfd..ab8e7acb8 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -428,6 +428,7 @@ #define STRING_CMD_SYNC_NO_CA "CA certificate not found." #define STRING_CMD_SYNC_CONNECT "Could not connect to {1} {2}" #define STRING_CMD_SYNC_HANDSHAKE "Handshake failed. {1}" +#define STRING_CMD_SYNC_NOMERGE "Task push/pull/merge is configured, deprecated, and does not work with 'sync'." #define STRING_CMD_DIAG_USAGE "Platform, build and environment details" #define STRING_CMD_DIAG_PLATFORM "Platform" #define STRING_CMD_DIAG_UNKNOWN "" diff --git a/src/es-ES.h b/src/es-ES.h index b0478dcc3..7c2e4ff59 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -439,6 +439,7 @@ #define STRING_CMD_SYNC_NO_CA "Certificado CA no encontrado." #define STRING_CMD_SYNC_CONNECT "No se pudo conectar a {1} {2}" #define STRING_CMD_SYNC_HANDSHAKE "Handshake fallido. {1}" +#define STRING_CMD_SYNC_NOMERGE "Task push/pull/merge is configured, deprecated, and does not work with 'sync'." #define STRING_CMD_DIAG_USAGE "Detalles de plataforma, construcción y entorno" #define STRING_CMD_DIAG_PLATFORM "Plataforma" #define STRING_CMD_DIAG_UNKNOWN "" diff --git a/src/fr-FR.h b/src/fr-FR.h index 366e224fc..0be2a7960 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -428,6 +428,7 @@ #define STRING_CMD_SYNC_NO_CA "CA certificate not found." #define STRING_CMD_SYNC_CONNECT "Could not connect to {1} {2}" #define STRING_CMD_SYNC_HANDSHAKE "Handshake failed. {1}" +#define STRING_CMD_SYNC_NOMERGE "Task push/pull/merge is configured, deprecated, and does not work with 'sync'." #define STRING_CMD_DIAG_USAGE "Platform, build and environment details" #define STRING_CMD_DIAG_PLATFORM "Platform" #define STRING_CMD_DIAG_UNKNOWN "" diff --git a/src/it-IT.h b/src/it-IT.h index 3c0274c3d..0653e1dcf 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -429,6 +429,7 @@ #define STRING_CMD_SYNC_NO_CA "CA certificate not found." #define STRING_CMD_SYNC_CONNECT "Could not connect to {1} {2}" #define STRING_CMD_SYNC_HANDSHAKE "Handshake failed. {1}" +#define STRING_CMD_SYNC_NOMERGE "Task push/pull/merge is configured, deprecated, and does not work with 'sync'." #define STRING_CMD_DIAG_USAGE "Dettagli su piattaforma, build e ambiente" #define STRING_CMD_DIAG_PLATFORM "Piattaforma" #define STRING_CMD_DIAG_UNKNOWN "" From f1f93aa5d55a32304fd5cdb966e229c0fc47739e Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 3 Nov 2013 12:49:56 -0500 Subject: [PATCH 150/173] TLS - If a CA is provided, it is used. --- src/commands/CmdSync.cpp | 17 ++++++++++++----- src/commands/CmdSync.h | 2 +- src/en-US.h | 3 ++- src/es-ES.h | 3 ++- src/fr-FR.h | 3 ++- src/it-IT.h | 3 ++- 6 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index 715abf645..c7f003cfd 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -96,11 +96,14 @@ int CmdSync::execute (std::string& output) throw std::string (STRING_CMD_SYNC_BAD_CRED); bool trust = context.config.getBoolean ("taskd.trust"); -/* + + // CA must exist, if provided. File ca (context.config.get ("taskd.ca")); if (ca._data != "" && ! ca.exists ()) throw std::string (STRING_CMD_SYNC_BAD_CA); -*/ + + if (trust && ca._data != "") + throw std::string (STRING_CMD_SYNC_TRUST_CA); File certificate (context.config.get ("taskd.certificate")); if (! certificate.exists ()) @@ -164,7 +167,7 @@ int CmdSync::execute (std::string& output) signal (SIGUSR2, SIG_IGN); Msg response; - if (send (connection, certificate._data, key._data, trust, request, response)) + if (send (connection, ca._data, certificate._data, key._data, trust, request, response)) { std::string code = response.get ("code"); if (code == "200") @@ -321,6 +324,7 @@ int CmdSync::execute (std::string& output) //////////////////////////////////////////////////////////////////////////////// bool CmdSync::send ( const std::string& to, + const std::string& ca, const std::string& certificate, const std::string& key, bool trust, @@ -339,10 +343,13 @@ bool CmdSync::send ( { TLSClient client; client.debug (context.config.getInteger ("debug.tls")); - client.trust (trust); + + // TODO Either use 'ca' or 'trust', but not both. + if (trust && ca == "") + client.trust (trust); + client.init (certificate, key); client.connect (server, port); - client.send (request.serialize () + "\n"); std::string incoming; diff --git a/src/commands/CmdSync.h b/src/commands/CmdSync.h index d4cee496a..d7124739c 100644 --- a/src/commands/CmdSync.h +++ b/src/commands/CmdSync.h @@ -39,7 +39,7 @@ public: int execute (std::string&); private: - bool send (const std::string&, const std::string&, const std::string&, bool, const Msg&, Msg&); + bool send (const std::string&, const std::string&, const std::string&, const std::string&, bool, const Msg&, Msg&); }; #endif diff --git a/src/en-US.h b/src/en-US.h index ab8e7acb8..7ab91dff8 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -425,10 +425,11 @@ #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." #define STRING_CMD_SYNC_RELOCATE0 "The server account has been relocated. Please update your configuration using:" #define STRING_CMD_SYNC_RELOCATE1 "task config taskd.server {1}" -#define STRING_CMD_SYNC_NO_CA "CA certificate not found." +#define STRING_CMD_SYNC_BAD_CA "CA certificate not found." #define STRING_CMD_SYNC_CONNECT "Could not connect to {1} {2}" #define STRING_CMD_SYNC_HANDSHAKE "Handshake failed. {1}" #define STRING_CMD_SYNC_NOMERGE "Task push/pull/merge is configured, deprecated, and does not work with 'sync'." +#define STRING_CMD_SYNC_TRUST_CA "You should either provide a CA certificate or override verification, but not both." #define STRING_CMD_DIAG_USAGE "Platform, build and environment details" #define STRING_CMD_DIAG_PLATFORM "Platform" #define STRING_CMD_DIAG_UNKNOWN "" diff --git a/src/es-ES.h b/src/es-ES.h index 7c2e4ff59..6650273dd 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -436,10 +436,11 @@ #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will no procederá a la inicialización de la sincronización por primera vez." #define STRING_CMD_SYNC_RELOCATE0 "La cuenta del servidor ha sido reubicada. Por favor, actualice su configuración utilizando:" #define STRING_CMD_SYNC_RELOCATE1 "task config taskd.server {1}" -#define STRING_CMD_SYNC_NO_CA "Certificado CA no encontrado." +#define STRING_CMD_SYNC_BAD_CA "Certificado CA no encontrado." #define STRING_CMD_SYNC_CONNECT "No se pudo conectar a {1} {2}" #define STRING_CMD_SYNC_HANDSHAKE "Handshake fallido. {1}" #define STRING_CMD_SYNC_NOMERGE "Task push/pull/merge is configured, deprecated, and does not work with 'sync'." +#define STRING_CMD_SYNC_TRUST_CA "You should either provide a CA certificate or override verification, but not both." #define STRING_CMD_DIAG_USAGE "Detalles de plataforma, construcción y entorno" #define STRING_CMD_DIAG_PLATFORM "Plataforma" #define STRING_CMD_DIAG_UNKNOWN "" diff --git a/src/fr-FR.h b/src/fr-FR.h index 0be2a7960..a9d0cd085 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -425,10 +425,11 @@ #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." #define STRING_CMD_SYNC_RELOCATE0 "The server account has been relocated. Please update your configuration using:" #define STRING_CMD_SYNC_RELOCATE1 "task config taskd.server {1}" -#define STRING_CMD_SYNC_NO_CA "CA certificate not found." +#define STRING_CMD_SYNC_BAD_CA "CA certificate not found." #define STRING_CMD_SYNC_CONNECT "Could not connect to {1} {2}" #define STRING_CMD_SYNC_HANDSHAKE "Handshake failed. {1}" #define STRING_CMD_SYNC_NOMERGE "Task push/pull/merge is configured, deprecated, and does not work with 'sync'." +#define STRING_CMD_SYNC_TRUST_CA "You should either provide a CA certificate or override verification, but not both." #define STRING_CMD_DIAG_USAGE "Platform, build and environment details" #define STRING_CMD_DIAG_PLATFORM "Platform" #define STRING_CMD_DIAG_UNKNOWN "" diff --git a/src/it-IT.h b/src/it-IT.h index 0653e1dcf..c38b56154 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -426,10 +426,11 @@ #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." #define STRING_CMD_SYNC_RELOCATE0 "The server account has been relocated. Please update your configuration using:" #define STRING_CMD_SYNC_RELOCATE1 "task config taskd.server {1}" -#define STRING_CMD_SYNC_NO_CA "CA certificate not found." +#define STRING_CMD_SYNC_BAD_CA "CA certificate not found." #define STRING_CMD_SYNC_CONNECT "Could not connect to {1} {2}" #define STRING_CMD_SYNC_HANDSHAKE "Handshake failed. {1}" #define STRING_CMD_SYNC_NOMERGE "Task push/pull/merge is configured, deprecated, and does not work with 'sync'." +#define STRING_CMD_SYNC_TRUST_CA "You should either provide a CA certificate or override verification, but not both." #define STRING_CMD_DIAG_USAGE "Dettagli su piattaforma, build e ambiente" #define STRING_CMD_DIAG_PLATFORM "Piattaforma" #define STRING_CMD_DIAG_UNKNOWN "" From 7fa3f71575d159a21930f62a2b012d5a52301305 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 3 Nov 2013 12:51:13 -0500 Subject: [PATCH 151/173] TLS - Connected code paths to use CA or trust. --- src/TLSClient.cpp | 6 ++++-- src/TLSClient.h | 2 +- src/commands/CmdSync.cpp | 7 ++----- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index d28b915da..d1b75c8e6 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -156,17 +156,19 @@ void TLSClient::trust (bool value) //////////////////////////////////////////////////////////////////////////////// void TLSClient::init ( + const std::string& ca, const std::string& cert, const std::string& key) { + _ca = ca; _cert = cert; _key = key; gnutls_global_init (); gnutls_certificate_allocate_credentials (&_credentials); - if (_cert != "" && - gnutls_certificate_set_x509_trust_file (_credentials, _cert.c_str (), GNUTLS_X509_FMT_PEM) < 0) + if (_ca != "" && + gnutls_certificate_set_x509_trust_file (_credentials, _ca.c_str (), GNUTLS_X509_FMT_PEM) < 0) throw std::string ("Missing CA file."); if (_cert != "" && diff --git a/src/TLSClient.h b/src/TLSClient.h index d7462fbee..baccec7c5 100644 --- a/src/TLSClient.h +++ b/src/TLSClient.h @@ -40,7 +40,7 @@ public: void limit (int); void debug (int); void trust (bool); - void init (const std::string&, const std::string&); + void init (const std::string&, const std::string&, const std::string&); void connect (const std::string&, const std::string&); void bye (); diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index c7f003cfd..4ec46bdab 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -344,11 +344,8 @@ bool CmdSync::send ( TLSClient client; client.debug (context.config.getInteger ("debug.tls")); - // TODO Either use 'ca' or 'trust', but not both. - if (trust && ca == "") - client.trust (trust); - - client.init (certificate, key); + client.trust (trust); + client.init (ca, certificate, key); client.connect (server, port); client.send (request.serialize () + "\n"); From b42ca2663135b5fa1f336bf87a1c485842c56b24 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 3 Nov 2013 13:21:46 -0500 Subject: [PATCH 152/173] Diagnostics - Added new server configuration settings to diagnostics output. --- src/commands/CmdDiagnostics.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/commands/CmdDiagnostics.cpp b/src/commands/CmdDiagnostics.cpp index e91f80b10..36f835281 100644 --- a/src/commands/CmdDiagnostics.cpp +++ b/src/commands/CmdDiagnostics.cpp @@ -222,10 +222,22 @@ int CmdDiagnostics::execute (std::string& output) << context.config.get ("taskd.server") << "\n"; + if (context.config.get ("taskd.ca") != "") + out << " CA: " + << context.config.get ("taskd.ca") + << "\n"; + + if (context.config.get ("taskd.trust") != "") + out << " Trust: override\n"; + out << " Cert: " << context.config.get ("taskd.certificate") << "\n"; + out << " Key: " + << context.config.get ("taskd.key") + << "\n"; + // Get credentials, but mask out the key. std::string credentials = context.config.get ("taskd.credentials"); std::string::size_type last_slash = credentials.rfind ('/'); @@ -239,6 +251,7 @@ int CmdDiagnostics::execute (std::string& output) << "\n\n"; // External commands. + // Deprecated in 2.3.0 with push, pull, merge. out << bold.colorize (STRING_CMD_DIAG_EXTERNAL) << "\n"; { From 6c63c4a196760517b653b9d973e1686de43ca655 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 3 Nov 2013 13:37:45 -0500 Subject: [PATCH 153/173] Documentation - Added notes regarding the use of CA or trust override. --- README_TASKD | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README_TASKD b/README_TASKD index 74432a2ca..641fefae9 100644 --- a/README_TASKD +++ b/README_TASKD @@ -46,6 +46,21 @@ Here is an example: $ task config taskd.server localhost:6544 $ task config taskd.credentials 'Public/John Doe/8ad2e3db-914d-4832-b0e6-72fa04f6e331' $ task config taskd.certificate ~/.task/client.cert.pem + $ task config taskd.key ~/.task/client.key.pem + + +Using Self-Signed Certificates +------------------------------ + +If you are using self-signed certificates, you will either need a Certificate +Authority cert (CA), reference by hte configuration like this: + + $ task config taskd.ca ~/.task/ca.cert.pem + +Alternatively you can bypass the certificate validation, but this is not +recommended: + + $ task config taskd.trust yes First-Time Synchronizing From 2ce8f4a416a5492bd4b7b672d59f2579b1e503aa Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 3 Nov 2013 13:43:54 -0500 Subject: [PATCH 154/173] Documentation - Updated task-sync man page discussion of different syncing options. --- doc/man/task-sync.5.in | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/doc/man/task-sync.5.in b/doc/man/task-sync.5.in index 49de5549b..732af090f 100644 --- a/doc/man/task-sync.5.in +++ b/doc/man/task-sync.5.in @@ -20,13 +20,14 @@ There are three alternatives for syncing data, which are: .SH OPTION 1: VERSION CONTROL SYSTEMS -There are several good VCS systems (git, hg, svn ...), and they function in a -similar fashion for our purposes. +There are several good, distributed VCS systems (git, hg, ...) and centralized +VCS systems (svn ...), and they function in a similar fashion for our purposes. Setup is straightforward. You place your .task directory under revision -control. You then need to perform a regular commit/push/pull to make sure that -the data is propagated when needed. You can even do this using shell scripts so -that every task command is preceded by a 'pull' and followed by a 'push'. +control. You then need to perform a regular commit/push/pull/update to make +sure that the data is propagated when needed. You can even do this using shell +scripts so that every task command is preceded by a 'pull' and followed by a +'push'. Strengths: .br @@ -71,7 +72,7 @@ Strengths: Weaknesses: .br - - Tasks not properly merged + - Tasks are not properly merged .SH OPTION 3: TASK SERVER @@ -86,10 +87,11 @@ Setup is a matter of creating an account on a Task Server (see your Task Server provider or operate your own - see http://taskwarrior.org/projects/taskwarrior/wiki/Server_setup) -Once you have an account, you'll receive a certificate, and a password. You'll -need to put the certificate somewhere like this: +Once you have an account, you'll receive a certificate, key and a password. +You'll need to put the certificate and key somewhere like this: $ cp .cert.pem ~/.task + $ cp .key.pem ~/.task Then you configure Taskwarrior, using the account details: @@ -135,6 +137,9 @@ Strengths: .br - Tolerates connectivity outage +Weaknesses: +.br + - You need to manage your own server, or gain access to a hosted server. .SH "CREDITS & COPYRIGHTS" Copyright (C) 2006 \- 2013 P. Beckingham, F. Hernandez. From d21133731536b17bda67a41d03639c7c03543819 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sun, 3 Nov 2013 14:02:11 -0500 Subject: [PATCH 155/173] Performance - Optimizes indexing into pending.data for direct task access. --- ChangeLog | 2 ++ src/TDB2.cpp | 11 +++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8c62c2a1e..fce4190b9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -48,6 +48,8 @@ Features + Rewritten task-sync(5) man page, listing sync options and setup guidelines.. + Now properly uses the libc version of uuid_create and uuid_to_string for FreeBSD (thanks to Pietro Cerutti). + + Performance improvements: + + Optimizes indexing into pending.data for direct task access. Bugs + #1195 Random seed not random enough - removed all random number code (thanks diff --git a/src/TDB2.cpp b/src/TDB2.cpp index 91f5cbea8..8f328e6a0 100644 --- a/src/TDB2.cpp +++ b/src/TDB2.cpp @@ -112,12 +112,15 @@ bool TF2::get (int id, Task& task) if (! _loaded_tasks) load_tasks (); - std::vector ::iterator i; - for (i = _tasks.begin (); i != _tasks.end (); ++i) + // This is an optimization. Since the 'id' is based on the line number of + // pending.data file, the task in question cannot appear earlier than line + // (id - 1) in the file. It can, however, appear significantly later because + // it is not known how recent a GC operation was run. + for (int i = id - 1; i < _tasks.size (); ++i) { - if (i->id == id) + if (_tasks[i].id == id) { - task = *i; + task = _tasks[i]; return true; } } From 42d0c110cfa11b4d185f5255d77522f23ac696f9 Mon Sep 17 00:00:00 2001 From: Federico Hernandez Date: Sun, 3 Nov 2013 22:09:22 +0100 Subject: [PATCH 156/173] Bumped version number to beta2 prior to release --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f59266804..24bc7b710 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ include (CheckStructHasMember) set (HAVE_CMAKE true) project (task) -set (PROJECT_VERSION "2.3.0.beta1") +set (PROJECT_VERSION "2.3.0.beta2") if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") set (LINUX true) From c6032d99f909addb7f725860e861a3d3b3e97b4c Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 16 Nov 2013 13:22:47 -0500 Subject: [PATCH 157/173] Documentation - Fixed rc.nag documentation (thanks to Jeroen Budts). --- AUTHORS | 1 + CMakeLists.txt | 2 +- ChangeLog | 1 + doc/man/taskrc.5.in | 8 ++++---- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/AUTHORS b/AUTHORS index 8889fa147..c83382afc 100644 --- a/AUTHORS +++ b/AUTHORS @@ -92,6 +92,7 @@ The following submitted code, packages or analysis, and deserve special thanks: jasper Aaron Bieber John West + Jeroen Budts Thanks to the following, who submitted detailed bug reports and excellent suggestions: diff --git a/CMakeLists.txt b/CMakeLists.txt index 24bc7b710..1f3d3cee9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -164,5 +164,5 @@ set (CPACK_SOURCE_IGNORE_FILES "CMakeCache" "CMakeFiles" "CPackConfig" "CPackSo "_CPack_Packages" "cmake_install" "install_manifest" "Makefile$" "test" "package-config" "misc/*" "src/task$" "src/libtask.a" "src/columns/libcolumns.a" "src/commands/libcommands.a" - "src/shell/tasksh$" "auto.h$" "/\\.gitignore""/\\.git/" "swp$") + "src/shell/tasksh$" "auto.h$" "/\\.gitignore" "/\\.git/" "swp$") include (CPack) diff --git a/ChangeLog b/ChangeLog index fce4190b9..9744fdf81 100644 --- a/ChangeLog +++ b/ChangeLog @@ -96,6 +96,7 @@ Bugs + Fixed bug so that 'limit:page' now considers footnote messages. + Fixed bug where specifying an ID of 0 yielded all completed/deleted tasks (thanks to greenskeleton). + + Fixed rc.nag documentation (thanks to Jeroen Budts). ------ old releases ------------------------------ diff --git a/doc/man/taskrc.5.in b/doc/man/taskrc.5.in index ba915fa97..937959f97 100644 --- a/doc/man/taskrc.5.in +++ b/doc/man/taskrc.5.in @@ -91,7 +91,7 @@ You can edit your .taskrc file by hand if you wish, or you can use the 'config' command. To permanently set a value in your .taskrc file, use this command: .RS -$ task config nag "You have higher priority tasks!" +$ task config nag "You have more urgent tasks." .RE To delete an entry, use this command: @@ -319,11 +319,11 @@ variable is "no". This is useful for preventing large-scale unintended changes. .TP -.B nag=You have higher priority tasks. +.B nag=You have more urgent tasks. This may be a string of text, or blank. It is used as a prompt when a task is started or completed that is not considered high priority. Default value is: -You have higher priority tasks. It is a gentle reminder that you are -contradicting your own priority settings. +You have more urgent tasks. It is a gentle reminder that you are contradicting +your own priority settings. .TP .B complete.all.projects=yes From 0df30a5be0cbab8ab4ed463420545f344bcd5543 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 16 Nov 2013 15:07:45 -0500 Subject: [PATCH 158/173] Sync - Default TLS cipher selection, with override (thanks to Zed Jorarard). - Updated documentation. --- AUTHORS | 1 + NEWS | 1 + doc/man/taskrc.5.in | 10 +++++++++- src/Config.cpp | 1 + src/TLSClient.cpp | 13 +++++++++++-- src/TLSClient.h | 2 ++ src/commands/CmdDiagnostics.cpp | 4 ++++ src/commands/CmdShow.cpp | 1 + src/commands/CmdSync.cpp | 1 + 9 files changed, 31 insertions(+), 3 deletions(-) diff --git a/AUTHORS b/AUTHORS index c83382afc..699c5ed6f 100644 --- a/AUTHORS +++ b/AUTHORS @@ -93,6 +93,7 @@ The following submitted code, packages or analysis, and deserve special thanks: Aaron Bieber John West Jeroen Budts + Zed Jorarard Thanks to the following, who submitted detailed bug reports and excellent suggestions: diff --git a/NEWS b/NEWS index d7035b01c..7f47597f0 100644 --- a/NEWS +++ b/NEWS @@ -27,6 +27,7 @@ New configuration options in taskwarrior 2.3.0 - 'taskd.key' specifies the task server key for encryption. - 'taskd.ca' specifies the task server CA. - 'taskd.trust' overrides certificate checking. + - 'taskd.ciphers' overrides default cipher selection. - 'debug.tls' shows TLS log information, for debugging. - The configuration file supports JSON encoding of unicode characters \uNNNN. diff --git a/doc/man/taskrc.5.in b/doc/man/taskrc.5.in index 937959f97..d479ea0dd 100644 --- a/doc/man/taskrc.5.in +++ b/doc/man/taskrc.5.in @@ -1375,11 +1375,19 @@ using a self-signed certificate. Optional. .TP .B taskd.trust=yes|no .RS -If you do not specify a CA certificate when your task server is usㄟng a self- +If you do not specify a CA certificate when your task server is using a self- signed certificate, you can override the certificate validation by setting this value to 'yes'. Default is not to trust a server certificate. .RE +.TP +.B taskd.ciphers=NORMAL +Override of the cipher selection. The set of ciphers used by TLS may be +controlled by both server and client. There must be some overlap between +client and server supported ciphers, or communication cannot occur. +Default is "NORMAL". See GnuTLS documentation for full details. +.RE + .SH "CREDITS & COPYRIGHTS" Copyright (C) 2006 \- 2013 P. Beckingham, F. Hernandez. diff --git a/src/Config.cpp b/src/Config.cpp index f3c32cf01..7b26a3a6f 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -301,6 +301,7 @@ std::string Config::_defaults = "#taskd.certificate \n" "#taskd.credentials //\n" "#taskd.server :\n" + "taskd.ciphers=NORMAL\n" "\n" "# Aliases - alternate names for commands\n" "alias.rm=delete # Alias for the delete command\n" diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index d1b75c8e6..c3973996e 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -154,6 +154,12 @@ void TLSClient::trust (bool value) } } +//////////////////////////////////////////////////////////////////////////////// +void TLSClient::ciphers (const std::string& cipher_list) +{ + _ciphers = cipher_list; +} + //////////////////////////////////////////////////////////////////////////////// void TLSClient::init ( const std::string& ca, @@ -181,9 +187,12 @@ void TLSClient::init ( #endif gnutls_init (&_session, GNUTLS_CLIENT); - // Use default priorities. + // Use default priorities unless overridden. + if (_ciphers == "") + _ciphers = "NORMAL"; + const char *err; - int ret = gnutls_priority_set_direct (_session, "NORMAL", &err); + int ret = gnutls_priority_set_direct (_session, _ciphers.c_str (), &err); if (ret < 0) { if (_debug && ret == GNUTLS_E_INVALID_REQUEST) diff --git a/src/TLSClient.h b/src/TLSClient.h index baccec7c5..bb6b5eedd 100644 --- a/src/TLSClient.h +++ b/src/TLSClient.h @@ -40,6 +40,7 @@ public: void limit (int); void debug (int); void trust (bool); + void ciphers (const std::string&); void init (const std::string&, const std::string&, const std::string&); void connect (const std::string&, const std::string&); void bye (); @@ -51,6 +52,7 @@ private: std::string _ca; std::string _cert; std::string _key; + std::string _ciphers; gnutls_certificate_credentials_t _credentials; gnutls_session_t _session; int _socket; diff --git a/src/commands/CmdDiagnostics.cpp b/src/commands/CmdDiagnostics.cpp index 36f835281..e9e4cb0b6 100644 --- a/src/commands/CmdDiagnostics.cpp +++ b/src/commands/CmdDiagnostics.cpp @@ -238,6 +238,10 @@ int CmdDiagnostics::execute (std::string& output) << context.config.get ("taskd.key") << "\n"; + out << " Ciphers: " + << context.config.get ("taskd.ciphers") + << "\n"; + // Get credentials, but mask out the key. std::string credentials = context.config.get ("taskd.credentials"); std::string::size_type last_slash = credentials.rfind ('/'); diff --git a/src/commands/CmdShow.cpp b/src/commands/CmdShow.cpp index b2fa840ac..8bba15d22 100644 --- a/src/commands/CmdShow.cpp +++ b/src/commands/CmdShow.cpp @@ -191,6 +191,7 @@ int CmdShow::execute (std::string& output) " taskd.server" " taskd.ca" " taskd.certificate" + " taskd.ciphers" " taskd.credentials" " taskd.key" " taskd.trust" diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index 4ec46bdab..e7f53957f 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -345,6 +345,7 @@ bool CmdSync::send ( client.debug (context.config.getInteger ("debug.tls")); client.trust (trust); + client.ciphers (context.config.get ("taskd.ciphers")); client.init (ca, certificate, key); client.connect (server, port); client.send (request.serialize () + "\n"); From 6bc352f713ef5a75dc74f72b5cb7d968a4aba2b9 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 16 Nov 2013 16:06:23 -0500 Subject: [PATCH 159/173] Documentation - Now uses proper name 'Taskserver'. --- ChangeLog | 2 +- EXPOSITION | 2 +- NEWS | 16 ++++++++-------- README_TASKD | 12 ++++++------ doc/man/task-faq.5.in | 2 +- doc/man/task-sync.5.in | 8 ++++---- doc/man/taskrc.5.in | 12 ++++++------ doc/misc/tutorial/extra.txt | 2 +- src/Config.cpp | 2 +- src/en-US.h | 18 +++++++++--------- src/es-ES.h | 2 +- src/fr-FR.h | 18 +++++++++--------- src/it-IT.h | 18 +++++++++--------- 13 files changed, 57 insertions(+), 57 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9744fdf81..1c96f06fb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,7 +20,7 @@ Features + #1423 sync vs. push, pull, merge collision avoidance. + #1385 Need a way to configure the trust of self-signed certificates. + Stores un-synched transactions in /backlog.data. - + Adds a new 'synchronize' command to sync data with a task server. + + Adds a new 'synchronize' command to sync data with a Taskserver. + Adds a new 'initialize' synchronize command argument that uploads all pending tasks for first-time initialization. + Adds a new 'sync' verbosity token, which will remind when a backlog builds diff --git a/EXPOSITION b/EXPOSITION index 909f61337..bf3e8f903 100644 --- a/EXPOSITION +++ b/EXPOSITION @@ -90,7 +90,7 @@ Files 'merge' command. The backlog.data file contains an accumulated set of changes that have not - been transmitted to the task server. It grows unbounded between 'synch' + been transmitted to the Taskserver. It grows unbounded between 'synch' commands. diff --git a/NEWS b/NEWS index 7f47597f0..6dc71607c 100644 --- a/NEWS +++ b/NEWS @@ -1,7 +1,7 @@ New Features in taskwarrior 2.3.0 - - New task server sync capabilities. + - New Taskserver sync capabilities. - New shell (tasksh) with Readline support replaces old 'task shell' command. - The 'dateformat' settings now default to the ISO-8601 standard of 'Y-M-D'. - Italian translation. @@ -15,17 +15,17 @@ New Features in taskwarrior 2.3.0 New commands in taskwarrior 2.3.0 - - New 'sync' command to synchronize data with a Task Server. + - New 'sync' command to synchronize data with a Taskserver. - New 'tasksh' command which replaces the old 'task shell' with an improved standalone shell, featuring Readline support. New configuration options in taskwarrior 2.3.0 - - 'taskd.server' specifies host:port of the task server. - - 'taskd.credentials' specifies user credentials for the task server. - - 'taskd.certificate' specifies the task server certificate for authentication. - - 'taskd.key' specifies the task server key for encryption. - - 'taskd.ca' specifies the task server CA. + - 'taskd.server' specifies host:port of the Taskserver. + - 'taskd.credentials' specifies user credentials for the Taskserver. + - 'taskd.certificate' specifies the Taskserver certificate for authentication. + - 'taskd.key' specifies the Taskserver key for encryption. + - 'taskd.ca' specifies the Taskserver CA. - 'taskd.trust' overrides certificate checking. - 'taskd.ciphers' overrides default cipher selection. - 'debug.tls' shows TLS log information, for debugging. @@ -35,7 +35,7 @@ Newly deprecated features in taskwarrior 2.3.0 - File format 2 (used in version 0.9.3 - 1.5.0) is no longer supported. - The 'push', 'pull' and 'merge' commands will be removed in a subsequent - release. The new 'sync' command, in conjunction with the Task Server is the + release. The new 'sync' command, in conjunction with the Taskserver is the new sync mechanism. - The 'diagnostics' command no longer generates 1000 UUIDs as a uniqueness test, because libuuid is now mandatory. diff --git a/README_TASKD b/README_TASKD index 641fefae9..c923aa23b 100644 --- a/README_TASKD +++ b/README_TASKD @@ -1,7 +1,7 @@ Welcome To Taskwarrior 2.3.0 Beta --------------------------------- -The beta release of Taskwarrior 2.3.0 is for testing the Task Server. There are +The beta release of Taskwarrior 2.3.0 is for testing the Taskserver. There are several unaddressed bugs in this release, so proper precautions with your data are required. @@ -19,14 +19,14 @@ You will need the following dependencies: libreadline -Configuring Taskwarrior as a Task Server Client ------------------------------------------------ +Configuring Taskwarrior as a Taskserver Client +---------------------------------------------- -When a new user is added to the Task Server, a UUID key is generated, along with -an x.509 cert. See Task Server operation document. Before proceeding, you will +When a new user is added to the Taskserver, a UUID key is generated, along with +an x.509 cert. See Taskserver operation document. Before proceeding, you will need the following items: - Where Task Server is running (Default: localhost:6544) + Where Taskserver is running (Default: localhost:6544) Name of organization (default: Public) User name added to server UUID generated by server diff --git a/doc/man/task-faq.5.in b/doc/man/task-faq.5.in index 752638bd6..7a5fa4adb 100644 --- a/doc/man/task-faq.5.in +++ b/doc/man/task-faq.5.in @@ -179,7 +179,7 @@ an alias in the .bashrc file along the lines of .TP .B Q: I don't want to use dropbox. Is there another way to synchronize my tasks? -Yes. Get a Task Server account, and sync tasks between all your machines and +Yes. Get a Taskserver account, and sync tasks between all your machines and devices. See task-sync(5). .TP diff --git a/doc/man/task-sync.5.in b/doc/man/task-sync.5.in index 732af090f..3f1fe7e37 100644 --- a/doc/man/task-sync.5.in +++ b/doc/man/task-sync.5.in @@ -16,7 +16,7 @@ There are three alternatives for syncing data, which are: .br 2) File hosting systems, such as DropBox .br -3) Using the Task Server and the 'sync' command +3) Using the Taskserver and the 'sync' command .SH OPTION 1: VERSION CONTROL SYSTEMS @@ -75,15 +75,15 @@ Weaknesses: - Tasks are not properly merged -.SH OPTION 3: TASK SERVER -The Task Server was designed for this purpose to be secure, fast and conflict +.SH OPTION 3: TASKSERVER +The Taskserver was designed for this purpose to be secure, fast and conflict free, allowing data interchange between assorted Taskwarrior clients, and tolerant of network connectivity problems. There is a 'sync' command built in to Taskwarrior, and with a server account and client configuration, syncing is done on demand. -Setup is a matter of creating an account on a Task Server (see your Task Server +Setup is a matter of creating an account on a Taskserver (see your Taskserver provider or operate your own - see http://taskwarrior.org/projects/taskwarrior/wiki/Server_setup) diff --git a/doc/man/taskrc.5.in b/doc/man/taskrc.5.in index d479ea0dd..6ae7adc92 100644 --- a/doc/man/taskrc.5.in +++ b/doc/man/taskrc.5.in @@ -1341,41 +1341,41 @@ server. .TP .B taskd.server=: .RS -Specifies the hostname and port of the task server. Hostname may be an IPv4 or +Specifies the hostname and port of the Taskserver. Hostname may be an IPv4 or IPv6 address, or domain. Port is an integer. .RE .TP .B taskd.credentials=// .RS -User identification for the task server, which includes a private key. +User identification for the Taskserver, which includes a private key. .RE .TP .B taskd.certificate= .RS Specifies the path to the client certificate used for identification with the -task server. +Taskserver. .RE .TP .B taskd.key= .RS Specifies the path to the client key used for encrypted communication with the -task server. +Taskserver. .RE .TP .B taskd.ca= .RS -Specifies the path to the CA certificate in the event that your task server is +Specifies the path to the CA certificate in the event that your Taskserver is using a self-signed certificate. Optional. .RE .TP .B taskd.trust=yes|no .RS -If you do not specify a CA certificate when your task server is using a self- +If you do not specify a CA certificate when your Taskserver is using a self- signed certificate, you can override the certificate validation by setting this value to 'yes'. Default is not to trust a server certificate. .RE diff --git a/doc/misc/tutorial/extra.txt b/doc/misc/tutorial/extra.txt index 95b2c1ee2..98c50e17c 100644 --- a/doc/misc/tutorial/extra.txt +++ b/doc/misc/tutorial/extra.txt @@ -5,7 +5,7 @@ Calendar trick Metadata Sync - sync (needs 2.3.0 & task server) + sync (needs 2.3.0 & Taskserver) Logo? diff --git a/src/Config.cpp b/src/Config.cpp index 7b26a3a6f..4e240dbc7 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -297,7 +297,7 @@ std::string Config::_defaults = "shell.prompt=task> # Prompt used by the shell command\n" "\n" "# WARNING: Please read the documentation (man task-sync) before setting up\n" - "# Taskwarrior for Task Server synchronization.\n" + "# Taskwarrior for Taskserver synchronization.\n" "#taskd.certificate \n" "#taskd.credentials //\n" "#taskd.server :\n" diff --git a/src/en-US.h b/src/en-US.h index 7ab91dff8..b568e369c 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -403,11 +403,11 @@ #define STRING_CMD_SHELL_HELP1 "Enter any task command (such as 'list'), or hit 'Enter'." #define STRING_CMD_SHELL_HELP2 "There is no need to include the 'task' command itself." #define STRING_CMD_SHELL_HELP3 "Enter 'quit' (or 'bye', 'exit') to end the session." -#define STRING_CMD_SYNC_USAGE "Synchronizes data with the Task Server" -#define STRING_CMD_SYNC_NO_SERVER "Task Server is not configured." -#define STRING_CMD_SYNC_BAD_CRED "Task Server credentials malformed." -#define STRING_CMD_SYNC_BAD_CERT "Task Server certificate missing." -#define STRING_CMD_SYNC_BAD_KEY "Task Server key missing." +#define STRING_CMD_SYNC_USAGE "Synchronizes data with the Taskserver" +#define STRING_CMD_SYNC_NO_SERVER "Taskserver is not configured." +#define STRING_CMD_SYNC_BAD_CRED "Taskserver credentials malformed." +#define STRING_CMD_SYNC_BAD_CERT "Taskserver certificate missing." +#define STRING_CMD_SYNC_BAD_KEY "Taskserver key missing." #define STRING_CMD_SYNC_ADD " add {1} '{2}'" #define STRING_CMD_SYNC_MOD "modify {1} '{2}'" #define STRING_CMD_SYNC_PROGRESS "Syncing with {1}" @@ -416,12 +416,12 @@ #define STRING_CMD_SYNC_SUCCESS2 "Sync successful. {1} changes downloaded." #define STRING_CMD_SYNC_SUCCESS3 "Sync successful. {1} changes uploaded, {2} changes downloaded." #define STRING_CMD_SYNC_SUCCESS_NOP "Sync successful. No changes." -#define STRING_CMD_SYNC_FAIL_ACCOUNT "Sync failed. Either your credentials are incorrect, or your Task Server account is not enabled." -#define STRING_CMD_SYNC_FAIL_ERROR "Sync failed. The Task Server returned error: {1} {2}" -#define STRING_CMD_SYNC_FAIL_CONNECT "Sync failed. Could not connect to the Task Server." +#define STRING_CMD_SYNC_FAIL_ACCOUNT "Sync failed. Either your credentials are incorrect, or your Taskserver account is not enabled." +#define STRING_CMD_SYNC_FAIL_ERROR "Sync failed. The Taskserver returned error: {1} {2}" +#define STRING_CMD_SYNC_FAIL_CONNECT "Sync failed. Could not connect to the Taskserver." #define STRING_CMD_SYNC_BAD_SERVER "Sync failed. Malformed configuration setting '{1}'" #define STRING_CMD_SYNC_NO_TLS "Taskwarrior was built without GnuTLS support. Sync is not available." -#define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Task Server" +#define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Taskserver" #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." #define STRING_CMD_SYNC_RELOCATE0 "The server account has been relocated. Please update your configuration using:" #define STRING_CMD_SYNC_RELOCATE1 "task config taskd.server {1}" diff --git a/src/es-ES.h b/src/es-ES.h index 6650273dd..e9a765ba4 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -418,7 +418,7 @@ #define STRING_CMD_SYNC_NO_SERVER "El Servidor Task no está configurado." #define STRING_CMD_SYNC_BAD_CRED "Credenciales del Servidor Task incorrectas." #define STRING_CMD_SYNC_BAD_CERT "Certificado del Servidor Task no encontrado." -#define STRING_CMD_SYNC_BAD_KEY "Task Server key missing." +#define STRING_CMD_SYNC_BAD_KEY "Taskserver key missing." #define STRING_CMD_SYNC_ADD " añade {1} '{2}'" #define STRING_CMD_SYNC_MOD "modifica {1} '{2}'" #define STRING_CMD_SYNC_PROGRESS "Sincronizando con {1}" diff --git a/src/fr-FR.h b/src/fr-FR.h index a9d0cd085..60df6dbd1 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -403,11 +403,11 @@ #define STRING_CMD_SHELL_HELP1 "Enter any task command (such as 'list'), or hit 'Enter'." #define STRING_CMD_SHELL_HELP2 "There is no need to include the 'task' command itself." #define STRING_CMD_SHELL_HELP3 "Enter 'quit' (or 'bye', 'exit') to end the session." -#define STRING_CMD_SYNC_USAGE "Synchronizes data with the Task Server" -#define STRING_CMD_SYNC_NO_SERVER "Task Server is not configured." -#define STRING_CMD_SYNC_BAD_CRED "Task Server credentials malformed." -#define STRING_CMD_SYNC_BAD_CERT "Task Server certificate missing." -#define STRING_CMD_SYNC_BAD_KEY "Task Server key missing." +#define STRING_CMD_SYNC_USAGE "Synchronizes data with the Taskserver" +#define STRING_CMD_SYNC_NO_SERVER "Taskserver is not configured." +#define STRING_CMD_SYNC_BAD_CRED "Taskserver credentials malformed." +#define STRING_CMD_SYNC_BAD_CERT "Taskserver certificate missing." +#define STRING_CMD_SYNC_BAD_KEY "Taskserver key missing." #define STRING_CMD_SYNC_ADD " add {1} '{2}'" #define STRING_CMD_SYNC_MOD "modify {1} '{2}'" #define STRING_CMD_SYNC_PROGRESS "Syncing with {1}" @@ -416,12 +416,12 @@ #define STRING_CMD_SYNC_SUCCESS2 "Sync successful. {1} changes downloaded." #define STRING_CMD_SYNC_SUCCESS3 "Sync successful. {1} changes uploaded, {2} changes downloaded." #define STRING_CMD_SYNC_SUCCESS_NOP "Sync successful. No changes." -#define STRING_CMD_SYNC_FAIL_ACCOUNT "Sync failed. Either your credentials are incorrect, or your Task Server account is not enabled." -#define STRING_CMD_SYNC_FAIL_ERROR "Sync failed. The Task Server returned error: {1} {2}" -#define STRING_CMD_SYNC_FAIL_CONNECT "Sync failed. Could not connect to the Task Server." +#define STRING_CMD_SYNC_FAIL_ACCOUNT "Sync failed. Either your credentials are incorrect, or your Taskserver account is not enabled." +#define STRING_CMD_SYNC_FAIL_ERROR "Sync failed. The Taskserver returned error: {1} {2}" +#define STRING_CMD_SYNC_FAIL_CONNECT "Sync failed. Could not connect to the Taskserver." #define STRING_CMD_SYNC_BAD_SERVER "Sync failed. Malformed configuration setting '{1}'" #define STRING_CMD_SYNC_NO_TLS "Taskwarrior was built without GnuTLS support. Sync is not available." -#define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Task Server" +#define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Taskserver" #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." #define STRING_CMD_SYNC_RELOCATE0 "The server account has been relocated. Please update your configuration using:" #define STRING_CMD_SYNC_RELOCATE1 "task config taskd.server {1}" diff --git a/src/it-IT.h b/src/it-IT.h index c38b56154..8ec591546 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -404,11 +404,11 @@ #define STRING_CMD_SHELL_HELP1 "Inserisci un comando (es. 'list'), o premi 'Enter'." #define STRING_CMD_SHELL_HELP2 "Non è necessario includere il comando 'task'." #define STRING_CMD_SHELL_HELP3 "Inserisci 'quit' (o 'bye', 'exit') per terminare la sessione." -#define STRING_CMD_SYNC_USAGE "Sincronizza i dati con il Task Server" -#define STRING_CMD_SYNC_NO_SERVER "Task Server non configurato." -#define STRING_CMD_SYNC_BAD_CRED "Credenziali del Task Server malformate." -#define STRING_CMD_SYNC_BAD_CERT "Task Server certificate missing." -#define STRING_CMD_SYNC_BAD_KEY "Task Server key missing." +#define STRING_CMD_SYNC_USAGE "Sincronizza i dati con il Taskserver" +#define STRING_CMD_SYNC_NO_SERVER "Taskserver non configurato." +#define STRING_CMD_SYNC_BAD_CRED "Credenziali del Taskserver malformate." +#define STRING_CMD_SYNC_BAD_CERT "Taskserver certificate missing." +#define STRING_CMD_SYNC_BAD_KEY "Taskserver key missing." #define STRING_CMD_SYNC_ADD " aggiunto {1} '{2}'" #define STRING_CMD_SYNC_MOD "modificato {1} '{2}'" #define STRING_CMD_SYNC_PROGRESS "Sincronizzazione con {1}" @@ -417,12 +417,12 @@ #define STRING_CMD_SYNC_SUCCESS2 "Sincronizzazione effettuata. {1} modifiche scaricate." #define STRING_CMD_SYNC_SUCCESS3 "Sincronizzazione effettuata. {1} modifiche caricate, {2} modifiche scaricate." #define STRING_CMD_SYNC_SUCCESS_NOP "Sincronizzazione effettuata. Nessuna modifica." -#define STRING_CMD_SYNC_FAIL_ACCOUNT "Sincronizzazione fallita. Credenziali non corrette o Task Server non abilitato." -#define STRING_CMD_SYNC_FAIL_ERROR "Sincronizzazione fallita. Il Task Server ha ritornato l'errore: {1} {2}" -#define STRING_CMD_SYNC_FAIL_CONNECT "Sincronizzazione fallita. Impossibile connettersi al Task Server." +#define STRING_CMD_SYNC_FAIL_ACCOUNT "Sincronizzazione fallita. Credenziali non corrette o Taskserver non abilitato." +#define STRING_CMD_SYNC_FAIL_ERROR "Sincronizzazione fallita. Il Taskserver ha ritornato l'errore: {1} {2}" +#define STRING_CMD_SYNC_FAIL_CONNECT "Sincronizzazione fallita. Impossibile connettersi al Taskserver." #define STRING_CMD_SYNC_BAD_SERVER "Sincronizzazione fallita. Impostazione di configurazione '{1}' malformata" #define STRING_CMD_SYNC_NO_TLS "Taskwarrior was built without GnuTLS support. Sync is not available." -#define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Task Server" +#define STRING_CMD_SYNC_INIT "Please confirm that you wish to upload all your pending tasks to the Taskserver" #define STRING_CMD_SYNC_NO_INIT "Taskwarrior will not proceed with first-time sync initialization." #define STRING_CMD_SYNC_RELOCATE0 "The server account has been relocated. Please update your configuration using:" #define STRING_CMD_SYNC_RELOCATE1 "task config taskd.server {1}" From f18390ee797925b948e0f842aa9ecc1362679734 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 18 Nov 2013 17:11:19 -0500 Subject: [PATCH 160/173] Unit Tests - Finally fixed an age-old bug in unit tests. The bug was that whenever a test output contained '*', shell globbing expanded that to a list of all test files. Even though it was simply diagnostic output text. --- test/CMakeLists.txt | 4 ++-- test/run_all.in | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index ce25cbe97..72d925d13 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -31,8 +31,8 @@ endif (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) configure_file (run_all.in run_all) add_custom_target (test ./run_all --verbose - DEPENDS ${test_SRCS} task_executable - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/test) + DEPENDS ${test_SRCS} task_executable + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/test) add_custom_target (build_tests DEPENDS ${test_SRCS} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test) diff --git a/test/run_all.in b/test/run_all.in index 2157a6a66..25ac62f44 100755 --- a/test/run_all.in +++ b/test/run_all.in @@ -8,7 +8,7 @@ then $i > test.log 2>&1 while read LINE do - echo $LINE + echo "$LINE" done < test.log rm test.log done From 97ef13a1b18e91e43564f11a92491d11572f45fd Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 18 Nov 2013 23:42:52 -0500 Subject: [PATCH 161/173] Bug - Fixed Config.cpp so that it doesn't JSON encode a default rc file, and in so doing, bork the format. --- src/Config.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Config.cpp b/src/Config.cpp index 4e240dbc7..d2461fe7a 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -552,7 +552,7 @@ void Config::createDefaultRC (const std::string& rc, const std::string& data) << "\n"; // Write out the new file. - if (! File::write (rc, json::encode (contents.str ()))) + if (! File::write (rc, contents.str ())) throw format (STRING_CONFIG_BAD_WRITE, rc); } From 174066c1d67f95249371447b3164b56c7b58822c Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Fri, 22 Nov 2013 21:12:36 -0500 Subject: [PATCH 162/173] Code Cleanup - Found a redundant operator symbol indicator and removed it. --- src/A3.cpp | 53 ++++++++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/src/A3.cpp b/src/A3.cpp index e424481da..4acdee9b6 100644 --- a/src/A3.cpp +++ b/src/A3.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include // TODO Remove #include #include #include @@ -72,38 +73,37 @@ static struct std::string op; int precedence; char type; - int symbol; char associativity; } operators[] = { - // Operator Precedence Type Symbol Associativity - { "and", 5, 'b', 0, 'l' }, // Conjunction - { "xor", 4, 'b', 0, 'l' }, // Disjunction + // Operator Precedence Type Associativity + { "and", 5, 'b', 'l' }, // Conjunction + { "xor", 4, 'b', 'l' }, // Disjunction - { "or", 3, 'b', 0, 'l' }, // Disjunction - { "<=", 10, 'b', 1, 'l' }, // Less than or equal - { ">=", 10, 'b', 1, 'l' }, // Greater than or equal - { "!~", 9, 'b', 1, 'l' }, // Regex non-match - { "!=", 9, 'b', 1, 'l' }, // Inequal + { "or", 3, 'b', 'l' }, // Disjunction + { "<=", 10, 'b', 'l' }, // Less than or equal + { ">=", 10, 'b', 'l' }, // Greater than or equal + { "!~", 9, 'b', 'l' }, // Regex non-match + { "!=", 9, 'b', 'l' }, // Inequal - { "=", 9, 'b', 1, 'l' }, // Equal -// { "^", 16, 'b', 1, 'r' }, // Exponent - { ">", 10, 'b', 1, 'l' }, // Greater than - { "~", 9, 'b', 1, 'l' }, // Regex match - { "!", 15, 'u', 1, 'r' }, // Not + { "=", 9, 'b', 'l' }, // Equal +// { "^", 16, 'b', 'r' }, // Exponent + { ">", 10, 'b', 'l' }, // Greater than + { "~", 9, 'b', 'l' }, // Regex match + { "!", 15, 'u', 'r' }, // Not - { "_hastag_", 9, 'b', 0, 'l'}, // +tag [Pseudo-op] - { "_notag_", 9, 'b', 0, 'l'}, // -tag [Pseudo-op] + { "_hastag_", 9, 'b', 'l'}, // +tag [Pseudo-op] + { "_notag_", 9, 'b', 'l'}, // -tag [Pseudo-op] - { "-", 15, 'u', 1, 'r' }, // Unary minus - { "*", 13, 'b', 1, 'l' }, // Multiplication - { "/", 13, 'b', 1, 'l' }, // Division -// { "%", 13, 'b', 1, 'l' }, // Modulus - { "+", 12, 'b', 1, 'l' }, // Addition - { "-", 12, 'b', 1, 'l' }, // Subtraction - { "<", 10, 'b', 1, 'l' }, // Less than - { "(", 0, 'b', 1, 'l' }, // Precedence start - { ")", 0, 'b', 1, 'l' }, // Precedence end + { "-", 15, 'u', 'r' }, // Unary minus + { "*", 13, 'b', 'l' }, // Multiplication + { "/", 13, 'b', 'l' }, // Division +// { "%", 13, 'b', 'l' }, // Modulus + { "+", 12, 'b', 'l' }, // Addition + { "-", 12, 'b', 'l' }, // Subtraction + { "<", 10, 'b', 'l' }, // Less than + { "(", 0, 'b', 'l' }, // Precedence start + { ")", 0, 'b', 'l' }, // Precedence end }; #define NUM_MODIFIER_NAMES (sizeof (modifierNames) / sizeof (modifierNames[0])) @@ -1106,7 +1106,10 @@ const A3 A3::expand (const A3& input) const // Default --> preserve else +{ +std::cout << "# default: " << arg->_raw << "\n"; expanded.push_back (*arg); +} previous = arg; } From 1bbee9cde06c9fd606779d57d3718f21c25f6923 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Mon, 25 Nov 2013 16:10:21 -0500 Subject: [PATCH 163/173] Diagnostics - Added more info to the sync configuration details. --- src/commands/CmdDiagnostics.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/commands/CmdDiagnostics.cpp b/src/commands/CmdDiagnostics.cpp index e9e4cb0b6..ab3e4ae1a 100644 --- a/src/commands/CmdDiagnostics.cpp +++ b/src/commands/CmdDiagnostics.cpp @@ -225,6 +225,8 @@ int CmdDiagnostics::execute (std::string& output) if (context.config.get ("taskd.ca") != "") out << " CA: " << context.config.get ("taskd.ca") + << (File (context.config.get ("taskd.ca")).readable () + ? " (readable)" : " (not readable)") << "\n"; if (context.config.get ("taskd.trust") != "") @@ -232,10 +234,14 @@ int CmdDiagnostics::execute (std::string& output) out << " Cert: " << context.config.get ("taskd.certificate") + << (File (context.config.get ("taskd.certificate")).readable () + ? " (readable)" : " (not readable)") << "\n"; out << " Key: " << context.config.get ("taskd.key") + << (File (context.config.get ("taskd.key")).readable () + ? " (readable)" : " (not readable)") << "\n"; out << " Ciphers: " From bde6daf44156af390dd3e738bed85da41029619f Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Tue, 26 Nov 2013 16:27:25 -0500 Subject: [PATCH 164/173] Code Cleanup - Removed debugging code (thanks to Kostia H). --- src/A3.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/A3.cpp b/src/A3.cpp index 4acdee9b6..d4de4f2c8 100644 --- a/src/A3.cpp +++ b/src/A3.cpp @@ -25,7 +25,6 @@ // //////////////////////////////////////////////////////////////////////////////// -#include // TODO Remove #include #include #include @@ -1106,10 +1105,7 @@ const A3 A3::expand (const A3& input) const // Default --> preserve else -{ -std::cout << "# default: " << arg->_raw << "\n"; expanded.push_back (*arg); -} previous = arg; } From d4620108ff4745788d9ebac3c6d6585c79800e49 Mon Sep 17 00:00:00 2001 From: Dirk Deimeke Date: Mon, 2 Dec 2013 08:27:00 +0100 Subject: [PATCH 165/173] Administration - Ignore *.exe (Cygwin users) --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index dc47bf789..60c9df39e 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ _CPack_Packages CPackConfig.cmake CPackSourceConfig.cmake patches +*.exe From d96c7cc5a353b062dce61be5dc123afecb5763b4 Mon Sep 17 00:00:00 2001 From: Fidel Mato Date: Fri, 13 Dec 2013 18:16:56 +0100 Subject: [PATCH 166/173] L10N - Corrections and newly translated strings from en-US to es-ES. --- src/es-ES.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/es-ES.h b/src/es-ES.h index e9a765ba4..f3881fda0 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -418,7 +418,7 @@ #define STRING_CMD_SYNC_NO_SERVER "El Servidor Task no está configurado." #define STRING_CMD_SYNC_BAD_CRED "Credenciales del Servidor Task incorrectas." #define STRING_CMD_SYNC_BAD_CERT "Certificado del Servidor Task no encontrado." -#define STRING_CMD_SYNC_BAD_KEY "Taskserver key missing." +#define STRING_CMD_SYNC_BAD_KEY "Clave del Servidor Task no encontrada." #define STRING_CMD_SYNC_ADD " añade {1} '{2}'" #define STRING_CMD_SYNC_MOD "modifica {1} '{2}'" #define STRING_CMD_SYNC_PROGRESS "Sincronizando con {1}" @@ -433,14 +433,14 @@ #define STRING_CMD_SYNC_BAD_SERVER "Sincronización fallida. Ajuste de configuración '{1}' incorrecto" #define STRING_CMD_SYNC_NO_TLS "Taskwarrior fue construido sin soporte GnuTLS. Sincronización no disponible." #define STRING_CMD_SYNC_INIT "Por favor, confirme que desea subir todas sus tareas pendientes al Servidor Task" -#define STRING_CMD_SYNC_NO_INIT "Taskwarrior will no procederá a la inicialización de la sincronización por primera vez." +#define STRING_CMD_SYNC_NO_INIT "Taskwarrior no procederá a la inicialización de la sincronización por primera vez." #define STRING_CMD_SYNC_RELOCATE0 "La cuenta del servidor ha sido reubicada. Por favor, actualice su configuración utilizando:" #define STRING_CMD_SYNC_RELOCATE1 "task config taskd.server {1}" #define STRING_CMD_SYNC_BAD_CA "Certificado CA no encontrado." #define STRING_CMD_SYNC_CONNECT "No se pudo conectar a {1} {2}" #define STRING_CMD_SYNC_HANDSHAKE "Handshake fallido. {1}" -#define STRING_CMD_SYNC_NOMERGE "Task push/pull/merge is configured, deprecated, and does not work with 'sync'." -#define STRING_CMD_SYNC_TRUST_CA "You should either provide a CA certificate or override verification, but not both." +#define STRING_CMD_SYNC_NOMERGE "Task push/pull/merge está configurado, en desuso, y no trabaja con 'sync'." +#define STRING_CMD_SYNC_TRUST_CA "Debe proveer un certificado CA o la verificación de sobrescritura, pero no ambos." #define STRING_CMD_DIAG_USAGE "Detalles de plataforma, construcción y entorno" #define STRING_CMD_DIAG_PLATFORM "Plataforma" #define STRING_CMD_DIAG_UNKNOWN "" From 69933626aa4673683ae385d012bb15bf3bd02ed4 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 14 Dec 2013 12:54:47 -0500 Subject: [PATCH 167/173] Unit Tests - Corrected test output for skipped, pass and fail tests. --- test/test.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/test/test.cpp b/test/test.cpp index 74721b0d7..8aab28721 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -25,10 +25,8 @@ // //////////////////////////////////////////////////////////////////////////////// -#include #include #include -#include #include #include #include @@ -405,7 +403,7 @@ void UnitTest::pass (const std::string& text) ++_passed; std::cout << "ok " << _counter - << " " + << " - " << text << "\n"; } @@ -417,7 +415,7 @@ void UnitTest::fail (const std::string& text) ++_failed; std::cout << "not ok " << _counter - << " " + << " - " << text << "\n"; } @@ -429,7 +427,7 @@ void UnitTest::skip (const std::string& text) ++_skipped; std::cout << "skip " << _counter - << " " + << " - " << text << "\n"; } From f50067dfa67b50a4c9b407e0c46ee2525724531b Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Wed, 1 Jan 2014 12:52:47 -0500 Subject: [PATCH 168/173] Performance - Improved I/O performance with better buffer default sizes to reduce the number of reallocations. --- ChangeLog | 5 +++-- src/File.cpp | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1c96f06fb..30a90e708 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,8 +10,8 @@ Features Gill). + #1226 A new French translation has begun, and will continue to be a work in progress for a while (thanks to YBSA R). - + #1227 A new 'verify_l10n' utility ensures the localizations are in sync (thanks to - Wim Schuermann). + + #1227 A new 'verify_l10n' utility ensures the localizations are in sync + (thanks to Wim Schuermann). + #1250 Support out-of-tree test runs (thanks to Jakub Wilk). + #1256 Supports default values for UDA fields (thanks to Thomas Sullivan). + #1297 The task₋sync(5) man pages is rewritten with examples. @@ -50,6 +50,7 @@ Features FreeBSD (thanks to Pietro Cerutti). + Performance improvements: + Optimizes indexing into pending.data for direct task access. + + Improved I/O performance with better defaults for buffer sizes. Bugs + #1195 Random seed not random enough - removed all random number code (thanks diff --git a/src/File.cpp b/src/File.cpp index ca5146ca6..9ddb8aac7 100644 --- a/src/File.cpp +++ b/src/File.cpp @@ -196,12 +196,13 @@ bool File::waitForLock () void File::read (std::string& contents) { contents = ""; + contents.reserve (size ()); std::ifstream in (_data.c_str ()); if (in.good ()) { std::string line; - line.reserve (1024); + line.reserve (512 * 1024); while (getline (in, line)) contents += line + "\n"; @@ -219,7 +220,7 @@ void File::read (std::vector & contents) if (in.good ()) { std::string line; - line.reserve (1024); + line.reserve (512 * 1024); while (getline (in, line)) contents.push_back (line); From 8ed92ca49834317a6c965442446e5beda3ec399d Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Wed, 1 Jan 2014 13:32:22 -0500 Subject: [PATCH 169/173] Copyright - Bumped copyright to 2014, ready for release. --- COPYING | 2 +- LICENSE | 2 +- doc/man/task-color.5.in | 2 +- doc/man/task-faq.5.in | 2 +- doc/man/task-sync.5.in | 2 +- doc/man/task-tutorial.5.in | 2 +- doc/man/task.1.in | 6 +++--- doc/man/taskrc.5.in | 4 ++-- doc/man/tasksh.1.in | 2 +- doc/rc/dark-16.theme | 2 +- doc/rc/dark-256.theme | 2 +- doc/rc/dark-blue-256.theme | 2 +- doc/rc/dark-gray-256.theme | 2 +- doc/rc/dark-green-256.theme | 2 +- doc/rc/dark-red-256.theme | 2 +- doc/rc/dark-violets-256.theme | 2 +- doc/rc/dark-yellow-green.theme | 2 +- doc/rc/holidays.be-BY.rc | 2 +- doc/rc/holidays.cs-CZ.rc | 2 +- doc/rc/holidays.da-DK.rc | 2 +- doc/rc/holidays.de-AT.rc | 2 +- doc/rc/holidays.de-DE.rc | 2 +- doc/rc/holidays.en-CA.rc | 2 +- doc/rc/holidays.en-GB.rc | 2 +- doc/rc/holidays.en-NZ.rc | 2 +- doc/rc/holidays.en-US.rc | 2 +- doc/rc/holidays.es-ES.rc | 2 +- doc/rc/holidays.fr-FR.rc | 2 +- doc/rc/holidays.it-IT.rc | 2 +- doc/rc/holidays.jp-JP.rc | 2 +- doc/rc/holidays.nb-NO.rc | 2 +- doc/rc/holidays.nl-NL.rc | 2 +- doc/rc/holidays.sv-SE.rc | 2 +- doc/rc/light-16.theme | 2 +- doc/rc/light-256.theme | 2 +- doc/rc/solarized-dark-256.theme | 2 +- doc/rc/solarized-light-256.theme | 2 +- package-config/osx/README | 2 +- scripts/add-ons/export-csv.pl | 2 +- scripts/add-ons/export-html.pl | 2 +- scripts/add-ons/export-ical.pl | 2 +- scripts/add-ons/export-sql.py | 2 +- scripts/add-ons/export-tsv.pl | 2 +- scripts/add-ons/export-xml.pl | 2 +- scripts/add-ons/export-xml.py | 2 +- scripts/add-ons/export-xml.rb | 2 +- scripts/add-ons/export-yad.pl | 2 +- scripts/add-ons/export-yaml.pl | 2 +- scripts/add-ons/import-todo.sh.pl | 2 +- scripts/add-ons/import-yaml.pl | 2 +- scripts/add-ons/update-holidays.pl | 4 ++-- scripts/bash/task.sh | 2 +- scripts/fish/task.fish | 2 +- scripts/utils/l10n | 2 +- scripts/vim/README | 2 +- scripts/vim/ftdetect/task.vim | 2 +- scripts/vim/syntax/taskdata.vim | 2 +- scripts/vim/syntax/taskedit.vim | 2 +- scripts/vim/syntax/taskrc.vim | 2 +- scripts/zsh/_task | 2 +- src/A3.cpp | 2 +- src/A3.h | 2 +- src/Arg.cpp | 2 +- src/Arg.h | 2 +- src/Color.cpp | 2 +- src/Color.h | 2 +- src/Config.cpp | 2 +- src/Config.h | 2 +- src/Context.cpp | 2 +- src/Context.h | 2 +- src/DOM.cpp | 2 +- src/DOM.h | 2 +- src/Date.cpp | 2 +- src/Date.h | 2 +- src/Directory.cpp | 2 +- src/Directory.h | 2 +- src/Duration.cpp | 2 +- src/Duration.h | 2 +- src/E9.cpp | 2 +- src/E9.h | 2 +- src/File.cpp | 2 +- src/File.h | 2 +- src/Hooks.cpp | 2 +- src/Hooks.h | 2 +- src/JSON.cpp | 2 +- src/JSON.h | 2 +- src/Msg.cpp | 2 +- src/Msg.h | 2 +- src/Nibbler.cpp | 2 +- src/Nibbler.h | 2 +- src/Path.cpp | 2 +- src/Path.h | 2 +- src/RX.cpp | 2 +- src/RX.h | 2 +- src/TDB2.cpp | 4 ++-- src/TDB2.h | 2 +- src/TLSClient.cpp | 2 +- src/TLSClient.h | 2 +- src/Task.cpp | 2 +- src/Task.h | 2 +- src/Taskmod.cpp | 2 +- src/Taskmod.h | 2 +- src/Timer.cpp | 2 +- src/Timer.h | 2 +- src/Transport.cpp | 2 +- src/Transport.h | 2 +- src/TransportCurl.cpp | 2 +- src/TransportCurl.h | 2 +- src/TransportRSYNC.cpp | 2 +- src/TransportRSYNC.h | 2 +- src/TransportSSH.cpp | 2 +- src/TransportSSH.h | 2 +- src/TransportShell.cpp | 2 +- src/TransportShell.h | 2 +- src/Uri.cpp | 2 +- src/Uri.h | 2 +- src/ViewTask.cpp | 2 +- src/ViewTask.h | 2 +- src/ViewText.cpp | 2 +- src/ViewText.h | 2 +- src/columns/ColDate.cpp | 2 +- src/columns/ColDate.h | 2 +- src/columns/ColDepends.cpp | 2 +- src/columns/ColDepends.h | 2 +- src/columns/ColDescription.cpp | 2 +- src/columns/ColDescription.h | 2 +- src/columns/ColDue.cpp | 2 +- src/columns/ColDue.h | 2 +- src/columns/ColEnd.cpp | 2 +- src/columns/ColEnd.h | 2 +- src/columns/ColEntry.cpp | 2 +- src/columns/ColEntry.h | 2 +- src/columns/ColID.cpp | 2 +- src/columns/ColID.h | 2 +- src/columns/ColIMask.cpp | 2 +- src/columns/ColIMask.h | 2 +- src/columns/ColMask.cpp | 2 +- src/columns/ColMask.h | 2 +- src/columns/ColModified.cpp | 2 +- src/columns/ColModified.h | 2 +- src/columns/ColParent.cpp | 2 +- src/columns/ColParent.h | 2 +- src/columns/ColPriority.cpp | 2 +- src/columns/ColPriority.h | 2 +- src/columns/ColProject.cpp | 2 +- src/columns/ColProject.h | 2 +- src/columns/ColRecur.cpp | 2 +- src/columns/ColRecur.h | 2 +- src/columns/ColScheduled.cpp | 2 +- src/columns/ColScheduled.h | 2 +- src/columns/ColStart.cpp | 2 +- src/columns/ColStart.h | 2 +- src/columns/ColStatus.cpp | 2 +- src/columns/ColStatus.h | 2 +- src/columns/ColString.cpp | 2 +- src/columns/ColString.h | 2 +- src/columns/ColTags.cpp | 2 +- src/columns/ColTags.h | 2 +- src/columns/ColUDA.cpp | 2 +- src/columns/ColUDA.h | 2 +- src/columns/ColUUID.cpp | 2 +- src/columns/ColUUID.h | 2 +- src/columns/ColUntil.cpp | 2 +- src/columns/ColUntil.h | 2 +- src/columns/ColUrgency.cpp | 2 +- src/columns/ColUrgency.h | 2 +- src/columns/ColWait.cpp | 2 +- src/columns/ColWait.h | 2 +- src/columns/Column.cpp | 2 +- src/columns/Column.h | 2 +- src/commands/CmdAdd.cpp | 2 +- src/commands/CmdAdd.h | 2 +- src/commands/CmdAliases.cpp | 2 +- src/commands/CmdAliases.h | 2 +- src/commands/CmdAnnotate.cpp | 2 +- src/commands/CmdAnnotate.h | 2 +- src/commands/CmdAppend.cpp | 2 +- src/commands/CmdAppend.h | 2 +- src/commands/CmdBurndown.cpp | 2 +- src/commands/CmdBurndown.h | 2 +- src/commands/CmdCalendar.cpp | 2 +- src/commands/CmdCalendar.h | 2 +- src/commands/CmdColor.cpp | 2 +- src/commands/CmdColor.h | 2 +- src/commands/CmdColumns.cpp | 2 +- src/commands/CmdColumns.h | 2 +- src/commands/CmdCommands.cpp | 2 +- src/commands/CmdCommands.h | 2 +- src/commands/CmdConfig.cpp | 2 +- src/commands/CmdConfig.h | 2 +- src/commands/CmdCount.cpp | 2 +- src/commands/CmdCount.h | 2 +- src/commands/CmdCustom.cpp | 2 +- src/commands/CmdCustom.h | 2 +- src/commands/CmdDelete.cpp | 2 +- src/commands/CmdDelete.h | 2 +- src/commands/CmdDenotate.cpp | 2 +- src/commands/CmdDenotate.h | 2 +- src/commands/CmdDiagnostics.cpp | 2 +- src/commands/CmdDiagnostics.h | 2 +- src/commands/CmdDone.cpp | 2 +- src/commands/CmdDone.h | 2 +- src/commands/CmdDuplicate.cpp | 2 +- src/commands/CmdDuplicate.h | 2 +- src/commands/CmdEdit.cpp | 2 +- src/commands/CmdEdit.h | 2 +- src/commands/CmdExec.cpp | 2 +- src/commands/CmdExec.h | 2 +- src/commands/CmdExport.cpp | 2 +- src/commands/CmdExport.h | 2 +- src/commands/CmdGet.cpp | 2 +- src/commands/CmdGet.h | 2 +- src/commands/CmdHelp.cpp | 2 +- src/commands/CmdHelp.h | 2 +- src/commands/CmdHistory.cpp | 2 +- src/commands/CmdHistory.h | 2 +- src/commands/CmdIDs.cpp | 2 +- src/commands/CmdIDs.h | 2 +- src/commands/CmdImport.cpp | 2 +- src/commands/CmdImport.h | 2 +- src/commands/CmdInfo.cpp | 2 +- src/commands/CmdInfo.h | 2 +- src/commands/CmdInstall.cpp | 2 +- src/commands/CmdInstall.h | 2 +- src/commands/CmdLog.cpp | 2 +- src/commands/CmdLog.h | 2 +- src/commands/CmdLogo.cpp | 2 +- src/commands/CmdLogo.h | 2 +- src/commands/CmdMerge.cpp | 2 +- src/commands/CmdMerge.h | 2 +- src/commands/CmdModify.cpp | 2 +- src/commands/CmdModify.h | 2 +- src/commands/CmdPrepend.cpp | 2 +- src/commands/CmdPrepend.h | 2 +- src/commands/CmdProjects.cpp | 2 +- src/commands/CmdProjects.h | 2 +- src/commands/CmdPull.cpp | 2 +- src/commands/CmdPull.h | 2 +- src/commands/CmdPush.cpp | 2 +- src/commands/CmdPush.h | 2 +- src/commands/CmdReports.cpp | 2 +- src/commands/CmdReports.h | 2 +- src/commands/CmdShow.cpp | 2 +- src/commands/CmdShow.h | 2 +- src/commands/CmdStart.cpp | 2 +- src/commands/CmdStart.h | 2 +- src/commands/CmdStats.cpp | 2 +- src/commands/CmdStats.h | 2 +- src/commands/CmdStop.cpp | 2 +- src/commands/CmdStop.h | 2 +- src/commands/CmdSummary.cpp | 2 +- src/commands/CmdSummary.h | 2 +- src/commands/CmdSync.cpp | 2 +- src/commands/CmdSync.h | 2 +- src/commands/CmdTags.cpp | 2 +- src/commands/CmdTags.h | 2 +- src/commands/CmdTimesheet.cpp | 2 +- src/commands/CmdTimesheet.h | 2 +- src/commands/CmdUDAs.cpp | 2 +- src/commands/CmdUDAs.h | 2 +- src/commands/CmdUndo.cpp | 2 +- src/commands/CmdUndo.h | 2 +- src/commands/CmdUrgency.cpp | 2 +- src/commands/CmdUrgency.h | 2 +- src/commands/CmdVersion.cpp | 2 +- src/commands/CmdVersion.h | 2 +- src/commands/Command.cpp | 2 +- src/commands/Command.h | 2 +- src/dependency.cpp | 2 +- src/en-US.h | 4 ++-- src/es-ES.h | 4 ++-- src/feedback.cpp | 2 +- src/fr-FR.h | 4 ++-- src/i18n.h | 2 +- src/interactive.cpp | 2 +- src/it-IT.h | 4 ++-- src/legacy.cpp | 2 +- src/main.cpp | 2 +- src/main.h | 2 +- src/recur.cpp | 2 +- src/rules.cpp | 2 +- src/shell/Readline.cpp | 2 +- src/shell/Readline.h | 2 +- src/shell/main.cpp | 2 +- src/sort.cpp | 2 +- src/text.cpp | 2 +- src/text.h | 2 +- src/utf8.cpp | 2 +- src/utf8.h | 2 +- src/util.cpp | 2 +- src/util.h | 2 +- test/TAP.py | 2 +- test/abbreviation.t | 2 +- test/add.t | 2 +- test/alias.t | 2 +- test/annotate.t | 2 +- test/append.t | 2 +- test/args.1.t | 2 +- test/args.2.t | 2 +- test/args.3.t | 2 +- test/args.4.t | 2 +- test/args.5.t | 2 +- test/args.t | 2 +- test/autocomplete.t.cpp | 2 +- test/backslash.t | 2 +- test/bash_completion.t | 2 +- test/basic.t | 2 +- test/bug.1006.t | 2 +- test/bug.1023.t | 2 +- test/bug.1031.t | 2 +- test/bug.1036.t | 2 +- test/bug.1043.t | 2 +- test/bug.1044.t | 2 +- test/bug.1056.t | 2 +- test/bug.1063.t | 2 +- test/bug.1065.t | 2 +- test/bug.1104.t | 2 +- test/bug.1110.t | 2 +- test/bug.1117.t | 2 +- test/bug.1192.t | 2 +- test/bug.299.t | 2 +- test/bug.327.t | 2 +- test/bug.360.t | 2 +- test/bug.368.t | 2 +- test/bug.414.t | 2 +- test/bug.417.t | 2 +- test/bug.418.t | 2 +- test/bug.425.t | 2 +- test/bug.434.t | 2 +- test/bug.438.t | 2 +- test/bug.440.t | 2 +- test/bug.441.t | 2 +- test/bug.455.t | 2 +- test/bug.480.t | 2 +- test/bug.485.x | 2 +- test/bug.489.t | 2 +- test/bug.495.t | 2 +- test/bug.555.t | 2 +- test/bug.580.t | 2 +- test/bug.605.t | 2 +- test/bug.628.t | 2 +- test/bug.634.t | 2 +- test/bug.635.t | 2 +- test/bug.649.t | 2 +- test/bug.656.t | 2 +- test/bug.674.t | 2 +- test/bug.694.t | 2 +- test/bug.697.x | 2 +- test/bug.703.t | 2 +- test/bug.708.t | 2 +- test/bug.804.t | 2 +- test/bug.818.t | 2 +- test/bug.819.t | 2 +- test/bug.835.t | 2 +- test/bug.837.t | 2 +- test/bug.839.t | 2 +- test/bug.851.t | 2 +- test/bug.856.t | 2 +- test/bug.860.t | 2 +- test/bug.879.t | 2 +- test/bug.884.t | 2 +- test/bug.886.t | 2 +- test/bug.899.t | 2 +- test/bug.906.t | 2 +- test/bug.917.t | 2 +- test/bug.924.t | 2 +- test/bug.932.t | 2 +- test/bug.954.t | 2 +- test/bug.955.t | 2 +- test/bug.956.t | 2 +- test/bug.972.t | 2 +- test/bug.982.x | 2 +- test/bug.986.t | 2 +- test/bug.987.x | 2 +- test/bug.990.t | 2 +- test/bug.991.t | 2 +- test/bug.annotate.t | 2 +- test/bug.annual.t | 2 +- test/bug.before.t | 2 +- test/bug.bulk.t | 2 +- test/bug.c001.t | 2 +- test/bug.cal.t | 2 +- test/bug.concat.t | 2 +- test/bug.hang.t | 2 +- test/bug.hasnt.t | 2 +- test/bug.mergedeps.t.postponed | 2 +- test/bug.period.t | 2 +- test/bug.range.t | 2 +- test/bug.recur.t | 2 +- test/bug.sort.t | 2 +- test/bug.start.extra.t | 2 +- test/bug.summary.t | 2 +- test/bug.uuid.t | 2 +- test/bulk.t | 2 +- test/cal.t | 2 +- test/caseless.t | 2 +- test/color.active.t | 2 +- test/color.blocked.t | 2 +- test/color.deprecated.t | 2 +- test/color.disable.t | 2 +- test/color.due.t | 2 +- test/color.duetoday.t | 2 +- test/color.err.t | 2 +- test/color.keyword.t | 2 +- test/color.overdue.t | 2 +- test/color.pri.t | 2 +- test/color.project.t | 2 +- test/color.recurring.t | 2 +- test/color.t.cpp | 2 +- test/color.tag.t | 2 +- test/color.tagged.t | 2 +- test/color.uda.t | 2 +- test/completed.t | 2 +- test/config.obsolete.t | 2 +- test/config.t.cpp | 2 +- test/confirmation.t | 2 +- test/count.t | 2 +- test/countdown.t | 2 +- test/custom.columns.t | 2 +- test/custom.priority_long.t | 2 +- test/custom.recur_ind.t | 2 +- test/custom.t | 2 +- test/custom.tag_ind.t | 2 +- test/date.iso.t | 2 +- test/date.t.cpp | 2 +- test/dateformat.t | 2 +- test/datesort.t | 2 +- test/default.t | 2 +- test/delete.t | 2 +- test/denotate.t | 2 +- test/dependencies.t | 2 +- test/directory.t.cpp | 2 +- test/dom.2.t | 2 +- test/dom.t.cpp | 2 +- test/due.t | 2 +- test/duplicate.t | 2 +- test/duplicate2.t | 2 +- test/duration.t.cpp | 2 +- test/enpassant.t | 2 +- test/export.yaml.t | 2 +- test/feature.1013.t | 2 +- test/feature.1061.t | 2 +- test/feature.559.t | 2 +- test/feature.608.t | 2 +- test/feature.632.t | 2 +- test/feature.725.t | 2 +- test/feature.891.t | 2 +- test/feature.exit.t | 2 +- test/feature.print.empty.columns.t | 2 +- test/file.t.cpp | 2 +- test/filter-prefix.t | 2 +- test/filter.t | 2 +- test/fontunderline.t | 2 +- test/history.annual.t | 2 +- test/history.monthly.t | 2 +- test/hyphenate.t | 2 +- test/i18n.t.cpp | 2 +- test/ids.t | 2 +- test/import.t | 2 +- test/import.todo.sh.t | 2 +- test/import.yaml.t | 2 +- test/json.t.cpp | 2 +- test/json_test.cpp | 2 +- test/json_test.t | 2 +- test/label.t | 2 +- test/limit.t | 2 +- test/list.all.projects.t | 2 +- test/list.all.tags.t | 2 +- test/list.t.cpp | 2 +- test/log.t | 2 +- test/merge.duplicates.t | 2 +- test/merge.simple_duplication.t | 2 +- test/merge.t | 2 +- test/msg.t.cpp | 2 +- test/nag.t | 2 +- test/next.t | 2 +- test/nibbler.t.cpp | 2 +- test/oldest.t | 2 +- test/op_and.t | 2 +- test/op_gt.t | 2 +- test/op_gte.t | 2 +- test/op_lt.t | 2 +- test/op_lte.t | 2 +- test/op_or.t | 2 +- test/op_xor.t | 2 +- test/overdue.t | 2 +- test/override.t | 2 +- test/path.t.cpp | 2 +- test/prepend.t | 2 +- test/pri_sort.t | 2 +- test/project.t | 2 +- test/rc.override.t | 2 +- test/rc.t | 2 +- test/recur.limit.t | 2 +- test/recur.sort.t | 2 +- test/recur.t | 2 +- test/recur.until.t | 2 +- test/recur.weekdays.t | 2 +- test/roundtrip.t | 2 +- test/rx.t.cpp | 2 +- test/sequence.t | 2 +- test/shadow.t | 2 +- test/shell.t | 2 +- test/sorting.t | 2 +- test/special.t | 2 +- test/start.t | 2 +- test/subproject.t | 2 +- test/substitute.t | 2 +- test/t.t.cpp | 2 +- test/t2.t.cpp | 2 +- test/t3.t.cpp | 2 +- test/tag.t | 2 +- test/taskmod.t.cpp | 2 +- test/tdb2.t.cpp | 2 +- test/template.t | 2 +- test/test.cpp | 2 +- test/test.h | 2 +- test/text.t.cpp | 2 +- test/timesheet.t | 2 +- test/uda_date.t | 2 +- test/uda_defaults.t | 2 +- test/uda_duration.t | 2 +- test/uda_numeric.t | 2 +- test/uda_orphan.t | 2 +- test/uda_report.t | 2 +- test/uda_string.t | 2 +- test/uda_value.t | 2 +- test/undo.t | 2 +- test/upgrade.t | 2 +- test/urgency.t | 2 +- test/uri.t.cpp | 2 +- test/utf8.t.cpp | 2 +- test/utf8_tw.t | 2 +- test/util.t.cpp | 2 +- test/uuid.t | 2 +- test/verbose.t | 2 +- test/version.t | 2 +- test/view.t.cpp | 2 +- test/wait.t | 2 +- test/width.t.cpp | 2 +- 540 files changed, 549 insertions(+), 549 deletions(-) diff --git a/COPYING b/COPYING index fa467597a..a48fa5537 100644 --- a/COPYING +++ b/COPYING @@ -1,6 +1,6 @@ taskwarrior - a command line task list manager. -Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +Copyright 2006-2014, Paul Beckingham, Federico Hernandez. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/LICENSE b/LICENSE index fa467597a..a48fa5537 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ taskwarrior - a command line task list manager. -Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +Copyright 2006-2014, Paul Beckingham, Federico Hernandez. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/doc/man/task-color.5.in b/doc/man/task-color.5.in index 75f7fd1c7..243f90945 100644 --- a/doc/man/task-color.5.in +++ b/doc/man/task-color.5.in @@ -304,7 +304,7 @@ Better yet, create your own, and share it. We will gladly host the theme file on . .SH "CREDITS & COPYRIGHTS" -Copyright (C) 2006 \- 2013 P. Beckingham, F. Hernandez. +Copyright (C) 2006 \- 2014 P. Beckingham, F. Hernandez. Taskwarrior is distributed under the MIT license. See http://www.opensource.org/licenses/mit-license.php for more information. diff --git a/doc/man/task-faq.5.in b/doc/man/task-faq.5.in index 7a5fa4adb..d0a78d974 100644 --- a/doc/man/task-faq.5.in +++ b/doc/man/task-faq.5.in @@ -339,7 +339,7 @@ There are lots of ways. Here are some: - Fix bugs .SH "CREDITS & COPYRIGHTS" -Copyright (C) 2006 \- 2013 P. Beckingham, F. Hernandez. +Copyright (C) 2006 \- 2014 P. Beckingham, F. Hernandez. Taskwarrior is distributed under the MIT license. See http://www.opensource.org/licenses/mit-license.php for more information. diff --git a/doc/man/task-sync.5.in b/doc/man/task-sync.5.in index 3f1fe7e37..03e00da84 100644 --- a/doc/man/task-sync.5.in +++ b/doc/man/task-sync.5.in @@ -142,7 +142,7 @@ Weaknesses: - You need to manage your own server, or gain access to a hosted server. .SH "CREDITS & COPYRIGHTS" -Copyright (C) 2006 \- 2013 P. Beckingham, F. Hernandez. +Copyright (C) 2006 \- 2014 P. Beckingham, F. Hernandez. Taskwarrior is distributed under the MIT license. See http://www.opensource.org/licenses/mit-license.php for more information. diff --git a/doc/man/task-tutorial.5.in b/doc/man/task-tutorial.5.in index 135ca875b..da28abef6 100644 --- a/doc/man/task-tutorial.5.in +++ b/doc/man/task-tutorial.5.in @@ -3081,7 +3081,7 @@ $ task help .RE .SH "CREDITS & COPYRIGHTS" -Copyright (C) 2006 \- 2013 P. Beckingham, F. Hernandez. +Copyright (C) 2006 \- 2014 P. Beckingham, F. Hernandez. This man page was originally written by Federico Hernandez, and has been modified and supplemented by Paul Beckingham. diff --git a/doc/man/task.1.in b/doc/man/task.1.in index c58989bb1..156ccbe9d 100644 --- a/doc/man/task.1.in +++ b/doc/man/task.1.in @@ -144,8 +144,8 @@ Shows a graphical burndown chart, by month. .B task calendar [due| |] [y] Shows a monthly calendar with due tasks marked. Shows one horizontal line of months. If the 'y' argument is provided, will show at least one complete year. -If a year is provided, such as '2013', then that full year is shown. If both -a month and a year are specified ('6 2013') then the months displayed begin at +If a year is provided, such as '2014', then that full year is shown. If both +a month and a year are specified ('6 2014') then the months displayed begin at the specified month and year. If the 'due' argument is provided, will show the starting month of the earliest due task. @@ -1084,7 +1084,7 @@ The file that contains the completed ("done") tasks. The file that contains information needed by the "undo" command. .SH "CREDITS & COPYRIGHTS" -Copyright (C) 2006 \- 2013 P. Beckingham, F. Hernandez. +Copyright (C) 2006 \- 2014 P. Beckingham, F. Hernandez. Taskwarrior is distributed under the MIT license. See http://www.opensource.org/licenses/mit-license.php for more information. diff --git a/doc/man/taskrc.5.in b/doc/man/taskrc.5.in index 6ae7adc92..60926e2c8 100644 --- a/doc/man/taskrc.5.in +++ b/doc/man/taskrc.5.in @@ -515,7 +515,7 @@ D two-digit day, for example 01 or 30 .br M two-digit month, for example 01 or 12 .br -Y four-digit year, for example 2009 or 2013 +Y four-digit year, for example 2009 or 2014 .br a short name of weekday, for example Mon or Wed .br @@ -1389,7 +1389,7 @@ Default is "NORMAL". See GnuTLS documentation for full details. .RE .SH "CREDITS & COPYRIGHTS" -Copyright (C) 2006 \- 2013 P. Beckingham, F. Hernandez. +Copyright (C) 2006 \- 2014 P. Beckingham, F. Hernandez. This man page was originally written by Federico Hernandez. diff --git a/doc/man/tasksh.1.in b/doc/man/tasksh.1.in index 75c1065ff..f527e5b40 100644 --- a/doc/man/tasksh.1.in +++ b/doc/man/tasksh.1.in @@ -149,7 +149,7 @@ ID Project Pri Due Active Age Description .RE .SH "CREDITS & COPYRIGHTS" -Copyright (C) 2006 \- 2013 P. Beckingham, F. Hernandez. +Copyright (C) 2006 \- 2014 P. Beckingham, F. Hernandez. This man page was originally written by Federico Hernandez. diff --git a/doc/rc/dark-16.theme b/doc/rc/dark-16.theme index 43aad430a..1ae866f90 100644 --- a/doc/rc/dark-16.theme +++ b/doc/rc/dark-16.theme @@ -3,7 +3,7 @@ # # taskwarrior - a command line task list manager. # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/dark-256.theme b/doc/rc/dark-256.theme index ae5a60116..c78cfa9a6 100644 --- a/doc/rc/dark-256.theme +++ b/doc/rc/dark-256.theme @@ -3,7 +3,7 @@ # # taskwarrior - a command line task list manager. # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/dark-blue-256.theme b/doc/rc/dark-blue-256.theme index 34084d7d6..9ece9bd3b 100644 --- a/doc/rc/dark-blue-256.theme +++ b/doc/rc/dark-blue-256.theme @@ -3,7 +3,7 @@ # # taskwarrior - a command line task list manager. # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/dark-gray-256.theme b/doc/rc/dark-gray-256.theme index 91b66b628..c9dc9cf2a 100644 --- a/doc/rc/dark-gray-256.theme +++ b/doc/rc/dark-gray-256.theme @@ -3,7 +3,7 @@ # # taskwarrior - a command line task list manager. # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/dark-green-256.theme b/doc/rc/dark-green-256.theme index e1fa4a1af..e5bb9a58a 100644 --- a/doc/rc/dark-green-256.theme +++ b/doc/rc/dark-green-256.theme @@ -3,7 +3,7 @@ # # taskwarrior - a command line task list manager. # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/dark-red-256.theme b/doc/rc/dark-red-256.theme index abdd461b5..b5b89d06e 100644 --- a/doc/rc/dark-red-256.theme +++ b/doc/rc/dark-red-256.theme @@ -3,7 +3,7 @@ # # taskwarrior - a command line task list manager. # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/dark-violets-256.theme b/doc/rc/dark-violets-256.theme index 10d0eab5c..1537fab8c 100644 --- a/doc/rc/dark-violets-256.theme +++ b/doc/rc/dark-violets-256.theme @@ -3,7 +3,7 @@ # # taskwarrior - a command line task list manager. # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/dark-yellow-green.theme b/doc/rc/dark-yellow-green.theme index 6cd9aa6d0..d8c287172 100644 --- a/doc/rc/dark-yellow-green.theme +++ b/doc/rc/dark-yellow-green.theme @@ -3,7 +3,7 @@ # # taskwarrior - a command line task list manager. # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/holidays.be-BY.rc b/doc/rc/holidays.be-BY.rc index d934e3fed..55a327b5b 100644 --- a/doc/rc/holidays.be-BY.rc +++ b/doc/rc/holidays.be-BY.rc @@ -3,7 +3,7 @@ # http://holidata.net/be-BY/2013.json # http://holidata.net/be-BY/2014.json # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/holidays.cs-CZ.rc b/doc/rc/holidays.cs-CZ.rc index 19dd116fe..84def6de3 100644 --- a/doc/rc/holidays.cs-CZ.rc +++ b/doc/rc/holidays.cs-CZ.rc @@ -3,7 +3,7 @@ # http://holidata.net/cs-CZ/2013.json # http://holidata.net/cs-CZ/2014.json # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/holidays.da-DK.rc b/doc/rc/holidays.da-DK.rc index ea3e6e493..072cabce9 100644 --- a/doc/rc/holidays.da-DK.rc +++ b/doc/rc/holidays.da-DK.rc @@ -3,7 +3,7 @@ # http://holidata.net/da-DK/2013.json # http://holidata.net/da-DK/2014.json # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/holidays.de-AT.rc b/doc/rc/holidays.de-AT.rc index 8e9fb3989..3058f28bd 100644 --- a/doc/rc/holidays.de-AT.rc +++ b/doc/rc/holidays.de-AT.rc @@ -3,7 +3,7 @@ # http://holidata.net/de-AT/2013.json # http://holidata.net/de-AT/2014.json # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/holidays.de-DE.rc b/doc/rc/holidays.de-DE.rc index 6654c237c..8af072fa5 100644 --- a/doc/rc/holidays.de-DE.rc +++ b/doc/rc/holidays.de-DE.rc @@ -3,7 +3,7 @@ # http://holidata.net/de-DE/2013.json # http://holidata.net/de-DE/2014.json # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/holidays.en-CA.rc b/doc/rc/holidays.en-CA.rc index 2c2d40413..08bce3811 100644 --- a/doc/rc/holidays.en-CA.rc +++ b/doc/rc/holidays.en-CA.rc @@ -3,7 +3,7 @@ # http://holidata.net/en-CA/2013.json # http://holidata.net/en-CA/2014.json # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/holidays.en-GB.rc b/doc/rc/holidays.en-GB.rc index 9ff0bf86d..cee735917 100644 --- a/doc/rc/holidays.en-GB.rc +++ b/doc/rc/holidays.en-GB.rc @@ -3,7 +3,7 @@ # http://holidata.net/en-GB/2013.json # http://holidata.net/en-GB/2014.json # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/holidays.en-NZ.rc b/doc/rc/holidays.en-NZ.rc index be2e5d83c..80c98ae03 100644 --- a/doc/rc/holidays.en-NZ.rc +++ b/doc/rc/holidays.en-NZ.rc @@ -3,7 +3,7 @@ # http://holidata.net/en-NZ/2013.json # http://holidata.net/en-NZ/2014.json # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/holidays.en-US.rc b/doc/rc/holidays.en-US.rc index 580b476aa..f54114639 100644 --- a/doc/rc/holidays.en-US.rc +++ b/doc/rc/holidays.en-US.rc @@ -3,7 +3,7 @@ # http://holidata.net/en-US/2013.json # http://holidata.net/en-US/2014.json # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/holidays.es-ES.rc b/doc/rc/holidays.es-ES.rc index eb44d8bf9..4f7fc54ff 100644 --- a/doc/rc/holidays.es-ES.rc +++ b/doc/rc/holidays.es-ES.rc @@ -3,7 +3,7 @@ # http://holidata.net/es-ES/2013.json # http://holidata.net/es-ES/2014.json # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/holidays.fr-FR.rc b/doc/rc/holidays.fr-FR.rc index 8679d3c9d..06e8dfc3d 100644 --- a/doc/rc/holidays.fr-FR.rc +++ b/doc/rc/holidays.fr-FR.rc @@ -3,7 +3,7 @@ # http://holidata.net/fr-FR/2013.json # http://holidata.net/fr-FR/2014.json # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/holidays.it-IT.rc b/doc/rc/holidays.it-IT.rc index 1ff0f77bd..53fd6f8ea 100644 --- a/doc/rc/holidays.it-IT.rc +++ b/doc/rc/holidays.it-IT.rc @@ -3,7 +3,7 @@ # http://holidata.net/it-IT/2013.json # http://holidata.net/it-IT/2014.json # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/holidays.jp-JP.rc b/doc/rc/holidays.jp-JP.rc index 115677888..163763ada 100644 --- a/doc/rc/holidays.jp-JP.rc +++ b/doc/rc/holidays.jp-JP.rc @@ -3,7 +3,7 @@ # http://holidata.net/jp-JP/2013.json # http://holidata.net/jp-JP/2014.json # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/holidays.nb-NO.rc b/doc/rc/holidays.nb-NO.rc index dd2cb5e52..d5fdb50be 100644 --- a/doc/rc/holidays.nb-NO.rc +++ b/doc/rc/holidays.nb-NO.rc @@ -3,7 +3,7 @@ # http://holidata.net/nb-NO/2013.json # http://holidata.net/nb-NO/2014.json # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/holidays.nl-NL.rc b/doc/rc/holidays.nl-NL.rc index 19a76e90c..0315a5770 100644 --- a/doc/rc/holidays.nl-NL.rc +++ b/doc/rc/holidays.nl-NL.rc @@ -3,7 +3,7 @@ # http://holidata.net/nl-NL/2013.json # http://holidata.net/nl-NL/2014.json # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/holidays.sv-SE.rc b/doc/rc/holidays.sv-SE.rc index 8c88132a6..9af4cf9a7 100644 --- a/doc/rc/holidays.sv-SE.rc +++ b/doc/rc/holidays.sv-SE.rc @@ -3,7 +3,7 @@ # http://holidata.net/sv-SE/2013.json # http://holidata.net/sv-SE/2014.json # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/light-16.theme b/doc/rc/light-16.theme index 8daf575e6..6e98a446a 100644 --- a/doc/rc/light-16.theme +++ b/doc/rc/light-16.theme @@ -3,7 +3,7 @@ # # taskwarrior - a command line task list manager. # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/light-256.theme b/doc/rc/light-256.theme index f3bb6de27..5a3555bdb 100644 --- a/doc/rc/light-256.theme +++ b/doc/rc/light-256.theme @@ -3,7 +3,7 @@ # # taskwarrior - a command line task list manager. # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/doc/rc/solarized-dark-256.theme b/doc/rc/solarized-dark-256.theme index 794643216..df4d21cc4 100644 --- a/doc/rc/solarized-dark-256.theme +++ b/doc/rc/solarized-dark-256.theme @@ -3,7 +3,7 @@ # # taskwarrior - a command line task list manager. # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Colors used are based on the Solarized palette created by Ethan Schoonover # diff --git a/doc/rc/solarized-light-256.theme b/doc/rc/solarized-light-256.theme index a38d47629..ea7b3167c 100644 --- a/doc/rc/solarized-light-256.theme +++ b/doc/rc/solarized-light-256.theme @@ -3,7 +3,7 @@ # # taskwarrior - a command line task list manager. # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Colors used are based on the Solarized palette created by Ethan Schoonover # diff --git a/package-config/osx/README b/package-config/osx/README index 183b48f75..89aa52767 100644 --- a/package-config/osx/README +++ b/package-config/osx/README @@ -242,7 +242,7 @@ Note: This is being written from the OSX 10.6 perspective, and may therefore $ /usr/local/bin/task version task 2.0.0 built for darwin - Copyright (C) 2006 - 2013 P. Beckingham, F. Hernandez. + Copyright (C) 2006 - 2014 P. Beckingham, F. Hernandez. Taskwarrior may be copied only under the terms of the GNU General Public License, which may be found in the taskwarrior source kit. diff --git a/scripts/add-ons/export-csv.pl b/scripts/add-ons/export-csv.pl index 334dc9d71..69ceab935 100755 --- a/scripts/add-ons/export-csv.pl +++ b/scripts/add-ons/export-csv.pl @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/scripts/add-ons/export-html.pl b/scripts/add-ons/export-html.pl index 4e558f9a2..03afaeb4c 100755 --- a/scripts/add-ons/export-html.pl +++ b/scripts/add-ons/export-html.pl @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/scripts/add-ons/export-ical.pl b/scripts/add-ons/export-ical.pl index 7fc84ea44..9eeadcfa0 100755 --- a/scripts/add-ons/export-ical.pl +++ b/scripts/add-ons/export-ical.pl @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/scripts/add-ons/export-sql.py b/scripts/add-ons/export-sql.py index 4bdb01d25..206dfd96f 100755 --- a/scripts/add-ons/export-sql.py +++ b/scripts/add-ons/export-sql.py @@ -2,7 +2,7 @@ ############################################################################### # taskwarrior - a command line task list manager. # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/scripts/add-ons/export-tsv.pl b/scripts/add-ons/export-tsv.pl index b4a4dd262..f4e079b4a 100755 --- a/scripts/add-ons/export-tsv.pl +++ b/scripts/add-ons/export-tsv.pl @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/scripts/add-ons/export-xml.pl b/scripts/add-ons/export-xml.pl index 61c08687f..7e28f0af3 100755 --- a/scripts/add-ons/export-xml.pl +++ b/scripts/add-ons/export-xml.pl @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/scripts/add-ons/export-xml.py b/scripts/add-ons/export-xml.py index c7855df49..813003b54 100755 --- a/scripts/add-ons/export-xml.py +++ b/scripts/add-ons/export-xml.py @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/scripts/add-ons/export-xml.rb b/scripts/add-ons/export-xml.rb index b432f3215..034cfdfa3 100755 --- a/scripts/add-ons/export-xml.rb +++ b/scripts/add-ons/export-xml.rb @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/scripts/add-ons/export-yad.pl b/scripts/add-ons/export-yad.pl index 27e924dc1..f080b8efc 100755 --- a/scripts/add-ons/export-yad.pl +++ b/scripts/add-ons/export-yad.pl @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/scripts/add-ons/export-yaml.pl b/scripts/add-ons/export-yaml.pl index e4d7a2e97..84f353e3b 100755 --- a/scripts/add-ons/export-yaml.pl +++ b/scripts/add-ons/export-yaml.pl @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/scripts/add-ons/import-todo.sh.pl b/scripts/add-ons/import-todo.sh.pl index 39ab2a460..d050b9db0 100755 --- a/scripts/add-ons/import-todo.sh.pl +++ b/scripts/add-ons/import-todo.sh.pl @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/scripts/add-ons/import-yaml.pl b/scripts/add-ons/import-yaml.pl index de1bbdf23..4b5b13746 100755 --- a/scripts/add-ons/import-yaml.pl +++ b/scripts/add-ons/import-yaml.pl @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/scripts/add-ons/update-holidays.pl b/scripts/add-ons/update-holidays.pl index eb9f1ee93..4b0f2e5ee 100755 --- a/scripts/add-ons/update-holidays.pl +++ b/scripts/add-ons/update-holidays.pl @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal @@ -190,7 +190,7 @@ if (open my $fh, '>:utf8', $file) "# ${url_current}\n", "# ${url_next}\n", "#\n", - "# Copyright 2006-2013, Paul Beckingham, Federico Hernandez.\n", + "# Copyright 2006-2014, Paul Beckingham, Federico Hernandez.\n", "#\n", "# Permission is hereby granted, free of charge, to any person obtaining a copy\n", "# of this software and associated documentation files (the \"Software\"), to deal\n", diff --git a/scripts/bash/task.sh b/scripts/bash/task.sh index f67abb59a..23986f4d9 100644 --- a/scripts/bash/task.sh +++ b/scripts/bash/task.sh @@ -2,7 +2,7 @@ # bash completion support for taskwarrior # taskwarrior - a command line task list manager. # -# Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +# Copyright 2006-2014, Paul Beckingham, Federico Hernandez. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/scripts/fish/task.fish b/scripts/fish/task.fish index d56e05887..c5192e5e0 100644 --- a/scripts/fish/task.fish +++ b/scripts/fish/task.fish @@ -12,7 +12,7 @@ # * Tags # * Attribute names and modifiers # -# Copyright 2009 - 2013 Mick Koch +# Copyright 2009 - 2014 Mick Koch # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/scripts/utils/l10n b/scripts/utils/l10n index 60cd9c8f4..da9769267 100755 --- a/scripts/utils/l10n +++ b/scripts/utils/l10n @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/scripts/vim/README b/scripts/vim/README index 7064e0b95..e1d58f744 100644 --- a/scripts/vim/README +++ b/scripts/vim/README @@ -53,7 +53,7 @@ You should then be ready to go. --- All four above mentioned files are -Copyright 2009 - 2013 John Florian +Copyright 2009 - 2014 John Florian and are available under the MIT license. For the full text of this license, see COPYING. diff --git a/scripts/vim/ftdetect/task.vim b/scripts/vim/ftdetect/task.vim index 2a7b262cd..0146224e5 100644 --- a/scripts/vim/ftdetect/task.vim +++ b/scripts/vim/ftdetect/task.vim @@ -4,7 +4,7 @@ " Maintainer: John Florian " Updated: Thu Dec 10 18:28:26 EST 2009 " -" Copyright 2009 - 2013 John Florian +" Copyright 2009 - 2014 John Florian " " This file is available under the MIT license. " For the full text of this license, see COPYING. diff --git a/scripts/vim/syntax/taskdata.vim b/scripts/vim/syntax/taskdata.vim index a8ef487e7..73fdb131e 100644 --- a/scripts/vim/syntax/taskdata.vim +++ b/scripts/vim/syntax/taskdata.vim @@ -3,7 +3,7 @@ " Maintainer: John Florian " Updated: Wed Jul 8 19:46:20 EDT 2009 " -" Copyright 2009 - 2013 John Florian +" Copyright 2009 - 2014 John Florian " " This file is available under the MIT license. " For the full text of this license, see COPYING. diff --git a/scripts/vim/syntax/taskedit.vim b/scripts/vim/syntax/taskedit.vim index 19a91ed22..d53a30b9e 100644 --- a/scripts/vim/syntax/taskedit.vim +++ b/scripts/vim/syntax/taskedit.vim @@ -3,7 +3,7 @@ " Maintainer: John Florian " Updated: Wed Jul 8 19:46:32 EDT 2009 " -" Copyright 2009 - 2013 John Florian +" Copyright 2009 - 2014 John Florian " " This file is available under the MIT license. " For the full text of this license, see COPYING. diff --git a/scripts/vim/syntax/taskrc.vim b/scripts/vim/syntax/taskrc.vim index bdd99e67b..347023ef9 100644 --- a/scripts/vim/syntax/taskrc.vim +++ b/scripts/vim/syntax/taskrc.vim @@ -3,7 +3,7 @@ " Maintainer: John Florian " Updated: Sat Feb 20 14:14:44 EST 2010 " -" Copyright 2009 - 2013 John Florian +" Copyright 2009 - 2014 John Florian " " This file is available under the MIT license. " For the full text of this license, see COPYING. diff --git a/scripts/zsh/_task b/scripts/zsh/_task index 10aba19ff..13651937b 100644 --- a/scripts/zsh/_task +++ b/scripts/zsh/_task @@ -3,7 +3,7 @@ # # taskwarrior - a command line task list manager. # -# Copyright 2010 - 2013 Johannes Schlatow +# Copyright 2010 - 2014 Johannes Schlatow # Copyright 2009 P.C. Shyamshankar # # Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/src/A3.cpp b/src/A3.cpp index d4de4f2c8..c5c27f0e6 100644 --- a/src/A3.cpp +++ b/src/A3.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/A3.h b/src/A3.h index 366ed5620..2c8059f84 100644 --- a/src/A3.h +++ b/src/A3.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Arg.cpp b/src/Arg.cpp index a37e8417a..799a367bf 100644 --- a/src/Arg.cpp +++ b/src/Arg.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Arg.h b/src/Arg.h index 39002573f..999cc7775 100644 --- a/src/Arg.h +++ b/src/Arg.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Color.cpp b/src/Color.cpp index 25c6addfd..7758fd06a 100644 --- a/src/Color.cpp +++ b/src/Color.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Color.h b/src/Color.h index 1f7a0bcb3..b76418447 100644 --- a/src/Color.h +++ b/src/Color.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Config.cpp b/src/Config.cpp index d2461fe7a..162badebb 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Config.h b/src/Config.h index 4ddf5983f..a546d79d2 100644 --- a/src/Config.h +++ b/src/Config.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006 - 2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006 - 2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Context.cpp b/src/Context.cpp index 0b4c44537..d8adf6543 100644 --- a/src/Context.cpp +++ b/src/Context.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Context.h b/src/Context.h index c93eaaa18..938de18b0 100644 --- a/src/Context.h +++ b/src/Context.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/DOM.cpp b/src/DOM.cpp index c121f11ee..625b51f42 100644 --- a/src/DOM.cpp +++ b/src/DOM.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/DOM.h b/src/DOM.h index 0702b042e..7cfcce379 100644 --- a/src/DOM.h +++ b/src/DOM.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Date.cpp b/src/Date.cpp index c7400a657..6e071e2ed 100644 --- a/src/Date.cpp +++ b/src/Date.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Date.h b/src/Date.h index cb4c1dd68..97919030f 100644 --- a/src/Date.h +++ b/src/Date.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Directory.cpp b/src/Directory.cpp index 1b04ff583..e89aa5df0 100644 --- a/src/Directory.cpp +++ b/src/Directory.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Directory.h b/src/Directory.h index 1532d8f14..988d15fee 100644 --- a/src/Directory.h +++ b/src/Directory.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Duration.cpp b/src/Duration.cpp index 2919e861d..ceb13095a 100644 --- a/src/Duration.cpp +++ b/src/Duration.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Duration.h b/src/Duration.h index 33b9dd5ac..4d7060fe0 100644 --- a/src/Duration.h +++ b/src/Duration.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/E9.cpp b/src/E9.cpp index 5cc4bcd88..fca8a707c 100644 --- a/src/E9.cpp +++ b/src/E9.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/E9.h b/src/E9.h index 5f73ff4cb..19a33fb25 100644 --- a/src/E9.h +++ b/src/E9.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/File.cpp b/src/File.cpp index 9ddb8aac7..48c22a241 100644 --- a/src/File.cpp +++ b/src/File.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/File.h b/src/File.h index 940e682d7..688a7bb4c 100644 --- a/src/File.h +++ b/src/File.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Hooks.cpp b/src/Hooks.cpp index 62c562f6f..a5da7d9db 100644 --- a/src/Hooks.cpp +++ b/src/Hooks.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Hooks.h b/src/Hooks.h index 7b4df6754..e4697f0cd 100644 --- a/src/Hooks.h +++ b/src/Hooks.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/JSON.cpp b/src/JSON.cpp index dcb60dc89..bbb082bd2 100644 --- a/src/JSON.cpp +++ b/src/JSON.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/JSON.h b/src/JSON.h index f7e6b43fe..57bcdf632 100644 --- a/src/JSON.h +++ b/src/JSON.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Msg.cpp b/src/Msg.cpp index dec21dbb3..a067d17d0 100644 --- a/src/Msg.cpp +++ b/src/Msg.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2012, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Msg.h b/src/Msg.h index f25d4bb3e..57084140b 100644 --- a/src/Msg.h +++ b/src/Msg.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2012, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Nibbler.cpp b/src/Nibbler.cpp index 4cc7fbfa5..e6cf5ae4a 100644 --- a/src/Nibbler.cpp +++ b/src/Nibbler.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Nibbler.h b/src/Nibbler.h index 418ad9d84..ebeeb29ae 100644 --- a/src/Nibbler.h +++ b/src/Nibbler.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Path.cpp b/src/Path.cpp index 6afaafcd0..27622509d 100644 --- a/src/Path.cpp +++ b/src/Path.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Path.h b/src/Path.h index 6436ab3d3..74d0ed030 100644 --- a/src/Path.h +++ b/src/Path.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/RX.cpp b/src/RX.cpp index e9bd02a81..5209be19c 100644 --- a/src/RX.cpp +++ b/src/RX.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/RX.h b/src/RX.h index 08ce94d4a..8384d55fd 100644 --- a/src/RX.h +++ b/src/RX.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/TDB2.cpp b/src/TDB2.cpp index 8f328e6a0..c04ccda11 100644 --- a/src/TDB2.cpp +++ b/src/TDB2.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -698,7 +698,7 @@ void readTaskmods (std::vector &input, void TDB2::merge (const std::string& mergeFile) { /////////////////////////////////////// - // Copyright 2010 - 2013, Johannes Schlatow. + // Copyright 2010 - 2014, Johannes Schlatow. /////////////////////////////////////// // list of modifications that we want to add to the local database diff --git a/src/TDB2.h b/src/TDB2.h index 292417fd0..3654f2761 100644 --- a/src/TDB2.h +++ b/src/TDB2.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/TLSClient.cpp b/src/TLSClient.cpp index c3973996e..b6efc068a 100644 --- a/src/TLSClient.cpp +++ b/src/TLSClient.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006 - 2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006 - 2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/TLSClient.h b/src/TLSClient.h index bb6b5eedd..bcca96a33 100644 --- a/src/TLSClient.h +++ b/src/TLSClient.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006 - 2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006 - 2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Task.cpp b/src/Task.cpp index ec6e9679d..02c2b0f10 100644 --- a/src/Task.cpp +++ b/src/Task.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Task.h b/src/Task.h index c322fc29c..36ae21bd4 100644 --- a/src/Task.h +++ b/src/Task.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Taskmod.cpp b/src/Taskmod.cpp index 388a2f7dc..55fac47a8 100644 --- a/src/Taskmod.cpp +++ b/src/Taskmod.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Taskmod.h b/src/Taskmod.h index 8a16f912f..a1b394f4d 100644 --- a/src/Taskmod.h +++ b/src/Taskmod.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Timer.cpp b/src/Timer.cpp index 4fbb50945..679d21f8f 100644 --- a/src/Timer.cpp +++ b/src/Timer.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Timer.h b/src/Timer.h index ce8843c1d..5831c7e26 100644 --- a/src/Timer.h +++ b/src/Timer.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Transport.cpp b/src/Transport.cpp index 65b1f6a80..f69b0c1bd 100644 --- a/src/Transport.cpp +++ b/src/Transport.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2010 - 2013, Johannes Schlatow. +// Copyright 2010 - 2014, Johannes Schlatow. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Transport.h b/src/Transport.h index a09bd84b6..1e8591fb7 100644 --- a/src/Transport.h +++ b/src/Transport.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2010 - 2013, Johannes Schlatow. +// Copyright 2010 - 2014, Johannes Schlatow. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/TransportCurl.cpp b/src/TransportCurl.cpp index f9654777f..be6c4fcba 100644 --- a/src/TransportCurl.cpp +++ b/src/TransportCurl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2010 - 2013, Johannes Schlatow. +// Copyright 2010 - 2014, Johannes Schlatow. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/TransportCurl.h b/src/TransportCurl.h index 02e2a57ac..538e99180 100644 --- a/src/TransportCurl.h +++ b/src/TransportCurl.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2010 - 2013, Johannes Schlatow. +// Copyright 2010 - 2014, Johannes Schlatow. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/TransportRSYNC.cpp b/src/TransportRSYNC.cpp index f976c4d5f..ba82bb617 100644 --- a/src/TransportRSYNC.cpp +++ b/src/TransportRSYNC.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2010 - 2013, Johannes Schlatow. +// Copyright 2010 - 2014, Johannes Schlatow. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/TransportRSYNC.h b/src/TransportRSYNC.h index d3a560f62..724910888 100644 --- a/src/TransportRSYNC.h +++ b/src/TransportRSYNC.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2010 - 2013, Johannes Schlatow. +// Copyright 2010 - 2014, Johannes Schlatow. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/TransportSSH.cpp b/src/TransportSSH.cpp index 8cfd2a1e2..e857a0da1 100644 --- a/src/TransportSSH.cpp +++ b/src/TransportSSH.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2010 - 2013, Johannes Schlatow. +// Copyright 2010 - 2014, Johannes Schlatow. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/TransportSSH.h b/src/TransportSSH.h index 6698cec5c..275a27052 100644 --- a/src/TransportSSH.h +++ b/src/TransportSSH.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2010 - 2013, Johannes Schlatow. +// Copyright 2010 - 2014, Johannes Schlatow. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/TransportShell.cpp b/src/TransportShell.cpp index 8b613a304..3a4b0e0d6 100644 --- a/src/TransportShell.cpp +++ b/src/TransportShell.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2010 - 2013, Johannes Schlatow. +// Copyright 2010 - 2014, Johannes Schlatow. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/TransportShell.h b/src/TransportShell.h index a8c2e07e8..8ff0d2a34 100644 --- a/src/TransportShell.h +++ b/src/TransportShell.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2010 - 2013, Johannes Schlatow. +// Copyright 2010 - 2014, Johannes Schlatow. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Uri.cpp b/src/Uri.cpp index 3fbe2b151..5522fc4f4 100644 --- a/src/Uri.cpp +++ b/src/Uri.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2010 - 2013, Johannes Schlatow. +// Copyright 2010 - 2014, Johannes Schlatow. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Uri.h b/src/Uri.h index 329ea3680..63ad92cff 100644 --- a/src/Uri.h +++ b/src/Uri.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2010 - 2013, Johannes Schlatow. +// Copyright 2010 - 2014, Johannes Schlatow. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/ViewTask.cpp b/src/ViewTask.cpp index 879df86a3..0786a53d1 100644 --- a/src/ViewTask.cpp +++ b/src/ViewTask.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/ViewTask.h b/src/ViewTask.h index 2010b45da..6f21861aa 100644 --- a/src/ViewTask.h +++ b/src/ViewTask.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/ViewText.cpp b/src/ViewText.cpp index 9b1c12037..6e3ee0056 100644 --- a/src/ViewText.cpp +++ b/src/ViewText.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/ViewText.h b/src/ViewText.h index 76cc5c93f..435325ca9 100644 --- a/src/ViewText.h +++ b/src/ViewText.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColDate.cpp b/src/columns/ColDate.cpp index ef3fb55c2..36bf4f269 100644 --- a/src/columns/ColDate.cpp +++ b/src/columns/ColDate.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColDate.h b/src/columns/ColDate.h index 4cd8bd61e..498b5fe05 100644 --- a/src/columns/ColDate.h +++ b/src/columns/ColDate.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColDepends.cpp b/src/columns/ColDepends.cpp index b88581fed..4367be45d 100644 --- a/src/columns/ColDepends.cpp +++ b/src/columns/ColDepends.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColDepends.h b/src/columns/ColDepends.h index 6f55a9e3e..125ad3c51 100644 --- a/src/columns/ColDepends.h +++ b/src/columns/ColDepends.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColDescription.cpp b/src/columns/ColDescription.cpp index fa92c02b2..0828d6c56 100644 --- a/src/columns/ColDescription.cpp +++ b/src/columns/ColDescription.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColDescription.h b/src/columns/ColDescription.h index 24446afc7..a46526c8e 100644 --- a/src/columns/ColDescription.h +++ b/src/columns/ColDescription.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColDue.cpp b/src/columns/ColDue.cpp index 3f102fe70..cd4817f96 100644 --- a/src/columns/ColDue.cpp +++ b/src/columns/ColDue.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColDue.h b/src/columns/ColDue.h index fc3780226..537c74ead 100644 --- a/src/columns/ColDue.h +++ b/src/columns/ColDue.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColEnd.cpp b/src/columns/ColEnd.cpp index 6170805c5..b78939a6d 100644 --- a/src/columns/ColEnd.cpp +++ b/src/columns/ColEnd.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColEnd.h b/src/columns/ColEnd.h index a47fa861d..ebb8bb215 100644 --- a/src/columns/ColEnd.h +++ b/src/columns/ColEnd.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColEntry.cpp b/src/columns/ColEntry.cpp index 3f3d3d044..8e981aa86 100644 --- a/src/columns/ColEntry.cpp +++ b/src/columns/ColEntry.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColEntry.h b/src/columns/ColEntry.h index 3a1e0ce42..7c5be834c 100644 --- a/src/columns/ColEntry.h +++ b/src/columns/ColEntry.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColID.cpp b/src/columns/ColID.cpp index 680894594..e6b13df3c 100644 --- a/src/columns/ColID.cpp +++ b/src/columns/ColID.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColID.h b/src/columns/ColID.h index 44aaa391c..d7b6bbfa9 100644 --- a/src/columns/ColID.h +++ b/src/columns/ColID.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColIMask.cpp b/src/columns/ColIMask.cpp index ae0de23b7..cfea280ee 100644 --- a/src/columns/ColIMask.cpp +++ b/src/columns/ColIMask.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColIMask.h b/src/columns/ColIMask.h index 78af27973..fee89e106 100644 --- a/src/columns/ColIMask.h +++ b/src/columns/ColIMask.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColMask.cpp b/src/columns/ColMask.cpp index c73b8c087..d85f948e3 100644 --- a/src/columns/ColMask.cpp +++ b/src/columns/ColMask.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColMask.h b/src/columns/ColMask.h index 8db84494b..f31be05ec 100644 --- a/src/columns/ColMask.h +++ b/src/columns/ColMask.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColModified.cpp b/src/columns/ColModified.cpp index f42b0c832..931f8d46e 100644 --- a/src/columns/ColModified.cpp +++ b/src/columns/ColModified.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColModified.h b/src/columns/ColModified.h index bdf193354..fe0efefa1 100644 --- a/src/columns/ColModified.h +++ b/src/columns/ColModified.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColParent.cpp b/src/columns/ColParent.cpp index 638ca0480..fb45d304a 100644 --- a/src/columns/ColParent.cpp +++ b/src/columns/ColParent.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColParent.h b/src/columns/ColParent.h index 60bd5b59b..f40cb480a 100644 --- a/src/columns/ColParent.h +++ b/src/columns/ColParent.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColPriority.cpp b/src/columns/ColPriority.cpp index 77d5f39d1..4fb3ee7b0 100644 --- a/src/columns/ColPriority.cpp +++ b/src/columns/ColPriority.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColPriority.h b/src/columns/ColPriority.h index 8209cd2f7..22500476e 100644 --- a/src/columns/ColPriority.h +++ b/src/columns/ColPriority.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColProject.cpp b/src/columns/ColProject.cpp index 149a48a65..00759ceaf 100644 --- a/src/columns/ColProject.cpp +++ b/src/columns/ColProject.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColProject.h b/src/columns/ColProject.h index c87303aab..c34445cb6 100644 --- a/src/columns/ColProject.h +++ b/src/columns/ColProject.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColRecur.cpp b/src/columns/ColRecur.cpp index 25ef302c1..5ec1fa3f8 100644 --- a/src/columns/ColRecur.cpp +++ b/src/columns/ColRecur.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColRecur.h b/src/columns/ColRecur.h index 836b760c6..a0f097ce3 100644 --- a/src/columns/ColRecur.h +++ b/src/columns/ColRecur.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColScheduled.cpp b/src/columns/ColScheduled.cpp index d00180377..80c72335c 100644 --- a/src/columns/ColScheduled.cpp +++ b/src/columns/ColScheduled.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColScheduled.h b/src/columns/ColScheduled.h index 015baac9d..abf9f4db9 100644 --- a/src/columns/ColScheduled.h +++ b/src/columns/ColScheduled.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColStart.cpp b/src/columns/ColStart.cpp index 5854fb8ae..f9e3fd861 100644 --- a/src/columns/ColStart.cpp +++ b/src/columns/ColStart.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColStart.h b/src/columns/ColStart.h index 10281403e..c5d14673e 100644 --- a/src/columns/ColStart.h +++ b/src/columns/ColStart.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColStatus.cpp b/src/columns/ColStatus.cpp index b343be964..36498aa89 100644 --- a/src/columns/ColStatus.cpp +++ b/src/columns/ColStatus.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColStatus.h b/src/columns/ColStatus.h index d793f2c78..0ac4a772e 100644 --- a/src/columns/ColStatus.h +++ b/src/columns/ColStatus.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColString.cpp b/src/columns/ColString.cpp index 5b5060493..10d58947c 100644 --- a/src/columns/ColString.cpp +++ b/src/columns/ColString.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColString.h b/src/columns/ColString.h index e708cf03b..bffe8c401 100644 --- a/src/columns/ColString.h +++ b/src/columns/ColString.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColTags.cpp b/src/columns/ColTags.cpp index 4e114b2aa..2fd7dd46e 100644 --- a/src/columns/ColTags.cpp +++ b/src/columns/ColTags.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColTags.h b/src/columns/ColTags.h index 19c63cb08..672430f22 100644 --- a/src/columns/ColTags.h +++ b/src/columns/ColTags.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColUDA.cpp b/src/columns/ColUDA.cpp index 7c2ff865d..c3fa80d56 100644 --- a/src/columns/ColUDA.cpp +++ b/src/columns/ColUDA.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColUDA.h b/src/columns/ColUDA.h index c32eb3469..4c0ad04d8 100644 --- a/src/columns/ColUDA.h +++ b/src/columns/ColUDA.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColUUID.cpp b/src/columns/ColUUID.cpp index 203d17431..b0f213508 100644 --- a/src/columns/ColUUID.cpp +++ b/src/columns/ColUUID.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColUUID.h b/src/columns/ColUUID.h index b021da990..f3e714a59 100644 --- a/src/columns/ColUUID.h +++ b/src/columns/ColUUID.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColUntil.cpp b/src/columns/ColUntil.cpp index 8781fabf8..5c4b96bbf 100644 --- a/src/columns/ColUntil.cpp +++ b/src/columns/ColUntil.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColUntil.h b/src/columns/ColUntil.h index f04adadfc..e810fd2f2 100644 --- a/src/columns/ColUntil.h +++ b/src/columns/ColUntil.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColUrgency.cpp b/src/columns/ColUrgency.cpp index 386c9b17f..415e41b3b 100644 --- a/src/columns/ColUrgency.cpp +++ b/src/columns/ColUrgency.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColUrgency.h b/src/columns/ColUrgency.h index 5ac183502..a85ceaa1b 100644 --- a/src/columns/ColUrgency.h +++ b/src/columns/ColUrgency.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColWait.cpp b/src/columns/ColWait.cpp index ba8c50d3e..2cb1726d9 100644 --- a/src/columns/ColWait.cpp +++ b/src/columns/ColWait.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/ColWait.h b/src/columns/ColWait.h index 7c62168bd..627ce9fed 100644 --- a/src/columns/ColWait.h +++ b/src/columns/ColWait.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/Column.cpp b/src/columns/Column.cpp index 61f6c7850..cf01c1958 100644 --- a/src/columns/Column.cpp +++ b/src/columns/Column.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/columns/Column.h b/src/columns/Column.h index b97930fc8..0c0c8907c 100644 --- a/src/columns/Column.h +++ b/src/columns/Column.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdAdd.cpp b/src/commands/CmdAdd.cpp index bc006b2c2..e83078a1a 100644 --- a/src/commands/CmdAdd.cpp +++ b/src/commands/CmdAdd.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdAdd.h b/src/commands/CmdAdd.h index 41e6f906e..3e428085a 100644 --- a/src/commands/CmdAdd.h +++ b/src/commands/CmdAdd.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdAliases.cpp b/src/commands/CmdAliases.cpp index 5b7bb9802..79571c4fa 100644 --- a/src/commands/CmdAliases.cpp +++ b/src/commands/CmdAliases.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdAliases.h b/src/commands/CmdAliases.h index 58f4034c8..a2fa56545 100644 --- a/src/commands/CmdAliases.h +++ b/src/commands/CmdAliases.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdAnnotate.cpp b/src/commands/CmdAnnotate.cpp index 9915951ad..c6f8440bd 100644 --- a/src/commands/CmdAnnotate.cpp +++ b/src/commands/CmdAnnotate.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdAnnotate.h b/src/commands/CmdAnnotate.h index 7b21eff0b..73e2d4a9b 100644 --- a/src/commands/CmdAnnotate.h +++ b/src/commands/CmdAnnotate.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdAppend.cpp b/src/commands/CmdAppend.cpp index f42b94087..d23c8ce3d 100644 --- a/src/commands/CmdAppend.cpp +++ b/src/commands/CmdAppend.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdAppend.h b/src/commands/CmdAppend.h index 17471bff6..d388f130d 100644 --- a/src/commands/CmdAppend.h +++ b/src/commands/CmdAppend.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdBurndown.cpp b/src/commands/CmdBurndown.cpp index fb1cea742..655381fed 100644 --- a/src/commands/CmdBurndown.cpp +++ b/src/commands/CmdBurndown.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdBurndown.h b/src/commands/CmdBurndown.h index 182519012..03a1fe8f0 100644 --- a/src/commands/CmdBurndown.h +++ b/src/commands/CmdBurndown.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdCalendar.cpp b/src/commands/CmdCalendar.cpp index 08196f0ff..bc9570a61 100644 --- a/src/commands/CmdCalendar.cpp +++ b/src/commands/CmdCalendar.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdCalendar.h b/src/commands/CmdCalendar.h index feca380f3..adbf800a4 100644 --- a/src/commands/CmdCalendar.h +++ b/src/commands/CmdCalendar.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdColor.cpp b/src/commands/CmdColor.cpp index 1fa91a5b6..66c07803d 100644 --- a/src/commands/CmdColor.cpp +++ b/src/commands/CmdColor.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdColor.h b/src/commands/CmdColor.h index 835a4dae8..7f540c733 100644 --- a/src/commands/CmdColor.h +++ b/src/commands/CmdColor.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdColumns.cpp b/src/commands/CmdColumns.cpp index ee2bdae49..0327a4206 100644 --- a/src/commands/CmdColumns.cpp +++ b/src/commands/CmdColumns.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdColumns.h b/src/commands/CmdColumns.h index fda90aa4f..ae5bd32c4 100644 --- a/src/commands/CmdColumns.h +++ b/src/commands/CmdColumns.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdCommands.cpp b/src/commands/CmdCommands.cpp index 9494c3154..83488b6b1 100644 --- a/src/commands/CmdCommands.cpp +++ b/src/commands/CmdCommands.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdCommands.h b/src/commands/CmdCommands.h index a9e69a57a..1d0227a29 100644 --- a/src/commands/CmdCommands.h +++ b/src/commands/CmdCommands.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdConfig.cpp b/src/commands/CmdConfig.cpp index d595afb63..fe547aa72 100644 --- a/src/commands/CmdConfig.cpp +++ b/src/commands/CmdConfig.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdConfig.h b/src/commands/CmdConfig.h index 8df1bb08b..140726661 100644 --- a/src/commands/CmdConfig.h +++ b/src/commands/CmdConfig.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdCount.cpp b/src/commands/CmdCount.cpp index ab2c21fc1..d51241271 100644 --- a/src/commands/CmdCount.cpp +++ b/src/commands/CmdCount.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdCount.h b/src/commands/CmdCount.h index 0f92e8683..07b27af75 100644 --- a/src/commands/CmdCount.h +++ b/src/commands/CmdCount.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdCustom.cpp b/src/commands/CmdCustom.cpp index 6c729dc61..ed45dbe6f 100644 --- a/src/commands/CmdCustom.cpp +++ b/src/commands/CmdCustom.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdCustom.h b/src/commands/CmdCustom.h index b3ccae45c..7b8c5e185 100644 --- a/src/commands/CmdCustom.h +++ b/src/commands/CmdCustom.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdDelete.cpp b/src/commands/CmdDelete.cpp index 4e3878609..aef086789 100644 --- a/src/commands/CmdDelete.cpp +++ b/src/commands/CmdDelete.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdDelete.h b/src/commands/CmdDelete.h index 404ed675d..7a850acc9 100644 --- a/src/commands/CmdDelete.h +++ b/src/commands/CmdDelete.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdDenotate.cpp b/src/commands/CmdDenotate.cpp index 32a756f2d..fe8ab8c9c 100644 --- a/src/commands/CmdDenotate.cpp +++ b/src/commands/CmdDenotate.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdDenotate.h b/src/commands/CmdDenotate.h index 36763cbee..6f325e3b9 100644 --- a/src/commands/CmdDenotate.h +++ b/src/commands/CmdDenotate.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdDiagnostics.cpp b/src/commands/CmdDiagnostics.cpp index ab3e4ae1a..0168df525 100644 --- a/src/commands/CmdDiagnostics.cpp +++ b/src/commands/CmdDiagnostics.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdDiagnostics.h b/src/commands/CmdDiagnostics.h index 22fca488c..5bc5a89a7 100644 --- a/src/commands/CmdDiagnostics.h +++ b/src/commands/CmdDiagnostics.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdDone.cpp b/src/commands/CmdDone.cpp index 2dedfee14..a5c108447 100644 --- a/src/commands/CmdDone.cpp +++ b/src/commands/CmdDone.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdDone.h b/src/commands/CmdDone.h index 334d8b2b2..6154f8259 100644 --- a/src/commands/CmdDone.h +++ b/src/commands/CmdDone.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdDuplicate.cpp b/src/commands/CmdDuplicate.cpp index ea9a76bb0..ed2d1499e 100644 --- a/src/commands/CmdDuplicate.cpp +++ b/src/commands/CmdDuplicate.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdDuplicate.h b/src/commands/CmdDuplicate.h index 15c906103..1861acb8f 100644 --- a/src/commands/CmdDuplicate.h +++ b/src/commands/CmdDuplicate.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdEdit.cpp b/src/commands/CmdEdit.cpp index d716f64fd..31d21856e 100644 --- a/src/commands/CmdEdit.cpp +++ b/src/commands/CmdEdit.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdEdit.h b/src/commands/CmdEdit.h index 4b45c259c..f41301ad6 100644 --- a/src/commands/CmdEdit.h +++ b/src/commands/CmdEdit.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdExec.cpp b/src/commands/CmdExec.cpp index e7b371aad..c2fcda1d4 100644 --- a/src/commands/CmdExec.cpp +++ b/src/commands/CmdExec.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdExec.h b/src/commands/CmdExec.h index 168a6c6c0..f22be71c5 100644 --- a/src/commands/CmdExec.h +++ b/src/commands/CmdExec.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdExport.cpp b/src/commands/CmdExport.cpp index 6e9bcab91..b77ae0fef 100644 --- a/src/commands/CmdExport.cpp +++ b/src/commands/CmdExport.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdExport.h b/src/commands/CmdExport.h index 3df39a1d4..2607da066 100644 --- a/src/commands/CmdExport.h +++ b/src/commands/CmdExport.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdGet.cpp b/src/commands/CmdGet.cpp index a253e15f4..d604caf60 100644 --- a/src/commands/CmdGet.cpp +++ b/src/commands/CmdGet.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdGet.h b/src/commands/CmdGet.h index 15793429f..56fd397fe 100644 --- a/src/commands/CmdGet.h +++ b/src/commands/CmdGet.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdHelp.cpp b/src/commands/CmdHelp.cpp index 69f80a71a..908395c98 100644 --- a/src/commands/CmdHelp.cpp +++ b/src/commands/CmdHelp.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdHelp.h b/src/commands/CmdHelp.h index e3091bc42..3d4b3518a 100644 --- a/src/commands/CmdHelp.h +++ b/src/commands/CmdHelp.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdHistory.cpp b/src/commands/CmdHistory.cpp index 3a45a37df..bed3f4c55 100644 --- a/src/commands/CmdHistory.cpp +++ b/src/commands/CmdHistory.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdHistory.h b/src/commands/CmdHistory.h index 4774dc3b0..e19e73979 100644 --- a/src/commands/CmdHistory.h +++ b/src/commands/CmdHistory.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdIDs.cpp b/src/commands/CmdIDs.cpp index 8045c0477..c68ebf231 100644 --- a/src/commands/CmdIDs.cpp +++ b/src/commands/CmdIDs.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdIDs.h b/src/commands/CmdIDs.h index eee2679d6..744000312 100644 --- a/src/commands/CmdIDs.h +++ b/src/commands/CmdIDs.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdImport.cpp b/src/commands/CmdImport.cpp index 9d54d7816..4ed54bbcc 100644 --- a/src/commands/CmdImport.cpp +++ b/src/commands/CmdImport.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdImport.h b/src/commands/CmdImport.h index eac0b7f8b..0f2561db0 100644 --- a/src/commands/CmdImport.h +++ b/src/commands/CmdImport.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdInfo.cpp b/src/commands/CmdInfo.cpp index 79d6c70d2..9eacc1e23 100644 --- a/src/commands/CmdInfo.cpp +++ b/src/commands/CmdInfo.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdInfo.h b/src/commands/CmdInfo.h index b1b35f6fd..7b87d7131 100644 --- a/src/commands/CmdInfo.h +++ b/src/commands/CmdInfo.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdInstall.cpp b/src/commands/CmdInstall.cpp index 10f71bbdb..9808f987f 100644 --- a/src/commands/CmdInstall.cpp +++ b/src/commands/CmdInstall.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdInstall.h b/src/commands/CmdInstall.h index db4a1ae39..121fa003c 100644 --- a/src/commands/CmdInstall.h +++ b/src/commands/CmdInstall.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdLog.cpp b/src/commands/CmdLog.cpp index a6ac2e3b9..d8759d119 100644 --- a/src/commands/CmdLog.cpp +++ b/src/commands/CmdLog.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdLog.h b/src/commands/CmdLog.h index 78d4d8bd1..e3b46952b 100644 --- a/src/commands/CmdLog.h +++ b/src/commands/CmdLog.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdLogo.cpp b/src/commands/CmdLogo.cpp index 0558f3674..dd6378f20 100644 --- a/src/commands/CmdLogo.cpp +++ b/src/commands/CmdLogo.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdLogo.h b/src/commands/CmdLogo.h index 7d99a7d9d..cab22e9a7 100644 --- a/src/commands/CmdLogo.h +++ b/src/commands/CmdLogo.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdMerge.cpp b/src/commands/CmdMerge.cpp index e1906bf43..ad4b55313 100644 --- a/src/commands/CmdMerge.cpp +++ b/src/commands/CmdMerge.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdMerge.h b/src/commands/CmdMerge.h index a14120187..a67730f1a 100644 --- a/src/commands/CmdMerge.h +++ b/src/commands/CmdMerge.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdModify.cpp b/src/commands/CmdModify.cpp index b6d3d7258..2ca568c6b 100644 --- a/src/commands/CmdModify.cpp +++ b/src/commands/CmdModify.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdModify.h b/src/commands/CmdModify.h index 94b807da0..b63511790 100644 --- a/src/commands/CmdModify.h +++ b/src/commands/CmdModify.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdPrepend.cpp b/src/commands/CmdPrepend.cpp index 955542b95..380a1143c 100644 --- a/src/commands/CmdPrepend.cpp +++ b/src/commands/CmdPrepend.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdPrepend.h b/src/commands/CmdPrepend.h index a70db47ae..9dcdbba58 100644 --- a/src/commands/CmdPrepend.h +++ b/src/commands/CmdPrepend.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdProjects.cpp b/src/commands/CmdProjects.cpp index bb2204038..8609688ca 100644 --- a/src/commands/CmdProjects.cpp +++ b/src/commands/CmdProjects.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdProjects.h b/src/commands/CmdProjects.h index 918813bf3..21246784a 100644 --- a/src/commands/CmdProjects.h +++ b/src/commands/CmdProjects.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdPull.cpp b/src/commands/CmdPull.cpp index 59cdccf38..fb02844a1 100644 --- a/src/commands/CmdPull.cpp +++ b/src/commands/CmdPull.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdPull.h b/src/commands/CmdPull.h index 515cf8939..3dfa0532a 100644 --- a/src/commands/CmdPull.h +++ b/src/commands/CmdPull.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdPush.cpp b/src/commands/CmdPush.cpp index b9a901ee5..adf2f0649 100644 --- a/src/commands/CmdPush.cpp +++ b/src/commands/CmdPush.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdPush.h b/src/commands/CmdPush.h index 3a2a673ab..c5892d216 100644 --- a/src/commands/CmdPush.h +++ b/src/commands/CmdPush.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdReports.cpp b/src/commands/CmdReports.cpp index d42fa90a4..88a30b821 100644 --- a/src/commands/CmdReports.cpp +++ b/src/commands/CmdReports.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdReports.h b/src/commands/CmdReports.h index 512d29171..fd302de4a 100644 --- a/src/commands/CmdReports.h +++ b/src/commands/CmdReports.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdShow.cpp b/src/commands/CmdShow.cpp index 8bba15d22..f8869874b 100644 --- a/src/commands/CmdShow.cpp +++ b/src/commands/CmdShow.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdShow.h b/src/commands/CmdShow.h index f63f145b6..9d636d968 100644 --- a/src/commands/CmdShow.h +++ b/src/commands/CmdShow.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdStart.cpp b/src/commands/CmdStart.cpp index dbfbf42c4..b089f0158 100644 --- a/src/commands/CmdStart.cpp +++ b/src/commands/CmdStart.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdStart.h b/src/commands/CmdStart.h index 1c987cddf..541c30fe7 100644 --- a/src/commands/CmdStart.h +++ b/src/commands/CmdStart.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdStats.cpp b/src/commands/CmdStats.cpp index 1293cbdf5..b23a9c579 100644 --- a/src/commands/CmdStats.cpp +++ b/src/commands/CmdStats.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdStats.h b/src/commands/CmdStats.h index 45440da1e..eb11f726a 100644 --- a/src/commands/CmdStats.h +++ b/src/commands/CmdStats.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdStop.cpp b/src/commands/CmdStop.cpp index 7dc91d78c..6acbca6ae 100644 --- a/src/commands/CmdStop.cpp +++ b/src/commands/CmdStop.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdStop.h b/src/commands/CmdStop.h index 439c0a449..fcc6fe562 100644 --- a/src/commands/CmdStop.h +++ b/src/commands/CmdStop.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdSummary.cpp b/src/commands/CmdSummary.cpp index bfa491468..ad711a00c 100644 --- a/src/commands/CmdSummary.cpp +++ b/src/commands/CmdSummary.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdSummary.h b/src/commands/CmdSummary.h index 583f9a878..c606622ff 100644 --- a/src/commands/CmdSummary.h +++ b/src/commands/CmdSummary.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdSync.cpp b/src/commands/CmdSync.cpp index e7f53957f..72dd848cd 100644 --- a/src/commands/CmdSync.cpp +++ b/src/commands/CmdSync.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2012, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdSync.h b/src/commands/CmdSync.h index d7124739c..d914b0f0f 100644 --- a/src/commands/CmdSync.h +++ b/src/commands/CmdSync.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdTags.cpp b/src/commands/CmdTags.cpp index 49d513f2b..fc97e5051 100644 --- a/src/commands/CmdTags.cpp +++ b/src/commands/CmdTags.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdTags.h b/src/commands/CmdTags.h index 6affeb0e2..413b540d4 100644 --- a/src/commands/CmdTags.h +++ b/src/commands/CmdTags.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdTimesheet.cpp b/src/commands/CmdTimesheet.cpp index 082b17b30..5f5952c98 100644 --- a/src/commands/CmdTimesheet.cpp +++ b/src/commands/CmdTimesheet.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdTimesheet.h b/src/commands/CmdTimesheet.h index ab25f415a..2eb8a6ce7 100644 --- a/src/commands/CmdTimesheet.h +++ b/src/commands/CmdTimesheet.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdUDAs.cpp b/src/commands/CmdUDAs.cpp index 1267d224a..02ebf5e80 100644 --- a/src/commands/CmdUDAs.cpp +++ b/src/commands/CmdUDAs.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdUDAs.h b/src/commands/CmdUDAs.h index 118c74317..734932201 100644 --- a/src/commands/CmdUDAs.h +++ b/src/commands/CmdUDAs.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdUndo.cpp b/src/commands/CmdUndo.cpp index 44990f6dc..d8a1be34d 100644 --- a/src/commands/CmdUndo.cpp +++ b/src/commands/CmdUndo.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdUndo.h b/src/commands/CmdUndo.h index 47f999768..0a413164e 100644 --- a/src/commands/CmdUndo.h +++ b/src/commands/CmdUndo.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdUrgency.cpp b/src/commands/CmdUrgency.cpp index 5da77c3cd..037b0583f 100644 --- a/src/commands/CmdUrgency.cpp +++ b/src/commands/CmdUrgency.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdUrgency.h b/src/commands/CmdUrgency.h index c81c47d9b..b3fe3aa95 100644 --- a/src/commands/CmdUrgency.h +++ b/src/commands/CmdUrgency.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdVersion.cpp b/src/commands/CmdVersion.cpp index 93204ff56..4cb9e1b5a 100644 --- a/src/commands/CmdVersion.cpp +++ b/src/commands/CmdVersion.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/CmdVersion.h b/src/commands/CmdVersion.h index e93c66d0c..bf75d8da9 100644 --- a/src/commands/CmdVersion.h +++ b/src/commands/CmdVersion.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/Command.cpp b/src/commands/Command.cpp index 6bd27c00f..f0b7c24ce 100644 --- a/src/commands/Command.cpp +++ b/src/commands/Command.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/commands/Command.h b/src/commands/Command.h index 2e3453d48..d0c0e342b 100644 --- a/src/commands/Command.h +++ b/src/commands/Command.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/dependency.cpp b/src/dependency.cpp index 464d3c6d7..d8d13bcc8 100644 --- a/src/dependency.cpp +++ b/src/dependency.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/en-US.h b/src/en-US.h index b568e369c..8f27091f9 100644 --- a/src/en-US.h +++ b/src/en-US.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -201,7 +201,7 @@ #define STRING_CMD_VERSION_DOCS "Documentation for taskwarrior can be found using 'man task', 'man taskrc', 'man task-tutorial', 'man task-color', 'man task-sync', 'man task-faq' or at http://taskwarrior.org" #define STRING_CMD_VERSION_BUILT "{1} {2} built for " #define STRING_CMD_VERSION_UNKNOWN "unknown" -#define STRING_CMD_VERSION_COPY "Copyright (C) 2006 - 2013 P. Beckingham, F. Hernandez." +#define STRING_CMD_VERSION_COPY "Copyright (C) 2006 - 2014 P. Beckingham, F. Hernandez." #define STRING_CMD_LOGO_USAGE "Displays the Taskwarrior logo" #define STRING_CMD_LOGO_COLOR_REQ "The logo command requires that color support is enabled." #define STRING_CMD_EXEC_USAGE "Executes external commands and scripts" diff --git a/src/es-ES.h b/src/es-ES.h index f3881fda0..da9abd0ea 100644 --- a/src/es-ES.h +++ b/src/es-ES.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -204,7 +204,7 @@ #define STRING_CMD_VERSION_DOCS "La documentación de taskwarrior se puede consultar usando 'man task', 'man taskrc', 'man task-tutorial', 'man task-color', 'man task-sync' y 'man task-faq' o en http://taskwarrior.org" #define STRING_CMD_VERSION_BUILT "{1} {2} construido para " #define STRING_CMD_VERSION_UNKNOWN "desconocido" -#define STRING_CMD_VERSION_COPY "Copyright (C) 2006 - 2013 P. Beckingham, F. Hernandez." +#define STRING_CMD_VERSION_COPY "Copyright (C) 2006 - 2014 P. Beckingham, F. Hernandez." #define STRING_CMD_LOGO_USAGE "Muestra el logo de Taskwarrior" #define STRING_CMD_LOGO_COLOR_REQ "El comando logo requiere que el soporte de color esté habilitado." #define STRING_CMD_EXEC_USAGE "Ejecuta comandos y scripts externos" diff --git a/src/feedback.cpp b/src/feedback.cpp index f96ca2e6b..cd3f1cfb9 100644 --- a/src/feedback.cpp +++ b/src/feedback.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/fr-FR.h b/src/fr-FR.h index 60df6dbd1..9cdd7da25 100644 --- a/src/fr-FR.h +++ b/src/fr-FR.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -201,7 +201,7 @@ #define STRING_CMD_VERSION_DOCS "Documentation for taskwarrior can be found using 'man task', 'man taskrc', 'man task-tutorial', 'man task-color', 'man task-sync', 'man task-faq' or at http://taskwarrior.org" #define STRING_CMD_VERSION_BUILT "{1} {2} built for " #define STRING_CMD_VERSION_UNKNOWN "unknown" -#define STRING_CMD_VERSION_COPY "Copyright (C) 2006 - 2013 P. Beckingham, F. Hernandez." +#define STRING_CMD_VERSION_COPY "Copyright (C) 2006 - 2014 P. Beckingham, F. Hernandez." #define STRING_CMD_LOGO_USAGE "Displays the Taskwarrior logo" #define STRING_CMD_LOGO_COLOR_REQ "The logo command requires that color support is enabled." #define STRING_CMD_EXEC_USAGE "Executes external commands and scripts" diff --git a/src/i18n.h b/src/i18n.h index 232395d60..5e49ab5f0 100644 --- a/src/i18n.h +++ b/src/i18n.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/interactive.cpp b/src/interactive.cpp index e23fc7f14..5a33c41d2 100644 --- a/src/interactive.cpp +++ b/src/interactive.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/it-IT.h b/src/it-IT.h index 8ec591546..f16e8b123 100644 --- a/src/it-IT.h +++ b/src/it-IT.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -202,7 +202,7 @@ #define STRING_CMD_VERSION_DOCS "La documentazione di taskwarrior è consultabile con 'man task', 'man taskrc', 'man task-tutorial', 'man task-color', 'man task-sync', 'man task-faq' o presso http://taskwarrior.org" #define STRING_CMD_VERSION_BUILT "{1} {2} generato per " #define STRING_CMD_VERSION_UNKNOWN "sconosciuto" -#define STRING_CMD_VERSION_COPY "Copyright (C) 2006 - 2013 P. Beckingham, F. Hernandez." +#define STRING_CMD_VERSION_COPY "Copyright (C) 2006 - 2014 P. Beckingham, F. Hernandez." #define STRING_CMD_LOGO_USAGE "Mostra il logo di Taskwarrior" #define STRING_CMD_LOGO_COLOR_REQ "Il comando logo richiede l'abilitazione del supporto ai colori." #define STRING_CMD_EXEC_USAGE "Esegue comandi e script esterni" diff --git a/src/legacy.cpp b/src/legacy.cpp index e58410071..a5912118f 100644 --- a/src/legacy.cpp +++ b/src/legacy.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/main.cpp b/src/main.cpp index cebf05124..c61615a0a 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/main.h b/src/main.h index c16be99fa..39c2029e7 100644 --- a/src/main.h +++ b/src/main.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/recur.cpp b/src/recur.cpp index 42847cf51..a315d51d3 100644 --- a/src/recur.cpp +++ b/src/recur.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/rules.cpp b/src/rules.cpp index e1c24fd49..5174c70ab 100644 --- a/src/rules.cpp +++ b/src/rules.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/shell/Readline.cpp b/src/shell/Readline.cpp index 163d69eab..f7bfc74fb 100644 --- a/src/shell/Readline.cpp +++ b/src/shell/Readline.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/shell/Readline.h b/src/shell/Readline.h index 9d5bf8b78..655afdfb7 100644 --- a/src/shell/Readline.h +++ b/src/shell/Readline.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/shell/main.cpp b/src/shell/main.cpp index 3ef57679d..fc1b98c95 100644 --- a/src/shell/main.cpp +++ b/src/shell/main.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/sort.cpp b/src/sort.cpp index 18ff15e09..82f0c0338 100644 --- a/src/sort.cpp +++ b/src/sort.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/text.cpp b/src/text.cpp index 4a49ff1af..84c8e91eb 100644 --- a/src/text.cpp +++ b/src/text.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/text.h b/src/text.h index cb587ab16..3388311e0 100644 --- a/src/text.h +++ b/src/text.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/utf8.cpp b/src/utf8.cpp index 73b0ee868..cb2584429 100644 --- a/src/utf8.cpp +++ b/src/utf8.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/utf8.h b/src/utf8.h index 8e50871a6..063f59d8b 100644 --- a/src/utf8.h +++ b/src/utf8.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/util.cpp b/src/util.cpp index 1353db329..89a8892c7 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/util.h b/src/util.h index 1d749b50f..da6acfa72 100644 --- a/src/util.h +++ b/src/util.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/TAP.py b/test/TAP.py index 32c6a8faa..06d4b77b9 100644 --- a/test/TAP.py +++ b/test/TAP.py @@ -1,7 +1,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/abbreviation.t b/test/abbreviation.t index 87ceb1a99..7b1bc167f 100755 --- a/test/abbreviation.t +++ b/test/abbreviation.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/add.t b/test/add.t index cbd882855..932eee431 100755 --- a/test/add.t +++ b/test/add.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/alias.t b/test/alias.t index d647bc0ee..c639d7ed8 100755 --- a/test/alias.t +++ b/test/alias.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/annotate.t b/test/annotate.t index 35eab5795..6cd57f20c 100755 --- a/test/annotate.t +++ b/test/annotate.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/append.t b/test/append.t index 3f57ce036..a6f6def57 100755 --- a/test/append.t +++ b/test/append.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/args.1.t b/test/args.1.t index 8162a05e7..41bf6c4a2 100755 --- a/test/args.1.t +++ b/test/args.1.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/args.2.t b/test/args.2.t index 8c55a7580..cbeafe084 100755 --- a/test/args.2.t +++ b/test/args.2.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/args.3.t b/test/args.3.t index 25fbedfb5..0ec77c07f 100755 --- a/test/args.3.t +++ b/test/args.3.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/args.4.t b/test/args.4.t index f2d954e80..d7d9a2032 100755 --- a/test/args.4.t +++ b/test/args.4.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/args.5.t b/test/args.5.t index de109b895..29950cbb0 100755 --- a/test/args.5.t +++ b/test/args.5.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/args.t b/test/args.t index 05543ecb3..df2aef4c7 100755 --- a/test/args.t +++ b/test/args.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/autocomplete.t.cpp b/test/autocomplete.t.cpp index 1b70bde16..a2f7baab1 100644 --- a/test/autocomplete.t.cpp +++ b/test/autocomplete.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/backslash.t b/test/backslash.t index eef4e28b0..a249fb9c1 100755 --- a/test/backslash.t +++ b/test/backslash.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bash_completion.t b/test/bash_completion.t index 4d836e067..0246760c7 100755 --- a/test/bash_completion.t +++ b/test/bash_completion.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/basic.t b/test/basic.t index 931071526..e7ebc9850 100755 --- a/test/basic.t +++ b/test/basic.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.1006.t b/test/bug.1006.t index 2baeec1d3..f1eaf6a00 100755 --- a/test/bug.1006.t +++ b/test/bug.1006.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.1023.t b/test/bug.1023.t index 25922f10b..fe8514228 100755 --- a/test/bug.1023.t +++ b/test/bug.1023.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.1031.t b/test/bug.1031.t index 6aeca5733..ee34ced25 100755 --- a/test/bug.1031.t +++ b/test/bug.1031.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.1036.t b/test/bug.1036.t index 7ebe6ecbb..8145a2a36 100755 --- a/test/bug.1036.t +++ b/test/bug.1036.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.1043.t b/test/bug.1043.t index d2b59ff2b..af7470071 100755 --- a/test/bug.1043.t +++ b/test/bug.1043.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.1044.t b/test/bug.1044.t index 5b2c03a3f..30e9092a7 100755 --- a/test/bug.1044.t +++ b/test/bug.1044.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.1056.t b/test/bug.1056.t index 4233f605f..4cd43de7b 100755 --- a/test/bug.1056.t +++ b/test/bug.1056.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.1063.t b/test/bug.1063.t index 21d71c900..6fa5bd9dc 100755 --- a/test/bug.1063.t +++ b/test/bug.1063.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.1065.t b/test/bug.1065.t index 9a3e09b69..c30d23efb 100755 --- a/test/bug.1065.t +++ b/test/bug.1065.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.1104.t b/test/bug.1104.t index 3e8009167..02bc7b2a5 100755 --- a/test/bug.1104.t +++ b/test/bug.1104.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.1110.t b/test/bug.1110.t index bf7c522c5..3b515e837 100755 --- a/test/bug.1110.t +++ b/test/bug.1110.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.1117.t b/test/bug.1117.t index 791ac39c4..d674ed958 100755 --- a/test/bug.1117.t +++ b/test/bug.1117.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.1192.t b/test/bug.1192.t index c63957b11..443c3c84e 100755 --- a/test/bug.1192.t +++ b/test/bug.1192.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.299.t b/test/bug.299.t index 03f76b7b6..f5e20b94f 100755 --- a/test/bug.299.t +++ b/test/bug.299.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.327.t b/test/bug.327.t index 0c005d99a..62975557f 100755 --- a/test/bug.327.t +++ b/test/bug.327.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.360.t b/test/bug.360.t index a1c3a3d3a..878e3181b 100755 --- a/test/bug.360.t +++ b/test/bug.360.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.368.t b/test/bug.368.t index 35b617bc7..8a2847f2a 100755 --- a/test/bug.368.t +++ b/test/bug.368.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.414.t b/test/bug.414.t index fcc929aa3..1795eec0c 100755 --- a/test/bug.414.t +++ b/test/bug.414.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.417.t b/test/bug.417.t index 0f691faf1..4a52cd5c3 100755 --- a/test/bug.417.t +++ b/test/bug.417.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.418.t b/test/bug.418.t index 8d6c2be90..a5018b1fb 100755 --- a/test/bug.418.t +++ b/test/bug.418.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.425.t b/test/bug.425.t index 3f28e9531..f32db6d6c 100755 --- a/test/bug.425.t +++ b/test/bug.425.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.434.t b/test/bug.434.t index 34f1a697e..ce69bef91 100755 --- a/test/bug.434.t +++ b/test/bug.434.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.438.t b/test/bug.438.t index 94c8cff3e..cabb70158 100755 --- a/test/bug.438.t +++ b/test/bug.438.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.440.t b/test/bug.440.t index 150697e6f..3acce940c 100755 --- a/test/bug.440.t +++ b/test/bug.440.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.441.t b/test/bug.441.t index 8292b1edd..5385eb709 100755 --- a/test/bug.441.t +++ b/test/bug.441.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.455.t b/test/bug.455.t index 4b263641b..bde6acd81 100755 --- a/test/bug.455.t +++ b/test/bug.455.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.480.t b/test/bug.480.t index 1a7997c2a..78991f923 100755 --- a/test/bug.480.t +++ b/test/bug.480.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.485.x b/test/bug.485.x index 38f419ba5..819fdbb72 100755 --- a/test/bug.485.x +++ b/test/bug.485.x @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.489.t b/test/bug.489.t index 71a62ce55..4b5f06d6b 100755 --- a/test/bug.489.t +++ b/test/bug.489.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.495.t b/test/bug.495.t index 1e4255d92..884d08fe5 100755 --- a/test/bug.495.t +++ b/test/bug.495.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.555.t b/test/bug.555.t index f63c3ea35..63a1c66d5 100755 --- a/test/bug.555.t +++ b/test/bug.555.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.580.t b/test/bug.580.t index b305acecc..5a56adb80 100755 --- a/test/bug.580.t +++ b/test/bug.580.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.605.t b/test/bug.605.t index 3c693a4ad..97490832d 100755 --- a/test/bug.605.t +++ b/test/bug.605.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.628.t b/test/bug.628.t index 134b519c4..abc8f2fba 100755 --- a/test/bug.628.t +++ b/test/bug.628.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.634.t b/test/bug.634.t index ea3daabd6..26da9ced2 100755 --- a/test/bug.634.t +++ b/test/bug.634.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.635.t b/test/bug.635.t index fa4291530..92c577e2e 100755 --- a/test/bug.635.t +++ b/test/bug.635.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.649.t b/test/bug.649.t index 5fd2895c2..c8906c588 100755 --- a/test/bug.649.t +++ b/test/bug.649.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.656.t b/test/bug.656.t index 482009653..0a97153d4 100755 --- a/test/bug.656.t +++ b/test/bug.656.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.674.t b/test/bug.674.t index de69582f1..cf7b9a277 100755 --- a/test/bug.674.t +++ b/test/bug.674.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.694.t b/test/bug.694.t index 55d3de468..b1fe76070 100755 --- a/test/bug.694.t +++ b/test/bug.694.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.697.x b/test/bug.697.x index 951e2bc16..8f2e084ea 100755 --- a/test/bug.697.x +++ b/test/bug.697.x @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.703.t b/test/bug.703.t index 482c0d866..276e4fb09 100755 --- a/test/bug.703.t +++ b/test/bug.703.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.708.t b/test/bug.708.t index 6893d439a..6d4ed8b04 100755 --- a/test/bug.708.t +++ b/test/bug.708.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.804.t b/test/bug.804.t index 917c02386..55dfc0e71 100755 --- a/test/bug.804.t +++ b/test/bug.804.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.818.t b/test/bug.818.t index 2f89b3465..af27ff678 100755 --- a/test/bug.818.t +++ b/test/bug.818.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.819.t b/test/bug.819.t index 505ad8f99..d33dccba6 100755 --- a/test/bug.819.t +++ b/test/bug.819.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.835.t b/test/bug.835.t index 345ff6416..c113a4f0e 100755 --- a/test/bug.835.t +++ b/test/bug.835.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.837.t b/test/bug.837.t index da43413eb..475c67794 100755 --- a/test/bug.837.t +++ b/test/bug.837.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.839.t b/test/bug.839.t index 04f92c878..021374088 100755 --- a/test/bug.839.t +++ b/test/bug.839.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.851.t b/test/bug.851.t index 7b1599bda..c5c06c772 100755 --- a/test/bug.851.t +++ b/test/bug.851.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.856.t b/test/bug.856.t index 6d8287446..35975cd61 100755 --- a/test/bug.856.t +++ b/test/bug.856.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.860.t b/test/bug.860.t index 3555a55ce..1cc7b893e 100755 --- a/test/bug.860.t +++ b/test/bug.860.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.879.t b/test/bug.879.t index 5c53bdb1b..aa042051b 100755 --- a/test/bug.879.t +++ b/test/bug.879.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.884.t b/test/bug.884.t index e68313ed6..b18311d9c 100755 --- a/test/bug.884.t +++ b/test/bug.884.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.886.t b/test/bug.886.t index 411351d32..96b26c7d3 100755 --- a/test/bug.886.t +++ b/test/bug.886.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.899.t b/test/bug.899.t index d9ccaa67b..e64428aea 100755 --- a/test/bug.899.t +++ b/test/bug.899.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.906.t b/test/bug.906.t index 816c4b238..64ab80826 100755 --- a/test/bug.906.t +++ b/test/bug.906.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.917.t b/test/bug.917.t index 8cb4f5cf3..5345de8ec 100755 --- a/test/bug.917.t +++ b/test/bug.917.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.924.t b/test/bug.924.t index 86f27c70e..8d6e7fe96 100755 --- a/test/bug.924.t +++ b/test/bug.924.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.932.t b/test/bug.932.t index 68b2731fd..dbef4059e 100755 --- a/test/bug.932.t +++ b/test/bug.932.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.954.t b/test/bug.954.t index 199d05de9..92d6aa18f 100755 --- a/test/bug.954.t +++ b/test/bug.954.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.955.t b/test/bug.955.t index dc0598ac2..de000efc2 100755 --- a/test/bug.955.t +++ b/test/bug.955.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.956.t b/test/bug.956.t index 00d0ec8e3..2fbb23736 100755 --- a/test/bug.956.t +++ b/test/bug.956.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.972.t b/test/bug.972.t index 7aee3403b..90dd52d6b 100755 --- a/test/bug.972.t +++ b/test/bug.972.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.982.x b/test/bug.982.x index c775339b5..be0569fda 100755 --- a/test/bug.982.x +++ b/test/bug.982.x @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.986.t b/test/bug.986.t index 1a43d849b..0c80954d8 100755 --- a/test/bug.986.t +++ b/test/bug.986.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.987.x b/test/bug.987.x index 0d7856328..2d442eb5f 100755 --- a/test/bug.987.x +++ b/test/bug.987.x @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.990.t b/test/bug.990.t index 99b383939..83f80fb4c 100755 --- a/test/bug.990.t +++ b/test/bug.990.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.991.t b/test/bug.991.t index ff2f8e228..aa2c2588a 100755 --- a/test/bug.991.t +++ b/test/bug.991.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.annotate.t b/test/bug.annotate.t index 9a79c266a..d8540d81f 100755 --- a/test/bug.annotate.t +++ b/test/bug.annotate.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.annual.t b/test/bug.annual.t index b0e642758..59d6787c9 100755 --- a/test/bug.annual.t +++ b/test/bug.annual.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.before.t b/test/bug.before.t index b3f7ca88e..0e98d273d 100755 --- a/test/bug.before.t +++ b/test/bug.before.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.bulk.t b/test/bug.bulk.t index cde26d48c..8a76ccd9f 100755 --- a/test/bug.bulk.t +++ b/test/bug.bulk.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.c001.t b/test/bug.c001.t index 9ac68c272..c1cfb281c 100755 --- a/test/bug.c001.t +++ b/test/bug.c001.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.cal.t b/test/bug.cal.t index d96952a07..906650816 100755 --- a/test/bug.cal.t +++ b/test/bug.cal.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.concat.t b/test/bug.concat.t index 047bad331..68706beb2 100755 --- a/test/bug.concat.t +++ b/test/bug.concat.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.hang.t b/test/bug.hang.t index 070e1b565..4099fb5e1 100755 --- a/test/bug.hang.t +++ b/test/bug.hang.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.hasnt.t b/test/bug.hasnt.t index 66a3c8f25..b7686f42e 100755 --- a/test/bug.hasnt.t +++ b/test/bug.hasnt.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.mergedeps.t.postponed b/test/bug.mergedeps.t.postponed index a715bfca3..9afad4bb7 100755 --- a/test/bug.mergedeps.t.postponed +++ b/test/bug.mergedeps.t.postponed @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.period.t b/test/bug.period.t index 42378e03c..128e91c6f 100755 --- a/test/bug.period.t +++ b/test/bug.period.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.range.t b/test/bug.range.t index a84305360..d5e46bf59 100755 --- a/test/bug.range.t +++ b/test/bug.range.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.recur.t b/test/bug.recur.t index 908b60b43..ba9049017 100755 --- a/test/bug.recur.t +++ b/test/bug.recur.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.sort.t b/test/bug.sort.t index 0e457e287..d7e176feb 100755 --- a/test/bug.sort.t +++ b/test/bug.sort.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.start.extra.t b/test/bug.start.extra.t index a202994a9..5501778cf 100755 --- a/test/bug.start.extra.t +++ b/test/bug.start.extra.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.summary.t b/test/bug.summary.t index ee17016e1..84ad04ff6 100755 --- a/test/bug.summary.t +++ b/test/bug.summary.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bug.uuid.t b/test/bug.uuid.t index 4088bbfbf..79692e3ee 100755 --- a/test/bug.uuid.t +++ b/test/bug.uuid.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/bulk.t b/test/bulk.t index fa6a77d8f..5c8e2a228 100755 --- a/test/bulk.t +++ b/test/bulk.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/cal.t b/test/cal.t index 085d44612..bc8e44400 100755 --- a/test/cal.t +++ b/test/cal.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/caseless.t b/test/caseless.t index 424876e9e..49fd9b952 100755 --- a/test/caseless.t +++ b/test/caseless.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/color.active.t b/test/color.active.t index 64fee6169..885814610 100755 --- a/test/color.active.t +++ b/test/color.active.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/color.blocked.t b/test/color.blocked.t index 5cea26b6f..fadf07992 100755 --- a/test/color.blocked.t +++ b/test/color.blocked.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/color.deprecated.t b/test/color.deprecated.t index 7a40f2364..36adaf7d4 100755 --- a/test/color.deprecated.t +++ b/test/color.deprecated.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/color.disable.t b/test/color.disable.t index dcebc391e..76f1fc140 100755 --- a/test/color.disable.t +++ b/test/color.disable.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/color.due.t b/test/color.due.t index b26e358fd..425c37756 100755 --- a/test/color.due.t +++ b/test/color.due.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/color.duetoday.t b/test/color.duetoday.t index 0e0245abd..990a4b7bc 100755 --- a/test/color.duetoday.t +++ b/test/color.duetoday.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/color.err.t b/test/color.err.t index 5ddc4fb9c..54dfd07ce 100755 --- a/test/color.err.t +++ b/test/color.err.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/color.keyword.t b/test/color.keyword.t index e824f192d..21f1e5fe5 100755 --- a/test/color.keyword.t +++ b/test/color.keyword.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/color.overdue.t b/test/color.overdue.t index d55aaf063..77d99b844 100755 --- a/test/color.overdue.t +++ b/test/color.overdue.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/color.pri.t b/test/color.pri.t index 5596b8bdb..8fedbc9fb 100755 --- a/test/color.pri.t +++ b/test/color.pri.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/color.project.t b/test/color.project.t index 53c673206..5e4948362 100755 --- a/test/color.project.t +++ b/test/color.project.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/color.recurring.t b/test/color.recurring.t index 85e7ff1bd..a3770a275 100755 --- a/test/color.recurring.t +++ b/test/color.recurring.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/color.t.cpp b/test/color.t.cpp index 78fdd138e..1bbbadc78 100644 --- a/test/color.t.cpp +++ b/test/color.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/color.tag.t b/test/color.tag.t index c3e88333b..0ab670598 100755 --- a/test/color.tag.t +++ b/test/color.tag.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/color.tagged.t b/test/color.tagged.t index 18c86711b..2863f7da4 100755 --- a/test/color.tagged.t +++ b/test/color.tagged.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/color.uda.t b/test/color.uda.t index 967043d1b..42683e055 100755 --- a/test/color.uda.t +++ b/test/color.uda.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/completed.t b/test/completed.t index 095a1ba4f..2fe42bd99 100755 --- a/test/completed.t +++ b/test/completed.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/config.obsolete.t b/test/config.obsolete.t index 2fef5f744..fca1f6eb0 100755 --- a/test/config.obsolete.t +++ b/test/config.obsolete.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/config.t.cpp b/test/config.t.cpp index 1c22000a1..7a8ba29b5 100644 --- a/test/config.t.cpp +++ b/test/config.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006 - 2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006 - 2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/confirmation.t b/test/confirmation.t index 637fa447a..e6f8c724f 100755 --- a/test/confirmation.t +++ b/test/confirmation.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/count.t b/test/count.t index caef5667b..8949b9de1 100755 --- a/test/count.t +++ b/test/count.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/countdown.t b/test/countdown.t index 7b34c5a1f..c0e1e1a1e 100755 --- a/test/countdown.t +++ b/test/countdown.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/custom.columns.t b/test/custom.columns.t index 6e5187193..42376b05b 100755 --- a/test/custom.columns.t +++ b/test/custom.columns.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/custom.priority_long.t b/test/custom.priority_long.t index 54b87992c..a655ba8e0 100755 --- a/test/custom.priority_long.t +++ b/test/custom.priority_long.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/custom.recur_ind.t b/test/custom.recur_ind.t index a31210f67..a14674f8c 100755 --- a/test/custom.recur_ind.t +++ b/test/custom.recur_ind.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/custom.t b/test/custom.t index 86fef3746..9318602d4 100755 --- a/test/custom.t +++ b/test/custom.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/custom.tag_ind.t b/test/custom.tag_ind.t index dd5af7d71..8e68462fa 100755 --- a/test/custom.tag_ind.t +++ b/test/custom.tag_ind.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/date.iso.t b/test/date.iso.t index 1f2333475..3500cc931 100755 --- a/test/date.iso.t +++ b/test/date.iso.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/date.t.cpp b/test/date.t.cpp index e21adbf77..c57a535a4 100644 --- a/test/date.t.cpp +++ b/test/date.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/dateformat.t b/test/dateformat.t index ebe3eb2b7..bfdda377e 100755 --- a/test/dateformat.t +++ b/test/dateformat.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/datesort.t b/test/datesort.t index 983234e58..cf1331ba6 100755 --- a/test/datesort.t +++ b/test/datesort.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/default.t b/test/default.t index f4b4b0869..f76b601bd 100755 --- a/test/default.t +++ b/test/default.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/delete.t b/test/delete.t index 8ad1ab2a0..31371c0d4 100755 --- a/test/delete.t +++ b/test/delete.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/denotate.t b/test/denotate.t index 117a7f7f2..87ce217bc 100755 --- a/test/denotate.t +++ b/test/denotate.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/dependencies.t b/test/dependencies.t index 4650a753f..6c98da2bf 100755 --- a/test/dependencies.t +++ b/test/dependencies.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/directory.t.cpp b/test/directory.t.cpp index 7ca8787df..dd1f961ce 100644 --- a/test/directory.t.cpp +++ b/test/directory.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/dom.2.t b/test/dom.2.t index f78a5986d..d4599c9b6 100755 --- a/test/dom.2.t +++ b/test/dom.2.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/dom.t.cpp b/test/dom.t.cpp index 08c0083a6..51b623578 100644 --- a/test/dom.t.cpp +++ b/test/dom.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/due.t b/test/due.t index 4b9d56e51..f0ba0b4ee 100755 --- a/test/due.t +++ b/test/due.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/duplicate.t b/test/duplicate.t index 2974d342d..8b6472866 100755 --- a/test/duplicate.t +++ b/test/duplicate.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/duplicate2.t b/test/duplicate2.t index 8d1f3e5f2..7fec55feb 100755 --- a/test/duplicate2.t +++ b/test/duplicate2.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/duration.t.cpp b/test/duration.t.cpp index 7c9097b43..926dcd146 100644 --- a/test/duration.t.cpp +++ b/test/duration.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/enpassant.t b/test/enpassant.t index eed219c93..c6919b989 100755 --- a/test/enpassant.t +++ b/test/enpassant.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/export.yaml.t b/test/export.yaml.t index bc03b5a09..c4e3539f8 100755 --- a/test/export.yaml.t +++ b/test/export.yaml.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/feature.1013.t b/test/feature.1013.t index ae2e5c633..b1c9423af 100755 --- a/test/feature.1013.t +++ b/test/feature.1013.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/feature.1061.t b/test/feature.1061.t index f88eaa898..510d6d4bb 100755 --- a/test/feature.1061.t +++ b/test/feature.1061.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/feature.559.t b/test/feature.559.t index 337631a50..d1797b36a 100755 --- a/test/feature.559.t +++ b/test/feature.559.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/feature.608.t b/test/feature.608.t index a61ee2d76..efffc83c2 100755 --- a/test/feature.608.t +++ b/test/feature.608.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/feature.632.t b/test/feature.632.t index f7bd6e845..ab26ceb84 100755 --- a/test/feature.632.t +++ b/test/feature.632.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/feature.725.t b/test/feature.725.t index cd4077497..9be37fb37 100755 --- a/test/feature.725.t +++ b/test/feature.725.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/feature.891.t b/test/feature.891.t index 3403121f5..e6d82f4f8 100755 --- a/test/feature.891.t +++ b/test/feature.891.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/feature.exit.t b/test/feature.exit.t index 232edcc1b..74c05ff2a 100755 --- a/test/feature.exit.t +++ b/test/feature.exit.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/feature.print.empty.columns.t b/test/feature.print.empty.columns.t index 6041fd15d..6c7a40c19 100755 --- a/test/feature.print.empty.columns.t +++ b/test/feature.print.empty.columns.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/file.t.cpp b/test/file.t.cpp index d7e5ed17c..b5c63cfd5 100644 --- a/test/file.t.cpp +++ b/test/file.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/filter-prefix.t b/test/filter-prefix.t index df44588cb..b4dc3e794 100755 --- a/test/filter-prefix.t +++ b/test/filter-prefix.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/filter.t b/test/filter.t index fc9ec0fba..70fdd97b0 100755 --- a/test/filter.t +++ b/test/filter.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/fontunderline.t b/test/fontunderline.t index b9686400d..8b09f8bd6 100755 --- a/test/fontunderline.t +++ b/test/fontunderline.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/history.annual.t b/test/history.annual.t index b2799c6d8..967eb94be 100755 --- a/test/history.annual.t +++ b/test/history.annual.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/history.monthly.t b/test/history.monthly.t index b13d8d8d2..df6fbfabf 100755 --- a/test/history.monthly.t +++ b/test/history.monthly.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/hyphenate.t b/test/hyphenate.t index 06e864f68..2157d93a5 100755 --- a/test/hyphenate.t +++ b/test/hyphenate.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/i18n.t.cpp b/test/i18n.t.cpp index 9d9d567b3..f7049aeeb 100644 --- a/test/i18n.t.cpp +++ b/test/i18n.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/ids.t b/test/ids.t index ac996f4e2..fdd59a33b 100755 --- a/test/ids.t +++ b/test/ids.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/import.t b/test/import.t index 833f7a76d..90acae538 100755 --- a/test/import.t +++ b/test/import.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/import.todo.sh.t b/test/import.todo.sh.t index 41c7dbe11..b346bc215 100755 --- a/test/import.todo.sh.t +++ b/test/import.todo.sh.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/import.yaml.t b/test/import.yaml.t index 8f995e863..555ee5d5b 100755 --- a/test/import.yaml.t +++ b/test/import.yaml.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/json.t.cpp b/test/json.t.cpp index d6a02832c..02377eda9 100644 --- a/test/json.t.cpp +++ b/test/json.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/json_test.cpp b/test/json_test.cpp index 5defcb430..2e1430cf8 100644 --- a/test/json_test.cpp +++ b/test/json_test.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/json_test.t b/test/json_test.t index 3a79c93cc..3ed50fdea 100755 --- a/test/json_test.t +++ b/test/json_test.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/label.t b/test/label.t index 6036e5df4..f0e4bd6c9 100755 --- a/test/label.t +++ b/test/label.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/limit.t b/test/limit.t index 30498cfbd..592bc393d 100755 --- a/test/limit.t +++ b/test/limit.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/list.all.projects.t b/test/list.all.projects.t index 457e82ce5..382e78d3c 100755 --- a/test/list.all.projects.t +++ b/test/list.all.projects.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/list.all.tags.t b/test/list.all.tags.t index d08154600..dc33d7c65 100755 --- a/test/list.all.tags.t +++ b/test/list.all.tags.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/list.t.cpp b/test/list.t.cpp index 21355b343..df3768287 100644 --- a/test/list.t.cpp +++ b/test/list.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/log.t b/test/log.t index 4f2c700f7..baa382f99 100755 --- a/test/log.t +++ b/test/log.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/merge.duplicates.t b/test/merge.duplicates.t index e0471941a..a1ffcda7f 100755 --- a/test/merge.duplicates.t +++ b/test/merge.duplicates.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/merge.simple_duplication.t b/test/merge.simple_duplication.t index 578629e9b..fb904eb2f 100755 --- a/test/merge.simple_duplication.t +++ b/test/merge.simple_duplication.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/merge.t b/test/merge.t index 216dc47b2..7d704998a 100755 --- a/test/merge.t +++ b/test/merge.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/msg.t.cpp b/test/msg.t.cpp index b417e22c7..5655b9300 100644 --- a/test/msg.t.cpp +++ b/test/msg.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/nag.t b/test/nag.t index 4591e63ca..e9eed8799 100755 --- a/test/nag.t +++ b/test/nag.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/next.t b/test/next.t index 8dfb35baf..4b7e675b7 100755 --- a/test/next.t +++ b/test/next.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/nibbler.t.cpp b/test/nibbler.t.cpp index fc78d4edf..4d8fd9f66 100644 --- a/test/nibbler.t.cpp +++ b/test/nibbler.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/oldest.t b/test/oldest.t index 24937f042..2af158caf 100755 --- a/test/oldest.t +++ b/test/oldest.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/op_and.t b/test/op_and.t index 847c4b6c3..8d7abea03 100755 --- a/test/op_and.t +++ b/test/op_and.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/op_gt.t b/test/op_gt.t index 6548a22ab..ca42e61e9 100755 --- a/test/op_gt.t +++ b/test/op_gt.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/op_gte.t b/test/op_gte.t index bd4da56c9..80292867b 100755 --- a/test/op_gte.t +++ b/test/op_gte.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/op_lt.t b/test/op_lt.t index eaa08f479..6ff733da2 100755 --- a/test/op_lt.t +++ b/test/op_lt.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/op_lte.t b/test/op_lte.t index c88599ee7..33005fe07 100755 --- a/test/op_lte.t +++ b/test/op_lte.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/op_or.t b/test/op_or.t index 92d67d64d..5a60a166a 100755 --- a/test/op_or.t +++ b/test/op_or.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/op_xor.t b/test/op_xor.t index 35170acf3..328196e44 100755 --- a/test/op_xor.t +++ b/test/op_xor.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/overdue.t b/test/overdue.t index c0c5ad34e..735be72b8 100755 --- a/test/overdue.t +++ b/test/overdue.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/override.t b/test/override.t index ed6c0028a..23486d2a0 100755 --- a/test/override.t +++ b/test/override.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/path.t.cpp b/test/path.t.cpp index 00fee15d5..a7c3b1ca2 100644 --- a/test/path.t.cpp +++ b/test/path.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/prepend.t b/test/prepend.t index 3ae744bff..a6ec3a4cf 100755 --- a/test/prepend.t +++ b/test/prepend.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/pri_sort.t b/test/pri_sort.t index f570dbf2c..6d5ddf56a 100755 --- a/test/pri_sort.t +++ b/test/pri_sort.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/project.t b/test/project.t index 3e2ec399b..73447792a 100755 --- a/test/project.t +++ b/test/project.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/rc.override.t b/test/rc.override.t index ba8f24e56..457fe46a3 100755 --- a/test/rc.override.t +++ b/test/rc.override.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/rc.t b/test/rc.t index 88fa956a5..99c464016 100755 --- a/test/rc.t +++ b/test/rc.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/recur.limit.t b/test/recur.limit.t index 23774d98a..1da4f8ee8 100755 --- a/test/recur.limit.t +++ b/test/recur.limit.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/recur.sort.t b/test/recur.sort.t index 8266804c5..8341e7233 100755 --- a/test/recur.sort.t +++ b/test/recur.sort.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/recur.t b/test/recur.t index 065daa291..496985987 100755 --- a/test/recur.t +++ b/test/recur.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/recur.until.t b/test/recur.until.t index a7d8d56a3..a1e2b99f1 100755 --- a/test/recur.until.t +++ b/test/recur.until.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/recur.weekdays.t b/test/recur.weekdays.t index 6de584099..59fcba4b2 100755 --- a/test/recur.weekdays.t +++ b/test/recur.weekdays.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/roundtrip.t b/test/roundtrip.t index eb6208d1b..3781c3b47 100755 --- a/test/roundtrip.t +++ b/test/roundtrip.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/rx.t.cpp b/test/rx.t.cpp index eae83f6dd..2ae071693 100644 --- a/test/rx.t.cpp +++ b/test/rx.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/sequence.t b/test/sequence.t index 33efdd074..202545c9e 100755 --- a/test/sequence.t +++ b/test/sequence.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/shadow.t b/test/shadow.t index 94aac0c36..f405bc2fa 100755 --- a/test/shadow.t +++ b/test/shadow.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/shell.t b/test/shell.t index d8509c131..6724e5167 100755 --- a/test/shell.t +++ b/test/shell.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/sorting.t b/test/sorting.t index b5b6f9d55..c43ab8c33 100755 --- a/test/sorting.t +++ b/test/sorting.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/special.t b/test/special.t index 866ba0c70..132c3dc53 100755 --- a/test/special.t +++ b/test/special.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/start.t b/test/start.t index 5a7a9797e..a692428d8 100755 --- a/test/start.t +++ b/test/start.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/subproject.t b/test/subproject.t index e85779d30..a63a2ca37 100755 --- a/test/subproject.t +++ b/test/subproject.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/substitute.t b/test/substitute.t index 266db6953..6b2722c9d 100755 --- a/test/substitute.t +++ b/test/substitute.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/t.t.cpp b/test/t.t.cpp index e37c99440..253ced4a8 100644 --- a/test/t.t.cpp +++ b/test/t.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/t2.t.cpp b/test/t2.t.cpp index b72a0e0d0..0f3fd2af0 100644 --- a/test/t2.t.cpp +++ b/test/t2.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/t3.t.cpp b/test/t3.t.cpp index 31c4cb61b..d091ecc4d 100644 --- a/test/t3.t.cpp +++ b/test/t3.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/tag.t b/test/tag.t index 3bb15b0ca..a80c87dc4 100755 --- a/test/tag.t +++ b/test/tag.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/taskmod.t.cpp b/test/taskmod.t.cpp index 2566ece05..338bda033 100644 --- a/test/taskmod.t.cpp +++ b/test/taskmod.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/tdb2.t.cpp b/test/tdb2.t.cpp index f06dde66c..0c1cce155 100644 --- a/test/tdb2.t.cpp +++ b/test/tdb2.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/template.t b/test/template.t index 903f8e471..adaae0dd7 100755 --- a/test/template.t +++ b/test/template.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/test.cpp b/test/test.cpp index 8aab28721..1fec701d7 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/test.h b/test/test.h index a41ae71e5..e24b4f915 100644 --- a/test/test.h +++ b/test/test.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/text.t.cpp b/test/text.t.cpp index c6b2bbae4..d6ef26c36 100644 --- a/test/text.t.cpp +++ b/test/text.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/timesheet.t b/test/timesheet.t index 03a344b5c..e6f24ed08 100755 --- a/test/timesheet.t +++ b/test/timesheet.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/uda_date.t b/test/uda_date.t index d1067534f..f4a2e67f9 100755 --- a/test/uda_date.t +++ b/test/uda_date.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/uda_defaults.t b/test/uda_defaults.t index 4c4123de1..62354924b 100755 --- a/test/uda_defaults.t +++ b/test/uda_defaults.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/uda_duration.t b/test/uda_duration.t index 0d8286d55..14e015211 100755 --- a/test/uda_duration.t +++ b/test/uda_duration.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/uda_numeric.t b/test/uda_numeric.t index 094220295..ae91505a3 100755 --- a/test/uda_numeric.t +++ b/test/uda_numeric.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/uda_orphan.t b/test/uda_orphan.t index 002d14726..dc7312451 100755 --- a/test/uda_orphan.t +++ b/test/uda_orphan.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/uda_report.t b/test/uda_report.t index d3be34fef..7b269e52b 100755 --- a/test/uda_report.t +++ b/test/uda_report.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/uda_string.t b/test/uda_string.t index a0ff7edf0..c6affc9b4 100755 --- a/test/uda_string.t +++ b/test/uda_string.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/uda_value.t b/test/uda_value.t index 2b3120a15..2086a40ad 100755 --- a/test/uda_value.t +++ b/test/uda_value.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/undo.t b/test/undo.t index 52411dccc..c09323315 100755 --- a/test/undo.t +++ b/test/undo.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/upgrade.t b/test/upgrade.t index 9fee56aeb..340f65b77 100755 --- a/test/upgrade.t +++ b/test/upgrade.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/urgency.t b/test/urgency.t index 9356b43b2..055a66983 100755 --- a/test/urgency.t +++ b/test/urgency.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/uri.t.cpp b/test/uri.t.cpp index cdaa68af8..6d994a1e0 100644 --- a/test/uri.t.cpp +++ b/test/uri.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2010 - 2013, Johannes Schlatow. +// Copyright 2010 - 2014, Johannes Schlatow. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/utf8.t.cpp b/test/utf8.t.cpp index 6340b4b17..b3a2cc831 100644 --- a/test/utf8.t.cpp +++ b/test/utf8.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/utf8_tw.t b/test/utf8_tw.t index a9e93b8e8..286b89db6 100755 --- a/test/utf8_tw.t +++ b/test/utf8_tw.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/util.t.cpp b/test/util.t.cpp index a271c64b7..df1e33a92 100644 --- a/test/util.t.cpp +++ b/test/util.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/uuid.t b/test/uuid.t index 14df09a6d..7944a4d49 100755 --- a/test/uuid.t +++ b/test/uuid.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/verbose.t b/test/verbose.t index 4c02176b6..ef7da6201 100755 --- a/test/verbose.t +++ b/test/verbose.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/version.t b/test/version.t index 8b9a443b1..bcb079aed 100755 --- a/test/version.t +++ b/test/version.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/view.t.cpp b/test/view.t.cpp index a7f1860e4..91ec5dae6 100644 --- a/test/view.t.cpp +++ b/test/view.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/test/wait.t b/test/wait.t index 442e15ea8..5b201499c 100755 --- a/test/wait.t +++ b/test/wait.t @@ -2,7 +2,7 @@ ################################################################################ ## taskwarrior - a command line task list manager. ## -## Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +## Copyright 2006-2014, Paul Beckingham, Federico Hernandez. ## ## Permission is hereby granted, free of charge, to any person obtaining a copy ## of this software and associated documentation files (the "Software"), to deal diff --git a/test/width.t.cpp b/test/width.t.cpp index 9554d1941..41e7a350c 100644 --- a/test/width.t.cpp +++ b/test/width.t.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////////////////////////// // taskwarrior - a command line task list manager. // -// Copyright 2006-2013, Paul Beckingham, Federico Hernandez. +// Copyright 2006-2014, Paul Beckingham, Federico Hernandez. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal From 664eef7b4268290d9cc5c1b6d886b8a66e19351e Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Thu, 2 Jan 2014 02:01:36 -0500 Subject: [PATCH 170/173] Documentation - Specified the version where deprecated features will be removed. --- NEWS | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index 6dc71607c..329018ae2 100644 --- a/NEWS +++ b/NEWS @@ -34,9 +34,9 @@ New configuration options in taskwarrior 2.3.0 Newly deprecated features in taskwarrior 2.3.0 - File format 2 (used in version 0.9.3 - 1.5.0) is no longer supported. - - The 'push', 'pull' and 'merge' commands will be removed in a subsequent - release. The new 'sync' command, in conjunction with the Taskserver is the - new sync mechanism. + - The 'push', 'pull' and 'merge' commands will be removed in version 2.4.0 + The new 'sync' command, in conjunction with the Taskserver is the new sync + mechanism. - The 'diagnostics' command no longer generates 1000 UUIDs as a uniqueness test, because libuuid is now mandatory. From 9e6b755cec4f3f1a91e4c4cea778b4ad3b22e4c9 Mon Sep 17 00:00:00 2001 From: Jakub Wilk Date: Sat, 4 Jan 2014 10:33:04 +0100 Subject: [PATCH 171/173] Add TASK_RCDIR configuration variable. --- CMakeLists.txt | 1 + INSTALL | 2 ++ cmake.h.in | 2 +- doc/man/task-color.5.in | 2 +- doc/man/task-tutorial.5.in | 8 ++++---- doc/man/taskrc.5.in | 6 +++--- 6 files changed, 12 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1f3d3cee9..73525efb9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,6 +37,7 @@ SET (TASK_MAN1DIR share/man/man1 CACHE STRING "Installation directory for man pa SET (TASK_MAN5DIR share/man/man5 CACHE STRING "Installation directory for man pages, section 5") endif (FREEBSD) SET (TASK_DOCDIR share/doc/task CACHE STRING "Installation directory for doc files") +SET (TASK_RCDIR "${TASK_DOCDIR}/rc" CACHE STRING "Installation directory for configuration files") SET (TASK_BINDIR bin CACHE STRING "Installation directory for the binary") message ("-- Looking for SHA1 references") diff --git a/INSTALL b/INSTALL index 98bacd59a..7cb906de9 100644 --- a/INSTALL +++ b/INSTALL @@ -67,6 +67,7 @@ lists them and their defaults plus the CMAKE_INSTALL_PREFIX: CMAKE_INSTALL_PREFIX /usr/local TASK_BINDIR bin TASK_DOCDIR share/doc/task + TASK_RCDIR share/doc/task/rc TASK_MAN1DIR share/man/man1 TASK_MAN5DIR share/man/man5 @@ -75,6 +76,7 @@ get absolute installation directories: CMAKE_INSTALL_PREFIX/TASK_BINDIR /usr/local/bin CMAKE_INSTALL_PREFIX/TASK_DOCDIR /usr/local/share/doc/task + CMAKE_INSTALL_PREFIX/TASK_RCDIR /usr/local/share/doc/task/rc CMAKE_INSTALL_PREFIX/TASK_MAN1DIR /usr/local/share/man/man1 CMAKE_INSTALL_PREFIX/TASK_MAN5DIR /usr/local/share/man/man5 diff --git a/cmake.h.in b/cmake.h.in index 3a0b2ac4d..5739d4fdf 100644 --- a/cmake.h.in +++ b/cmake.h.in @@ -13,7 +13,7 @@ #define PACKAGE_STRING "${PACKAGE_STRING}" /* Installation details */ -#define TASK_RCDIR "${CMAKE_INSTALL_PREFIX}/${TASK_DOCDIR}/rc" +#define TASK_RCDIR "${CMAKE_INSTALL_PREFIX}/${TASK_RCDIR}" /* Localization */ #define PACKAGE_LANGUAGE ${PACKAGE_LANGUAGE} diff --git a/doc/man/task-color.5.in b/doc/man/task-color.5.in index 243f90945..3fef0f3ac 100644 --- a/doc/man/task-color.5.in +++ b/doc/man/task-color.5.in @@ -265,7 +265,7 @@ your .taskrc file (note that your installation may use a slightly different path from the example): .RS -include /usr/local/share/doc/task/rc/dark-256.theme +include ${CMAKE_INSTALL_PREFIX}/${TASK_RCDIR}/dark-256.theme .RE You can use any of the standard taskwarrior themes: diff --git a/doc/man/task-tutorial.5.in b/doc/man/task-tutorial.5.in index da28abef6..803476e6c 100644 --- a/doc/man/task-tutorial.5.in +++ b/doc/man/task-tutorial.5.in @@ -1286,19 +1286,19 @@ theme into the configuration file, you can see some striking effects. For a blue theme, add this line to your .taskrc file: .RS -include /usr/local/share/doc/task/rc/dark-blue-256.theme +include ${CMAKE_INSTALL_PREFIX}/${TASK_RCDIR}/dark-blue-256.theme .RE For a red theme: .RS -include /usr/local/share/doc/task/rc/dark-red-256.theme +include ${CMAKE_INSTALL_PREFIX}/${TASK_RCDIR}/dark-red-256.theme .RE For a general dark theme: .RS -include /usr/local/share/doc/task/rc/dark-256.theme +include ${CMAKE_INSTALL_PREFIX}/${TASK_RCDIR}/dark-256.theme .RE Here are two color rules that specify a dark blue background for all tasks that @@ -1497,7 +1497,7 @@ used most. You can create your own, or use one of the samples to show holidays on the calendar. Try adding this line to your ~/.taskrc file: .RS -include /usr/local/share/doc/task/rc/holidays.en-US.rc +include ${CMAKE_INSTALL_PREFIX}/${TASK_RCDIR}/holidays.en-US.rc .RE Then: diff --git a/doc/man/taskrc.5.in b/doc/man/taskrc.5.in index 60926e2c8..9b375e520 100644 --- a/doc/man/taskrc.5.in +++ b/doc/man/taskrc.5.in @@ -131,9 +131,9 @@ ones containing just the relevant configuration data like colors, etc. There are two excellent uses of includes in your .taskrc, shown here: .RS -include /usr/local/share/doc/task/rc/holidays.en-US.rc +include ${CMAKE_INSTALL_PREFIX}/${TASK_RCDIR}/holidays.en-US.rc .br -include /usr/local/share/doc/task/rc/dark-16.theme +include ${CMAKE_INSTALL_PREFIX}/${TASK_RCDIR}/dark-16.theme .RE This includes two standard files that are distributed with taskwarrior, which @@ -724,7 +724,7 @@ be included like this: .RS .RS .br -include /usr/local/share/doc/task/rc/holidays.en-US.rc +include ${CMAKE_INSTALL_PREFIX}/${TASK_RCDIR}/holidays.en-US.rc .RE .RE From 31c0b36b44d847cb7ecad7675286c1961815baf9 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 4 Jan 2014 12:34:36 -0500 Subject: [PATCH 172/173] Feature #1473 - Make TASK_RCDIR customizable (thanks to Jakub Wilk). --- ChangeLog | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 30a90e708..542ec8026 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17,8 +17,9 @@ Features + #1297 The task₋sync(5) man pages is rewritten with examples. + #1339 The configuration file now supports JSON encoding of Unicode characters, by specifying \uNNNN. - + #1423 sync vs. push, pull, merge collision avoidance. + #1385 Need a way to configure the trust of self-signed certificates. + + #1423 sync vs. push, pull, merge collision avoidance. + + #1473 Make TASK_RCDIR customizable (thanks to Jakub Wilk). + Stores un-synched transactions in /backlog.data. + Adds a new 'synchronize' command to sync data with a Taskserver. + Adds a new 'initialize' synchronize command argument that uploads all pending From c4ecf613acd6639f9aaf4db66fb6f3684c45d13b Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Sat, 4 Jan 2014 12:36:17 -0500 Subject: [PATCH 173/173] Bug #1474 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Typo: accomodate → accommodate (Thanks to Jakub Wilk). --- ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 542ec8026..6be9d177c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,7 +5,7 @@ Features + #328 Replaced the 'shell' command with a standalone 'tasksh' binary, which includes GNU readline support (thanks to Haitham Gad). - + #934 support for 'reserved.lines' to accomodate multi-line + + #934 support for 'reserved.lines' to accommodate multi-line shell prompts when used in conjunction with 'limit:page' (thanks to Robert Gill). + #1226 A new French translation has begun, and will continue to be a work in

    5l0u)JK06P}?RW4q@ub7C%WS|BMfrm|@ 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 Y`+c(< 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%0A0$p7P-@}URpjx1phSZ#v|v*rB6 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 delta 215374 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%0D>c`eJKt%S+Xpm&wDfJ%yo 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