From 8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 14 Jul 2018 21:03:06 +0100 Subject: gentoo resync : 14.07.2018 --- app-misc/tdl/files/1.5.2-ldflags.patch | 13 + app-misc/tdl/files/tdl-1.5.2-list.c.patch | 34 ++ app-misc/tdl/files/tdl-1.5.2-main.c.patch | 178 +++++++++++ app-misc/tdl/files/tdl-1.5.2-man.patch | 507 ++++++++++++++++++++++++++++++ 4 files changed, 732 insertions(+) create mode 100644 app-misc/tdl/files/1.5.2-ldflags.patch create mode 100644 app-misc/tdl/files/tdl-1.5.2-list.c.patch create mode 100644 app-misc/tdl/files/tdl-1.5.2-main.c.patch create mode 100644 app-misc/tdl/files/tdl-1.5.2-man.patch (limited to 'app-misc/tdl/files') diff --git a/app-misc/tdl/files/1.5.2-ldflags.patch b/app-misc/tdl/files/1.5.2-ldflags.patch new file mode 100644 index 000000000000..d807fdf02246 --- /dev/null +++ b/app-misc/tdl/files/1.5.2-ldflags.patch @@ -0,0 +1,13 @@ +diff --git a/Makefile.in b/Makefile.in +index 46b05ca..eb9b656 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -52,7 +52,7 @@ OBJ = main.o io.o add.o done.o remove.o move.o list.o \ + all : tdl + + tdl : $(OBJ) +- $(CC) $(CFLAGS) -o tdl $(OBJ) $(LIB_READLINE) ++ $(CC) $(CFLAGS) $(LDFLAGS) -o tdl $(OBJ) $(LIB_READLINE) + + %.o : %.c + $(CC) $(CFLAGS) -c $< diff --git a/app-misc/tdl/files/tdl-1.5.2-list.c.patch b/app-misc/tdl/files/tdl-1.5.2-list.c.patch new file mode 100644 index 000000000000..d2cc39bd49c1 --- /dev/null +++ b/app-misc/tdl/files/tdl-1.5.2-list.c.patch @@ -0,0 +1,34 @@ +--- tdl-1.5.2.orig/list.c ++++ tdl-1.5.2/list.c +@@ -75,14 +75,15 @@ + static void print_timestamp(int timestamp, char *leader, int indent, int monochrome)/*{{{*/ + { + char buffer[32]; +- time_t now; ++ time_t now, timestamp2; + long diff, days_ago, days_ahead; + + now = time(NULL); + diff = now - timestamp; + days_ago = (diff + ((diff > 0) ? 43200 : -43200)) / 86400; ++ timestamp2 = (time_t) timestamp; + strftime(buffer, sizeof(buffer), "%a %d %b %Y %H:%M", +- localtime((time_t *)×tamp)); ++ localtime(×tamp2)); + do_indent(indent+2); + if (days_ago < 0) { + days_ahead = - days_ago; +@@ -524,6 +525,13 @@ + * Otherwise, use the priority from the specified node, _except_ when + * that is higher than normal, in which case use normal. */ + prio_to_use = (prio_set) ? prio : ((node_prio > prio) ? prio : node_prio); ++ /* if listing up-to-some-depth (option -N) and also ++ * beginning at some top-level (option NNN) then depth must be ++ * decremented by 1 ++ * see: http://bugs.debian.org/364083 */ ++ if (options.depth > 0) { ++ options.depth--; ++ } + list_chain(&n->kids, INDENT_TAB, 0, &options, index_buffer, prio_to_use, now, hits); + } + } else if ((y[0] == '-') && (y[1] == '-')) { diff --git a/app-misc/tdl/files/tdl-1.5.2-main.c.patch b/app-misc/tdl/files/tdl-1.5.2-main.c.patch new file mode 100644 index 000000000000..c195a1e5cb7c --- /dev/null +++ b/app-misc/tdl/files/tdl-1.5.2-main.c.patch @@ -0,0 +1,178 @@ +--- tdl-1.5.2.orig/main.c ++++ tdl-1.5.2/main.c +@@ -80,7 +80,7 @@ + return; + } + /*}}}*/ +-static volatile void unlock_and_exit(int code)/*{{{*/ ++static void unlock_and_exit(int code)/*{{{*/ + { + unlock_database(); + exit(code); +@@ -237,22 +237,91 @@ + + } + /*}}}*/ +-static void rename_database(char *path)/*{{{*/ ++static mode_t get_mode(const char *path); /* prototype */ ++/*}}}*/ ++static int copy_file_contents(char *pathsrc, char *pathdest) { ++ int src, dest; ++ ssize_t rdsize = 1; ++ char buf[4096]; ++ ++ src = open(pathsrc, O_RDONLY); ++ if (src == -1) { ++ perror("warning, couldn't open database"); ++ return 0; ++ } ++ dest = open(pathdest, O_WRONLY | O_CREAT, get_mode(pathsrc)); ++ if (dest == -1) { ++ perror("warning, couldn't open/create backup database"); ++ close(src); ++ return 0; ++ } ++ if (ftruncate(dest,0) != 0) { ++ perror("warning, couldn't truncate backup database"); ++ close(src); ++ close(dest); ++ return 0; ++ } ++ lseek(src,0,SEEK_SET); ++ lseek(dest,0,SEEK_SET); ++ while (rdsize > 0) { ++ rdsize = read(src, buf, 4096); ++ if (rdsize == -1) { ++ perror("warning, error reading database"); ++ close(src); ++ close(dest); ++ return 0; ++ } ++ if (rdsize > 0) { ++ if (write(dest, buf, rdsize) != rdsize) { ++ perror("warning, error writing to backup database"); ++ close(src); ++ close(dest); ++ return 0; ++ } ++ } ++ } ++ close(src); ++ close(dest); ++ return 1; ++} ++/*}}}*/ ++static int path_is_symlink(char *path) { ++ int i; ++ struct stat s; ++ i = lstat(path, &s); ++ if ((i == 0) && (S_ISLNK(s.st_mode))) { ++ return 1; /* is a symlink */ ++ } ++ return 0; /* not a symlink */ ++} ++/*}}}*/ ++static int rename_database(char *path)/*{{{*/ + { +- int len; ++ /* the rename_database function returns 1 if database or/and ++ * database backup file are symlinks; otherwise returns 0 */ ++ int len, symlinks; + char *pathbak; +- ++ + len = strlen(path); + pathbak = new_array(char, len + 5); + strcpy(pathbak, path); + strcat(pathbak, ".bak"); +- if (rename(path, pathbak) < 0) { +- if (is_noisy) { +- perror("warning, couldn't save backup database:"); ++ ++ symlinks = path_is_symlink(path) | path_is_symlink(pathbak); ++ ++ if (symlinks) { ++ if (access(path,F_OK) == 0) { ++ copy_file_contents(path, pathbak); ++ } ++ } else { ++ if (rename(path, pathbak) < 0) { ++ if (is_noisy) { ++ perror("warning, couldn't save backup database:"); ++ } + } + } + free(pathbak); +- return; ++ return symlinks; + } + /*}}}*/ + static char *executable_name(char *argv0)/*{{{*/ +@@ -315,7 +384,7 @@ + /*}}}*/ + static void save_database(char *path)/*{{{*/ + { +- FILE *out; ++ FILE *out = NULL; + int out_fd; + mode_t database_mode; + if (is_loaded && currently_dirty) { +@@ -324,20 +393,34 @@ + /* The next line only used to happen if the command wasn't 'create'. + * However, it should quietly fail for create, where the existing database + * doesn't exist */ +- rename_database(path); +- +- /* Open database this way so that the permissions from the existing +- database can be duplicated onto the new one in way free of race +- conditions. */ +- out_fd = open(path, O_WRONLY | O_CREAT | O_EXCL, database_mode); +- if (out_fd < 0) { +- fprintf(stderr, "Could not open new database %s for writing : %s\n", +- path, strerror(errno)); +- unlock_and_exit(1); ++ if (rename_database(path) == 0) { ++ /* database is a regular file */ ++ /* Open database this way so that the permissions from the existing ++ database can be duplicated onto the new one in way free of race ++ conditions. */ ++ out_fd = open(path, O_WRONLY | O_CREAT | O_EXCL, database_mode); ++ if (out_fd < 0) { ++ fprintf(stderr, "Could not open new database %s for writing : %s\n", ++ path, strerror(errno)); ++ unlock_and_exit(1); ++ } + } else { +- /* Normal case */ +- out = fdopen(out_fd, "wb"); ++ /* database and/or backup database are symlinks */ ++ /* we should truncate existing file and write its contents */ ++ out_fd = open(path, O_WRONLY | O_CREAT, database_mode); ++ if (out_fd < 0) { ++ fprintf(stderr, "Could not open database %s for writing : %s\n", ++ path, strerror(errno)); ++ unlock_and_exit(1); ++ } else { ++ /* Normal case */ ++ if (ftruncate(out_fd, 0) != 0) { ++ perror("warning, couldn't truncate database:"); ++ unlock_and_exit(1); ++ } ++ } + } ++ out = fdopen(out_fd, "wb"); + if (!out) { + fprintf(stderr, "Cannot open database %s for writing\n", path); + unlock_and_exit(1); +@@ -728,6 +811,11 @@ + + if (!is_loaded && cmds[index].load_db) { + load_database(current_database_path); ++ if (is_interactive && (!is_loaded)) { ++ fprintf(stderr, "error: could not open database. please create a " ++ "database with 'tdl create' before using this tdl command\n"); ++ unlock_and_exit(-1); ++ } + } + + pp = is_tdl ? (p + 1) : p; diff --git a/app-misc/tdl/files/tdl-1.5.2-man.patch b/app-misc/tdl/files/tdl-1.5.2-man.patch new file mode 100644 index 000000000000..955201a2fe2f --- /dev/null +++ b/app-misc/tdl/files/tdl-1.5.2-man.patch @@ -0,0 +1,507 @@ +--- tdl-1.5.2.orig/tdl.1 ++++ tdl-1.5.2/tdl.1 +@@ -2,25 +2,25 @@ + .SH NAME + tdl \- To do list manager + .SH SYNOPSIS +-tdl [-q] ++tdl [\-q] + .br +-tdl [-q] add|edit|defer|log ++tdl [\-q] add|edit|defer|log + .br +-tdl [-q] list|done|undo|report ++tdl [\-q] list|done|undo|report + .br +-tdl [-q] remove|above|below|into|clone|copyto ++tdl [\-q] remove|above|below|into|clone|copyto + .br +-tdl [-q] postpone|ignore|open ++tdl [\-q] postpone|ignore|open + .br +-tdl [-q] which|version|help ++tdl [\-q] which|version|help + .br +-tdla [-q] ++tdla [\-q] + .br +-tdll [-q] ++tdll [\-q] + .br +-tdld [-q] ++tdld [\-q] + .br +-tdlg [-q] ++tdlg [\-q] + + .SH DESCRIPTION + A program for managing a to-do list. +@@ -68,9 +68,9 @@ + modified database back to the disk. Only use it if you want to discard + all changes made in this tdl run. + +-.pp ++.PP + All forms may take +-.I -q ++.I \-q + as the first command line argument. Currently, this suppresses the warning + message if no existing database can be found. The intended use is for using + .B tdll +@@ -104,7 +104,7 @@ + appear as the last children of the parent node afterwards. + .P + .ce 1 +---ooOOoo-- ++\-\-ooOOoo-\- + .PP + .B tdl add + .I [@datespec] +@@ -156,7 +156,7 @@ + environment is set, in which case this specifies the path to use). + .P + .ce 1 +---ooOOoo-- ++\-\-ooOOoo-\- + .PP + .B tdl below + .I index_to_insert_below +@@ -173,7 +173,7 @@ + appear as the first children of the parent node afterwards. + .P + .ce 1 +---ooOOoo-- ++\-\-ooOOoo-\- + .PP + .B tdl clone + .I index_to_clone ... +@@ -185,7 +185,7 @@ + to change its text. + .P + .ce 1 +---ooOOoo-- ++\-\-ooOOoo-\- + .PP + .B tdl copyto + .I new_parent_index +@@ -197,7 +197,7 @@ + children of an existing entry, rather than making them new top level entries. + .P + .ce 1 +---ooOOoo-- ++\-\-ooOOoo-\- + .PP + .B tdl create + .PP +@@ -217,7 +217,7 @@ + TDL_DATABASE. + .P + .ce 1 +---ooOOoo-- ++\-\-ooOOoo-\- + .PP + .B tdl defer + .I [@datespec] +@@ -233,7 +233,7 @@ + .P + which defers entries 1, 2.1 and all its children, and 5 until the following Friday. + To list deferred entries, use +-.I list -p ++.I list \-p + , to defer entries indefinitely, see + .I postpone + command. +@@ -242,7 +242,7 @@ + command. + .P + .ce 1 +---ooOOoo-- ++\-\-ooOOoo-\- + .PP + .B tdl done + .I @datespec +@@ -278,7 +278,7 @@ + section later in this page. + .P + .ce 1 +---ooOOoo-- ++\-\-ooOOoo-\- + .PP + .B tdl edit + .I index_to_change +@@ -294,7 +294,7 @@ + command. + .P + .ce 1 +---ooOOoo-- ++\-\-ooOOoo-\- + .PP + .B exit + .PP +@@ -308,7 +308,7 @@ + command, which loses all updates made during the current tdl run. + .P + .ce 1 +---ooOOoo-- ++\-\-ooOOoo-\- + .PP + .B tdl export + .I filename +@@ -322,14 +322,14 @@ + the original database. + .P + .ce 1 +---ooOOoo-- ++\-\-ooOOoo-\- + .PP + .B tdl help + .PP + This command displays a summary of use of each of the commands. + .P + .ce 1 +---ooOOoo-- ++\-\-ooOOoo-\- + .PP + .B tdl ignore + .I index_to_ignore ... +@@ -353,7 +353,7 @@ + it + .P + .ce 1 +---ooOOoo-- ++\-\-ooOOoo-\- + .PP + .B tdl import + .I filename +@@ -367,7 +367,7 @@ + wanted to merge their entries to form one combo database. + .P + .ce 1 +---ooOOoo-- ++\-\-ooOOoo-\- + .PP + .B tdl into + .I new_parent_index +@@ -381,23 +381,23 @@ + argument has ".0" appended to it. + .P + .ce 1 +---ooOOoo-- ++\-\-ooOOoo-\- + .PP + .B tdl list +-.I [-v] +-.I [-a] +-.I [-p] +-.I [-m] +-.I [-1...9] ++.I [\-v] ++.I [\-a] ++.I [\-p] ++.I [\-m] ++.I [\-1...9] + .I [] + .I [|...] + .br + .B tdll +-.I [-v] +-.I [-a] +-.I [-p] +-.I [-m] +-.I [-1...9] ++.I [\-v] ++.I [\-a] ++.I [\-p] ++.I [\-m] ++.I [\-1...9] + .I [] + .I [|