diff options
author | Mike Frysinger <vapier@gentoo.org> | 2010-09-15 21:56:19 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2010-09-15 21:56:19 +0000 |
commit | 68d3b4b9e8137c2ef371d506223c1aa13e39162e (patch) | |
tree | 706064988f1ba60b43ce35e6d5865d8c322a7eea /app-shells/dash/files | |
parent | Version bump. Stop using gdk_display. Translation updates. (diff) | |
download | gentoo-2-68d3b4b9e8137c2ef371d506223c1aa13e39162e.tar.gz gentoo-2-68d3b4b9e8137c2ef371d506223c1aa13e39162e.tar.bz2 gentoo-2-68d3b4b9e8137c2ef371d506223c1aa13e39162e.zip |
Update to latest 0.5.5.x Debian version. Drop 0.5.6.x for now since Debian no longer has it either. Fix octal parsing #337329 by Michał Górny.
(Portage version: 2.2_rc67/cvs/Linux x86_64)
Diffstat (limited to 'app-shells/dash/files')
-rw-r--r-- | app-shells/dash/files/dash-0.5.5.1-octal.patch | 29 | ||||
-rw-r--r-- | app-shells/dash/files/dash-0.5.6.1-read-ifs.patch | 70 |
2 files changed, 29 insertions, 70 deletions
diff --git a/app-shells/dash/files/dash-0.5.5.1-octal.patch b/app-shells/dash/files/dash-0.5.5.1-octal.patch new file mode 100644 index 000000000000..760e4ad56209 --- /dev/null +++ b/app-shells/dash/files/dash-0.5.5.1-octal.patch @@ -0,0 +1,29 @@ +http://bugs.gentoo.org/337329 + +do not interpret \\1 as an octal sequence. require it to start with \\0. + +--- a/src/bltin/printf.c ++++ b/src/bltin/printf.c +@@ -247,18 +247,10 @@ conv_escape_str(char *str) + * They start with a \0, and are followed by 0, 1, 2, + * or 3 octal digits. + */ +- if (ch == '0') { +- unsigned char i; +- i = 3; +- ch = 0; +- do { +- unsigned k = octtobin(*str); +- if (k > 7) +- break; +- str++; +- ch <<= 3; +- ch += k; +- } while (--i); ++ if (ch >= '1' && ch <= '9') { ++ /* Filter \1...\9; let \0 fall to conv_escape(). */ ++ ch = '\\'; ++ --str; + continue; + } + diff --git a/app-shells/dash/files/dash-0.5.6.1-read-ifs.patch b/app-shells/dash/files/dash-0.5.6.1-read-ifs.patch deleted file mode 100644 index ac52610639c8..000000000000 --- a/app-shells/dash/files/dash-0.5.6.1-read-ifs.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff --git a/src/expand.c b/src/expand.c -index f2f964c..3ba1a38 100644 ---- a/src/expand.c -+++ b/src/expand.c -@@ -205,7 +205,7 @@ expandarg(union node *arg, struct arglist *arglist, int flag) - * TODO - EXP_REDIR - */ - if (flag & EXP_FULL) { -- ifsbreakup(p, &exparg); -+ ifsbreakup(p, &exparg, 0); - *exparg.lastp = NULL; - exparg.lastp = &exparg.list; - expandmeta(exparg.list, flag); -@@ -1022,9 +1022,11 @@ recordregion(int start, int end, int nulonly) - * Break the argument string into pieces based upon IFS and add the - * strings to the argument list. The regions of the string to be - * searched for IFS characters have been stored by recordregion. -+ * If bltin is set, use bltinlookup to search for IFS in the -+ * environment of the currently executing built-in command. - */ - void --ifsbreakup(char *string, struct arglist *arglist) -+ifsbreakup(char *string, struct arglist *arglist, int bltin) - { - struct ifsregion *ifsp; - struct strlist *sp; -@@ -1040,7 +1042,13 @@ ifsbreakup(char *string, struct arglist *arglist) - if (ifslastp != NULL) { - ifsspc = 0; - nulonly = 0; -- realifs = ifsset() ? ifsval() : defifs; -+ if (!bltin) -+ realifs = ifsset() ? ifsval() : defifs; -+ else { -+ realifs = bltinlookup("IFS"); -+ if (realifs == NULL) -+ realifs = defifs; -+ } - ifsp = &ifsfirst; - do { - p = string + ifsp->begoff; -diff --git a/src/expand.h b/src/expand.h -index 405af0b..8eb5f07 100644 ---- a/src/expand.h -+++ b/src/expand.h -@@ -69,7 +69,7 @@ char *_rmescapes(char *, int); - int casematch(union node *, char *); - void recordregion(int, int, int); - void removerecordregions(int); --void ifsbreakup(char *, struct arglist *); -+void ifsbreakup(char *, struct arglist *, int bltin); - - /* From arith.y */ - intmax_t arith(const char *); -diff --git a/src/miscbltin.c b/src/miscbltin.c -index 5ab1648..6810f5f 100644 ---- a/src/miscbltin.c -+++ b/src/miscbltin.c -@@ -85,9 +85,10 @@ readcmd_handle_line(char *line, char **ap, size_t len) - backup = sstrdup(line); - - arglist.lastp = &arglist.list; -+ removerecordregions(0); - recordregion(0, len - 1, 0); - -- ifsbreakup(s, &arglist); -+ ifsbreakup(s, &arglist, 1); - *arglist.lastp = NULL; - removerecordregions(0); - |