diff options
author | An-Cheng Huang <ancheng@vyatta.com> | 2007-11-12 13:13:20 -0800 |
---|---|---|
committer | An-Cheng Huang <ancheng@vyatta.com> | 2007-11-14 16:16:47 -0800 |
commit | fc7695ee76400ee9833301f98a3fe483d64591b5 (patch) | |
tree | 15b568f5adfa956817cf9f5a1652c43d33d8efa9 /debian/patches | |
parent | b7fc9e0f6d6105ba2203f219743d4b269415e84b (diff) | |
download | vyatta-bash-fc7695ee76400ee9833301f98a3fe483d64591b5.tar.gz vyatta-bash-fc7695ee76400ee9833301f98a3fe483d64591b5.zip |
initial import from bash_3.1dfsg-8.diff.gzupstream
Diffstat (limited to 'debian/patches')
59 files changed, 7766 insertions, 0 deletions
diff --git a/debian/patches/bash-default-editor.dpatch b/debian/patches/bash-default-editor.dpatch new file mode 100755 index 0000000..1d0f44c --- /dev/null +++ b/debian/patches/bash-default-editor.dpatch @@ -0,0 +1,48 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Use `command -v editor`, as an editor, if available. + +--- bash/builtins/fc.def~ 2005-10-13 18:11:24.798452832 +0200 ++++ bash/builtins/fc.def 2005-10-13 19:36:11.956087320 +0200 +@@ -156,11 +156,11 @@ + #endif + + /* String to execute on a file that we want to edit. */ +-#define FC_EDIT_COMMAND "${FCEDIT:-${EDITOR:-vi}}" ++#define FC_EDIT_COMMAND "${FCEDIT:-${EDITOR:-$(command -v editor || echo vi)}}" + #if defined (STRICT_POSIX) + # define POSIX_FC_EDIT_COMMAND "${FCEDIT:-ed}" + #else +-# define POSIX_FC_EDIT_COMMAND "${FCEDIT:-${EDITOR:-ed}}" ++# define POSIX_FC_EDIT_COMMAND "${FCEDIT:-${EDITOR:-$(command -v editor || echo ed)}}" + #endif + + int +--- bash/bashline.c~ 2005-10-13 18:11:24.827448424 +0200 ++++ bash/bashline.c 2005-10-13 19:37:35.382404592 +0200 +@@ -800,8 +800,8 @@ + command being entered (if no explicit argument is given), otherwise on + a command from the history file. */ + +-#define VI_EDIT_COMMAND "fc -e \"${VISUAL:-${EDITOR:-vi}}\"" +-#define EMACS_EDIT_COMMAND "fc -e \"${VISUAL:-${EDITOR:-emacs}}\"" ++#define VI_EDIT_COMMAND "fc -e \"${VISUAL:-${EDITOR:-$(command -v editor || echo vi)}}\"" ++#define EMACS_EDIT_COMMAND "fc -e \"${VISUAL:-${EDITOR:-$(command -v editor || echo emacs)}}\"" + #define POSIX_VI_EDIT_COMMAND "fc -e vi" + + static int diff --git a/debian/patches/bash-subst-param-length.dpatch b/debian/patches/bash-subst-param-length.dpatch new file mode 100755 index 0000000..d84a4e3 --- /dev/null +++ b/debian/patches/bash-subst-param-length.dpatch @@ -0,0 +1,32 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +DP: ignore array subscript while determining variable name for length +DP: substitution +DP: (#345861) + +--- ../bash-3.1/subst.c 2006-01-14 01:12:02.000000000 +0100 ++++ subst.c 2006-01-14 01:12:39.000000000 +0100 +@@ -5814,7 +5814,7 @@ + { + t_index++; + free (name); +- temp1 = string_extract (string, &t_index, "#%:-=?+/}", 0); ++ temp1 = string_extract (string, &t_index, "#%:-=?+/}", EX_VARNAME); + name = (char *)xmalloc (3 + (strlen (temp1))); + *name = string[sindex]; + if (string[sindex] == '!') diff --git a/debian/patches/bash31-001.dpatch b/debian/patches/bash31-001.dpatch new file mode 100755 index 0000000..db4ac25 --- /dev/null +++ b/debian/patches/bash31-001.dpatch @@ -0,0 +1,123 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Fix parsing problems with compound assignments + + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-001 + +Bug-Reported-by: Mike Frysinger <vapier@gentoo.org> +Bug-Reference-ID: <20051212015924.GA820@toucan.gentoo.org> <20051214034438.GK1863@toucan.gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00030.html http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00041.html + +Bug-Description: + +There are parsing problems with compound assignments in several contexts, +including as arguments to builtins like `local', `eval', and `let', and +as multiple assignments in a single command. + +Patch: + +*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005 +--- parse.y Fri Dec 16 20:43:07 2005 +*************** +*** 3696,3700 **** + b = builtin_address_internal (token, 0); + if (b && (b->flags & ASSIGNMENT_BUILTIN)) +! parser_state |= PST_ASSIGNOK; + } + +--- 3696,3702 ---- + b = builtin_address_internal (token, 0); + if (b && (b->flags & ASSIGNMENT_BUILTIN)) +! parser_state |= PST_ASSIGNOK; +! else if (STREQ (token, "eval") || STREQ (token, "let")) +! parser_state |= PST_ASSIGNOK; + } + +*************** +*** 4687,4691 **** + { + WORD_LIST *wl, *rl; +! int tok, orig_line_number, orig_token_size; + char *saved_token, *ret; + +--- 4689,4693 ---- + { + WORD_LIST *wl, *rl; +! int tok, orig_line_number, orig_token_size, orig_last_token, assignok; + char *saved_token, *ret; + +*************** +*** 4693,4696 **** +--- 4695,4699 ---- + orig_token_size = token_buffer_size; + orig_line_number = line_number; ++ orig_last_token = last_read_token; + + last_read_token = WORD; /* WORD to allow reserved words here */ +*************** +*** 4699,4702 **** +--- 4702,4707 ---- + token_buffer_size = 0; + ++ assignok = parser_state&PST_ASSIGNOK; /* XXX */ ++ + wl = (WORD_LIST *)NULL; /* ( */ + parser_state |= PST_COMPASSIGN; +*************** +*** 4741,4745 **** + } + +! last_read_token = WORD; + if (wl) + { +--- 4746,4750 ---- + } + +! last_read_token = orig_last_token; /* XXX - was WORD? */ + if (wl) + { +*************** +*** 4753,4756 **** +--- 4758,4765 ---- + if (retlenp) + *retlenp = (ret && *ret) ? strlen (ret) : 0; ++ ++ if (assignok) ++ parser_state |= PST_ASSIGNOK; ++ + return ret; + } +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 0 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/debian/patches/bash31-002-doc.dpatch b/debian/patches/bash31-002-doc.dpatch new file mode 100644 index 0000000..3215ef2 --- /dev/null +++ b/debian/patches/bash31-002-doc.dpatch @@ -0,0 +1,145 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-002 + +Bug-Reported-by: vapier@gentoo.org +Bug-Reference-ID: <20051210223218.GD3324@toucan.gentoo.org> +Bug-Reference-URL:http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00021.html + +Bug-Description: + +This corrects several omissions in the bash documentation: It adds the new +options to `ulimit', the exact expansions for `case' patterns, clarification +of the language concerning the return value of `[[', and updated version +information. + +Patch: + +*** ../bash-3.1/doc/bashref.texi Mon Oct 3 15:07:21 2005 +--- doc/bashref.texi Fri Dec 30 10:50:39 2005 +*************** +*** 962,967 **** + is enabled, the match is performed without regard to the case + of alphabetic characters. +! The return value is 0 if the string matches or does not match +! the pattern, respectively, and 1 otherwise. + Any part of the pattern may be quoted to force it to be matched as a + string. +--- 962,967 ---- + is enabled, the match is performed without regard to the case + of alphabetic characters. +! The return value is 0 if the string matches (@samp{==}) or does not +! match (@samp{!=})the pattern, and 1 otherwise. + Any part of the pattern may be quoted to force it to be matched as a + string. +*************** +*** 2599,2603 **** + or inconvenient to obtain with separate utilities. + +! This section briefly the builtins which Bash inherits from + the Bourne Shell, as well as the builtin commands which are unique + to or have been extended in Bash. +--- 2597,2601 ---- + or inconvenient to obtain with separate utilities. + +! This section briefly describes the builtins which Bash inherits from + the Bourne Shell, as well as the builtin commands which are unique + to or have been extended in Bash. +*************** +*** 3834,3838 **** + @btindex ulimit + @example +! ulimit [-acdflmnpstuvSH] [@var{limit}] + @end example + @code{ulimit} provides control over the resources available to processes +--- 3834,3838 ---- + @btindex ulimit + @example +! ulimit [-acdfilmnpqstuvxSH] [@var{limit}] + @end example + @code{ulimit} provides control over the resources available to processes +*************** +*** 3858,3861 **** +--- 3858,3864 ---- + The maximum size of files created by the shell. + ++ @item -i ++ The maximum number of pending signals. ++ + @item -l + The maximum size that may be locked into memory. +*************** +*** 3870,3873 **** +--- 3873,3879 ---- + The pipe buffer size. + ++ @item -q ++ The maximum number of bytes in POSIX message queues. ++ + @item -s + The maximum stack size. +*************** +*** 3882,3885 **** +--- 3888,3894 ---- + The maximum amount of virtual memory available to the process. + ++ @item -x ++ The maximum number of file locks. ++ + @end table + +*************** +*** 4090,4095 **** + + @item -x +! Print a trace of simple commands, \fBfor\fP commands, \fBcase\fP +! commands, \fBselect\fP commands, and arithmetic \fBfor\fP commands + and their arguments or associated word lists after they are + expanded and before they are executed. The value of the @env{PS4} +--- 4103,4108 ---- + + @item -x +! Print a trace of simple commands, @code{for} commands, @code{case} +! commands, @code{select} commands, and arithmetic @code{for} commands + and their arguments or associated word lists after they are + expanded and before they are executed. The value of the @env{PS4} +*** ../bash-3.1/doc/version.texi Tue Sep 20 14:52:56 2005 +--- doc/version.texi Fri Dec 30 10:50:58 2005 +*************** +*** 3,10 **** + @end ignore + +! @set LASTCHANGE Mon Sep 5 11:47:04 EDT 2005 + +! @set EDITION 3.1-beta1 +! @set VERSION 3.1-beta1 +! @set UPDATED 5 September 2005 +! @set UPDATED-MONTH September 2005 +--- 3,10 ---- + @end ignore + +! @set LASTCHANGE Fri Dec 30 10:50:51 EST 2005 + +! @set EDITION 3.1 +! @set VERSION 3.1 +! @set UPDATED 30 December 2005 +! @set UPDATED-MONTH December 2005 diff --git a/debian/patches/bash31-002.dpatch b/debian/patches/bash31-002.dpatch new file mode 100755 index 0000000..42f17f6 --- /dev/null +++ b/debian/patches/bash31-002.dpatch @@ -0,0 +1,147 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-002 + +Bug-Reported-by: vapier@gentoo.org +Bug-Reference-ID: <20051210223218.GD3324@toucan.gentoo.org> +Bug-Reference-URL:http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00021.html + +Bug-Description: + +This corrects several omissions in the bash documentation: It adds the new +options to `ulimit', the exact expansions for `case' patterns, clarification +of the language concerning the return value of `[[', and updated version +information. + +Patch: + +*** ../bash-3.1/doc/bash.1 Wed Oct 12 11:40:52 2005 +--- doc/bash.1 Wed Dec 28 19:58:54 2005 +*************** +*** 7,16 **** + .\" chet@po.cwru.edu + .\" +! .\" Last Change: Sat Aug 27 13:28:44 EDT 2005 + .\" + .\" bash_builtins, strip all but Built-Ins section + .if \n(zZ=1 .ig zZ + .if \n(zY=1 .ig zY +! .TH BASH 1 "2005 Aug 27" "GNU Bash-3.1-beta1" + .\" + .\" There's some problem with having a `@' +--- 7,16 ---- + .\" chet@po.cwru.edu + .\" +! .\" Last Change: Wed Dec 28 19:58:45 EST 2005 + .\" + .\" bash_builtins, strip all but Built-Ins section + .if \n(zZ=1 .ig zZ + .if \n(zY=1 .ig zY +! .TH BASH 1 "2005 Dec 28" "GNU Bash-3.1" + .\" + .\" There's some problem with having a `@' +*************** +*** 678,683 **** + is enabled, the match is performed without regard to the case + of alphabetic characters. +! The return value is 0 if the string matches or does not match +! the pattern, respectively, and 1 otherwise. + Any part of the pattern may be quoted to force it to be matched as a + string. +--- 678,683 ---- + is enabled, the match is performed without regard to the case + of alphabetic characters. +! The return value is 0 if the string matches (\fB==\fP) or does not match +! (\fB!=\fP) the pattern, and 1 otherwise. + Any part of the pattern may be quoted to force it to be matched as a + string. +*************** +*** 808,811 **** +--- 808,817 ---- + .B Pathname Expansion + below). ++ The \fIword\fP is expanded using tilde ++ expansion, parameter and variable expansion, arithmetic substituion, ++ command substitution, process substitution and quote removal. ++ Each \fIpattern\fP examined is expanded using tilde ++ expansion, parameter and variable expansion, arithmetic substituion, ++ command substitution, and process substitution. + If the shell option + .B nocasematch +*************** +*** 8485,8489 **** + none are found. + .TP +! \fBulimit\fP [\fB\-SHacdflmnpstuv\fP [\fIlimit\fP]] + Provides control over the resources available to the shell and to + processes started by it, on systems that allow such control. +--- 8485,8489 ---- + none are found. + .TP +! \fBulimit\fP [\fB\-SHacdfilmnpqstuvx\fP [\fIlimit\fP]] + Provides control over the resources available to the shell and to + processes started by it, on systems that allow such control. +*************** +*** 8524,8527 **** +--- 8524,8530 ---- + The maximum size of files created by the shell + .TP ++ .B \-i ++ The maximum number of pending signals ++ .TP + .B \-l + The maximum size that may be locked into memory +*************** +*** 8537,8540 **** +--- 8540,8546 ---- + The pipe size in 512-byte blocks (this may not be set) + .TP ++ .B \-q ++ The maximum number of bytes in POSIX message queues ++ .TP + .B \-s + The maximum stack size +*************** +*** 8548,8551 **** +--- 8554,8560 ---- + .B \-v + The maximum amount of virtual memory available to the shell ++ .TP ++ .B \-x ++ The maximum number of file locks + .PD + .PP +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 1 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/debian/patches/bash31-003.dpatch b/debian/patches/bash31-003.dpatch new file mode 100755 index 0000000..0da5110 --- /dev/null +++ b/debian/patches/bash31-003.dpatch @@ -0,0 +1,64 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-003 + +Bug-Reported-by: Adam Buraczewski <adamb@nor.pl> +Bug-Reference-ID: <200512210950.jBL9o4C2008608@localhost.localdomain> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00055.html + +Bug-Description: + +A missing #define guard causes bash to not compile when readline is not +configured in, either as the result of explicit disabling or when the +`--enable-minimal-config' option is given to configure. + +Patch: + +*** ../bash-3.1/variables.c Sat Nov 12 21:22:37 2005 +--- variables.c Mon Dec 26 13:34:03 2005 +*************** +*** 861,867 **** +--- 863,871 ---- + char val[INT_STRLEN_BOUND(int) + 1], *v; + ++ #if defined (READLINE) + /* If we are currently assigning to LINES or COLUMNS, don't do anything. */ + if (winsize_assignment) + return; ++ #endif + + v = inttostr (lines, val, sizeof (val)); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 2 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/debian/patches/bash31-004.dpatch b/debian/patches/bash31-004.dpatch new file mode 100755 index 0000000..bb885b6 --- /dev/null +++ b/debian/patches/bash31-004.dpatch @@ -0,0 +1,65 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-004 + +Bug-Reported-by: Mike Frysinger <vapier@gentoo.org> +Bug-Reference-ID: <20051223172359.GF14579@toucan.gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00062.html + +Bug-Description: + +A local array variable declared at function scope that shadows a variable +of the same name declared in a previous scope did not create a separate +variable instance, but used the previous one. + +Patch: + +*** ../bash-3.1/subst.c Mon Oct 24 09:51:13 2005 +--- subst.c Fri Dec 30 12:11:53 2005 +*************** +*** 2188,2192 **** + { + v = find_variable (name); +! if (v == 0 || array_p (v) == 0) + v = make_local_array_variable (name); + v = assign_array_var_from_string (v, value, flags); +--- 2188,2192 ---- + { + v = find_variable (name); +! if (v == 0 || array_p (v) == 0 || v->context != variable_context) + v = make_local_array_variable (name); + v = assign_array_var_from_string (v, value, flags); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 3 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/debian/patches/bash31-005.dpatch b/debian/patches/bash31-005.dpatch new file mode 100755 index 0000000..8276092 --- /dev/null +++ b/debian/patches/bash31-005.dpatch @@ -0,0 +1,71 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-005 + +Bug-Reported-by: +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +When tilde expansion fails, POSIX leaves it unspecified whether or not the +word undergoes the additional word expansions. Bash-3.1 as distributed +skipped the rest of the expansions; this patch restores the bash-3.0 behavior. + +This means that something like + USER=ratbert + echo ~$USER + +will echo `~ratbert' rather than `~$USER'. + +Patch: + +*** ../bash-3.1/subst.c Mon Oct 24 09:51:13 2005 +--- subst.c Fri Dec 30 12:11:53 2005 +*************** +*** 6796,6799 **** +--- 6823,6832 ---- + { + temp1 = bash_tilde_expand (temp, tflag); ++ if (temp1 && *temp1 == '~' && STREQ (temp, temp1)) ++ { ++ FREE (temp); ++ FREE (temp1); ++ goto add_character; /* tilde expansion failed */ ++ } + free (temp); + temp = temp1; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 4 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/debian/patches/bash31-006.dpatch b/debian/patches/bash31-006.dpatch new file mode 100755 index 0000000..c1e9908 --- /dev/null +++ b/debian/patches/bash31-006.dpatch @@ -0,0 +1,77 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Upstream patch bash31-006 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-006 + +Bug-Reported-by: Mike Frysinger <vapier@gentoo.org> +Bug-Reference-ID: <200601120613.11907.vapier@gentoo.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00045.html + +Bug-Description: + +Under some circumstances, Bash can use an incorrect setting for the flag +that indicates whether or not the terminal can auto-wrap, resulting in line- +wrapping errors. + +Patch: + +*** ../bash-3.1/lib/readline/terminal.c Sat Nov 12 20:46:54 2005 +--- lib/readline/terminal.c Tue Jan 31 10:57:54 2006 +*************** +*** 123,127 **** + + /* Non-zero means the terminal can auto-wrap lines. */ +! int _rl_term_autowrap; + + /* Non-zero means that this terminal has a meta key. */ +--- 126,130 ---- + + /* Non-zero means the terminal can auto-wrap lines. */ +! int _rl_term_autowrap = -1; + + /* Non-zero means that this terminal has a meta key. */ +*************** +*** 275,278 **** +--- 278,284 ---- + int rows, cols; + { ++ if (_rl_term_autowrap == -1) ++ _rl_init_terminal_io (rl_terminal_name); ++ + if (rows > 0) + _rl_screenheight = rows; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 5 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/debian/patches/bash31-007.dpatch b/debian/patches/bash31-007.dpatch new file mode 100755 index 0000000..09b7639 --- /dev/null +++ b/debian/patches/bash31-007.dpatch @@ -0,0 +1,140 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Upstream patch bash31-007 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-007 + +Bug-Reported-by: Tim Waugh <twaugh@redhat.com>, Laird Breyer <laird@lbreyer.com> +Bug-Reference-ID: <20060105174434.GY16000@redhat.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00009.html + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=347695 + +Bug-Description: + +When the number of saved jobs exceeds the initial size of the jobs array +(4096 slots), the array must be compacted and reallocated. An error in +the code to do that could cause a segmentation fault. + +Patch: + +*** ../bash-3.1/jobs.c Fri Nov 11 23:13:27 2005 +--- jobs.c Wed Feb 1 13:55:38 2006 +*************** +*** 845,851 **** + { + sigset_t set, oset; +! int nsize, i, j; + JOB **nlist; + + nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS); + nsize *= JOB_SLOTS; +--- 888,895 ---- + { + sigset_t set, oset; +! int nsize, i, j, ncur, nprev; + JOB **nlist; + ++ ncur = nprev = NO_JOB; + nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS); + nsize *= JOB_SLOTS; +*************** +*** 855,869 **** + + BLOCK_CHILD (set, oset); +! nlist = (JOB **) xmalloc (nsize * sizeof (JOB *)); + for (i = j = 0; i < js.j_jobslots; i++) + if (jobs[i]) +! nlist[j++] = jobs[i]; + + js.j_firstj = 0; +! js.j_lastj = (j > 0) ? j - 1: 0; + js.j_jobslots = nsize; + +! free (jobs); +! jobs = nlist; + + UNBLOCK_CHILD (oset); +--- 899,947 ---- + + BLOCK_CHILD (set, oset); +! nlist = (js.j_jobslots == nsize) ? jobs : (JOB **) xmalloc (nsize * sizeof (JOB *)); +! + for (i = j = 0; i < js.j_jobslots; i++) + if (jobs[i]) +! { +! if (i == js.j_current) +! ncur = j; +! if (i == js.j_previous) +! nprev = j; +! nlist[j++] = jobs[i]; +! } +! +! #if defined (DEBUG) +! itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize); +! itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0); +! itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, (j > 0) ? j - 1 : 0); +! #endif + + js.j_firstj = 0; +! js.j_lastj = (j > 0) ? j - 1 : 0; +! js.j_njobs = j; + js.j_jobslots = nsize; + +! /* Zero out remaining slots in new jobs list */ +! for ( ; j < nsize; j++) +! nlist[j] = (JOB *)NULL; +! +! if (jobs != nlist) +! { +! free (jobs); +! jobs = nlist; +! } +! +! if (ncur != NO_JOB) +! js.j_current = ncur; +! if (nprev != NO_JOB) +! js.j_previous = nprev; +! +! /* Need to reset these */ +! if (js.j_current == NO_JOB || js.j_previous == NO_JOB || js.j_current > js.j_lastj || js.j_previous > js.j_lastj) +! reset_current (); +! +! #ifdef DEBUG +! itrace ("realloc_jobs_list: reset js.j_current (%d) and js.j_previous (%d)", js.j_current, js.j_previous); +! #endif + + UNBLOCK_CHILD (oset); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 6 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/debian/patches/bash31-008.dpatch b/debian/patches/bash31-008.dpatch new file mode 100755 index 0000000..5a2049d --- /dev/null +++ b/debian/patches/bash31-008.dpatch @@ -0,0 +1,70 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Upstream patch bash31-008 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-008 + +Bug-Reported-by: Ingemar Nilsson <init@kth.se> +Bug-Reference-ID: <43C38D35.7020404@kth.se> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00044.html + +Bug-Description: + +In some cases, bash inappropriately allows SIGINT from the terminal to +reach background processes. + +Patch: + +*** ../bash-3.1/jobs.c Fri Nov 11 23:13:27 2005 +--- jobs.c Wed Feb 1 13:55:38 2006 +*************** +*** 2199,2203 **** + wait_sigint_received = 0; + if (job_control == 0) +! old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); + + termination_state = last_command_exit_value; +--- 2298,2306 ---- + wait_sigint_received = 0; + if (job_control == 0) +! { +! old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); +! if (old_sigint_handler == SIG_IGN) +! set_signal_handler (SIGINT, old_sigint_handler); +! } + + termination_state = last_command_exit_value; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 7 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/debian/patches/bash31-009.dpatch b/debian/patches/bash31-009.dpatch new file mode 100755 index 0000000..ec1eee1 --- /dev/null +++ b/debian/patches/bash31-009.dpatch @@ -0,0 +1,85 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Upstream patch bash31-009 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-009 + +Bug-Reported-by: Joshua Neuheisel <jneuheisel@gmail.com> +Bug-Reference-ID: <25d873330601140820v4ad8efd2t8bf683b073c138b3@mail.gmail.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00062.html + +Bug-Description: + +Under some circumstances, background (asynchronous) jobs can set the terminal +process group incorrectly. This can cause a foreground process (including +the foreground shell) to get read errors and exit. + +Patch: + +*** ../bash-3.1/jobs.c Fri Nov 11 23:13:27 2005 +--- jobs.c Wed Feb 1 13:55:38 2006 +*************** +*** 620,625 **** + * the parent gives it away. + * + */ +! if (job_control && newjob->pgrp) + give_terminal_to (newjob->pgrp, 0); + } +--- 634,642 ---- + * the parent gives it away. + * ++ * Don't give the terminal away if this shell is an asynchronous ++ * subshell. ++ * + */ +! if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0) + give_terminal_to (newjob->pgrp, 0); + } +*************** +*** 1656,1660 **** + shell's process group (we could be in the middle of a + pipeline, for example). */ +! if (async_p == 0 && pipeline_pgrp != shell_pgrp) + give_terminal_to (pipeline_pgrp, 0); + +--- 1743,1747 ---- + shell's process group (we could be in the middle of a + pipeline, for example). */ +! if (async_p == 0 && pipeline_pgrp != shell_pgrp && ((subshell_environment&SUBSHELL_ASYNC) == 0)) + give_terminal_to (pipeline_pgrp, 0); + +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 8 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/debian/patches/bash31-010.dpatch b/debian/patches/bash31-010.dpatch new file mode 100755 index 0000000..ad00d2b --- /dev/null +++ b/debian/patches/bash31-010.dpatch @@ -0,0 +1,183 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Upstream patch bash31-010 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-010 + +Bug-Reported-by: vw@vonwolff.de +Bug-Reference-ID: <20060123135234.1AC2F1D596@wst07.vonwolff.de> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00090.html + +Bug-Description: + +There is a difference in behavior between bash-3.0 and bash-3.1 involving +parsing of single- and double-quoted strings occurring in old-style +command substitution. The difference has to do with how backslashes are +processed. This patch restores a measure of backwards compatibility while +the question of POSIX conformance and ultimately correct behavior is discussed. + +THIS IS AN UPDATED PATCH. USE THIS COMMAND TO REVERSE THE EFFECTS OF +THE ORIGINAL PATCH. THE CURRENT DIRECTORY MUST BE THE BASH-3.1 SOURCE +DIRECTORY. + +patch -p0 -R < bash31-010.orig + +Then apply this patch as usual. + +Patch: + +*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005 +--- parse.y Thu Feb 23 08:21:12 2006 +*************** +*** 2716,2721 **** +--- 2723,2729 ---- + #define P_ALLOWESC 0x02 + #define P_DQUOTE 0x04 + #define P_COMMAND 0x08 /* parsing a command, so look for comments */ ++ #define P_BACKQUOTE 0x10 /* parsing a backquoted command substitution */ + + static char matched_pair_error; + static char * +*************** +*** 2725,2736 **** + int *lenp, flags; + { + int count, ch, was_dollar, in_comment, check_comment; +! int pass_next_character, nestlen, ttranslen, start_lineno; + char *ret, *nestret, *ttrans; + int retind, retsize, rflags; + + count = 1; +! pass_next_character = was_dollar = in_comment = 0; + check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0; + + /* RFLAGS is the set of flags we want to pass to recursive calls. */ +--- 2733,2744 ---- + int *lenp, flags; + { + int count, ch, was_dollar, in_comment, check_comment; +! int pass_next_character, backq_backslash, nestlen, ttranslen, start_lineno; + char *ret, *nestret, *ttrans; + int retind, retsize, rflags; + + count = 1; +! pass_next_character = backq_backslash = was_dollar = in_comment = 0; + check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0; + + /* RFLAGS is the set of flags we want to pass to recursive calls. */ +*************** +*** 2742,2752 **** + start_lineno = line_number; + while (count) + { +! #if 0 +! ch = shell_getc ((qc != '\'' || (flags & P_ALLOWESC)) && pass_next_character == 0); +! #else +! ch = shell_getc (qc != '\'' && pass_next_character == 0); +! #endif + if (ch == EOF) + { + free (ret); +--- 2750,2757 ---- + start_lineno = line_number; + while (count) + { +! ch = shell_getc (qc != '\'' && pass_next_character == 0 && backq_backslash == 0); +! + if (ch == EOF) + { + free (ret); +*************** +*** 2771,2779 **** + continue; + } + /* Not exactly right yet */ +! else if (check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind -1]))) + in_comment = 1; + + if (pass_next_character) /* last char was backslash */ + { + pass_next_character = 0; +--- 2776,2791 ---- + continue; + } + /* Not exactly right yet */ +! else if MBTEST(check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind - 1]))) + in_comment = 1; + ++ /* last char was backslash inside backquoted command substitution */ ++ if (backq_backslash) ++ { ++ backq_backslash = 0; ++ /* Placeholder for adding special characters */ ++ } ++ + if (pass_next_character) /* last char was backslash */ + { + pass_next_character = 0; +*************** +*** 2814,2819 **** +--- 2824,2831 ---- + { + if MBTEST((flags & P_ALLOWESC) && ch == '\\') + pass_next_character++; ++ else if MBTEST((flags & P_BACKQUOTE) && ch == '\\') ++ backq_backslash++; + continue; + } + +*************** +*** 2898,2904 **** + } + else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0) + { +! nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags); + goto add_nestret; + } + else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ +--- 2910,2920 ---- + } + else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0) + { +! /* Add P_BACKQUOTE so backslash quotes the next character and +! shell_getc does the right thing with \<newline>. We do this for +! a measure of backwards compatibility -- it's not strictly the +! right POSIX thing. */ +! nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags|P_BACKQUOTE); + goto add_nestret; + } + else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */ +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 9 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/debian/patches/bash31-011.dpatch b/debian/patches/bash31-011.dpatch new file mode 100755 index 0000000..23b910e --- /dev/null +++ b/debian/patches/bash31-011.dpatch @@ -0,0 +1,66 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Upstream patch bash31-011 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-011 + +Bug-Reported-by: Mike Stroyan <mike.stroyan@hp.com> +Bug-Reference-ID: <E1EvwxP-0004LD-GC@localhost.localdomain> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00033.html + +Bug-Description: + +A change in bash-3.1 caused the single quotes to be stripped from ANSI-C +quoting inside double-quoted command substitutions. + +Patch: + +*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005 +--- parse.y Wed Jan 25 14:55:18 2006 +*************** +*** 2908,2912 **** + count--; + if (ch == '(') /* ) */ +! nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags); + else if (ch == '{') /* } */ + nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); +--- 2914,2918 ---- + count--; + if (ch == '(') /* ) */ +! nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags & ~P_DQUOTE); + else if (ch == '{') /* } */ + nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 10 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 11 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/debian/patches/bash31-012.dpatch b/debian/patches/bash31-012.dpatch new file mode 100755 index 0000000..0234702 --- /dev/null +++ b/debian/patches/bash31-012.dpatch @@ -0,0 +1,66 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Upstream patch bash31-012 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-012 + +Bug-Reported-by: Alexander Kshevetskiy <alex@dgap.mipt.ru> +Bug-Reference-ID: <308374997.20060124175849@dgap.mipt.ru> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00097.html + +Bug-Description: + +There is a parsing problem involving parentheses in assignment statements +that causes words to be terminated prematurely. + +Patch: + +*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005 +--- parse.y Wed Jan 25 14:55:18 2006 +*************** +*** 3579,3583 **** + all_digit_token = 0; + compound_assignment = 1; +! #if 0 + goto next_character; + #else +--- 3584,3588 ---- + all_digit_token = 0; + compound_assignment = 1; +! #if 1 + goto next_character; + #else +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 11 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 12 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/debian/patches/bash31-013.dpatch b/debian/patches/bash31-013.dpatch new file mode 100755 index 0000000..b64cfc1 --- /dev/null +++ b/debian/patches/bash31-013.dpatch @@ -0,0 +1,63 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Upstream patch bash31-013 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-013 + +Bug-Reported-by: Bob Rossi <bob@brasko.net> +Bug-Reference-ID: <43F60606.80708@case.edu> +Bug-Reference-URL: + +Bug-Description: + +In some cases, readline will reference freed memory when attempting to +display a portion of the prompt. + +Patch: + +*** ../bash-3.1-patched/lib/readline/readline.c Mon Jul 4 22:29:35 2005 +--- lib/readline/readline.c Fri Feb 17 22:54:22 2006 +*************** +*** 282,287 **** +--- 282,288 ---- + { + FREE (rl_prompt); + rl_prompt = prompt ? savestring (prompt) : (char *)NULL; ++ rl_display_prompt = rl_prompt ? rl_prompt : ""; + + rl_visible_prompt_length = rl_expand_prompt (rl_prompt); + return 0; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 12 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 13 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/debian/patches/bash31-014.dpatch b/debian/patches/bash31-014.dpatch new file mode 100755 index 0000000..6bf598d --- /dev/null +++ b/debian/patches/bash31-014.dpatch @@ -0,0 +1,124 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Upstream patch bash31-014 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-014 + +Bug-Reported-by: Mike Stroyan <mike.stroyan@hp.com> +Bug-Reference-ID: <20060203191607.GC27614@localhost> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00004.html + +Bug-Description: + +The displayed search prompt is corrupted when using non-incremental +searches in vi and emacs mode if the prompt contains non-printing +characters or spans multiple lines. The prompt is expanded more than +once; the second time without the escape sequences that protect non- +printing characters from the length calculations. + +Patch: + +*** ../bash-3.1-patched/lib/readline/display.c Wed Nov 30 14:05:02 2005 +--- lib/readline/display.c Sat Feb 18 12:14:58 2006 +*************** +*** 1983,1993 **** + int pchar; + { + int len; +! char *pmt; + + rl_save_prompt (); + +! if (saved_local_prompt == 0) + { + len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0; + pmt = (char *)xmalloc (len + 2); +--- 1998,2012 ---- + int pchar; + { + int len; +! char *pmt, *p; + + rl_save_prompt (); + +! /* We've saved the prompt, and can do anything with the various prompt +! strings we need before they're restored. We want the unexpanded +! portion of the prompt string after any final newline. */ +! p = rl_prompt ? strrchr (rl_prompt, '\n') : 0; +! if (p == 0) + { + len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0; + pmt = (char *)xmalloc (len + 2); +*************** +*** 1998,2016 **** + } + else + { +! len = *saved_local_prompt ? strlen (saved_local_prompt) : 0; + pmt = (char *)xmalloc (len + 2); + if (len) +! strcpy (pmt, saved_local_prompt); + pmt[len] = pchar; + pmt[len+1] = '\0'; +! local_prompt = savestring (pmt); +! prompt_last_invisible = saved_last_invisible; +! prompt_visible_length = saved_visible_length + 1; +! } + + prompt_physical_chars = saved_physical_chars + 1; +- + return pmt; + } + +--- 2017,2033 ---- + } + else + { +! p++; +! len = strlen (p); + pmt = (char *)xmalloc (len + 2); + if (len) +! strcpy (pmt, p); + pmt[len] = pchar; + pmt[len+1] = '\0'; +! } + ++ /* will be overwritten by expand_prompt, called from rl_message */ + prompt_physical_chars = saved_physical_chars + 1; + return pmt; + } + +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 13 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 14 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/debian/patches/bash31-015.dpatch b/debian/patches/bash31-015.dpatch new file mode 100755 index 0000000..f196e20 --- /dev/null +++ b/debian/patches/bash31-015.dpatch @@ -0,0 +1,125 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Upstream patch bash31-015 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-015 + +Bug-Reported-by: Benoit Vila +Bug-Reference-ID: <43FCA614.1090108@free.fr> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00058.html + +Bug-Description: + +A problem with the extended globbing code prevented dots from matching +filenames when used in some extended matching patterns. + +Patch: + +*** ../bash-3.1-patched/lib/glob/sm_loop.c Sun Oct 16 21:21:04 2005 +--- lib/glob/sm_loop.c Mon Feb 27 17:18:43 2006 +*************** +*** 639,643 **** + CHAR *pnext; /* pointer to next sub-pattern */ + CHAR *srest; /* pointer to rest of string */ +! int m1, m2; + + #if DEBUG_MATCHING +--- 638,642 ---- + CHAR *pnext; /* pointer to next sub-pattern */ + CHAR *srest; /* pointer to rest of string */ +! int m1, m2, xflags; /* xflags = flags passed to recursive matches */ + + #if DEBUG_MATCHING +*************** +*** 645,648 **** +--- 644,648 ---- + fprintf(stderr, "extmatch: s = %s; se = %s\n", s, se); + fprintf(stderr, "extmatch: p = %s; pe = %s\n", p, pe); ++ fprintf(stderr, "extmatch: flags = %d\n", flags); + #endif + +*************** +*** 678,683 **** + multiple matches of the pattern. */ + if (m1) +! m2 = (GMATCH (srest, se, prest, pe, flags) == 0) || +! (s != srest && GMATCH (srest, se, p - 1, pe, flags) == 0); + if (m1 && m2) + return (0); +--- 678,687 ---- + multiple matches of the pattern. */ + if (m1) +! { +! /* if srest > s, we are not at start of string */ +! xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; +! m2 = (GMATCH (srest, se, prest, pe, xflags) == 0) || +! (s != srest && GMATCH (srest, se, p - 1, pe, xflags) == 0); +! } + if (m1 && m2) + return (0); +*************** +*** 705,710 **** + for ( ; srest <= se; srest++) + { + if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 && +! GMATCH (srest, se, prest, pe, flags) == 0) + return (0); + } +--- 709,716 ---- + for ( ; srest <= se; srest++) + { ++ /* if srest > s, we are not at start of string */ ++ xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; + if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 && +! GMATCH (srest, se, prest, pe, xflags) == 0) + return (0); + } +*************** +*** 727,731 **** + break; + } +! if (m1 == 0 && GMATCH (srest, se, prest, pe, flags) == 0) + return (0); + } +--- 733,739 ---- + break; + } +! /* if srest > s, we are not at start of string */ +! xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; +! if (m1 == 0 && GMATCH (srest, se, prest, pe, xflags) == 0) + return (0); + } +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 14 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 15 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/debian/patches/bash31-016.dpatch b/debian/patches/bash31-016.dpatch new file mode 100755 index 0000000..ce7c18c --- /dev/null +++ b/debian/patches/bash31-016.dpatch @@ -0,0 +1,70 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Upstream patch bash31-016 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-016 + +Bug-Reported-by: Nikita Danilov <nikita@clusterfs.com> +Bug-Reference-ID: <17397.51015.769854.541057@gargle.gargle.HOWL> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00064.html + +Bug-Description: + +Bash will dump core when attempting to perform globbing in directories with +very large numbers of files. + +Patch: + +*** ../bash-3.1-patched/lib/glob/glob.c Thu Mar 24 12:42:27 2005 +--- lib/glob/glob.c Fri Mar 3 16:54:12 2006 +*************** +*** 361,364 **** +--- 361,365 ---- + + firstmalloc = 0; ++ nalloca = 0; + + /* If PAT is empty, skip the loop, but return one (empty) filename. */ +*************** +*** 547,550 **** +--- 551,556 ---- + tmplink = lastlink; + } ++ else ++ tmplink = 0; + free (lastlink->name); + lastlink = lastlink->next; +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 15 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 16 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/debian/patches/bash31-017.dpatch b/debian/patches/bash31-017.dpatch new file mode 100755 index 0000000..19c9143 --- /dev/null +++ b/debian/patches/bash31-017.dpatch @@ -0,0 +1,150 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Upstream patch bash31-017 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.1 +Patch-ID: bash31-017 + +Bug-Reported-by: syphir@syphir.sytes.net +Bug-Reference-ID: <442421F5.3010105@syphir.sytes.net> +Bug-Reference-URL: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=358831 + +Bug-Description: + +Array expansion fails with an arithmetic syntax error when the subscript +appears within double quotes. For example: ${a["4"]}. + +Patch: + +*** ../bash-3.1-patched/subst.c Wed Apr 12 08:47:08 2006 +--- subst.c Wed Apr 12 08:49:02 2006 +*************** +*** 2576,2579 **** +--- 2576,2586 ---- + } + ++ char * ++ expand_arith_string (string, quoted) ++ char *string; ++ { ++ return (expand_string_if_necessary (string, quoted, expand_string)); ++ } ++ + #if defined (COND_COMMAND) + /* Just remove backslashes in STRING. Returns a new string. */ +*************** +*** 5249,5253 **** + t = (char *)0; + +! temp1 = expand_string_if_necessary (substr, Q_DOUBLE_QUOTES, expand_string); + *e1p = evalexp (temp1, &expok); + free (temp1); +--- 5256,5260 ---- + t = (char *)0; + +! temp1 = expand_arith_string (substr, Q_DOUBLE_QUOTES); + *e1p = evalexp (temp1, &expok); + free (temp1); +*************** +*** 5294,5298 **** + t++; + temp2 = savestring (t); +! temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string); + free (temp2); + t[-1] = ':'; +--- 5301,5305 ---- + t++; + temp2 = savestring (t); +! temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES); + free (temp2); + t[-1] = ':'; +*************** +*** 6436,6440 **** + + /* Expand variables found inside the expression. */ +! temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string); + free (temp2); + +--- 6443,6447 ---- + + /* Expand variables found inside the expression. */ +! temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES); + free (temp2); + +*************** +*** 6478,6482 **** + + /* Do initial variable expansion. */ +! temp1 = expand_string_if_necessary (temp, Q_DOUBLE_QUOTES, expand_string); + + goto arithsub; +--- 6485,6489 ---- + + /* Do initial variable expansion. */ +! temp1 = expand_arith_string (temp, Q_DOUBLE_QUOTES); + + goto arithsub; +*** ../bash-3.1-patched/subst.h Sun Nov 7 15:12:28 2004 +--- subst.h Mon Mar 27 09:10:38 2006 +*************** +*** 152,155 **** +--- 152,158 ---- + extern char *expand_assignment_string_to_string __P((char *, int)); + ++ /* Expand an arithmetic expression string */ ++ extern char *expand_arith_string __P((char *, int)); ++ + /* De-quoted quoted characters in STRING. */ + extern char *dequote_string __P((char *)); +*** ../bash-3.1-patched/arrayfunc.c Mon Jul 4 20:25:58 2005 +--- arrayfunc.c Mon Mar 27 09:10:47 2006 +*************** +*** 593,601 **** + strncpy (exp, s, len - 1); + exp[len - 1] = '\0'; +! #if 0 +! t = expand_string_to_string (exp, 0); +! #else +! t = expand_string_to_string (exp, Q_DOUBLE_QUOTES); +! #endif + this_command_name = (char *)NULL; + val = evalexp (t, &expok); +--- 591,595 ---- + strncpy (exp, s, len - 1); + exp[len - 1] = '\0'; +! t = expand_arith_string (exp, 0); + this_command_name = (char *)NULL; + val = evalexp (t, &expok); +*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005 +--- patchlevel.h Wed Dec 7 13:48:42 2005 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 16 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 17 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/debian/patches/bashbug-editor.dpatch b/debian/patches/bashbug-editor.dpatch new file mode 100755 index 0000000..cb52ebd --- /dev/null +++ b/debian/patches/bashbug-editor.dpatch @@ -0,0 +1,31 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: send bug reports to Debian bash maintainer too. + +diff -urb bash.orig/support/bashbug.sh bash/support/bashbug.sh +--- bash.orig/support/bashbug.sh 2002-04-16 23:15:15.000000000 +0200 ++++ bash/support/bashbug.sh 2003-09-27 23:35:04.000000000 +0200 +@@ -134,6 +134,7 @@ + esac ;; + esac + ++BUGBASH="${BUGBASH},bash@packages.debian.org" + BUGADDR="${1-$BUGBASH}" + + if [ -z "$DEFEDITOR" ] && [ -z "$EDITOR" ]; then +Only in bash/support: bashbug.sh.orig diff --git a/debian/patches/bashdb-updates.dpatch b/debian/patches/bashdb-updates.dpatch new file mode 100644 index 0000000..13a6b24 --- /dev/null +++ b/debian/patches/bashdb-updates.dpatch @@ -0,0 +1,24 @@ +#! /bin/sh -e + +dir=. +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir=$3 +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + cd $dir && autoconf + ;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Debian updates to bashdb + diff --git a/debian/patches/bashdb.dpatch b/debian/patches/bashdb.dpatch new file mode 100644 index 0000000..7a330d1 --- /dev/null +++ b/debian/patches/bashdb.dpatch @@ -0,0 +1,56 @@ +#! /bin/sh -e + +dir=. +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir=$3 +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + rm -f $dir/aclocal.m4 + rm -f $dir/configure + rm -f $dir/doc/bashref.info + rm -f $dir/examples/bashdb/bashdb.el + rm -f $dir/lib/readline/doc/Makefile + rm -f $dir/parser-built + rm -f $dir/pathnames.h + rm -f $dir/y.tab.[ch] + (cd $dir && aclocal -I . -I debugger) + (cd $dir && autoconf) + for i in config.guess config.sub elisp-comp install-sh \ + missing mkinstalldirs + do + cp -p /usr/share/automake-1.7/$i $dir/debugger/ + done + for i in mdate-sh texinfo.tex; do + cp -p /usr/share/automake-1.7/$i $dir/debugger/doc/ + done + (cd $dir/debugger && aclocal -I ..) + cp -p $dir/debugger/elisp-comp $dir/debugger/emacs/. + (cd $dir/debugger && automake) + (cd $dir/debugger && autoconf) + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p1 < $0 + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# how to construct this file: +# - unpack the upstream bash source +# - unpack the bashdb source +# - apply bash the seven bash upstream patches +# - diff -ur --unidirectional-new-file \ + --exclude CVS --exclude=.cvsignore --exclude=/db/ \ +# bash-2.05b bashdb + +# DP: bashdb changes + +diff -ur --unidirectional-new-file --exclude CVS --exclude=.cvsignore bash-2.05b/ChangeLog cvs/ChangeLog diff --git a/debian/patches/command-not-found-doc.dpatch b/debian/patches/command-not-found-doc.dpatch new file mode 100644 index 0000000..2ec9a23 --- /dev/null +++ b/debian/patches/command-not-found-doc.dpatch @@ -0,0 +1,35 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Add command_not_found_handle in interactive non POSIX mode + +--- bash/doc/bashref.texi~ 2004-06-26 20:26:07.000000000 +0200 ++++ bash/doc/bashref.texi 2004-08-28 15:06:27.000000000 +0200 +@@ -4734,6 +4734,13 @@ + @item UID + The numeric real user id of the current user. This variable is readonly. + ++@item command_not_found_handle ++The name of a shell function to be called if a command cannot be ++found. The return value of this function should be 0, if the command ++is available after execution of the function, otherwise 127 (EX_NOTFOUND). ++Enabled only in interactive, non POSIX mode shells. This is a Debian ++extension. ++ + @end vtable + + @node Bash Features diff --git a/debian/patches/command-not-found.dpatch b/debian/patches/command-not-found.dpatch new file mode 100755 index 0000000..b1feb22 --- /dev/null +++ b/debian/patches/command-not-found.dpatch @@ -0,0 +1,66 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Add command_not_found_handle in interactive non POSIX mode + +--- bash/execute_cmd.c~ 2004-08-28 14:43:04.000000000 +0200 ++++ bash/execute_cmd.c 2004-08-28 14:54:57.000000000 +0200 +@@ -3615,8 +3615,26 @@ + + if (command == 0) + { +- internal_error (_("%s: command not found"), pathname); +- exit (EX_NOTFOUND); /* Posix.2 says the exit status is 127 */ ++ SHELL_VAR *f, *v; ++ WORD_LIST *cmdlist; ++ WORD_DESC *w; ++ int fval; ++ if( (posixly_correct || interactive_shell == 0) || ++ (f = find_function ("command_not_found_handle")) == 0) ++ { ++ internal_error (_("%s: command not found"), pathname); ++ exit (EX_NOTFOUND); /* Posix.2 says the exit status is 127 */ ++ } ++ w = make_word("command_not_found_handle"); ++ cmdlist = make_word_list(w, (WORD_LIST*)NULL); ++ ++ w = make_word(pathname); ++ cmdlist->next = make_word_list(w, (WORD_LIST*)NULL); ++ ++ fval = execute_shell_function (f, cmdlist); ++ if (fval == EX_NOTFOUND) ++ internal_error (_("%s: command not found"), pathname); ++ exit(fval); + } + + /* Execve expects the command name to be in args[0]. So we +--- bash/doc/bash.1~ 2004-08-06 08:01:10.000000000 +0200 ++++ bash/doc/bash.1 2004-08-28 15:03:13.000000000 +0200 +@@ -1972,6 +1972,13 @@ + .B % + job identifier. + .TP ++.B command_not_found_handle ++The name of a shell function to be called if a command cannot be ++found. The return value of this function should be 0, if the command ++is available after execution of the function, otherwise 127 (EX_NOTFOUND). ++Enabled only in interactive, non POSIX mode shells. This is a Debian ++extension. ++.TP + .B histchars + The two or three characters which control history expansion + and tokenization (see diff --git a/debian/patches/deb-bash-config.dpatch b/debian/patches/deb-bash-config.dpatch new file mode 100755 index 0000000..1aa1e45 --- /dev/null +++ b/debian/patches/deb-bash-config.dpatch @@ -0,0 +1,81 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Changed compile time configuration options: +# DP: +# DP: - Set the default path to comply with Debian policy +# DP: +# DP: - Enable System-wide .bashrc file for interactive shells. +# DP: +# DP: - Enable System-wide .bash.logout file for interactive shells. +# DP: +# DP: - make non-interactive shells begun with argv[0][0] == '-' +# DP: run the startup files when not in posix mode. +# DP: +# DP: - try to check whether bash is being run by sshd and source +# DP: the .bashrc if so (like the rshd behavior). +# DP: +# DP: - don't define a default DEFAULT_MAIL_DIRECTORY, because it +# DP: can cause a timeout on NFS mounts. + +--- bash/config-bot.h~ 2003-09-19 21:57:38.000000000 +0200 ++++ bash/config-bot.h 2003-10-09 21:06:01.000000000 +0200 +@@ -178,4 +178,4 @@ + /******************************************************************/ + + /* If you don't want bash to provide a default mail file to check. */ +-/* #undef DEFAULT_MAIL_DIRECTORY */ ++#undef DEFAULT_MAIL_DIRECTORY +--- bash-3.1-alpha1/config-top.h 2005-04-29 20:36:34.000000000 +0000 ++++ bash/config-top.h 2005-09-09 19:26:41.923569456 +0000 +@@ -52,14 +52,14 @@ + /* The default value of the PATH variable. */ + #ifndef DEFAULT_PATH_VALUE + #define DEFAULT_PATH_VALUE \ +- "/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:." ++ "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + #endif + + /* The value for PATH when invoking `command -p'. This is only used when + the Posix.2 confstr () function, or CS_PATH define are not present. */ + #ifndef STANDARD_UTILS_PATH + #define STANDARD_UTILS_PATH \ +- "/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc" ++ "/bin:/usr/bin:/sbin:/usr/sbin" + #endif + + /* Default primary and secondary prompt strings. */ +@@ -73,15 +73,15 @@ + #define KSH_COMPATIBLE_SELECT + + /* System-wide .bashrc file for interactive shells. */ +-/* #define SYS_BASHRC "/etc/bash.bashrc" */ ++#define SYS_BASHRC "/etc/bash.bashrc" + + /* System-wide .bash_logout for login shells. */ +-/* #define SYS_BASH_LOGOUT "/etc/bash.bash_logout" */ ++#define SYS_BASH_LOGOUT "/etc/bash.bash_logout" + + /* Define this to make non-interactive shells begun with argv[0][0] == '-' + run the startup files when not in posix mode. */ +-/* #define NON_INTERACTIVE_LOGIN_SHELLS */ ++#define NON_INTERACTIVE_LOGIN_SHELLS + + /* Define this if you want bash to try to check whether it's being run by + sshd and source the .bashrc if so (like the rshd behavior). */ +-/* #define SSH_SOURCE_BASHRC */ ++#define SSH_SOURCE_BASHRC diff --git a/debian/patches/deb-examples.dpatch b/debian/patches/deb-examples.dpatch new file mode 100755 index 0000000..f41d553 --- /dev/null +++ b/debian/patches/deb-examples.dpatch @@ -0,0 +1,30 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: document readline header location on Debian systems + +diff -u ./examples/loadables/README.orig ./examples/loadables/README +--- ./examples/loadables/README.orig Thu May 7 20:31:34 1998 ++++ ./examples/loadables/README Thu Nov 11 20:32:57 1999 +@@ -31,3 +31,6 @@ + the canonical example. There is no real `builtin writers' programming + guide'. The file template.c provides a template to use for creating + new loadable builtins. ++ ++On Debian GNU/Linux systems, the bash headers are in /usr/include/bash. ++The appropriate options are already set in the example Makefile. + diff --git a/debian/patches/input-err.dpatch b/debian/patches/input-err.dpatch new file mode 100755 index 0000000..8fb93d7 --- /dev/null +++ b/debian/patches/input-err.dpatch @@ -0,0 +1,30 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Define PGRP_PIPE to avoid race condition. + +--- input.c~ 2005-07-14 13:29:08.000000000 +0100 ++++ input.c 2006-04-05 14:51:50.000000000 +0100 +@@ -454,7 +454,7 @@ + if (nr == 0) + bp->b_flag |= B_EOF; + else +- bp->b_flag |= B_ERROR; ++ fatal_error("error reading input file: %s", strerror(errno)); + return (EOF); + } + diff --git a/debian/patches/login-shell.dpatch b/debian/patches/login-shell.dpatch new file mode 100755 index 0000000..7900801 --- /dev/null +++ b/debian/patches/login-shell.dpatch @@ -0,0 +1,34 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: * Recognize 'exec -l /bin/bash' as login shell. + +--- shell.c.orig 2006-03-03 23:15:17.178734888 +0100 ++++ shell.c 2006-03-03 23:44:01.556589608 +0100 +@@ -1533,9 +1533,10 @@ + any startup files; just try to be more like /bin/sh. */ + shell_name = argv0 ? base_pathname (argv0) : PROGRAM; + +- if (*shell_name == '-') ++ if (argv0 && *argv0 == '-') + { +- shell_name++; ++ if (*shell_name == '-') ++ shell_name++; + login_shell++; + } + diff --git a/debian/patches/man-arithmetic.dpatch b/debian/patches/man-arithmetic.dpatch new file mode 100755 index 0000000..1178ce8 --- /dev/null +++ b/debian/patches/man-arithmetic.dpatch @@ -0,0 +1,32 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: document deprecated syntax for arithmetic evaluation. + +diff -urb bash.orig/doc/bash.1 bash/doc/bash.1 +--- bash.orig/doc/bash.1 2003-09-25 21:42:45.000000000 +0200 ++++ bash/doc/bash.1 2003-09-28 00:24:17.000000000 +0200 +@@ -2533,6 +2533,9 @@ + \fB$((\fP\fIexpression\fP\fB))\fP + .RE + .PP ++The old format \fB$[\fP\fIexpression\fP\fB]\fP is deprecated and will ++be removed in upcoming versions of bash. ++.PP + The + .I expression + is treated as if it were within double quotes, but a double quote diff --git a/debian/patches/man-bashlogout.dpatch b/debian/patches/man-bashlogout.dpatch new file mode 100755 index 0000000..9a3f3c1 --- /dev/null +++ b/debian/patches/man-bashlogout.dpatch @@ -0,0 +1,31 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: document /etc/bash.bashrc in bash man page + +--- bash/doc/bash.1~ 2004-06-19 15:53:01.000000000 +0200 ++++ bash/doc/bash.1 2004-06-19 15:53:57.000000000 +0200 +@@ -8283,6 +8283,9 @@ + .FN /etc/bash.bashrc + The systemwide per-interactive-shell startup file + .TP ++.FN /etc/bash.logout ++The systemwide login shell cleanup file, executed when a login shell exits ++.TP + .FN ~/.bash_profile + The personal initialization file, executed for login shells + .TP diff --git a/debian/patches/man-bashrc.dpatch b/debian/patches/man-bashrc.dpatch new file mode 100755 index 0000000..3e80ef1 --- /dev/null +++ b/debian/patches/man-bashrc.dpatch @@ -0,0 +1,81 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: document /etc/bash.bashrc in bash man page + +--- bash/doc/bash.1~ 2003-11-11 00:09:34.000000000 +0100 ++++ bash/doc/bash.1 2004-01-21 07:33:45.000000000 +0100 +@@ -169,7 +169,9 @@ + .PD + Execute commands from + .I file +-instead of the standard personal initialization file ++instead of the system wide initialization file ++.I /etc/bash.bashrc ++and the standard personal initialization file + .I ~/.bashrc + if the shell is interactive (see + .SM +@@ -200,7 +202,9 @@ + below). + .TP + .B \-\-norc +-Do not read and execute the personal initialization file ++Do not read and execute the system wide initialization file ++.I /etc/bash.bashrc ++and the personal initialization file + .I ~/.bashrc + if the shell is interactive. + This option is on by default if the shell is invoked as +@@ -308,13 +312,15 @@ + .PP + When an interactive shell that is not a login shell is started, + .B bash +-reads and executes commands from \fI~/.bashrc\fP, if that file exists. ++reads and executes commands from \fI/etc/bash.bashrc\fP and \fI~/.bashrc\fP, ++if these files exist. + This may be inhibited by using the + .B \-\-norc + option. + The \fB\-\-rcfile\fP \fIfile\fP option will force + .B bash +-to read and execute commands from \fIfile\fP instead of \fI~/.bashrc\fP. ++to read and execute commands from \fIfile\fP instead of ++\fI/etc/bash.bashrc\fP and \fI~/.bashrc\fP. + .PP + When + .B bash +@@ -399,7 +405,8 @@ + If + .B bash + determines it is being run by \fIrshd\fP, it reads and executes +-commands from \fI~/.bashrc\fP, if that file exists and is readable. ++commands from \fI/etc/bash.bashrc\fP and \fI~/.bashrc\fP, ++if these files exist and are readable. + It will not do this if invoked as \fBsh\fP. + The + .B \-\-norc +@@ -8273,6 +8280,9 @@ + .FN /etc/profile + The systemwide initialization file, executed for login shells + .TP ++.FN /etc/bash.bashrc ++The systemwide per-interactive-shell startup file ++.TP + .FN ~/.bash_profile + The personal initialization file, executed for login shells + .TP diff --git a/debian/patches/man-builtin.dpatch b/debian/patches/man-builtin.dpatch new file mode 100644 index 0000000..6abaef8 --- /dev/null +++ b/debian/patches/man-builtin.dpatch @@ -0,0 +1,29 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: fix man page include + +--- doc/builtins.1~ Mon Nov 29 22:30:13 1999 ++++ doc/builtins.1 Tue Aug 1 21:54:06 2000 +@@ -10,6 +10,6 @@ + ulimit, umask, unalias, unset, until, wait, while \- bash built-in commands, see \fBbash\fR(1) + .SH BASH BUILTIN COMMANDS + .nr zZ 1 +-.so bash.1 ++.so /usr/share/man/man1/bash.1 + .SH SEE ALSO + bash(1), sh(1) diff --git a/debian/patches/man-fignore.dpatch b/debian/patches/man-fignore.dpatch new file mode 100755 index 0000000..cd005bc --- /dev/null +++ b/debian/patches/man-fignore.dpatch @@ -0,0 +1,33 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: bash(1): mention quoting when assigning to FIGNORE + +diff -urb bash.orig/doc/bash.1 bash/doc/bash.1 +--- bash.orig/doc/bash.1 2003-09-25 21:42:45.000000000 +0200 ++++ bash/doc/bash.1 2003-09-28 00:25:21.000000000 +0200 +@@ -1584,7 +1584,9 @@ + is excluded from the list of matched filenames. + A sample value is + .if t \f(CW".o:~"\fP. +-.if n ".o:~". ++.if n ".o:~" ++(Quoting is needed when assigning a value to this variable, ++which contains tildes). + .TP + .B GLOBIGNORE + A colon-separated list of patterns defining the set of filenames to diff --git a/debian/patches/man-net-redirections-doc.dpatch b/debian/patches/man-net-redirections-doc.dpatch new file mode 100644 index 0000000..3cc49de --- /dev/null +++ b/debian/patches/man-net-redirections-doc.dpatch @@ -0,0 +1,31 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Document, that bash is configured using --disable-net-redirections. + +--- bash/doc/bashref.texi~ 2005-09-09 22:08:10.865192816 +0200 ++++ bash/doc/bashref.texi 2005-09-10 11:42:51.805867224 +0200 +@@ -2025,6 +2025,9 @@ + is an integer port number or service name, Bash attempts to open a UDP + connection to the corresponding socket. + ++NOTE: @code{Bash}, as packaged for Debian, does not support using the ++@file{/dev/tcp} and @file{/dev/udp} files. ++ + @end table + + A failure to open or create a file causes the redirection to fail. diff --git a/debian/patches/man-net-redirections.dpatch b/debian/patches/man-net-redirections.dpatch new file mode 100755 index 0000000..1bee4b1 --- /dev/null +++ b/debian/patches/man-net-redirections.dpatch @@ -0,0 +1,31 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Document, that bash is configured using --disable-net-redirections. + +--- bash/doc/bash.1~ 2005-09-09 22:08:10.833197680 +0200 ++++ bash/doc/bash.1 2005-09-10 11:47:57.694365104 +0200 +@@ -3033,6 +3033,9 @@ + .PD + .RE + .PP ++\fBNOTE:\fP Bash, as packaged for Debian, does \fBnot\fP support using ++the \fB/dev/tcp\fP and \fB/dev/udp\fP files. ++.PP + A failure to open or create a file causes the redirection to fail. + .PP + Redirections using file descriptors greater than 9 should be used with diff --git a/debian/patches/man-nocaseglob.dpatch b/debian/patches/man-nocaseglob.dpatch new file mode 100755 index 0000000..6176a53 --- /dev/null +++ b/debian/patches/man-nocaseglob.dpatch @@ -0,0 +1,32 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Clarify documentation about case-insensitive pathname expansion + +--- bash/doc/bash.1~ 2004-08-28 18:25:23.000000000 +0200 ++++ bash/doc/bash.1 2004-08-28 19:13:24.000000000 +0200 +@@ -2690,6 +2690,10 @@ + .B nocaseglob + is enabled, the match is performed without regard to the case + of alphabetic characters. ++Note that when using range expressions like ++[a-z] (see below), letters of the other case may be included, ++depending on the setting of ++.B LC_COLLATE. + When a pattern is used for pathname expansion, + the character + .B ``.'' diff --git a/debian/patches/man-substring-exp-doc.dpatch b/debian/patches/man-substring-exp-doc.dpatch new file mode 100644 index 0000000..c6cdf58 --- /dev/null +++ b/debian/patches/man-substring-exp-doc.dpatch @@ -0,0 +1,31 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Clarify documentation about substring expansion + +--- bash/doc/bashref.texi~ 2004-08-28 15:10:17.000000000 +0200 ++++ bash/doc/bashref.texi 2004-08-28 18:27:16.000000000 +0200 +@@ -1575,6 +1575,9 @@ + @var{length} must evaluate to a number greater than or equal to zero. + If @var{offset} evaluates to a number less than zero, the value + is used as an offset from the end of the value of @var{parameter}. ++Arithmetic expressions starting with a - must be separated by whitespace ++from the preceding : to be ++distinguished from the $@{@var{parameter}:@minus{}@var{word}@} expansion. + If @var{parameter} is @samp{@@}, the result is @var{length} positional + parameters beginning at @var{offset}. + If @var{parameter} is an array name indexed by @samp{@@} or @samp{*}, diff --git a/debian/patches/man-substring-exp.dpatch b/debian/patches/man-substring-exp.dpatch new file mode 100755 index 0000000..8cfaece --- /dev/null +++ b/debian/patches/man-substring-exp.dpatch @@ -0,0 +1,31 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Clarify documentation about substring expansion + +--- bash/doc/bash.1~ 2004-08-28 15:10:17.000000000 +0200 ++++ bash/doc/bash.1 2004-08-28 18:25:23.000000000 +0200 +@@ -2356,6 +2356,9 @@ + \fIlength\fP must evaluate to a number greater than or equal to zero. + If \fIoffset\fP evaluates to a number less than zero, the value + is used as an offset from the end of the value of \fIparameter\fP. ++Arithmetic expressions starting with a - must be separated by whitespace ++from the preceding : to be ++distinguished from the \fBUse Default Values\fP expansion. + If \fIparameter\fP is \fB@\fP, the result is \fIlength\fP positional + parameters beginning at \fIoffset\fP. + If \fIparameter\fP is an array name indexed by @ or *, diff --git a/debian/patches/man-test.dpatch b/debian/patches/man-test.dpatch new file mode 100755 index 0000000..9382b35 --- /dev/null +++ b/debian/patches/man-test.dpatch @@ -0,0 +1,32 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: document conditional file expressions acting on the target of +# DP: symbolic links as well (except -h, -L). + +--- builtins/test.def~ 2002-04-04 21:48:17.000000000 +0200 ++++ builtins/test.def 2004-10-16 19:51:24.000000000 +0200 +@@ -60,6 +60,9 @@ + + FILE1 -ef FILE2 True if file1 is a hard link to file2. + ++All file operators except -h and -L are acting on the target of a symbolic ++link, not on the symlink itself, if FILE is a symbolic link. ++ + String operators: + + -z STRING True if string is empty. diff --git a/debian/patches/man-test2-doc.dpatch b/debian/patches/man-test2-doc.dpatch new file mode 100644 index 0000000..6ddb253 --- /dev/null +++ b/debian/patches/man-test2-doc.dpatch @@ -0,0 +1,32 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Doucment handling of paramters of the test builtin. + +--- doc/bashref.texi~ 2005-09-09 19:51:31.150172600 +0000 ++++ doc/bashref.texi 2005-09-09 19:52:12.693857000 +0000 +@@ -5264,6 +5264,10 @@ + Unless otherwise specified, primaries that operate on files follow symbolic + links and operate on the target of the link, rather than the link itself. + ++See the description of the @code{test} builtin command (section ++@pxref{Bash Builtins} below) for the handling of parameters ++(i.e. missing parameters). ++ + @table @code + @item -a @var{file} + True if @var{file} exists. diff --git a/debian/patches/man-test2.dpatch b/debian/patches/man-test2.dpatch new file mode 100755 index 0000000..32a9115 --- /dev/null +++ b/debian/patches/man-test2.dpatch @@ -0,0 +1,44 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Doucment handling of paramters of the test builtin. + +--- builtins/test.def~ 2004-10-17 17:04:56.000000000 +0200 ++++ builtins/test.def 2004-10-17 17:19:38.000000000 +0200 +@@ -92,6 +92,9 @@ + Arithmetic binary operators return true if ARG1 is equal, not-equal, + less-than, less-than-or-equal, greater-than, or greater-than-or-equal + than ARG2. ++ ++See the bash manual page bash(1) for the handling of parameters (i.e. ++missing parameters). + $END + + $BUILTIN [ +--- doc/bash.1~ 2005-09-09 19:43:43.298296896 +0000 ++++ doc/bash.1 2005-09-09 19:46:26.359507824 +0000 +@@ -3551,6 +3551,10 @@ + .PP + Unless otherwise specified, primaries that operate on files follow symbolic + links and operate on the target of the link, rather than the link itself. ++.PP ++See the description of the \fItest\fP builtin command (section SHELL ++BUILTIN COMMANDS below) for the handling of parameters (i.e. ++missing parameters). + .sp 1 + .PD 0 + .TP diff --git a/debian/patches/man-typos.dpatch b/debian/patches/man-typos.dpatch new file mode 100755 index 0000000..7220abd --- /dev/null +++ b/debian/patches/man-typos.dpatch @@ -0,0 +1,36 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Fix typos in man page. + +--- ./doc/bash.1 2006-03-22 19:23:19.000000000 -0500 ++++ ./doc/bash.1 2006-04-01 03:58:35.000000000 -0500 +@@ -815,10 +815,10 @@ + .B Pathname Expansion + below). + The \fIword\fP is expanded using tilde +-expansion, parameter and variable expansion, arithmetic substituion, ++expansion, parameter and variable expansion, arithmetic substitution, + command substitution, process substitution and quote removal. + Each \fIpattern\fP examined is expanded using tilde +-expansion, parameter and variable expansion, arithmetic substituion, ++expansion, parameter and variable expansion, arithmetic substitution, + command substitution, and process substitution. + If the shell option + .B nocasematch + + diff --git a/debian/patches/man-vx-opts.dpatch b/debian/patches/man-vx-opts.dpatch new file mode 100644 index 0000000..e85b350 --- /dev/null +++ b/debian/patches/man-vx-opts.dpatch @@ -0,0 +1,34 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: document -v / -x options + +--- ./doc/bash.1~ Wed Jan 20 22:48:04 1999 ++++ ./doc/bash.1 Sun Nov 14 13:26:59 1999 +@@ -104,6 +104,12 @@ + This option allows the positional parameters to be set + when invoking an interactive shell. + .TP ++.B \-v ++Print shell input lines as they are read. ++.TP ++.B \-x ++Print commands and their arguments as they are executed. ++.TP + .B \-D + A list of all double-quoted strings preceded by \fB$\fP + is printed on the standard ouput. diff --git a/debian/patches/pgrp-pipe.dpatch b/debian/patches/pgrp-pipe.dpatch new file mode 100755 index 0000000..21e9f3e --- /dev/null +++ b/debian/patches/pgrp-pipe.dpatch @@ -0,0 +1,29 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Define PGRP_PIPE to avoid race condition. + +--- config-bot.h 2004-03-19 17:56:23.000000000 -0500 ++++ config-bot.h 2005-09-16 14:32:33.000000000 -0400 +@@ -179,3 +179,6 @@ + + /* If you don't want bash to provide a default mail file to check. */ + #undef DEFAULT_MAIL_DIRECTORY ++ ++/* Bug #224543 */ ++#define PGRP_PIPE 1 + diff --git a/debian/patches/po-sv.dpatch b/debian/patches/po-sv.dpatch new file mode 100755 index 0000000..093f682 --- /dev/null +++ b/debian/patches/po-sv.dpatch @@ -0,0 +1,4206 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: swedish message strings + +--- bash/po.old/LINGUAS 2003-12-10 16:58:17.000000000 +0000 ++++ bash/po/LINGUAS 2006-03-03 23:10:50.879935272 +0000 +@@ -1,2 +1,3 @@ + # Set of available languages. + en@quot en@boldquot ++sv +diff -urN bash/po.old/sv.po bash/po/sv.po +--- bash/po.old/sv.po 1970-01-01 01:00:00.000000000 +0100 ++++ bash/po/sv.po 2006-03-03 23:53:31.956875584 +0100 +@@ -0,0 +1,4177 @@ ++# Swedish translation of bash. ++# Copyright (C) 2005 Free Software Foundation, Inc. ++# This file is distributed under the same license as the bash package. ++# Daniel Nylander <po@danielnylander.se>, 2005. ++# ++msgid "" ++msgstr "" ++"Project-Id-Version: bash 3.0\n" ++"Report-Msgid-Bugs-To: bug-bash@gnu.org\n" ++"POT-Creation-Date: 2003-12-22 15:34-0500\n" ++"PO-Revision-Date: 2005-12-28 16:48+0100\n" ++"Last-Translator: Daniel Nylander <po@danielnylander.se>\n" ++"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" ++"MIME-Version: 1.0\n" ++"Content-Type: text/plain; charset=utf-8\n" ++"Content-Transfer-Encoding: 8bit\n" ++ ++#: arrayfunc.c:45 ++msgid "bad array subscript" ++msgstr "" ++ ++#: arrayfunc.c:306 ++#, c-format ++msgid "%s: cannot assign to non-numeric index" ++msgstr "" ++ ++#: bashhist.c:321 ++#, c-format ++msgid "%s: cannot create: %s" ++msgstr "%s: kan inte skapa: %s" ++ ++#: bashline.c:2791 ++msgid "bash_execute_unix_command: cannot find keymap for command" ++msgstr "" ++ ++#: bashline.c:2840 ++#, c-format ++msgid "%s: first non-whitespace character is not `\"'" ++msgstr "" ++ ++#: bashline.c:2869 ++#, c-format ++msgid "no closing `%c' in %s" ++msgstr "" ++ ++#: bashline.c:2903 ++#, c-format ++msgid "%s: missing colon separator" ++msgstr "" ++ ++#: builtins/alias.def:123 ++#, fuzzy, c-format ++msgid "`%s': invalid alias name" ++msgstr "Ogiltigt aliasnamn" ++ ++#: builtins/bind.def:194 ++#, c-format ++msgid "`%s': invalid keymap name" ++msgstr "" ++ ++#: builtins/bind.def:233 ++#, c-format ++msgid "%s: cannot read: %s" ++msgstr "%s: kan inte läsa: %s" ++ ++#: builtins/bind.def:248 ++#, c-format ++msgid "`%s': cannot unbind" ++msgstr "" ++ ++#: builtins/bind.def:283 ++#, c-format ++msgid "`%s': unknown function name" ++msgstr "" ++ ++#: builtins/bind.def:291 ++#, c-format ++msgid "%s is not bound to any keys.\n" ++msgstr "" ++ ++#: builtins/bind.def:295 ++#, fuzzy, c-format ++msgid "%s can be invoked via " ++msgstr "%s kan startas via %s." ++ ++#: builtins/break.def:128 ++msgid "only meaningful in a `for', `while', or `until' loop" ++msgstr "" ++ ++#: builtins/caller.def:127 ++#: builtins.c:320 ++msgid "Returns the context of the current subroutine call." ++msgstr "" ++ ++#: builtins/caller.def:129 ++#: builtins.c:322 ++msgid "Without EXPR, returns returns \"$line $filename\". With EXPR," ++msgstr "" ++ ++#: builtins/caller.def:130 ++#: builtins.c:323 ++msgid "returns \"$line $subroutine $filename\"; this extra information" ++msgstr "" ++ ++#: builtins/caller.def:131 ++#: builtins.c:324 ++msgid "can be used used to provide a stack trace." ++msgstr "" ++ ++#: builtins/caller.def:133 ++#: builtins.c:326 ++msgid "The value of EXPR indicates how many call frames to go back before the" ++msgstr "" ++ ++#: builtins/caller.def:134 ++#: builtins.c:327 ++msgid "current one; the top frame is frame 0." ++msgstr "" ++ ++#: builtins/cd.def:188 ++msgid "HOME not set" ++msgstr "HOME inte inställd" ++ ++#: builtins/cd.def:200 ++msgid "OLDPWD not set" ++msgstr "" ++ ++#: builtins/cd.def:357 ++#, c-format ++msgid "write error: %s" ++msgstr "skrivfel: %s" ++ ++#: builtins/common.c:133 ++#: test.c:921 ++msgid "too many arguments" ++msgstr "för många argument" ++ ++#: builtins/common.c:157 ++#: shell.c:465 ++#: shell.c:737 ++#, c-format ++msgid "%s: option requires an argument" ++msgstr "%s: flagga kräver ett argument" ++ ++#: builtins/common.c:164 ++#, c-format ++msgid "%s: numeric argument required" ++msgstr "" ++ ++#: builtins/common.c:171 ++#, c-format ++msgid "%s: not found" ++msgstr "%s: inte funnen" ++ ++#: builtins/common.c:180 ++#: shell.c:750 ++#, c-format ++msgid "%s: invalid option" ++msgstr "%s: ogiltig flagga" ++ ++#: builtins/common.c:187 ++#, c-format ++msgid "%s: invalid option name" ++msgstr "%s: ogiltigt flaggnamn" ++ ++#: builtins/common.c:194 ++#: general.c:229 ++#: general.c:234 ++#, c-format ++msgid "`%s': not a valid identifier" ++msgstr "\"%s\": inte en giltig identifierare" ++ ++#: builtins/common.c:201 ++#, c-format ++msgid "%s: invalid number" ++msgstr "%s: ogiltigt nummer" ++ ++#: builtins/common.c:208 ++#, c-format ++msgid "%s: invalid signal specification" ++msgstr "" ++ ++#: builtins/common.c:215 ++#, c-format ++msgid "`%s': not a pid or valid job spec" ++msgstr "" ++ ++#: builtins/common.c:222 ++#: error.c:453 ++#, c-format ++msgid "%s: readonly variable" ++msgstr "%s: skrivskyddad variabel" ++ ++#: builtins/common.c:230 ++#, fuzzy, c-format ++msgid "%s: %s out of range" ++msgstr "UTANFÖR OMRÅDET" ++ ++#: builtins/common.c:230 ++#: builtins/common.c:232 ++msgid "argument" ++msgstr "argument" ++ ++#: builtins/common.c:232 ++#, fuzzy, c-format ++msgid "%s out of range" ++msgstr "UTANFÖR OMRÅDET" ++ ++#: builtins/common.c:240 ++#, c-format ++msgid "%s: no such job" ++msgstr "%s: inget sådant jobb" ++ ++#: builtins/common.c:248 ++#, c-format ++msgid "%s: no job control" ++msgstr "%s: ingen jobbkontroll" ++ ++#: builtins/common.c:250 ++msgid "no job control" ++msgstr "ingen jobbkontroll" ++ ++#: builtins/common.c:260 ++#, fuzzy, c-format ++msgid "%s: restricted" ++msgstr "Begränsat" ++ ++#: builtins/common.c:262 ++#, fuzzy ++msgid "restricted" ++msgstr "Begränsat" ++ ++#: builtins/common.c:270 ++#, c-format ++msgid "%s: not a shell builtin" ++msgstr "" ++ ++#: builtins/common.c:486 ++#, c-format ++msgid "%s: error retrieving current directory: %s: %s\n" ++msgstr "" ++ ++#: builtins/common.c:553 ++#: builtins/common.c:555 ++#, c-format ++msgid "%s: ambiguous job spec" ++msgstr "" ++ ++#: builtins/complete.def:251 ++#, c-format ++msgid "%s: invalid action name" ++msgstr "%s: ogiltigt åtgärdsnamn" ++ ++#: builtins/complete.def:381 ++#: builtins/complete.def:524 ++#, c-format ++msgid "%s: no completion specification" ++msgstr "" ++ ++#: builtins/complete.def:571 ++msgid "warning: -F option may not work as you expect" ++msgstr "varning: flaggan -F kanske inte fungerar som du förväntar" ++ ++#: builtins/complete.def:573 ++msgid "warning: -C option may not work as you expect" ++msgstr "varning: flaggan -C kanske inte fungerar som du förväntar" ++ ++#: builtins/declare.def:105 ++msgid "can only be used in a function" ++msgstr "kan endast användas i en funktion" ++ ++#: builtins/declare.def:295 ++msgid "cannot use `-f' to make functions" ++msgstr "" ++ ++#: builtins/declare.def:307 ++#: execute_cmd.c:3949 ++#, c-format ++msgid "%s: readonly function" ++msgstr "%s: skrivskyddad funktion" ++ ++#: builtins/declare.def:389 ++#, c-format ++msgid "%s: cannot destroy array variables in this way" ++msgstr "" ++ ++#: builtins/enable.def:128 ++#: builtins/enable.def:136 ++msgid "dynamic loading not available" ++msgstr "" ++ ++#: builtins/enable.def:303 ++#, c-format ++msgid "cannot open shared object %s: %s" ++msgstr "" ++ ++#: builtins/enable.def:326 ++#, c-format ++msgid "cannot find %s in shared object %s: %s" ++msgstr "" ++ ++#: builtins/enable.def:450 ++#, c-format ++msgid "%s: not dynamically loaded" ++msgstr "%s: inte dynamiskt inläst" ++ ++#: builtins/enable.def:465 ++#, c-format ++msgid "%s: cannot delete: %s" ++msgstr "%s: kan inte ta bort: %s" ++ ++#: builtins/evalfile.c:128 ++#: execute_cmd.c:3821 ++#: shell.c:1395 ++#, c-format ++msgid "%s: is a directory" ++msgstr "%s: är en katalog" ++ ++#: builtins/evalfile.c:133 ++#, c-format ++msgid "%s: not a regular file" ++msgstr "%s: inte en vanlig fil" ++ ++#: builtins/evalfile.c:141 ++#, c-format ++msgid "%s: file is too large" ++msgstr "%s: fil är för stor" ++ ++#: builtins/exec.def:205 ++#, c-format ++msgid "%s: cannot execute: %s" ++msgstr "%s: kan inte starta: %s" ++ ++#: builtins/exit.def:83 ++msgid "not login shell: use `exit'" ++msgstr "" ++ ++#: builtins/exit.def:111 ++msgid "There are stopped jobs.\n" ++msgstr "Det finns stoppade jobb.\n" ++ ++#: builtins/fc.def:252 ++msgid "no command found" ++msgstr "inget kommando hittades" ++ ++#: builtins/fc.def:317 ++msgid "history specification" ++msgstr "" ++ ++#: builtins/fc.def:338 ++#, c-format ++msgid "%s: cannot open temp file: %s" ++msgstr "%s: kan inte öppna temporärfil: %s" ++ ++#: builtins/fg_bg.def:133 ++#, c-format ++msgid "job %d started without job control" ++msgstr "jobb %d startad utan jobbkontroll" ++ ++#: builtins/getopt.c:109 ++#, c-format ++msgid "%s: illegal option -- %c\n" ++msgstr "%s: ogiltig flagga -- %c\n" ++ ++#: builtins/getopt.c:110 ++#, c-format ++msgid "%s: option requires an argument -- %c\n" ++msgstr "%s: flagga kräver ett argument -- %c\n" ++ ++#: builtins/hash.def:83 ++msgid "hashing disabled" ++msgstr "" ++ ++#: builtins/hash.def:128 ++#, c-format ++msgid "%s: hash table empty\n" ++msgstr "" ++ ++#: builtins/help.def:108 ++msgid "Shell commands matching keywords `" ++msgstr "" ++ ++#: builtins/help.def:110 ++msgid "Shell commands matching keyword `" ++msgstr "" ++ ++#: builtins/help.def:138 ++#, c-format ++msgid "no help topics match `%s'. Try `help help' or `man -k %s' or `info %s'." ++msgstr "" ++ ++#: builtins/help.def:164 ++#, c-format ++msgid "%s: cannot open: %s" ++msgstr "%s: kan inte öppna: %s" ++ ++#: builtins/help.def:182 ++msgid "" ++"These shell commands are defined internally. Type `help' to see this list.\n" ++"Type `help name' to find out more about the function `name'.\n" ++"Use `info bash' to find out more about the shell in general.\n" ++"Use `man -k' or `info' to find out more about commands not in this list.\n" ++"\n" ++"A star (*) next to a name means that the command is disabled.\n" ++"\n" ++msgstr "" ++ ++#: builtins/history.def:148 ++msgid "cannot use more than one of -anrw" ++msgstr "kan inte använda mer än en av -anrw" ++ ++#: builtins/history.def:180 ++msgid "history position" ++msgstr "" ++ ++#: builtins/history.def:390 ++#, c-format ++msgid "%s: history expansion failed" ++msgstr "" ++ ++#: builtins/jobs.def:99 ++msgid "no other options allowed with `-x'" ++msgstr "" ++ ++#: builtins/kill.def:187 ++#, c-format ++msgid "%s: arguments must be process or job IDs" ++msgstr "" ++ ++#: builtins/kill.def:248 ++msgid "Unknown error" ++msgstr "Okänt fel" ++ ++#: builtins/let.def:94 ++#: builtins/let.def:119 ++#: expr.c:496 ++#: expr.c:511 ++#, fuzzy ++msgid "expression expected" ++msgstr "Förväntade uttryck" ++ ++#: builtins/printf.def:249 ++#, c-format ++msgid "`%s': missing format character" ++msgstr "\"%s\": formattecken saknas" ++ ++#: builtins/printf.def:408 ++#, c-format ++msgid "`%c': invalid format character" ++msgstr "\"%c\": ogiltigt formattecken" ++ ++#: builtins/printf.def:601 ++msgid "missing hex digit for \\x" ++msgstr "" ++ ++#: builtins/pushd.def:168 ++msgid "no other directory" ++msgstr "ingen annan katalog" ++ ++#: builtins/pushd.def:435 ++msgid "<no current directory>" ++msgstr "<ingen nuvarande katalog>" ++ ++#: builtins/pushd.def:652 ++#: builtins.c:1351 ++msgid "Display the list of currently remembered directories. Directories" ++msgstr "" ++ ++#: builtins/pushd.def:653 ++#: builtins.c:1352 ++msgid "find their way onto the list with the `pushd' command; you can get" ++msgstr "" ++ ++#: builtins/pushd.def:654 ++#: builtins.c:1353 ++msgid "back up through the list with the `popd' command." ++msgstr "" ++ ++#: builtins/pushd.def:656 ++#: builtins.c:1355 ++msgid "The -l flag specifies that `dirs' should not print shorthand versions" ++msgstr "" ++ ++#: builtins/pushd.def:657 ++#: builtins.c:1356 ++msgid "of directories which are relative to your home directory. This means" ++msgstr "" ++ ++#: builtins/pushd.def:658 ++#: builtins.c:1357 ++msgid "that `~/bin' might be displayed as `/homes/bfox/bin'. The -v flag" ++msgstr "" ++ ++#: builtins/pushd.def:659 ++#: builtins.c:1358 ++msgid "causes `dirs' to print the directory stack with one entry per line," ++msgstr "" ++ ++#: builtins/pushd.def:660 ++#: builtins.c:1359 ++msgid "prepending the directory name with its position in the stack. The -p" ++msgstr "" ++ ++#: builtins/pushd.def:661 ++#: builtins.c:1360 ++msgid "flag does the same thing, but the stack position is not prepended." ++msgstr "" ++ ++#: builtins/pushd.def:662 ++#: builtins.c:1361 ++msgid "The -c flag clears the directory stack by deleting all of the elements." ++msgstr "" ++ ++#: builtins/pushd.def:664 ++msgid "+N displays the Nth entry counting from the left of the list shown by" ++msgstr "" ++ ++#: builtins/pushd.def:665 ++#: builtins/pushd.def:668 ++msgid " dirs when invoked without options, starting with zero." ++msgstr "" ++ ++#: builtins/pushd.def:667 ++msgid "-N displays the Nth entry counting from the right of the list shown by" ++msgstr "" ++ ++#: builtins/pushd.def:673 ++#: builtins.c:1302 ++msgid "Adds a directory to the top of the directory stack, or rotates" ++msgstr "" ++ ++#: builtins/pushd.def:674 ++#: builtins.c:1303 ++msgid "the stack, making the new top of the stack the current working" ++msgstr "" ++ ++#: builtins/pushd.def:675 ++#: builtins.c:1304 ++msgid "directory. With no arguments, exchanges the top two directories." ++msgstr "" ++ ++#: builtins/pushd.def:677 ++msgid "+N Rotates the stack so that the Nth directory (counting" ++msgstr "" ++ ++#: builtins/pushd.def:678 ++msgid " from the left of the list shown by `dirs', starting with" ++msgstr "" ++ ++#: builtins/pushd.def:679 ++#: builtins/pushd.def:683 ++msgid " zero) is at the top." ++msgstr "" ++ ++#: builtins/pushd.def:681 ++msgid "-N Rotates the stack so that the Nth directory (counting" ++msgstr "" ++ ++#: builtins/pushd.def:682 ++msgid " from the right of the list shown by `dirs', starting with" ++msgstr "" ++ ++#: builtins/pushd.def:685 ++msgid "-n suppress the normal change of directory when adding directories" ++msgstr "" ++ ++#: builtins/pushd.def:686 ++msgid " to the stack, so only the stack is manipulated." ++msgstr "" ++ ++#: builtins/pushd.def:688 ++msgid "dir adds DIR to the directory stack at the top, making it the" ++msgstr "" ++ ++#: builtins/pushd.def:689 ++msgid " new current working directory." ++msgstr "" ++ ++#: builtins/pushd.def:691 ++#: builtins/pushd.def:711 ++#: builtins.c:1320 ++#: builtins.c:1343 ++msgid "You can see the directory stack with the `dirs' command." ++msgstr "" ++ ++#: builtins/pushd.def:696 ++#: builtins.c:1328 ++msgid "Removes entries from the directory stack. With no arguments," ++msgstr "" ++ ++#: builtins/pushd.def:697 ++#: builtins.c:1329 ++msgid "removes the top directory from the stack, and cd's to the new" ++msgstr "" ++ ++#: builtins/pushd.def:698 ++#: builtins.c:1330 ++msgid "top directory." ++msgstr "" ++ ++#: builtins/pushd.def:700 ++msgid "+N removes the Nth entry counting from the left of the list" ++msgstr "" ++ ++#: builtins/pushd.def:701 ++msgid " shown by `dirs', starting with zero. For example: `popd +0'" ++msgstr "" ++ ++#: builtins/pushd.def:702 ++msgid " removes the first directory, `popd +1' the second." ++msgstr "" ++ ++#: builtins/pushd.def:704 ++msgid "-N removes the Nth entry counting from the right of the list" ++msgstr "" ++ ++#: builtins/pushd.def:705 ++msgid " shown by `dirs', starting with zero. For example: `popd -0'" ++msgstr "" ++ ++#: builtins/pushd.def:706 ++msgid " removes the last directory, `popd -1' the next to last." ++msgstr "" ++ ++#: builtins/pushd.def:708 ++msgid "-n suppress the normal change of directory when removing directories" ++msgstr "" ++ ++#: builtins/pushd.def:709 ++msgid " from the stack, so only the stack is manipulated." ++msgstr "" ++ ++#: builtins/read.def:207 ++#, c-format ++msgid "%s: invalid timeout specification" ++msgstr "" ++ ++#: builtins/read.def:230 ++#, c-format ++msgid "%s: invalid file descriptor specification" ++msgstr "" ++ ++#: builtins/read.def:237 ++#, c-format ++msgid "%d: invalid file descriptor: %s" ++msgstr "" ++ ++#: builtins/read.def:463 ++#, c-format ++msgid "read error: %d: %s" ++msgstr "läsfel: %d: %s" ++ ++#: builtins/return.def:63 ++msgid "can only `return' from a function or sourced script" ++msgstr "" ++ ++#: builtins/set.def:743 ++msgid "cannot simultaneously unset a function and a variable" ++msgstr "" ++ ++#: builtins/set.def:780 ++#, c-format ++msgid "%s: cannot unset" ++msgstr "" ++ ++#: builtins/set.def:787 ++#, c-format ++msgid "%s: cannot unset: readonly %s" ++msgstr "" ++ ++#: builtins/set.def:798 ++#, c-format ++msgid "%s: not an array variable" ++msgstr "" ++ ++#: builtins/setattr.def:165 ++#, c-format ++msgid "%s: not a function" ++msgstr "%s: inte en funktion" ++ ++#: builtins/shift.def:66 ++#: builtins/shift.def:72 ++msgid "shift count" ++msgstr "" ++ ++#: builtins/shopt.def:226 ++msgid "cannot set and unset shell options simultaneously" ++msgstr "" ++ ++#: builtins/shopt.def:291 ++#, c-format ++msgid "%s: invalid shell option name" ++msgstr "" ++ ++#: builtins/source.def:117 ++msgid "filename argument required" ++msgstr "" ++ ++#: builtins/source.def:137 ++#, c-format ++msgid "%s: file not found" ++msgstr "%s: fil inte hittad" ++ ++#: builtins/suspend.def:93 ++msgid "cannot suspend" ++msgstr "" ++ ++#: builtins/suspend.def:103 ++msgid "cannot suspend a login shell" ++msgstr "" ++ ++#: builtins/type.def:231 ++#, c-format ++msgid "%s is aliased to `%s'\n" ++msgstr "" ++ ++#: builtins/type.def:252 ++#, c-format ++msgid "%s is a shell keyword\n" ++msgstr "" ++ ++#: builtins/type.def:272 ++#, c-format ++msgid "%s is a function\n" ++msgstr "%s är en funktion\n" ++ ++#: builtins/type.def:297 ++#, c-format ++msgid "%s is a shell builtin\n" ++msgstr "" ++ ++#: builtins/type.def:318 ++#, c-format ++msgid "%s is %s\n" ++msgstr "%s är %s\n" ++ ++#: builtins/type.def:338 ++#, c-format ++msgid "%s is hashed (%s)\n" ++msgstr "" ++ ++#: builtins/ulimit.def:332 ++#, c-format ++msgid "%s: invalid limit argument" ++msgstr "" ++ ++#: builtins/ulimit.def:358 ++#, c-format ++msgid "`%c': bad command" ++msgstr "\"%c\": felaktigt kommando" ++ ++#: builtins/ulimit.def:387 ++#, c-format ++msgid "%s: cannot get limit: %s" ++msgstr "" ++ ++#: builtins/ulimit.def:425 ++#, c-format ++msgid "%s: cannot modify limit: %s" ++msgstr "" ++ ++#: builtins/umask.def:112 ++msgid "octal number" ++msgstr "oktalt nummer" ++ ++#: builtins/umask.def:226 ++#, c-format ++msgid "`%c': invalid symbolic mode operator" ++msgstr "" ++ ++#: builtins/umask.def:279 ++#, c-format ++msgid "`%c': invalid symbolic mode character" ++msgstr "" ++ ++#: error.c:165 ++#, c-format ++msgid "last command: %s\n" ++msgstr "senaste kommando: %s\n" ++ ++#: error.c:173 ++msgid "Aborting..." ++msgstr "Avbryter..." ++ ++#: error.c:260 ++#, c-format ++msgid "%s: warning: " ++msgstr "%s: varning: " ++ ++#: error.c:405 ++msgid "unknown command error" ++msgstr "okänt kommandofel" ++ ++#: error.c:406 ++msgid "bad command type" ++msgstr "" ++ ++#: error.c:407 ++msgid "bad connector" ++msgstr "" ++ ++#: error.c:408 ++msgid "bad jump" ++msgstr "" ++ ++#: error.c:446 ++#, c-format ++msgid "%s: unbound variable" ++msgstr "" ++ ++#: eval.c:175 ++msgid "timed out waiting for input: auto-logout\n" ++msgstr "" ++ ++#: execute_cmd.c:466 ++#, c-format ++msgid "cannot redirect standard input from /dev/null: %s" ++msgstr "" ++ ++#: execute_cmd.c:1036 ++#, c-format ++msgid "TIMEFORMAT: `%c': invalid format character" ++msgstr "TIDSFORMAT: \"%c\": ogiltigt formattecken" ++ ++#: execute_cmd.c:3521 ++#, c-format ++msgid "%s: restricted: cannot specify `/' in command names" ++msgstr "" ++ ++#: execute_cmd.c:3609 ++#, c-format ++msgid "%s: command not found" ++msgstr "%s: kommando hittades inte" ++ ++#: execute_cmd.c:3839 ++#, c-format ++msgid "%s: %s: bad interpreter" ++msgstr "%s: %s: felaktig tolk" ++ ++#: execute_cmd.c:3876 ++#, c-format ++msgid "%s: cannot execute binary file" ++msgstr "%s: kan inte starta binärfil" ++ ++#: execute_cmd.c:3988 ++#, c-format ++msgid "cannot duplicate fd %d to fd %d" ++msgstr "" ++ ++#: expr.c:239 ++msgid "expression recursion level exceeded" ++msgstr "" ++ ++#: expr.c:263 ++msgid "recursion stack underflow" ++msgstr "" ++ ++#: expr.c:374 ++msgid "syntax error in expression" ++msgstr "syntaxfel i uttryck" ++ ++#: expr.c:414 ++msgid "attempted assignment to non-variable" ++msgstr "" ++ ++#: expr.c:435 ++#: expr.c:440 ++#: expr.c:750 ++msgid "division by 0" ++msgstr "delning med 0" ++ ++#: expr.c:466 ++msgid "bug: bad expassign token" ++msgstr "" ++ ++#: expr.c:508 ++msgid "`:' expected for conditional expression" ++msgstr "" ++ ++#: expr.c:775 ++msgid "exponent less than 0" ++msgstr "" ++ ++#: expr.c:819 ++msgid "identifier expected after pre-increment or pre-decrement" ++msgstr "" ++ ++#: expr.c:847 ++msgid "missing `)'" ++msgstr "saknar `)'" ++ ++#: expr.c:871 ++msgid "syntax error: operand expected" ++msgstr "" ++ ++#: expr.c:1146 ++msgid "invalid number" ++msgstr "ogiltigt nummer" ++ ++#: expr.c:1150 ++msgid "invalid arithmetic base" ++msgstr "" ++ ++#: expr.c:1170 ++msgid "value too great for base" ++msgstr "" ++ ++#: general.c:60 ++msgid "getcwd: cannot access parent directories" ++msgstr "" ++ ++#: input.c:231 ++#, c-format ++msgid "cannot allocate new file descriptor for bash input from fd %d" ++msgstr "" ++ ++#: input.c:239 ++#, c-format ++msgid "save_bash_input: buffer already exists for new fd %d" ++msgstr "" ++ ++#: jobs.c:693 ++#, c-format ++msgid "deleting stopped job %d with process group %ld" ++msgstr "" ++ ++#: jobs.c:1001 ++#, c-format ++msgid "describe_pid: %ld: no such pid" ++msgstr "" ++ ++#: jobs.c:1632 ++#: nojobs.c:648 ++#, c-format ++msgid "wait: pid %ld is not a child of this shell" ++msgstr "" ++ ++#: jobs.c:1815 ++#, c-format ++msgid "wait_for: No record of process %ld" ++msgstr "" ++ ++#: jobs.c:2062 ++#, c-format ++msgid "wait_for_job: job %d is stopped" ++msgstr "" ++ ++#: jobs.c:2284 ++#, c-format ++msgid "%s: job has terminated" ++msgstr "%s: jobb har avslutats" ++ ++#: jobs.c:2293 ++#, c-format ++msgid "%s: job %d already in background" ++msgstr "%s: jobb %d redan i bakgrund" ++ ++#: jobs.c:3037 ++msgid "no job control in this shell" ++msgstr "ingen jobbkontroll i detta skal" ++ ++#: lib/malloc/malloc.c:298 ++#, c-format ++msgid "malloc: failed assertion: %s\n" ++msgstr "" ++ ++#: lib/malloc/malloc.c:314 ++#, c-format ++msgid "" ++"\r\n" ++"malloc: %s:%d: assertion botched\r\n" ++msgstr "" ++ ++#: lib/malloc/malloc.c:740 ++msgid "malloc: block on free list clobbered" ++msgstr "" ++ ++#: lib/malloc/malloc.c:817 ++msgid "free: called with already freed block argument" ++msgstr "" ++ ++#: lib/malloc/malloc.c:820 ++msgid "free: called with unallocated block argument" ++msgstr "" ++ ++#: lib/malloc/malloc.c:839 ++msgid "free: underflow detected; mh_nbytes out of range" ++msgstr "" ++ ++#: lib/malloc/malloc.c:845 ++msgid "free: start and end chunk sizes differ" ++msgstr "" ++ ++#: lib/malloc/malloc.c:942 ++msgid "realloc: called with unallocated block argument" ++msgstr "" ++ ++#: lib/malloc/malloc.c:957 ++msgid "realloc: underflow detected; mh_nbytes out of range" ++msgstr "" ++ ++#: lib/malloc/malloc.c:963 ++msgid "realloc: start and end chunk sizes differ" ++msgstr "" ++ ++#: lib/malloc/table.c:175 ++msgid "register_alloc: alloc table is full with FIND_ALLOC?\n" ++msgstr "" ++ ++#: lib/malloc/table.c:182 ++#, c-format ++msgid "register_alloc: %p already in table as allocated?\n" ++msgstr "" ++ ++#: lib/malloc/table.c:218 ++#, c-format ++msgid "register_free: %p already in table as free?\n" ++msgstr "" ++ ++#: lib/malloc/watch.c:46 ++msgid "allocated" ++msgstr "allokerat" ++ ++#: lib/malloc/watch.c:48 ++msgid "freed" ++msgstr "" ++ ++#: lib/malloc/watch.c:50 ++msgid "requesting resize" ++msgstr "" ++ ++#: lib/malloc/watch.c:52 ++msgid "just resized" ++msgstr "" ++ ++#: lib/malloc/watch.c:54 ++msgid "bug: unknown operation" ++msgstr "bugg: okänd operation" ++ ++#: lib/malloc/watch.c:56 ++#, c-format ++msgid "malloc: watch alert: %p %s " ++msgstr "" ++ ++#: lib/sh/fmtulong.c:101 ++msgid "invalid base" ++msgstr "" ++ ++#: lib/sh/netopen.c:158 ++#, c-format ++msgid "%s: host unknown" ++msgstr "%s: okänd värd" ++ ++#: lib/sh/netopen.c:165 ++#, c-format ++msgid "%s: invalid service" ++msgstr "%s: ogiltig tjänst" ++ ++#: lib/sh/netopen.c:296 ++#, c-format ++msgid "%s: bad network path specification" ++msgstr "" ++ ++#: lib/sh/netopen.c:336 ++msgid "network operations not supported" ++msgstr "" ++ ++#: mailcheck.c:382 ++msgid "You have mail in $_" ++msgstr "Du har post i $_" ++ ++#: mailcheck.c:407 ++msgid "You have new mail in $_" ++msgstr "Du har ny post i $_" ++ ++#: mailcheck.c:423 ++#, c-format ++msgid "The mail in %s has been read\n" ++msgstr "Posten i %s har lästs\n" ++ ++#: make_cmd.c:318 ++msgid "syntax error: arithmetic expression required" ++msgstr "" ++ ++#: make_cmd.c:320 ++msgid "syntax error: `;' unexpected" ++msgstr "syntaxfel: \";\" oväntad" ++ ++#: make_cmd.c:321 ++#, c-format ++msgid "syntax error: `((%s))'" ++msgstr "syntaxfel: \"((%s))\"" ++ ++#: make_cmd.c:560 ++#, c-format ++msgid "make_here_document: bad instruction type %d" ++msgstr "" ++ ++#: make_cmd.c:730 ++#, c-format ++msgid "make_redirection: redirection instruction `%d' out of range" ++msgstr "" ++ ++#: parse.y:2726 ++#, c-format ++msgid "unexpected EOF while looking for matching `%c'" ++msgstr "" ++ ++#: parse.y:3011 ++msgid "unexpected EOF while looking for `]]'" ++msgstr "" ++ ++#: parse.y:3016 ++#, c-format ++msgid "syntax error in conditional expression: unexpected token `%s'" ++msgstr "" ++ ++#: parse.y:3020 ++msgid "syntax error in conditional expression" ++msgstr "" ++ ++#: parse.y:3098 ++#, c-format ++msgid "unexpected token `%s', expected `)'" ++msgstr "" ++ ++#: parse.y:3102 ++msgid "expected `)'" ++msgstr "förväntade `)'" ++ ++#: parse.y:3130 ++#, c-format ++msgid "unexpected argument `%s' to conditional unary operator" ++msgstr "" ++ ++#: parse.y:3134 ++msgid "unexpected argument to conditional unary operator" ++msgstr "" ++ ++#: parse.y:3171 ++#, c-format ++msgid "unexpected token `%s', conditional binary operator expected" ++msgstr "" ++ ++#: parse.y:3175 ++msgid "conditional binary operator expected" ++msgstr "" ++ ++#: parse.y:3191 ++#, c-format ++msgid "unexpected argument `%s' to conditional binary operator" ++msgstr "" ++ ++#: parse.y:3195 ++msgid "unexpected argument to conditional binary operator" ++msgstr "" ++ ++#: parse.y:3206 ++#, c-format ++msgid "unexpected token `%c' in conditional command" ++msgstr "" ++ ++#: parse.y:3209 ++#, c-format ++msgid "unexpected token `%s' in conditional command" ++msgstr "" ++ ++#: parse.y:3213 ++#, c-format ++msgid "unexpected token %d in conditional command" ++msgstr "" ++ ++#: parse.y:4400 ++#, c-format ++msgid "syntax error near unexpected token `%s'" ++msgstr "" ++ ++#: parse.y:4418 ++#, fuzzy, c-format ++msgid "syntax error near `%s'" ++msgstr "Syntaxfel nära \"%1\"" ++ ++#: parse.y:4428 ++msgid "syntax error: unexpected end of file" ++msgstr "" ++ ++#: parse.y:4428 ++msgid "syntax error" ++msgstr "syntaxfel" ++ ++#: parse.y:4490 ++#, c-format ++msgid "Use \"%s\" to leave the shell.\n" ++msgstr "Använd \"%s\" för att lämna skalet.\n" ++ ++#: parse.y:4649 ++msgid "unexpected EOF while looking for matching `)'" ++msgstr "" ++ ++#: pcomplete.c:988 ++#, c-format ++msgid "completion: function `%s' not found" ++msgstr "" ++ ++#: pcomplib.c:179 ++#, c-format ++msgid "progcomp_insert: %s: NULL COMPSPEC" ++msgstr "" ++ ++#: print_cmd.c:260 ++#, c-format ++msgid "print_command: bad connector `%d'" ++msgstr "" ++ ++#: print_cmd.c:1172 ++#, c-format ++msgid "cprintf: `%c': invalid format character" ++msgstr "" ++ ++#: redir.c:99 ++msgid "file descriptor out of range" ++msgstr "" ++ ++#: redir.c:141 ++#, c-format ++msgid "%s: ambiguous redirect" ++msgstr "" ++ ++#: redir.c:145 ++#, c-format ++msgid "%s: cannot overwrite existing file" ++msgstr "" ++ ++#: redir.c:150 ++#, c-format ++msgid "%s: restricted: cannot redirect output" ++msgstr "" ++ ++#: redir.c:155 ++#, c-format ++msgid "cannot create temp file for here document: %s" ++msgstr "" ++ ++#: redir.c:509 ++msgid "/dev/(tcp|udp)/host/port not supported without networking" ++msgstr "/dev/(tcp|udp)/host/port stöds inte utan nätverk" ++ ++#: redir.c:949 ++msgid "redirection error: cannot duplicate fd" ++msgstr "" ++ ++#: shell.c:302 ++msgid "could not find /tmp, please create!" ++msgstr "kunde inte hitta /tmp, vänligen skapa den!" ++ ++#: shell.c:306 ++msgid "/tmp must be a valid directory name" ++msgstr "/tmp måste vara ett giltigt katalognamn" ++ ++#: shell.c:839 ++#, c-format ++msgid "%c%c: invalid option" ++msgstr "%c%c: ogiltig flagga" ++ ++#: shell.c:1590 ++msgid "I have no name!" ++msgstr "Jag har inget namn!" ++ ++#: shell.c:1725 ++#, c-format ++msgid "" ++"Usage:\t%s [GNU long option] [option] ...\n" ++"\t%s [GNU long option] [option] script-file ...\n" ++msgstr "" ++"Användning:\t%s [GNU lång flagga] [flagga] ...\n" ++"\t%s [GNU lång flagga] [flagga] skriptfil ...\n" ++ ++#: shell.c:1727 ++msgid "GNU long options:\n" ++msgstr "GNU långa flaggor:\n" ++ ++#: shell.c:1731 ++msgid "Shell options:\n" ++msgstr "Skalflaggor:\n" ++ ++#: shell.c:1732 ++msgid "\t-irsD or -c command or -O shopt_option\t\t(invocation only)\n" ++msgstr "\t-irsD eller -c kommando eller -O shopt_option\t\t(endast anrop)\n" ++ ++#: shell.c:1747 ++#, c-format ++msgid "\t-%s or -o option\n" ++msgstr "\t-%s eller -o flagga\n" ++ ++#: shell.c:1753 ++#, c-format ++msgid "Type `%s -c \"help set\"' for more information about shell options.\n" ++msgstr "Skriv \"%s -c \"help set\"\" för mer information om skalflaggor.\n" ++ ++#: shell.c:1754 ++#, c-format ++msgid "Type `%s -c help' for more information about shell builtin commands.\n" ++msgstr "Skriv \"%s -c help\" för mer information om skalets inbyggda kommandon.\n" ++ ++#: shell.c:1755 ++msgid "Use the `bashbug' command to report bugs.\n" ++msgstr "Använd kommandot \"bashbug\" för att rapportera buggar.\n" ++ ++#: sig.c:485 ++#, c-format ++msgid "sigprocmask: %d: invalid operation" ++msgstr "" ++ ++#: subst.c:1011 ++#, c-format ++msgid "bad substitution: no closing `%s' in %s" ++msgstr "" ++ ++#: subst.c:2020 ++#, c-format ++msgid "%s: cannot assign list to array member" ++msgstr "" ++ ++#: subst.c:3516 ++#: subst.c:3532 ++msgid "cannot make pipe for process substitution" ++msgstr "" ++ ++#: subst.c:3563 ++msgid "cannot make child for process substitution" ++msgstr "" ++ ++#: subst.c:3608 ++#, c-format ++msgid "cannot open named pipe %s for reading" ++msgstr "" ++ ++#: subst.c:3610 ++#, c-format ++msgid "cannot open named pipe %s for writing" ++msgstr "" ++ ++#: subst.c:3618 ++#, c-format ++msgid "cannout reset nodelay mode for fd %d" ++msgstr "" ++ ++#: subst.c:3628 ++#, c-format ++msgid "cannot duplicate named pipe %s as fd %d" ++msgstr "" ++ ++#: subst.c:3803 ++msgid "cannot make pipe for command substitution" ++msgstr "" ++ ++#: subst.c:3832 ++msgid "cannot make child for command substitution" ++msgstr "" ++ ++#: subst.c:3849 ++msgid "command_substitute: cannot duplicate pipe as fd 1" ++msgstr "" ++ ++#: subst.c:4284 ++#, fuzzy, c-format ++msgid "%s: parameter null or not set" ++msgstr "parameter är tom eller inte satt" ++ ++#: subst.c:4529 ++#, c-format ++msgid "%s: substring expression < 0" ++msgstr "" ++ ++#: subst.c:5209 ++#, c-format ++msgid "%s: bad substitution" ++msgstr "" ++ ++#: subst.c:5283 ++#, c-format ++msgid "$%s: cannot assign in this way" ++msgstr "" ++ ++#: subst.c:6652 ++#, c-format ++msgid "no match: %s" ++msgstr "ingen match: %s" ++ ++#: test.c:154 ++#, fuzzy ++msgid "argument expected" ++msgstr "(argument förväntades)" ++ ++#: test.c:163 ++#, c-format ++msgid "%s: integer expression expected" ++msgstr "" ++ ++#: test.c:361 ++#, fuzzy ++msgid "`)' expected" ++msgstr "\")\" förväntas\n" ++ ++#: test.c:363 ++#, fuzzy, c-format ++msgid "`)' expected, found %s" ++msgstr "\")\" förväntades, fann %s\n" ++ ++#: test.c:378 ++#: test.c:787 ++#: test.c:790 ++#, fuzzy, c-format ++msgid "%s: unary operator expected" ++msgstr "%s: unär operator förväntas\n" ++ ++#: test.c:543 ++#: test.c:830 ++#, fuzzy, c-format ++msgid "%s: binary operator expected" ++msgstr "%s: binär operator förväntas\n" ++ ++#: test.c:905 ++msgid "missing `]'" ++msgstr "saknar \"]\"" ++ ++#: trap.c:194 ++msgid "invalid signal number" ++msgstr "" ++ ++#: trap.c:309 ++#, c-format ++msgid "run_pending_traps: bad value in trap_list[%d]: %p" ++msgstr "" ++ ++#: trap.c:313 ++#, c-format ++msgid "run_pending_traps: signal handler is SIG_DFL, resending %d (%s) to myself" ++msgstr "" ++ ++#: trap.c:349 ++#, c-format ++msgid "trap_handler: bad signal %d" ++msgstr "" ++ ++#: variables.c:310 ++#, c-format ++msgid "error importing function definition for `%s'" ++msgstr "" ++ ++#: variables.c:670 ++#, c-format ++msgid "shell level (%d) too high, resetting to 1" ++msgstr "" ++ ++#: variables.c:1610 ++msgid "make_local_variable: no function context at current scope" ++msgstr "" ++ ++#: variables.c:2709 ++msgid "all_local_variables: no function context at current scope" ++msgstr "" ++ ++#: variables.c:2923 ++#: variables.c:2932 ++#, c-format ++msgid "invalid character %d in exportstr for %s" ++msgstr "" ++ ++#: variables.c:2938 ++#, c-format ++msgid "no `=' in exportstr for %s" ++msgstr "" ++ ++#: variables.c:3363 ++msgid "pop_var_context: head of shell_variables not a function context" ++msgstr "" ++ ++#: variables.c:3376 ++msgid "pop_var_context: no global_variables context" ++msgstr "" ++ ++#: variables.c:3442 ++msgid "pop_scope: head of shell_variables not a temporary environment scope" ++msgstr "" ++ ++#: version.c:82 ++msgid "Copyright (C) 2004 Free Software Foundation, Inc.\n" ++msgstr "Copyright (C) 2004 Free Software Foundation, Inc.\n" ++ ++#: xmalloc.c:93 ++#, c-format ++msgid "xmalloc: cannot allocate %lu bytes (%lu bytes allocated)" ++msgstr "" ++ ++#: xmalloc.c:95 ++#, c-format ++msgid "xmalloc: cannot allocate %lu bytes" ++msgstr "" ++ ++#: xmalloc.c:115 ++#, c-format ++msgid "xrealloc: cannot reallocate %lu bytes (%lu bytes allocated)" ++msgstr "" ++ ++#: xmalloc.c:117 ++#, c-format ++msgid "xrealloc: cannot allocate %lu bytes" ++msgstr "" ++ ++#: xmalloc.c:151 ++#, c-format ++msgid "xmalloc: %s:%d: cannot allocate %lu bytes (%lu bytes allocated)" ++msgstr "" ++ ++#: xmalloc.c:153 ++#, c-format ++msgid "xmalloc: %s:%d: cannot allocate %lu bytes" ++msgstr "" ++ ++#: xmalloc.c:175 ++#, c-format ++msgid "xrealloc: %s:%d: cannot reallocate %lu bytes (%lu bytes allocated)" ++msgstr "" ++ ++#: xmalloc.c:177 ++#, c-format ++msgid "xrealloc: %s:%d: cannot allocate %lu bytes" ++msgstr "" ++ ++#: builtins.c:244 ++msgid "`alias' with no arguments or with the -p option prints the list" ++msgstr "" ++ ++#: builtins.c:245 ++msgid "of aliases in the form alias NAME=VALUE on standard output." ++msgstr "" ++ ++#: builtins.c:246 ++msgid "Otherwise, an alias is defined for each NAME whose VALUE is given." ++msgstr "" ++ ++#: builtins.c:247 ++msgid "A trailing space in VALUE causes the next word to be checked for" ++msgstr "" ++ ++#: builtins.c:248 ++msgid "alias substitution when the alias is expanded. Alias returns" ++msgstr "" ++ ++#: builtins.c:249 ++msgid "true unless a NAME is given for which no alias has been defined." ++msgstr "" ++ ++#: builtins.c:257 ++msgid "Remove NAMEs from the list of defined aliases. If the -a option is given," ++msgstr "" ++ ++#: builtins.c:258 ++msgid "then remove all alias definitions." ++msgstr "" ++ ++#: builtins.c:266 ++msgid "Bind a key sequence to a Readline function or a macro, or set" ++msgstr "" ++ ++#: builtins.c:267 ++msgid "a Readline variable. The non-option argument syntax is equivalent" ++msgstr "" ++ ++#: builtins.c:268 ++msgid "to that found in ~/.inputrc, but must be passed as a single argument:" ++msgstr "" ++ ++#: builtins.c:269 ++msgid "bind '\"\\C-x\\C-r\": re-read-init-file'." ++msgstr "bind '\"\\C-x\\C-r\": re-read-init-file'." ++ ++#: builtins.c:270 ++msgid "bind accepts the following options:" ++msgstr "" ++ ++#: builtins.c:271 ++msgid " -m keymap Use `keymap' as the keymap for the duration of this" ++msgstr "" ++ ++#: builtins.c:272 ++msgid " command. Acceptable keymap names are emacs," ++msgstr "" ++ ++#: builtins.c:273 ++msgid " emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move," ++msgstr "" ++ ++#: builtins.c:274 ++msgid " vi-command, and vi-insert." ++msgstr "" ++ ++#: builtins.c:275 ++msgid " -l List names of functions." ++msgstr " -l Lista namn på funktioner." ++ ++#: builtins.c:276 ++msgid " -P List function names and bindings." ++msgstr "" ++ ++#: builtins.c:277 ++msgid " -p List functions and bindings in a form that can be" ++msgstr "" ++ ++#: builtins.c:278 ++msgid " reused as input." ++msgstr "" ++ ++#: builtins.c:279 ++msgid " -r keyseq Remove the binding for KEYSEQ." ++msgstr "" ++ ++#: builtins.c:280 ++msgid " -x keyseq:shell-command\tCause SHELL-COMMAND to be executed when" ++msgstr "" ++ ++#: builtins.c:281 ++msgid "\t\t\t\tKEYSEQ is entered." ++msgstr "" ++ ++#: builtins.c:282 ++msgid " -f filename Read key bindings from FILENAME." ++msgstr "" ++ ++#: builtins.c:283 ++msgid " -q function-name Query about which keys invoke the named function." ++msgstr "" ++ ++#: builtins.c:284 ++msgid " -u function-name Unbind all keys which are bound to the named function." ++msgstr "" ++ ++#: builtins.c:285 ++msgid " -V List variable names and values" ++msgstr "" ++ ++#: builtins.c:286 ++msgid " -v List variable names and values in a form that can" ++msgstr "" ++ ++#: builtins.c:287 ++msgid " be reused as input." ++msgstr "" ++ ++#: builtins.c:288 ++msgid " -S List key sequences that invoke macros and their values" ++msgstr "" ++ ++#: builtins.c:289 ++msgid " -s List key sequences that invoke macros and their values" ++msgstr "" ++ ++#: builtins.c:290 ++msgid " in a form that can be reused as input." ++msgstr "" ++ ++#: builtins.c:297 ++msgid "Exit from within a FOR, WHILE or UNTIL loop. If N is specified," ++msgstr "" ++ ++#: builtins.c:298 ++msgid "break N levels." ++msgstr "" ++ ++#: builtins.c:304 ++msgid "Resume the next iteration of the enclosing FOR, WHILE or UNTIL loop." ++msgstr "" ++ ++#: builtins.c:305 ++msgid "If N is specified, resume at the N-th enclosing loop." ++msgstr "" ++ ++#: builtins.c:311 ++msgid "Run a shell builtin. This is useful when you wish to rename a" ++msgstr "" ++ ++#: builtins.c:312 ++msgid "shell builtin to be a function, but need the functionality of the" ++msgstr "" ++ ++#: builtins.c:313 ++msgid "builtin within the function itself." ++msgstr "" ++ ++#: builtins.c:334 ++msgid "Change the current directory to DIR. The variable $HOME is the" ++msgstr "" ++ ++#: builtins.c:335 ++msgid "default DIR. The variable CDPATH defines the search path for" ++msgstr "" ++ ++#: builtins.c:336 ++msgid "the directory containing DIR. Alternative directory names in CDPATH" ++msgstr "" ++ ++#: builtins.c:337 ++msgid "are separated by a colon (:). A null directory name is the same as" ++msgstr "" ++ ++#: builtins.c:338 ++msgid "the current directory, i.e. `.'. If DIR begins with a slash (/)," ++msgstr "" ++ ++#: builtins.c:339 ++msgid "then CDPATH is not used. If the directory is not found, and the" ++msgstr "" ++ ++#: builtins.c:340 ++msgid "shell option `cdable_vars' is set, then try the word as a variable" ++msgstr "" ++ ++#: builtins.c:341 ++msgid "name. If that variable has a value, then cd to the value of that" ++msgstr "" ++ ++#: builtins.c:342 ++msgid "variable. The -P option says to use the physical directory structure" ++msgstr "" ++ ++#: builtins.c:343 ++msgid "instead of following symbolic links; the -L option forces symbolic links" ++msgstr "" ++ ++#: builtins.c:344 ++msgid "to be followed." ++msgstr "" ++ ++#: builtins.c:350 ++msgid "Print the current working directory. With the -P option, pwd prints" ++msgstr "" ++ ++#: builtins.c:351 ++msgid "the physical directory, without any symbolic links; the -L option" ++msgstr "" ++ ++#: builtins.c:352 ++msgid "makes pwd follow symbolic links." ++msgstr "" ++ ++#: builtins.c:358 ++msgid "No effect; the command does nothing. A zero exit code is returned." ++msgstr "" ++ ++#: builtins.c:364 ++msgid "Return a successful result." ++msgstr "" ++ ++#: builtins.c:370 ++msgid "Return an unsuccessful result." ++msgstr "" ++ ++#: builtins.c:376 ++msgid "Runs COMMAND with ARGS ignoring shell functions. If you have a shell" ++msgstr "" ++ ++#: builtins.c:377 ++msgid "function called `ls', and you wish to call the command `ls', you can" ++msgstr "" ++ ++#: builtins.c:378 ++msgid "say \"command ls\". If the -p option is given, a default value is used" ++msgstr "" ++ ++#: builtins.c:379 ++msgid "for PATH that is guaranteed to find all of the standard utilities. If" ++msgstr "" ++ ++#: builtins.c:380 ++msgid "the -V or -v option is given, a string is printed describing COMMAND." ++msgstr "" ++ ++#: builtins.c:381 ++msgid "The -V option produces a more verbose description." ++msgstr "" ++ ++#: builtins.c:387 ++msgid "Declare variables and/or give them attributes. If no NAMEs are" ++msgstr "" ++ ++#: builtins.c:388 ++msgid "given, then display the values of variables instead. The -p option" ++msgstr "" ++ ++#: builtins.c:389 ++msgid "will display the attributes and values of each NAME." ++msgstr "" ++ ++#: builtins.c:391 ++msgid "The flags are:" ++msgstr "Flaggorna är:" ++ ++#: builtins.c:393 ++msgid " -a\tto make NAMEs arrays (if supported)" ++msgstr "" ++ ++#: builtins.c:394 ++msgid " -f\tto select from among function names only" ++msgstr "" ++ ++#: builtins.c:395 ++msgid " -F\tto display function names (and line number and source file name if" ++msgstr "" ++ ++#: builtins.c:396 ++msgid "\tdebugging) without definitions" ++msgstr "" ++ ++#: builtins.c:397 ++msgid " -i\tto make NAMEs have the `integer' attribute" ++msgstr "" ++ ++#: builtins.c:398 ++msgid " -r\tto make NAMEs readonly" ++msgstr "" ++ ++#: builtins.c:399 ++msgid " -t\tto make NAMEs have the `trace' attribute" ++msgstr "" ++ ++#: builtins.c:400 ++msgid " -x\tto make NAMEs export" ++msgstr "" ++ ++#: builtins.c:402 ++msgid "Variables with the integer attribute have arithmetic evaluation (see" ++msgstr "" ++ ++#: builtins.c:403 ++msgid "`let') done when the variable is assigned to." ++msgstr "" ++ ++#: builtins.c:405 ++msgid "When displaying values of variables, -f displays a function's name" ++msgstr "" ++ ++#: builtins.c:406 ++msgid "and definition. The -F option restricts the display to function" ++msgstr "" ++ ++#: builtins.c:407 ++#, fuzzy ++msgid "name only." ++msgstr "En&dast namn" ++ ++#: builtins.c:409 ++msgid "Using `+' instead of `-' turns off the given attribute instead. When" ++msgstr "" ++ ++#: builtins.c:410 ++msgid "used in a function, makes NAMEs local, as with the `local' command." ++msgstr "" ++ ++#: builtins.c:416 ++msgid "Obsolete. See `declare'." ++msgstr "Föråldrad. Se \"declare\"." ++ ++#: builtins.c:422 ++msgid "Create a local variable called NAME, and give it VALUE. LOCAL" ++msgstr "" ++ ++#: builtins.c:423 ++msgid "can only be used within a function; it makes the variable NAME" ++msgstr "" ++ ++#: builtins.c:424 ++msgid "have a visible scope restricted to that function and its children." ++msgstr "" ++ ++#: builtins.c:431 ++msgid "Output the ARGs. If -n is specified, the trailing newline is" ++msgstr "" ++ ++#: builtins.c:432 ++msgid "suppressed. If the -e option is given, interpretation of the" ++msgstr "" ++ ++#: builtins.c:433 ++msgid "following backslash-escaped characters is turned on:" ++msgstr "" ++ ++#: builtins.c:434 ++msgid "\t\\a\talert (bell)" ++msgstr "" ++ ++#: builtins.c:435 ++msgid "\t\\b\tbackspace" ++msgstr "" ++ ++#: builtins.c:436 ++msgid "\t\\c\tsuppress trailing newline" ++msgstr "" ++ ++#: builtins.c:437 ++msgid "\t\\E\tescape character" ++msgstr "" ++ ++#: builtins.c:438 ++msgid "\t\\f\tform feed" ++msgstr "" ++ ++#: builtins.c:439 ++msgid "" ++"\t\\n" ++"\tnew line" ++msgstr "" ++ ++#: builtins.c:440 ++msgid "\t\\r\tcarriage return" ++msgstr "" ++ ++#: builtins.c:441 ++msgid "\t\\t\thorizontal tab" ++msgstr "" ++ ++#: builtins.c:442 ++msgid "\t\\v\tvertical tab" ++msgstr "" ++ ++#: builtins.c:443 ++msgid "\t\\\\\tbackslash" ++msgstr "" ++ ++#: builtins.c:444 ++msgid "" ++"\t\\n" ++"um\tthe character whose ASCII code is NUM (octal)." ++msgstr "" ++ ++#: builtins.c:446 ++msgid "You can explicitly turn off the interpretation of the above characters" ++msgstr "" ++ ++#: builtins.c:447 ++msgid "with the -E option." ++msgstr "" ++ ++#: builtins.c:455 ++msgid "Output the ARGs. If -n is specified, the trailing newline is suppressed." ++msgstr "" ++ ++#: builtins.c:462 ++msgid "Enable and disable builtin shell commands. This allows" ++msgstr "" ++ ++#: builtins.c:463 ++msgid "you to use a disk command which has the same name as a shell" ++msgstr "" ++ ++#: builtins.c:464 ++msgid "builtin without specifying a full pathname. If -n is used, the" ++msgstr "" ++ ++#: builtins.c:465 ++msgid "NAMEs become disabled; otherwise NAMEs are enabled. For example," ++msgstr "" ++ ++#: builtins.c:466 ++msgid "to use the `test' found in $PATH instead of the shell builtin" ++msgstr "" ++ ++#: builtins.c:467 ++msgid "version, type `enable -n test'. On systems supporting dynamic" ++msgstr "" ++ ++#: builtins.c:468 ++msgid "loading, the -f option may be used to load new builtins from the" ++msgstr "" ++ ++#: builtins.c:469 ++msgid "shared object FILENAME. The -d option will delete a builtin" ++msgstr "" ++ ++#: builtins.c:470 ++msgid "previously loaded with -f. If no non-option names are given, or" ++msgstr "" ++ ++#: builtins.c:471 ++msgid "the -p option is supplied, a list of builtins is printed. The" ++msgstr "" ++ ++#: builtins.c:472 ++msgid "-a option means to print every builtin with an indication of whether" ++msgstr "" ++ ++#: builtins.c:473 ++msgid "or not it is enabled. The -s option restricts the output to the POSIX.2" ++msgstr "" ++ ++#: builtins.c:474 ++msgid "`special' builtins. The -n option displays a list of all disabled builtins." ++msgstr "" ++ ++#: builtins.c:480 ++msgid "Read ARGs as input to the shell and execute the resulting command(s)." ++msgstr "" ++ ++#: builtins.c:486 ++msgid "Getopts is used by shell procedures to parse positional parameters." ++msgstr "" ++ ++#: builtins.c:488 ++msgid "OPTSTRING contains the option letters to be recognized; if a letter" ++msgstr "" ++ ++#: builtins.c:489 ++msgid "is followed by a colon, the option is expected to have an argument," ++msgstr "" ++ ++#: builtins.c:490 ++msgid "which should be separated from it by white space." ++msgstr "" ++ ++#: builtins.c:492 ++msgid "Each time it is invoked, getopts will place the next option in the" ++msgstr "" ++ ++#: builtins.c:493 ++msgid "shell variable $name, initializing name if it does not exist, and" ++msgstr "" ++ ++#: builtins.c:494 ++msgid "the index of the next argument to be processed into the shell" ++msgstr "" ++ ++#: builtins.c:495 ++msgid "variable OPTIND. OPTIND is initialized to 1 each time the shell or" ++msgstr "" ++ ++#: builtins.c:496 ++msgid "a shell script is invoked. When an option requires an argument," ++msgstr "" ++ ++#: builtins.c:497 ++msgid "getopts places that argument into the shell variable OPTARG." ++msgstr "" ++ ++#: builtins.c:499 ++msgid "getopts reports errors in one of two ways. If the first character" ++msgstr "" ++ ++#: builtins.c:500 ++msgid "of OPTSTRING is a colon, getopts uses silent error reporting. In" ++msgstr "" ++ ++#: builtins.c:501 ++msgid "this mode, no error messages are printed. If an invalid option is" ++msgstr "" ++ ++#: builtins.c:502 ++msgid "seen, getopts places the option character found into OPTARG. If a" ++msgstr "" ++ ++#: builtins.c:503 ++msgid "required argument is not found, getopts places a ':' into NAME and" ++msgstr "" ++ ++#: builtins.c:504 ++msgid "sets OPTARG to the option character found. If getopts is not in" ++msgstr "" ++ ++#: builtins.c:505 ++msgid "silent mode, and an invalid option is seen, getopts places '?' into" ++msgstr "" ++ ++#: builtins.c:506 ++msgid "NAME and unsets OPTARG. If a required argument is not found, a '?'" ++msgstr "" ++ ++#: builtins.c:507 ++msgid "is placed in NAME, OPTARG is unset, and a diagnostic message is" ++msgstr "" ++ ++#: builtins.c:508 ++#, fuzzy ++msgid "printed." ++msgstr "Utskrivet" ++ ++#: builtins.c:510 ++msgid "If the shell variable OPTERR has the value 0, getopts disables the" ++msgstr "" ++ ++#: builtins.c:511 ++msgid "printing of error messages, even if the first character of" ++msgstr "" ++ ++#: builtins.c:512 ++msgid "OPTSTRING is not a colon. OPTERR has the value 1 by default." ++msgstr "" ++ ++#: builtins.c:514 ++msgid "Getopts normally parses the positional parameters ($0 - $9), but if" ++msgstr "" ++ ++#: builtins.c:515 ++msgid "more arguments are given, they are parsed instead." ++msgstr "" ++ ++#: builtins.c:521 ++msgid "Exec FILE, replacing this shell with the specified program." ++msgstr "" ++ ++#: builtins.c:522 ++msgid "If FILE is not specified, the redirections take effect in this" ++msgstr "" ++ ++#: builtins.c:523 ++msgid "shell. If the first argument is `-l', then place a dash in the" ++msgstr "" ++ ++#: builtins.c:524 ++msgid "zeroth arg passed to FILE, as login does. If the `-c' option" ++msgstr "" ++ ++#: builtins.c:525 ++msgid "is supplied, FILE is executed with a null environment. The `-a'" ++msgstr "" ++ ++#: builtins.c:526 ++msgid "option means to make set argv[0] of the executed process to NAME." ++msgstr "" ++ ++#: builtins.c:527 ++msgid "If the file cannot be executed and the shell is not interactive," ++msgstr "" ++ ++#: builtins.c:528 ++msgid "then the shell exits, unless the shell option `execfail' is set." ++msgstr "" ++ ++#: builtins.c:534 ++msgid "Exit the shell with a status of N. If N is omitted, the exit status" ++msgstr "" ++ ++#: builtins.c:535 ++msgid "is that of the last command executed." ++msgstr "" ++ ++#: builtins.c:541 ++msgid "Logout of a login shell." ++msgstr "" ++ ++#: builtins.c:548 ++msgid "fc is used to list or edit and re-execute commands from the history list." ++msgstr "" ++ ++#: builtins.c:549 ++msgid "FIRST and LAST can be numbers specifying the range, or FIRST can be a" ++msgstr "" ++ ++#: builtins.c:550 ++msgid "string, which means the most recent command beginning with that" ++msgstr "" ++ ++#: builtins.c:551 ++#, fuzzy ++msgid "string." ++msgstr "STRÄNG" ++ ++#: builtins.c:553 ++msgid " -e ENAME selects which editor to use. Default is FCEDIT, then EDITOR," ++msgstr "" ++ ++#: builtins.c:554 ++msgid " then vi." ++msgstr "" ++ ++#: builtins.c:556 ++msgid " -l means list lines instead of editing." ++msgstr "" ++ ++#: builtins.c:557 ++msgid " -n means no line numbers listed." ++msgstr "" ++ ++#: builtins.c:558 ++msgid " -r means reverse the order of the lines (making it newest listed first)." ++msgstr "" ++ ++#: builtins.c:560 ++msgid "With the `fc -s [pat=rep ...] [command]' format, the command is" ++msgstr "" ++ ++#: builtins.c:561 ++msgid "re-executed after the substitution OLD=NEW is performed." ++msgstr "" ++ ++#: builtins.c:563 ++msgid "A useful alias to use with this is r='fc -s', so that typing `r cc'" ++msgstr "" ++ ++#: builtins.c:564 ++msgid "runs the last command beginning with `cc' and typing `r' re-executes" ++msgstr "" ++ ++#: builtins.c:565 ++msgid "the last command." ++msgstr "" ++ ++#: builtins.c:573 ++msgid "Place JOB_SPEC in the foreground, and make it the current job. If" ++msgstr "" ++ ++#: builtins.c:574 ++msgid "JOB_SPEC is not present, the shell's notion of the current job is" ++msgstr "" ++ ++#: builtins.c:575 ++#, fuzzy ++msgid "used." ++msgstr "Anv_änt" ++ ++#: builtins.c:583 ++msgid "Place JOB_SPEC in the background, as if it had been started with" ++msgstr "" ++ ++#: builtins.c:584 ++msgid "`&'. If JOB_SPEC is not present, the shell's notion of the current" ++msgstr "" ++ ++#: builtins.c:585 ++msgid "job is used." ++msgstr "" ++ ++#: builtins.c:592 ++msgid "For each NAME, the full pathname of the command is determined and" ++msgstr "" ++ ++#: builtins.c:593 ++msgid "remembered. If the -p option is supplied, PATHNAME is used as the" ++msgstr "" ++ ++#: builtins.c:594 ++msgid "full pathname of NAME, and no path search is performed. The -r" ++msgstr "" ++ ++#: builtins.c:595 ++msgid "option causes the shell to forget all remembered locations. The -d" ++msgstr "" ++ ++#: builtins.c:596 ++msgid "option causes the shell to forget the remembered location of each NAME." ++msgstr "" ++ ++#: builtins.c:597 ++msgid "If the -t option is supplied the full pathname to which each NAME" ++msgstr "" ++ ++#: builtins.c:598 ++msgid "corresponds is printed. If multiple NAME arguments are supplied with" ++msgstr "" ++ ++#: builtins.c:599 ++msgid "-t, the NAME is printed before the hashed full pathname. The -l option" ++msgstr "" ++ ++#: builtins.c:600 ++msgid "causes output to be displayed in a format that may be reused as input." ++msgstr "" ++ ++#: builtins.c:601 ++msgid "If no arguments are given, information about remembered commands is displayed." ++msgstr "" ++ ++#: builtins.c:608 ++msgid "Display helpful information about builtin commands. If PATTERN is" ++msgstr "" ++ ++#: builtins.c:609 ++msgid "specified, gives detailed help on all commands matching PATTERN," ++msgstr "" ++ ++#: builtins.c:610 ++msgid "otherwise a list of the builtins is printed. The -s option" ++msgstr "" ++ ++#: builtins.c:611 ++msgid "restricts the output for each builtin command matching PATTERN to" ++msgstr "" ++ ++#: builtins.c:612 ++msgid "a short usage synopsis." ++msgstr "" ++ ++#: builtins.c:620 ++msgid "Display the history list with line numbers. Lines listed with" ++msgstr "" ++ ++#: builtins.c:621 ++msgid "with a `*' have been modified. Argument of N says to list only" ++msgstr "" ++ ++#: builtins.c:622 ++msgid "the last N lines. The `-c' option causes the history list to be" ++msgstr "" ++ ++#: builtins.c:623 ++msgid "cleared by deleting all of the entries. The `-d' option deletes" ++msgstr "" ++ ++#: builtins.c:624 ++msgid "the history entry at offset OFFSET. The `-w' option writes out the" ++msgstr "" ++ ++#: builtins.c:625 ++msgid "current history to the history file; `-r' means to read the file and" ++msgstr "" ++ ++#: builtins.c:626 ++msgid "append the contents to the history list instead. `-a' means" ++msgstr "" ++ ++#: builtins.c:627 ++msgid "to append history lines from this session to the history file." ++msgstr "" ++ ++#: builtins.c:628 ++msgid "Argument `-n' means to read all history lines not already read" ++msgstr "" ++ ++#: builtins.c:629 ++msgid "from the history file and append them to the history list." ++msgstr "" ++ ++#: builtins.c:631 ++msgid "If FILENAME is given, then that is used as the history file else" ++msgstr "" ++ ++#: builtins.c:632 ++msgid "if $HISTFILE has a value, that is used, else ~/.bash_history." ++msgstr "" ++ ++#: builtins.c:633 ++msgid "If the -s option is supplied, the non-option ARGs are appended to" ++msgstr "" ++ ++#: builtins.c:634 ++msgid "the history list as a single entry. The -p option means to perform" ++msgstr "" ++ ++#: builtins.c:635 ++msgid "history expansion on each ARG and display the result, without storing" ++msgstr "" ++ ++#: builtins.c:636 ++msgid "anything in the history list." ++msgstr "" ++ ++#: builtins.c:638 ++msgid "If the $HISTTIMEFORMAT variable is set and not null, its value is used" ++msgstr "" ++ ++#: builtins.c:639 ++msgid "as a format string for strftime(3) to print the time stamp associated" ++msgstr "" ++ ++#: builtins.c:640 ++msgid "with each displayed history entry. No time stamps are printed otherwise." ++msgstr "" ++ ++#: builtins.c:648 ++msgid "Lists the active jobs. The -l option lists process id's in addition" ++msgstr "" ++ ++#: builtins.c:649 ++msgid "to the normal information; the -p option lists process id's only." ++msgstr "" ++ ++#: builtins.c:650 ++msgid "If -n is given, only processes that have changed status since the last" ++msgstr "" ++ ++#: builtins.c:651 ++msgid "notification are printed. JOBSPEC restricts output to that job. The" ++msgstr "" ++ ++#: builtins.c:652 ++msgid "-r and -s options restrict output to running and stopped jobs only," ++msgstr "" ++ ++#: builtins.c:653 ++msgid "respectively. Without options, the status of all active jobs is" ++msgstr "" ++ ++#: builtins.c:654 ++msgid "printed. If -x is given, COMMAND is run after all job specifications" ++msgstr "" ++ ++#: builtins.c:655 ++msgid "that appear in ARGS have been replaced with the process ID of that job's" ++msgstr "" ++ ++#: builtins.c:656 ++msgid "process group leader." ++msgstr "" ++ ++#: builtins.c:664 ++msgid "By default, removes each JOBSPEC argument from the table of active jobs." ++msgstr "" ++ ++#: builtins.c:665 ++msgid "If the -h option is given, the job is not removed from the table, but is" ++msgstr "" ++ ++#: builtins.c:666 ++msgid "marked so that SIGHUP is not sent to the job if the shell receives a" ++msgstr "" ++ ++#: builtins.c:667 ++msgid "SIGHUP. The -a option, when JOBSPEC is not supplied, means to remove all" ++msgstr "" ++ ++#: builtins.c:668 ++msgid "jobs from the job table; the -r option means to remove only running jobs." ++msgstr "" ++ ++#: builtins.c:675 ++msgid "Send the processes named by PID (or JOB) the signal SIGSPEC. If" ++msgstr "" ++ ++#: builtins.c:676 ++msgid "SIGSPEC is not present, then SIGTERM is assumed. An argument of `-l'" ++msgstr "" ++ ++#: builtins.c:677 ++msgid "lists the signal names; if arguments follow `-l' they are assumed to" ++msgstr "" ++ ++#: builtins.c:678 ++msgid "be signal numbers for which names should be listed. Kill is a shell" ++msgstr "" ++ ++#: builtins.c:679 ++msgid "builtin for two reasons: it allows job IDs to be used instead of" ++msgstr "" ++ ++#: builtins.c:680 ++msgid "process IDs, and, if you have reached the limit on processes that" ++msgstr "" ++ ++#: builtins.c:681 ++msgid "you can create, you don't have to start a process to kill another one." ++msgstr "" ++ ++#: builtins.c:687 ++msgid "Each ARG is an arithmetic expression to be evaluated. Evaluation" ++msgstr "" ++ ++#: builtins.c:688 ++msgid "is done in fixed-width integers with no check for overflow, though" ++msgstr "" ++ ++#: builtins.c:689 ++msgid "division by 0 is trapped and flagged as an error. The following" ++msgstr "" ++ ++#: builtins.c:690 ++msgid "list of operators is grouped into levels of equal-precedence operators." ++msgstr "" ++ ++#: builtins.c:691 ++msgid "The levels are listed in order of decreasing precedence." ++msgstr "" ++ ++#: builtins.c:693 ++msgid "\tid++, id--\tvariable post-increment, post-decrement" ++msgstr "" ++ ++#: builtins.c:694 ++msgid "\t++id, --id\tvariable pre-increment, pre-decrement" ++msgstr "" ++ ++#: builtins.c:695 ++msgid "\t-, +\t\tunary minus, plus" ++msgstr "" ++ ++#: builtins.c:696 ++msgid "\t!, ~\t\tlogical and bitwise negation" ++msgstr "" ++ ++#: builtins.c:697 ++msgid "\t**\t\texponentiation" ++msgstr "" ++ ++#: builtins.c:698 ++msgid "\t*, /, %\t\tmultiplication, division, remainder" ++msgstr "" ++ ++#: builtins.c:699 ++msgid "\t+, -\t\taddition, subtraction" ++msgstr "" ++ ++#: builtins.c:700 ++msgid "\t<<, >>\t\tleft and right bitwise shifts" ++msgstr "" ++ ++#: builtins.c:701 ++msgid "\t<=, >=, <, >\tcomparison" ++msgstr "" ++ ++#: builtins.c:702 ++msgid "\t==, !=\t\tequality, inequality" ++msgstr "" ++ ++#: builtins.c:703 ++msgid "\t&\t\tbitwise AND" ++msgstr "" ++ ++#: builtins.c:704 ++msgid "\t^\t\tbitwise XOR" ++msgstr "" ++ ++#: builtins.c:705 ++msgid "\t|\t\tbitwise OR" ++msgstr "" ++ ++#: builtins.c:706 ++msgid "\t&&\t\tlogical AND" ++msgstr "" ++ ++#: builtins.c:707 ++msgid "\t||\t\tlogical OR" ++msgstr "" ++ ++#: builtins.c:708 ++msgid "\texpr ? expr : expr" ++msgstr "" ++ ++#: builtins.c:709 ++msgid "\t\t\tconditional operator" ++msgstr "" ++ ++#: builtins.c:710 ++msgid "\t=, *=, /=, %=," ++msgstr "\t=, *=, /=, %=," ++ ++#: builtins.c:711 ++msgid "\t+=, -=, <<=, >>=," ++msgstr "\t+=, -=, <<=, >>=," ++ ++#: builtins.c:712 ++msgid "\t&=, ^=, |=\tassignment" ++msgstr "" ++ ++#: builtins.c:714 ++msgid "Shell variables are allowed as operands. The name of the variable" ++msgstr "" ++ ++#: builtins.c:715 ++msgid "is replaced by its value (coerced to a fixed-width integer) within" ++msgstr "" ++ ++#: builtins.c:716 ++msgid "an expression. The variable need not have its integer attribute" ++msgstr "" ++ ++#: builtins.c:717 ++msgid "turned on to be used in an expression." ++msgstr "" ++ ++#: builtins.c:719 ++msgid "Operators are evaluated in order of precedence. Sub-expressions in" ++msgstr "" ++ ++#: builtins.c:720 ++msgid "parentheses are evaluated first and may override the precedence" ++msgstr "" ++ ++#: builtins.c:721 ++msgid "rules above." ++msgstr "" ++ ++#: builtins.c:723 ++msgid "If the last ARG evaluates to 0, let returns 1; 0 is returned" ++msgstr "" ++ ++#: builtins.c:724 ++msgid "otherwise." ++msgstr "" ++ ++#: builtins.c:730 ++msgid "One line is read from the standard input, or from file descriptor FD if the" ++msgstr "" ++ ++#: builtins.c:731 ++msgid "-u option is supplied, and the first word is assigned to the first NAME," ++msgstr "" ++ ++#: builtins.c:732 ++msgid "the second word to the second NAME, and so on, with leftover words assigned" ++msgstr "" ++ ++#: builtins.c:733 ++msgid "to the last NAME. Only the characters found in $IFS are recognized as word" ++msgstr "" ++ ++#: builtins.c:734 ++msgid "delimiters. If no NAMEs are supplied, the line read is stored in the REPLY" ++msgstr "" ++ ++#: builtins.c:735 ++msgid "variable. If the -r option is given, this signifies `raw' input, and" ++msgstr "" ++ ++#: builtins.c:736 ++msgid "backslash escaping is disabled. The -d option causes read to continue" ++msgstr "" ++ ++#: builtins.c:737 ++msgid "until the first character of DELIM is read, rather than newline. If the -p" ++msgstr "" ++ ++#: builtins.c:738 ++msgid "option is supplied, the string PROMPT is output without a trailing newline" ++msgstr "" ++ ++#: builtins.c:739 ++msgid "before attempting to read. If -a is supplied, the words read are assigned" ++msgstr "" ++ ++#: builtins.c:740 ++msgid "to sequential indices of ARRAY, starting at zero. If -e is supplied and" ++msgstr "" ++ ++#: builtins.c:741 ++msgid "the shell is interactive, readline is used to obtain the line. If -n is" ++msgstr "" ++ ++#: builtins.c:742 ++msgid "supplied with a non-zero NCHARS argument, read returns after NCHARS" ++msgstr "" ++ ++#: builtins.c:743 ++msgid "characters have been read. The -s option causes input coming from a" ++msgstr "" ++ ++#: builtins.c:744 ++msgid "terminal to not be echoed." ++msgstr "" ++ ++#: builtins.c:746 ++msgid "The -t option causes read to time out and return failure if a complete line" ++msgstr "" ++ ++#: builtins.c:747 ++msgid "of input is not read within TIMEOUT seconds. If the TMOUT variable is set," ++msgstr "" ++ ++#: builtins.c:748 ++msgid "its value is the default timeout. The return code is zero, unless end-of-file" ++msgstr "" ++ ++#: builtins.c:749 ++msgid "is encountered, read times out, or an invalid file descriptor is supplied as" ++msgstr "" ++ ++#: builtins.c:750 ++msgid "the argument to -u." ++msgstr "" ++ ++#: builtins.c:756 ++msgid "Causes a function to exit with the return value specified by N. If N" ++msgstr "" ++ ++#: builtins.c:757 ++msgid "is omitted, the return status is that of the last command." ++msgstr "" ++ ++#: builtins.c:763 ++msgid " -a Mark variables which are modified or created for export." ++msgstr "" ++ ++#: builtins.c:764 ++msgid " -b Notify of job termination immediately." ++msgstr "" ++ ++#: builtins.c:765 ++msgid " -e Exit immediately if a command exits with a non-zero status." ++msgstr "" ++ ++#: builtins.c:766 ++msgid " -f Disable file name generation (globbing)." ++msgstr "" ++ ++#: builtins.c:767 ++msgid " -h Remember the location of commands as they are looked up." ++msgstr "" ++ ++#: builtins.c:768 ++msgid " -k All assignment arguments are placed in the environment for a" ++msgstr "" ++ ++#: builtins.c:769 ++msgid " command, not just those that precede the command name." ++msgstr "" ++ ++#: builtins.c:770 ++msgid " -m Job control is enabled." ++msgstr "" ++ ++#: builtins.c:771 ++msgid " -n Read commands but do not execute them." ++msgstr "" ++ ++#: builtins.c:772 ++#, fuzzy ++msgid " -o option-name" ++msgstr "Inställningsnamn" ++ ++#: builtins.c:773 ++msgid " Set the variable corresponding to option-name:" ++msgstr "" ++ ++#: builtins.c:774 ++msgid " allexport same as -a" ++msgstr " allexport samma som -a" ++ ++#: builtins.c:775 ++msgid " braceexpand same as -B" ++msgstr " braceexpand samma som -B" ++ ++#: builtins.c:777 ++msgid " emacs use an emacs-style line editing interface" ++msgstr "" ++ ++#: builtins.c:779 ++msgid " errexit same as -e" ++msgstr " errexit samma som -e" ++ ++#: builtins.c:780 ++msgid " errtrace same as -E" ++msgstr " errtrace samma som -E" ++ ++#: builtins.c:781 ++msgid " functrace same as -T" ++msgstr " functrace samma som -T" ++ ++#: builtins.c:782 ++msgid " hashall same as -h" ++msgstr " hashall samma som -h" ++ ++#: builtins.c:784 ++msgid " histexpand same as -H" ++msgstr " histexpand samma som -H" ++ ++#: builtins.c:787 ++msgid " history enable command history" ++msgstr "" ++ ++#: builtins.c:789 ++msgid " ignoreeof the shell will not exit upon reading EOF" ++msgstr "" ++ ++#: builtins.c:790 ++msgid " interactive-comments" ++msgstr "" ++ ++#: builtins.c:791 ++msgid " allow comments to appear in interactive commands" ++msgstr "" ++ ++#: builtins.c:792 ++msgid " keyword same as -k" ++msgstr " keyword samma som -k" ++ ++#: builtins.c:793 ++msgid " monitor same as -m" ++msgstr " monitor samma som -m" ++ ++#: builtins.c:794 ++msgid " noclobber same as -C" ++msgstr " noclobber samma som -C" ++ ++#: builtins.c:795 ++msgid " noexec same as -n" ++msgstr " noexec samma som -n" ++ ++#: builtins.c:796 ++msgid " noglob same as -f" ++msgstr " noglob samma som -f" ++ ++#: builtins.c:797 ++msgid " nolog currently accepted but ignored" ++msgstr "" ++ ++#: builtins.c:798 ++msgid " notify same as -b" ++msgstr " notify samma som -b" ++ ++#: builtins.c:799 ++msgid " nounset same as -u" ++msgstr " nounset samma som -u" ++ ++#: builtins.c:800 ++msgid " onecmd same as -t" ++msgstr " onecmd samma som -t" ++ ++#: builtins.c:801 ++msgid " physical same as -P" ++msgstr " physical samma som -P" ++ ++#: builtins.c:802 ++msgid " pipefail the return value of a pipeline is the status of" ++msgstr "" ++ ++#: builtins.c:803 ++msgid " the last command to exit with a non-zero status," ++msgstr "" ++ ++#: builtins.c:804 ++msgid " or zero if no command exited with a non-zero status" ++msgstr "" ++ ++#: builtins.c:805 ++msgid " posix change the behavior of bash where the default" ++msgstr "" ++ ++#: builtins.c:806 ++msgid " operation differs from the 1003.2 standard to" ++msgstr "" ++ ++#: builtins.c:807 ++msgid " match the standard" ++msgstr "" ++ ++#: builtins.c:808 ++msgid " privileged same as -p" ++msgstr " privileged samma som -p" ++ ++#: builtins.c:809 ++msgid " verbose same as -v" ++msgstr " verbose samma som -v" ++ ++#: builtins.c:811 ++msgid " vi use a vi-style line editing interface" ++msgstr "" ++ ++#: builtins.c:813 ++msgid " xtrace same as -x" ++msgstr " xtrace samma som -x" ++ ++#: builtins.c:814 ++msgid " -p Turned on whenever the real and effective user ids do not match." ++msgstr "" ++ ++#: builtins.c:815 ++msgid " Disables processing of the $ENV file and importing of shell" ++msgstr "" ++ ++#: builtins.c:816 ++msgid " functions. Turning this option off causes the effective uid and" ++msgstr "" ++ ++#: builtins.c:817 ++msgid " gid to be set to the real uid and gid." ++msgstr "" ++ ++#: builtins.c:818 ++msgid " -t Exit after reading and executing one command." ++msgstr "" ++ ++#: builtins.c:819 ++msgid " -u Treat unset variables as an error when substituting." ++msgstr "" ++ ++#: builtins.c:820 ++msgid " -v Print shell input lines as they are read." ++msgstr "" ++ ++#: builtins.c:821 ++msgid " -x Print commands and their arguments as they are executed." ++msgstr "" ++ ++#: builtins.c:823 ++msgid " -B the shell will perform brace expansion" ++msgstr "" ++ ++#: builtins.c:825 ++msgid " -C If set, disallow existing regular files to be overwritten" ++msgstr "" ++ ++#: builtins.c:826 ++msgid " by redirection of output." ++msgstr "" ++ ++#: builtins.c:827 ++msgid " -E If set, the ERR trap is inherited by shell functions." ++msgstr "" ++ ++#: builtins.c:829 ++msgid " -H Enable ! style history substitution. This flag is on" ++msgstr "" ++ ++#: builtins.c:830 ++msgid " by default." ++msgstr "" ++ ++#: builtins.c:832 ++msgid " -P If set, do not follow symbolic links when executing commands" ++msgstr "" ++ ++#: builtins.c:833 ++msgid " such as cd which change the current directory." ++msgstr "" ++ ++#: builtins.c:834 ++msgid " -T If set, the DEBUG trap is inherited by shell functions." ++msgstr "" ++ ++#: builtins.c:836 ++msgid "Using + rather than - causes these flags to be turned off. The" ++msgstr "" ++ ++#: builtins.c:837 ++msgid "flags can also be used upon invocation of the shell. The current" ++msgstr "" ++ ++#: builtins.c:838 ++msgid "set of flags may be found in $-. The remaining n ARGs are positional" ++msgstr "" ++ ++#: builtins.c:839 ++msgid "parameters and are assigned, in order, to $1, $2, .. $n. If no" ++msgstr "" ++ ++#: builtins.c:840 ++msgid "ARGs are given, all shell variables are printed." ++msgstr "" ++ ++#: builtins.c:846 ++msgid "For each NAME, remove the corresponding variable or function. Given" ++msgstr "" ++ ++#: builtins.c:847 ++msgid "the `-v', unset will only act on variables. Given the `-f' flag," ++msgstr "" ++ ++#: builtins.c:848 ++msgid "unset will only act on functions. With neither flag, unset first" ++msgstr "" ++ ++#: builtins.c:849 ++msgid "tries to unset a variable, and if that fails, then tries to unset a" ++msgstr "" ++ ++#: builtins.c:850 ++msgid "function. Some variables cannot be unset; also see readonly." ++msgstr "" ++ ++#: builtins.c:856 ++msgid "NAMEs are marked for automatic export to the environment of" ++msgstr "" ++ ++#: builtins.c:857 ++msgid "subsequently executed commands. If the -f option is given," ++msgstr "" ++ ++#: builtins.c:858 ++msgid "the NAMEs refer to functions. If no NAMEs are given, or if `-p'" ++msgstr "" ++ ++#: builtins.c:859 ++msgid "is given, a list of all names that are exported in this shell is" ++msgstr "" ++ ++#: builtins.c:860 ++msgid "printed. An argument of `-n' says to remove the export property" ++msgstr "" ++ ++#: builtins.c:861 ++msgid "from subsequent NAMEs. An argument of `--' disables further option" ++msgstr "" ++ ++#: builtins.c:862 ++#: builtins.c:874 ++#, fuzzy ++msgid "processing." ++msgstr "Bearbetar..." ++ ++#: builtins.c:868 ++msgid "The given NAMEs are marked readonly and the values of these NAMEs may" ++msgstr "" ++ ++#: builtins.c:869 ++msgid "not be changed by subsequent assignment. If the -f option is given," ++msgstr "" ++ ++#: builtins.c:870 ++msgid "then functions corresponding to the NAMEs are so marked. If no" ++msgstr "" ++ ++#: builtins.c:871 ++msgid "arguments are given, or if `-p' is given, a list of all readonly names" ++msgstr "" ++ ++#: builtins.c:872 ++msgid "is printed. The `-a' option means to treat each NAME as" ++msgstr "" ++ ++#: builtins.c:873 ++msgid "an array variable. An argument of `--' disables further option" ++msgstr "" ++ ++#: builtins.c:880 ++msgid "The positional parameters from $N+1 ... are renamed to $1 ... If N is" ++msgstr "" ++ ++#: builtins.c:881 ++msgid "not given, it is assumed to be 1." ++msgstr "" ++ ++#: builtins.c:887 ++#: builtins.c:896 ++msgid "Read and execute commands from FILENAME and return. The pathnames" ++msgstr "" ++ ++#: builtins.c:888 ++#: builtins.c:897 ++msgid "in $PATH are used to find the directory containing FILENAME. If any" ++msgstr "" ++ ++#: builtins.c:889 ++#: builtins.c:898 ++msgid "ARGUMENTS are supplied, they become the positional parameters when" ++msgstr "" ++ ++#: builtins.c:890 ++#: builtins.c:899 ++msgid "FILENAME is executed." ++msgstr "" ++ ++#: builtins.c:906 ++msgid "Suspend the execution of this shell until it receives a SIGCONT" ++msgstr "" ++ ++#: builtins.c:907 ++msgid "signal. The `-f' if specified says not to complain about this" ++msgstr "" ++ ++#: builtins.c:908 ++msgid "being a login shell if it is; just suspend anyway." ++msgstr "" ++ ++#: builtins.c:915 ++msgid "Exits with a status of 0 (true) or 1 (false) depending on" ++msgstr "" ++ ++#: builtins.c:916 ++msgid "the evaluation of EXPR. Expressions may be unary or binary. Unary" ++msgstr "" ++ ++#: builtins.c:917 ++msgid "expressions are often used to examine the status of a file. There" ++msgstr "" ++ ++#: builtins.c:918 ++msgid "are string operators as well, and numeric comparison operators." ++msgstr "" ++ ++#: builtins.c:920 ++msgid "File operators:" ++msgstr "" ++ ++#: builtins.c:922 ++msgid " -a FILE True if file exists." ++msgstr "" ++ ++#: builtins.c:923 ++msgid " -b FILE True if file is block special." ++msgstr "" ++ ++#: builtins.c:924 ++msgid " -c FILE True if file is character special." ++msgstr "" ++ ++#: builtins.c:925 ++msgid " -d FILE True if file is a directory." ++msgstr "" ++ ++#: builtins.c:926 ++msgid " -e FILE True if file exists." ++msgstr "" ++ ++#: builtins.c:927 ++msgid " -f FILE True if file exists and is a regular file." ++msgstr "" ++ ++#: builtins.c:928 ++msgid " -g FILE True if file is set-group-id." ++msgstr "" ++ ++#: builtins.c:929 ++msgid " -h FILE True if file is a symbolic link." ++msgstr "" ++ ++#: builtins.c:930 ++msgid " -L FILE True if file is a symbolic link." ++msgstr "" ++ ++#: builtins.c:931 ++msgid " -k FILE True if file has its `sticky' bit set." ++msgstr "" ++ ++#: builtins.c:932 ++msgid " -p FILE True if file is a named pipe." ++msgstr "" ++ ++#: builtins.c:933 ++msgid " -r FILE True if file is readable by you." ++msgstr "" ++ ++#: builtins.c:934 ++msgid " -s FILE True if file exists and is not empty." ++msgstr "" ++ ++#: builtins.c:935 ++msgid " -S FILE True if file is a socket." ++msgstr "" ++ ++#: builtins.c:936 ++msgid " -t FD True if FD is opened on a terminal." ++msgstr "" ++ ++#: builtins.c:937 ++msgid " -u FILE True if the file is set-user-id." ++msgstr "" ++ ++#: builtins.c:938 ++msgid " -w FILE True if the file is writable by you." ++msgstr "" ++ ++#: builtins.c:939 ++msgid " -x FILE True if the file is executable by you." ++msgstr "" ++ ++#: builtins.c:940 ++msgid " -O FILE True if the file is effectively owned by you." ++msgstr "" ++ ++#: builtins.c:941 ++msgid " -G FILE True if the file is effectively owned by your group." ++msgstr "" ++ ++#: builtins.c:942 ++msgid " -N FILE True if the file has been modified since it was last read." ++msgstr "" ++ ++#: builtins.c:944 ++msgid " FILE1 -nt FILE2 True if file1 is newer than file2 (according to" ++msgstr "" ++ ++#: builtins.c:945 ++#, fuzzy ++msgid " modification date)." ++msgstr "Ändrad datum" ++ ++#: builtins.c:947 ++msgid " FILE1 -ot FILE2 True if file1 is older than file2." ++msgstr "" ++ ++#: builtins.c:949 ++msgid " FILE1 -ef FILE2 True if file1 is a hard link to file2." ++msgstr "" ++ ++# Operander? ++#: builtins.c:951 ++msgid "String operators:" ++msgstr "Strängoperatörer:" ++ ++#: builtins.c:953 ++msgid " -z STRING True if string is empty." ++msgstr "" ++ ++#: builtins.c:955 ++#, fuzzy ++msgid " -n STRING" ++msgstr "STRÄNG" ++ ++#: builtins.c:956 ++msgid " STRING True if string is not empty." ++msgstr "" ++ ++#: builtins.c:958 ++msgid " STRING1 = STRING2" ++msgstr "" ++ ++#: builtins.c:959 ++msgid " True if the strings are equal." ++msgstr "" ++ ++#: builtins.c:960 ++msgid " STRING1 != STRING2" ++msgstr "" ++ ++#: builtins.c:961 ++msgid " True if the strings are not equal." ++msgstr "" ++ ++#: builtins.c:962 ++msgid " STRING1 < STRING2" ++msgstr "" ++ ++#: builtins.c:963 ++msgid " True if STRING1 sorts before STRING2 lexicographically." ++msgstr "" ++ ++#: builtins.c:964 ++msgid " STRING1 > STRING2" ++msgstr "" ++ ++#: builtins.c:965 ++msgid " True if STRING1 sorts after STRING2 lexicographically." ++msgstr "" ++ ++# Operander? ++#: builtins.c:967 ++msgid "Other operators:" ++msgstr "Övriga operatörer:" ++ ++#: builtins.c:969 ++msgid " -o OPTION True if the shell option OPTION is enabled." ++msgstr "" ++ ++#: builtins.c:970 ++msgid " ! EXPR True if expr is false." ++msgstr "" ++ ++#: builtins.c:971 ++msgid " EXPR1 -a EXPR2 True if both expr1 AND expr2 are true." ++msgstr "" ++ ++#: builtins.c:972 ++msgid " EXPR1 -o EXPR2 True if either expr1 OR expr2 is true." ++msgstr "" ++ ++#: builtins.c:974 ++msgid " arg1 OP arg2 Arithmetic tests. OP is one of -eq, -ne," ++msgstr "" ++ ++#: builtins.c:975 ++msgid " -lt, -le, -gt, or -ge." ++msgstr "" ++ ++#: builtins.c:977 ++msgid "Arithmetic binary operators return true if ARG1 is equal, not-equal," ++msgstr "" ++ ++#: builtins.c:978 ++msgid "less-than, less-than-or-equal, greater-than, or greater-than-or-equal" ++msgstr "" ++ ++#: builtins.c:979 ++msgid "than ARG2." ++msgstr "" ++ ++#: builtins.c:985 ++msgid "This is a synonym for the \"test\" builtin, but the last" ++msgstr "" ++ ++#: builtins.c:986 ++msgid "argument must be a literal `]', to match the opening `['." ++msgstr "" ++ ++#: builtins.c:992 ++msgid "Print the accumulated user and system times for processes run from" ++msgstr "" ++ ++#: builtins.c:993 ++#, fuzzy ++msgid "the shell." ++msgstr "Skal: " ++ ++#: builtins.c:999 ++msgid "The command ARG is to be read and executed when the shell receives" ++msgstr "" ++ ++#: builtins.c:1000 ++msgid "signal(s) SIGNAL_SPEC. If ARG is absent all specified signals are" ++msgstr "" ++ ++#: builtins.c:1001 ++msgid "reset to their original values. If ARG is the null string each" ++msgstr "" ++ ++#: builtins.c:1002 ++msgid "SIGNAL_SPEC is ignored by the shell and by the commands it invokes." ++msgstr "" ++ ++#: builtins.c:1003 ++msgid "If a SIGNAL_SPEC is EXIT (0) the command ARG is executed on exit from" ++msgstr "" ++ ++#: builtins.c:1004 ++msgid "the shell. If a SIGNAL_SPEC is DEBUG, ARG is executed after every" ++msgstr "" ++ ++#: builtins.c:1005 ++msgid "command. If ARG is `-p' then the trap commands associated with" ++msgstr "" ++ ++#: builtins.c:1006 ++msgid "each SIGNAL_SPEC are displayed. If no arguments are supplied or if" ++msgstr "" ++ ++#: builtins.c:1007 ++msgid "only `-p' is given, trap prints the list of commands associated with" ++msgstr "" ++ ++#: builtins.c:1008 ++msgid "each signal number. Each SIGNAL_SPEC is either a signal name in <signal.h>" ++msgstr "" ++ ++#: builtins.c:1009 ++msgid "or a signal number. `trap -l' prints a list of signal names and their" ++msgstr "" ++ ++#: builtins.c:1010 ++msgid "corresponding numbers. Note that a signal can be sent to the shell" ++msgstr "" ++ ++#: builtins.c:1011 ++msgid "with \"kill -signal $$\"." ++msgstr "" ++ ++#: builtins.c:1017 ++msgid "For each NAME, indicate how it would be interpreted if used as a" ++msgstr "" ++ ++#: builtins.c:1018 ++#, fuzzy ++msgid "command name." ++msgstr "Kommandonamn" ++ ++#: builtins.c:1020 ++msgid "If the -t option is used, `type' outputs a single word which is one of" ++msgstr "" ++ ++#: builtins.c:1021 ++msgid "`alias', `keyword', `function', `builtin', `file' or `', if NAME is an" ++msgstr "" ++ ++#: builtins.c:1022 ++msgid "alias, shell reserved word, shell function, shell builtin, disk file," ++msgstr "" ++ ++#: builtins.c:1023 ++msgid "or unfound, respectively." ++msgstr "" ++ ++#: builtins.c:1025 ++msgid "If the -p flag is used, `type' either returns the name of the disk" ++msgstr "" ++ ++#: builtins.c:1026 ++msgid "file that would be executed, or nothing if `type -t NAME' would not" ++msgstr "" ++ ++#: builtins.c:1027 ++msgid "return `file'." ++msgstr "" ++ ++#: builtins.c:1029 ++msgid "If the -a flag is used, `type' displays all of the places that contain" ++msgstr "" ++ ++#: builtins.c:1030 ++msgid "an executable named `file'. This includes aliases, builtins, and" ++msgstr "" ++ ++#: builtins.c:1031 ++msgid "functions, if and only if the -p flag is not also used." ++msgstr "" ++ ++#: builtins.c:1033 ++msgid "The -f flag suppresses shell function lookup." ++msgstr "" ++ ++#: builtins.c:1035 ++msgid "The -P flag forces a PATH search for each NAME, even if it is an alias," ++msgstr "" ++ ++#: builtins.c:1036 ++msgid "builtin, or function, and returns the name of the disk file that would" ++msgstr "" ++ ++#: builtins.c:1037 ++msgid "be executed." ++msgstr "" ++ ++#: builtins.c:1044 ++msgid "Ulimit provides control over the resources available to processes" ++msgstr "" ++ ++#: builtins.c:1045 ++msgid "started by the shell, on systems that allow such control. If an" ++msgstr "" ++ ++#: builtins.c:1046 ++msgid "option is given, it is interpreted as follows:" ++msgstr "" ++ ++#: builtins.c:1048 ++msgid " -S\tuse the `soft' resource limit" ++msgstr "" ++ ++#: builtins.c:1049 ++msgid " -H\tuse the `hard' resource limit" ++msgstr "" ++ ++#: builtins.c:1050 ++msgid " -a\tall current limits are reported" ++msgstr "" ++ ++#: builtins.c:1051 ++msgid " -c\tthe maximum size of core files created" ++msgstr "" ++ ++#: builtins.c:1052 ++msgid " -d\tthe maximum size of a process's data segment" ++msgstr "" ++ ++#: builtins.c:1053 ++msgid " -f\tthe maximum size of files created by the shell" ++msgstr "" ++ ++#: builtins.c:1054 ++msgid " -l\tthe maximum size a process may lock into memory" ++msgstr "" ++ ++#: builtins.c:1055 ++msgid " -m\tthe maximum resident set size" ++msgstr "" ++ ++#: builtins.c:1056 ++msgid " -n\tthe maximum number of open file descriptors" ++msgstr "" ++ ++#: builtins.c:1057 ++msgid " -p\tthe pipe buffer size" ++msgstr "" ++ ++#: builtins.c:1058 ++msgid " -s\tthe maximum stack size" ++msgstr "" ++ ++#: builtins.c:1059 ++msgid " -t\tthe maximum amount of cpu time in seconds" ++msgstr "" ++ ++#: builtins.c:1060 ++msgid " -u\tthe maximum number of user processes" ++msgstr "" ++ ++#: builtins.c:1061 ++msgid " -v\tthe size of virtual memory" ++msgstr "" ++ ++#: builtins.c:1063 ++msgid "If LIMIT is given, it is the new value of the specified resource;" ++msgstr "" ++ ++#: builtins.c:1064 ++msgid "the special LIMIT values `soft', `hard', and `unlimited' stand for" ++msgstr "" ++ ++#: builtins.c:1065 ++msgid "the current soft limit, the current hard limit, and no limit, respectively." ++msgstr "" ++ ++#: builtins.c:1066 ++msgid "Otherwise, the current value of the specified resource is printed." ++msgstr "" ++ ++#: builtins.c:1067 ++msgid "If no option is given, then -f is assumed. Values are in 1024-byte" ++msgstr "" ++ ++#: builtins.c:1068 ++msgid "increments, except for -t, which is in seconds, -p, which is in" ++msgstr "" ++ ++#: builtins.c:1069 ++msgid "increments of 512 bytes, and -u, which is an unscaled number of" ++msgstr "" ++ ++#: builtins.c:1070 ++#, fuzzy ++msgid "processes." ++msgstr "Processer" ++ ++#: builtins.c:1077 ++msgid "The user file-creation mask is set to MODE. If MODE is omitted, or if" ++msgstr "" ++ ++#: builtins.c:1078 ++msgid "`-S' is supplied, the current value of the mask is printed. The `-S'" ++msgstr "" ++ ++#: builtins.c:1079 ++msgid "option makes the output symbolic; otherwise an octal number is output." ++msgstr "" ++ ++#: builtins.c:1080 ++msgid "If `-p' is supplied, and MODE is omitted, the output is in a form" ++msgstr "" ++ ++#: builtins.c:1081 ++msgid "that may be used as input. If MODE begins with a digit, it is" ++msgstr "" ++ ++#: builtins.c:1082 ++msgid "interpreted as an octal number, otherwise it is a symbolic mode string" ++msgstr "" ++ ++#: builtins.c:1083 ++msgid "like that accepted by chmod(1)." ++msgstr "" ++ ++#: builtins.c:1090 ++#: builtins.c:1102 ++msgid "Wait for the specified process and report its termination status. If" ++msgstr "" ++ ++#: builtins.c:1091 ++#: builtins.c:1103 ++msgid "N is not given, all currently active child processes are waited for," ++msgstr "" ++ ++#: builtins.c:1092 ++msgid "and the return code is zero. N may be a process ID or a job" ++msgstr "" ++ ++#: builtins.c:1093 ++msgid "specification; if a job spec is given, all processes in the job's" ++msgstr "" ++ ++#: builtins.c:1094 ++msgid "pipeline are waited for." ++msgstr "" ++ ++#: builtins.c:1104 ++msgid "and the return code is zero. N is a process ID; if it is not given," ++msgstr "" ++ ++#: builtins.c:1105 ++msgid "all child processes of the shell are waited for." ++msgstr "" ++ ++#: builtins.c:1112 ++msgid "The `for' loop executes a sequence of commands for each member in a" ++msgstr "" ++ ++#: builtins.c:1113 ++msgid "list of items. If `in WORDS ...;' is not present, then `in \"$@\"' is" ++msgstr "" ++ ++#: builtins.c:1114 ++msgid "assumed. For each element in WORDS, NAME is set to that element, and" ++msgstr "" ++ ++#: builtins.c:1115 ++msgid "the COMMANDS are executed." ++msgstr "" ++ ++#: builtins.c:1121 ++msgid "Equivalent to" ++msgstr "" ++ ++#: builtins.c:1122 ++msgid "\t(( EXP1 ))" ++msgstr "" ++ ++#: builtins.c:1123 ++msgid "\twhile (( EXP2 )); do" ++msgstr "" ++ ++#: builtins.c:1124 ++msgid "\t\tCOMMANDS" ++msgstr "" ++ ++#: builtins.c:1125 ++msgid "\t\t(( EXP3 ))" ++msgstr "" ++ ++#: builtins.c:1126 ++msgid "\tdone" ++msgstr "" ++ ++#: builtins.c:1127 ++msgid "EXP1, EXP2, and EXP3 are arithmetic expressions. If any expression is" ++msgstr "" ++ ++#: builtins.c:1128 ++msgid "omitted, it behaves as if it evaluates to 1." ++msgstr "" ++ ++#: builtins.c:1134 ++msgid "The WORDS are expanded, generating a list of words. The" ++msgstr "" ++ ++#: builtins.c:1135 ++msgid "set of expanded words is printed on the standard error, each" ++msgstr "" ++ ++#: builtins.c:1136 ++msgid "preceded by a number. If `in WORDS' is not present, `in \"$@\"'" ++msgstr "" ++ ++#: builtins.c:1137 ++msgid "is assumed. The PS3 prompt is then displayed and a line read" ++msgstr "" ++ ++#: builtins.c:1138 ++msgid "from the standard input. If the line consists of the number" ++msgstr "" ++ ++#: builtins.c:1139 ++msgid "corresponding to one of the displayed words, then NAME is set" ++msgstr "" ++ ++#: builtins.c:1140 ++msgid "to that word. If the line is empty, WORDS and the prompt are" ++msgstr "" ++ ++#: builtins.c:1141 ++msgid "redisplayed. If EOF is read, the command completes. Any other" ++msgstr "" ++ ++#: builtins.c:1142 ++msgid "value read causes NAME to be set to null. The line read is saved" ++msgstr "" ++ ++#: builtins.c:1143 ++msgid "in the variable REPLY. COMMANDS are executed after each selection" ++msgstr "" ++ ++#: builtins.c:1144 ++msgid "until a break command is executed." ++msgstr "" ++ ++#: builtins.c:1150 ++msgid "Execute PIPELINE and print a summary of the real time, user CPU time," ++msgstr "" ++ ++#: builtins.c:1151 ++msgid "and system CPU time spent executing PIPELINE when it terminates." ++msgstr "" ++ ++#: builtins.c:1152 ++msgid "The return status is the return status of PIPELINE. The `-p' option" ++msgstr "" ++ ++#: builtins.c:1153 ++msgid "prints the timing summary in a slightly different format. This uses" ++msgstr "" ++ ++#: builtins.c:1154 ++msgid "the value of the TIMEFORMAT variable as the output format." ++msgstr "" ++ ++#: builtins.c:1160 ++msgid "Selectively execute COMMANDS based upon WORD matching PATTERN. The" ++msgstr "" ++ ++#: builtins.c:1161 ++msgid "`|' is used to separate multiple patterns." ++msgstr "" ++ ++#: builtins.c:1167 ++msgid "The if COMMANDS are executed. If the exit status is zero, then the then" ++msgstr "" ++ ++#: builtins.c:1168 ++msgid "COMMANDS are executed. Otherwise, each of the elif COMMANDS are executed" ++msgstr "" ++ ++#: builtins.c:1169 ++msgid "in turn, and if the exit status is zero, the corresponding then COMMANDS" ++msgstr "" ++ ++#: builtins.c:1170 ++msgid "are executed and the if command completes. Otherwise, the else COMMANDS" ++msgstr "" ++ ++#: builtins.c:1171 ++msgid "are executed, if present. The exit status is the exit status of the last" ++msgstr "" ++ ++#: builtins.c:1172 ++msgid "command executed, or zero if no condition tested true." ++msgstr "" ++ ++#: builtins.c:1178 ++#: builtins.c:1185 ++msgid "Expand and execute COMMANDS as long as the final command in the" ++msgstr "" ++ ++#: builtins.c:1179 ++msgid "`while' COMMANDS has an exit status of zero." ++msgstr "" ++ ++#: builtins.c:1186 ++msgid "`until' COMMANDS has an exit status which is not zero." ++msgstr "" ++ ++#: builtins.c:1192 ++msgid "Create a simple command invoked by NAME which runs COMMANDS." ++msgstr "" ++ ++#: builtins.c:1193 ++msgid "Arguments on the command line along with NAME are passed to the" ++msgstr "" ++ ++#: builtins.c:1194 ++msgid "function as $0 .. $n." ++msgstr "" ++ ++#: builtins.c:1200 ++msgid "Run a set of commands in a group. This is one way to redirect an" ++msgstr "" ++ ++#: builtins.c:1201 ++msgid "entire set of commands." ++msgstr "" ++ ++#: builtins.c:1207 ++msgid "This is similar to the `fg' command. Resume a stopped or background" ++msgstr "" ++ ++#: builtins.c:1208 ++msgid "job. If you specifiy DIGITS, then that job is used. If you specify" ++msgstr "" ++ ++#: builtins.c:1209 ++msgid "WORD, then the job whose name begins with WORD is used. Following the" ++msgstr "" ++ ++#: builtins.c:1210 ++msgid "job specification with a `&' places the job in the background." ++msgstr "" ++ ++#: builtins.c:1216 ++msgid "The EXPRESSION is evaluated according to the rules for arithmetic" ++msgstr "" ++ ++#: builtins.c:1217 ++msgid "evaluation. Equivalent to \"let EXPRESSION\"." ++msgstr "" ++ ++#: builtins.c:1223 ++msgid "Returns a status of 0 or 1 depending on the evaluation of the conditional" ++msgstr "" ++ ++#: builtins.c:1224 ++msgid "expression EXPRESSION. Expressions are composed of the same primaries used" ++msgstr "" ++ ++#: builtins.c:1225 ++msgid "by the `test' builtin, and may be combined using the following operators" ++msgstr "" ++ ++#: builtins.c:1227 ++msgid "\t( EXPRESSION )\tReturns the value of EXPRESSION" ++msgstr "" ++ ++#: builtins.c:1228 ++msgid "\t! EXPRESSION\tTrue if EXPRESSION is false; else false" ++msgstr "" ++ ++#: builtins.c:1229 ++msgid "\tEXPR1 && EXPR2\tTrue if both EXPR1 and EXPR2 are true; else false" ++msgstr "" ++ ++#: builtins.c:1230 ++msgid "\tEXPR1 || EXPR2\tTrue if either EXPR1 or EXPR2 is true; else false" ++msgstr "" ++ ++#: builtins.c:1232 ++msgid "When the `==' and `!=' operators are used, the string to the right of the" ++msgstr "" ++ ++#: builtins.c:1233 ++msgid "operator is used as a pattern and pattern matching is performed. The" ++msgstr "" ++ ++#: builtins.c:1234 ++msgid "&& and || operators do not evaluate EXPR2 if EXPR1 is sufficient to" ++msgstr "" ++ ++#: builtins.c:1235 ++msgid "determine the expression's value." ++msgstr "" ++ ++#: builtins.c:1241 ++msgid "BASH_VERSION Version information for this Bash." ++msgstr "" ++ ++#: builtins.c:1242 ++msgid "CDPATH A colon separated list of directories to search" ++msgstr "" ++ ++#: builtins.c:1243 ++msgid "\t\twhen the argument to `cd' is not found in the current" ++msgstr "" ++ ++#: builtins.c:1244 ++msgid "\t\tdirectory." ++msgstr "" ++ ++#: builtins.c:1245 ++msgid "GLOBIGNORE\tA colon-separated list of patterns describing filenames to" ++msgstr "" ++ ++#: builtins.c:1246 ++msgid "\t\tbe ignored by pathname expansion." ++msgstr "" ++ ++#: builtins.c:1248 ++msgid "HISTFILE The name of the file where your command history is stored." ++msgstr "" ++ ++#: builtins.c:1249 ++msgid "HISTFILESIZE The maximum number of lines this file can contain." ++msgstr "" ++ ++#: builtins.c:1250 ++msgid "HISTSIZE The maximum number of history lines that a running" ++msgstr "" ++ ++#: builtins.c:1251 ++msgid "\t\tshell can access." ++msgstr "" ++ ++#: builtins.c:1253 ++msgid "HOME The complete pathname to your login directory." ++msgstr "" ++ ++#: builtins.c:1254 ++msgid "HOSTNAME\tThe name of the current host." ++msgstr "" ++ ++#: builtins.c:1255 ++msgid "HOSTTYPE The type of CPU this version of Bash is running under." ++msgstr "" ++ ++#: builtins.c:1256 ++msgid "IGNOREEOF Controls the action of the shell on receipt of an EOF" ++msgstr "" ++ ++#: builtins.c:1257 ++msgid "\t\tcharacter as the sole input. If set, then the value" ++msgstr "" ++ ++#: builtins.c:1258 ++msgid "\t\tof it is the number of EOF characters that can be seen" ++msgstr "" ++ ++#: builtins.c:1259 ++msgid "\t\tin a row on an empty line before the shell will exit" ++msgstr "" ++ ++#: builtins.c:1260 ++msgid "\t\t(default 10). When unset, EOF signifies the end of input." ++msgstr "" ++ ++#: builtins.c:1261 ++msgid "MACHTYPE\tA string describing the current system Bash is running on." ++msgstr "" ++ ++#: builtins.c:1262 ++msgid "MAILCHECK\tHow often, in seconds, Bash checks for new mail." ++msgstr "" ++ ++#: builtins.c:1263 ++msgid "MAILPATH\tA colon-separated list of filenames which Bash checks" ++msgstr "" ++ ++#: builtins.c:1264 ++msgid "\t\tfor new mail." ++msgstr "" ++ ++#: builtins.c:1265 ++msgid "OSTYPE\t\tThe version of Unix this version of Bash is running on." ++msgstr "" ++ ++#: builtins.c:1266 ++msgid "PATH A colon-separated list of directories to search when" ++msgstr "" ++ ++#: builtins.c:1267 ++msgid "\t\tlooking for commands." ++msgstr "" ++ ++#: builtins.c:1268 ++msgid "PROMPT_COMMAND A command to be executed before the printing of each" ++msgstr "" ++ ++#: builtins.c:1269 ++msgid "\t\tprimary prompt." ++msgstr "" ++ ++#: builtins.c:1270 ++msgid "PS1 The primary prompt string." ++msgstr "" ++ ++#: builtins.c:1271 ++msgid "PS2 The secondary prompt string." ++msgstr "" ++ ++#: builtins.c:1272 ++msgid "PWD\t\tThe full pathname of the current directory." ++msgstr "" ++ ++#: builtins.c:1273 ++msgid "SHELLOPTS\tA colon-separated list of enabled shell options." ++msgstr "" ++ ++#: builtins.c:1274 ++msgid "TERM The name of the current terminal type." ++msgstr "" ++ ++#: builtins.c:1275 ++msgid "TIMEFORMAT\tThe output format for timing statistics displayed by the" ++msgstr "" ++ ++#: builtins.c:1276 ++msgid "\t\t`time' reserved word." ++msgstr "" ++ ++#: builtins.c:1277 ++msgid "auto_resume Non-null means a command word appearing on a line by" ++msgstr "" ++ ++#: builtins.c:1278 ++msgid "\t\titself is first looked for in the list of currently" ++msgstr "" ++ ++#: builtins.c:1279 ++msgid "\t\tstopped jobs. If found there, that job is foregrounded." ++msgstr "" ++ ++#: builtins.c:1280 ++msgid "\t\tA value of `exact' means that the command word must" ++msgstr "" ++ ++#: builtins.c:1281 ++msgid "\t\texactly match a command in the list of stopped jobs. A" ++msgstr "" ++ ++#: builtins.c:1282 ++msgid "\t\tvalue of `substring' means that the command word must" ++msgstr "" ++ ++#: builtins.c:1283 ++msgid "\t\tmatch a substring of the job. Any other value means that" ++msgstr "" ++ ++#: builtins.c:1284 ++msgid "\t\tthe command must be a prefix of a stopped job." ++msgstr "" ++ ++#: builtins.c:1287 ++msgid "histchars Characters controlling history expansion and quick" ++msgstr "" ++ ++#: builtins.c:1288 ++msgid "\t\tsubstitution. The first character is the history" ++msgstr "" ++ ++#: builtins.c:1289 ++msgid "\t\tsubstitution character, usually `!'. The second is" ++msgstr "" ++ ++#: builtins.c:1290 ++msgid "\t\tthe `quick substitution' character, usually `^'. The" ++msgstr "" ++ ++#: builtins.c:1291 ++msgid "\t\tthird is the `history comment' character, usually `#'." ++msgstr "" ++ ++#: builtins.c:1293 ++msgid "HISTIGNORE\tA colon-separated list of patterns used to decide which" ++msgstr "" ++ ++#: builtins.c:1294 ++msgid "\t\tcommands should be saved on the history list." ++msgstr "" ++ ++#: builtins.c:1306 ++msgid "+N\tRotates the stack so that the Nth directory (counting" ++msgstr "" ++ ++#: builtins.c:1307 ++msgid "\tfrom the left of the list shown by `dirs', starting with" ++msgstr "" ++ ++#: builtins.c:1308 ++#: builtins.c:1312 ++msgid "\tzero) is at the top." ++msgstr "" ++ ++#: builtins.c:1310 ++msgid "-N\tRotates the stack so that the Nth directory (counting" ++msgstr "" ++ ++#: builtins.c:1311 ++msgid "\tfrom the right of the list shown by `dirs', starting with" ++msgstr "" ++ ++#: builtins.c:1314 ++msgid "-n\tsuppress the normal change of directory when adding directories" ++msgstr "" ++ ++#: builtins.c:1315 ++msgid "\tto the stack, so only the stack is manipulated." ++msgstr "" ++ ++#: builtins.c:1317 ++msgid "dir\tadds DIR to the directory stack at the top, making it the" ++msgstr "" ++ ++#: builtins.c:1318 ++msgid "\tnew current working directory." ++msgstr "" ++ ++#: builtins.c:1332 ++msgid "+N\tremoves the Nth entry counting from the left of the list" ++msgstr "" ++ ++#: builtins.c:1333 ++msgid "\tshown by `dirs', starting with zero. For example: `popd +0'" ++msgstr "" ++ ++#: builtins.c:1334 ++msgid "\tremoves the first directory, `popd +1' the second." ++msgstr "" ++ ++#: builtins.c:1336 ++msgid "-N\tremoves the Nth entry counting from the right of the list" ++msgstr "" ++ ++#: builtins.c:1337 ++msgid "\tshown by `dirs', starting with zero. For example: `popd -0'" ++msgstr "" ++ ++#: builtins.c:1338 ++msgid "\tremoves the last directory, `popd -1' the next to last." ++msgstr "" ++ ++#: builtins.c:1340 ++msgid "-n\tsuppress the normal change of directory when removing directories" ++msgstr "" ++ ++#: builtins.c:1341 ++msgid "\tfrom the stack, so only the stack is manipulated." ++msgstr "" ++ ++#: builtins.c:1363 ++msgid "+N\tdisplays the Nth entry counting from the left of the list shown by" ++msgstr "" ++ ++#: builtins.c:1364 ++#: builtins.c:1367 ++msgid "\tdirs when invoked without options, starting with zero." ++msgstr "" ++ ++#: builtins.c:1366 ++msgid "-N\tdisplays the Nth entry counting from the right of the list shown by" ++msgstr "" ++ ++#: builtins.c:1374 ++msgid "Toggle the values of variables controlling optional behavior." ++msgstr "" ++ ++#: builtins.c:1375 ++msgid "The -s flag means to enable (set) each OPTNAME; the -u flag" ++msgstr "" ++ ++#: builtins.c:1376 ++msgid "unsets each OPTNAME. The -q flag suppresses output; the exit" ++msgstr "" ++ ++#: builtins.c:1377 ++msgid "status indicates whether each OPTNAME is set or unset. The -o" ++msgstr "" ++ ++#: builtins.c:1378 ++msgid "option restricts the OPTNAMEs to those defined for use with" ++msgstr "" ++ ++#: builtins.c:1379 ++msgid "`set -o'. With no options, or with the -p option, a list of all" ++msgstr "" ++ ++#: builtins.c:1380 ++msgid "settable options is displayed, with an indication of whether or" ++msgstr "" ++ ++#: builtins.c:1381 ++msgid "not each is set." ++msgstr "" ++ ++#: builtins.c:1387 ++msgid "printf formats and prints ARGUMENTS under control of the FORMAT. FORMAT" ++msgstr "" ++ ++#: builtins.c:1388 ++msgid "is a character string which contains three types of objects: plain" ++msgstr "" ++ ++#: builtins.c:1389 ++msgid "characters, which are simply copied to standard output, character escape" ++msgstr "" ++ ++#: builtins.c:1390 ++msgid "sequences which are converted and copied to the standard output, and" ++msgstr "" ++ ++#: builtins.c:1391 ++msgid "format specifications, each of which causes printing of the next successive" ++msgstr "" ++ ++#: builtins.c:1392 ++msgid "argument. In addition to the standard printf(1) formats, %b means to" ++msgstr "" ++ ++#: builtins.c:1393 ++msgid "expand backslash escape sequences in the corresponding argument, and %q" ++msgstr "" ++ ++#: builtins.c:1394 ++msgid "means to quote the argument in a way that can be reused as shell input." ++msgstr "" ++ ++#: builtins.c:1401 ++msgid "For each NAME, specify how arguments are to be completed." ++msgstr "" ++ ++#: builtins.c:1402 ++msgid "If the -p option is supplied, or if no options are supplied, existing" ++msgstr "" ++ ++#: builtins.c:1403 ++msgid "completion specifications are printed in a way that allows them to be" ++msgstr "" ++ ++#: builtins.c:1404 ++msgid "reused as input. The -r option removes a completion specification for" ++msgstr "" ++ ++#: builtins.c:1405 ++msgid "each NAME, or, if no NAMEs are supplied, all completion specifications." ++msgstr "" ++ ++#: builtins.c:1413 ++msgid "Display the possible completions depending on the options. Intended" ++msgstr "" ++ ++#: builtins.c:1414 ++msgid "to be used from within a shell function generating possible completions." ++msgstr "" ++ ++#: builtins.c:1415 ++msgid "If the optional WORD argument is supplied, matches against WORD are" ++msgstr "" ++ ++#: builtins.c:1416 ++msgid "generated." ++msgstr "genererad." ++ diff --git a/debian/patches/privmode.dpatch b/debian/patches/privmode.dpatch new file mode 100755 index 0000000..eb9abf2 --- /dev/null +++ b/debian/patches/privmode.dpatch @@ -0,0 +1,37 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: XXX missing description +# DP: +# DP: Comment from Chet Ramey <chet@nike.ins.cwru.edu>: +# DP: +# DP: Nope. This will allow setuid scripts if not called as `sh' and not +# DP: called with the -p option. I won't install this. + + +diff -urb bash.orig/shell.c bash/shell.c +--- bash.orig/shell.c 2003-06-03 19:50:35.000000000 +0200 ++++ bash/shell.c 2003-09-28 00:26:28.000000000 +0200 +@@ -447,7 +447,7 @@ + if (dump_translatable_strings) + read_but_dont_execute = 1; + +- if (running_setuid && privileged_mode == 0) ++ if (running_setuid && privileged_mode == 0 && act_like_sh == 0) + disable_priv_mode (); + + /* Need to get the argument to a -c option processed in the diff --git a/debian/patches/random.dpatch b/debian/patches/random.dpatch new file mode 100644 index 0000000..6304468 --- /dev/null +++ b/debian/patches/random.dpatch @@ -0,0 +1,107 @@ +#! /bin/sh -e + +dir=. +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir=$3 +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p1 < $0 + echo '2.05' > $dir/_distribution + echo '0' > $dir/_patchlevel + cd $dir && autoconf + rm -f $dir/_distribution $dir/_patchlevel + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p1 < $0 + rm -f $dir/configure $dir/_distribution $dir/_patchlevel + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: use the system random functions + +diff -urb bash.orig/config.h.in bash/config.h.in +--- bash.orig/config.h.in 2003-09-22 14:42:35.000000000 +0200 ++++ bash/config.h.in 2003-09-28 00:27:15.000000000 +0200 +@@ -606,6 +606,9 @@ + /* Define if you have the putenv function. */ + #undef HAVE_PUTENV + ++/* Define if you have the random function. */ ++#undef HAVE_RANDOM ++ + /* Define if you have the readlink function. */ + #undef HAVE_READLINK + +@@ -696,6 +699,9 @@ + /* Define if you have the strsignal function or macro. */ + #undef HAVE_STRSIGNAL + ++/* Define if you have the srandom function. */ ++#undef HAVE_SRANDOM ++ + /* Define if you have the sysconf function. */ + #undef HAVE_SYSCONF + +diff -urb bash.orig/variables.c bash/variables.c +--- bash.orig/variables.c 2003-07-31 16:28:57.000000000 +0200 ++++ bash/variables.c 2003-09-28 00:27:15.000000000 +0200 +@@ -1098,16 +1098,22 @@ + static unsigned long rseed = 1; + static int last_random_value; + +-/* A linear congruential random number generator based on the example +- one in the ANSI C standard. This one isn't very good, but a more +- complicated one is overkill. */ ++/* Use the random number genrator provided by the standard C library, ++ else use a linear congruential random number generator based on the ++ ANSI C standard. This one isn't very good (the values are alternately ++ odd and even, for example), but a more complicated one is overkill. */ + + /* Returns a pseudo-random number between 0 and 32767. */ + static int + brand () + { ++#if defined(HAVE_RANDOM) ++ rseed = (unsigned int) (labs(random()) & 32767); ++ return rseed; ++#else + rseed = rseed * 1103515245 + 12345; + return ((unsigned int)((rseed >> 16) & 32767)); /* was % 32768 */ ++#endif + } + + /* Set the random number generator seed to SEED. */ +@@ -1115,8 +1121,12 @@ + sbrand (seed) + unsigned long seed; + { ++#if defined(HAVE_SRANDOM) ++ srandom(seed); ++#else + rseed = seed; + last_random_value = 0; ++#endif + } + + static SHELL_VAR * +--- bash/configure.in~ 2004-03-02 00:04:29.000000000 +0100 ++++ bash/configure.in 2004-03-02 00:05:48.000000000 +0100 +@@ -667,6 +667,9 @@ + + AC_FUNC_MKTIME + ++dnl checks for random functions ++AC_CHECK_FUNCS(random srandom) ++ + dnl + dnl Checks for lib/intl and related code (uses some of the output from + dnl AM_GNU_GETTEXT) diff --git a/debian/patches/rbash-manpage.dpatch b/debian/patches/rbash-manpage.dpatch new file mode 100755 index 0000000..73a9969 --- /dev/null +++ b/debian/patches/rbash-manpage.dpatch @@ -0,0 +1,29 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: doc/rbash.1: fix bash(1) reference + +--- doc/rbash.1~ 1999-11-29 22:30:03.000000000 +0100 ++++ doc/rbash.1 2003-02-21 16:15:59.000000000 +0100 +@@ -3,6 +3,6 @@ + rbash \- restricted bash, see \fBbash\fR(1) + .SH RESTRICTED SHELL + .nr zY 1 +-.so bash.1 ++.so man1/bash.1 + .SH SEE ALSO + bash(1) diff --git a/debian/patches/read-memleak.dpatch b/debian/patches/read-memleak.dpatch new file mode 100755 index 0000000..c0c9f8a --- /dev/null +++ b/debian/patches/read-memleak.dpatch @@ -0,0 +1,29 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Fix read memleak when reading from non-blocking fd. + +--- builtins/read.def.orig 2005-08-21 03:46:19.000000000 +0200 ++++ builtins/read.def 2006-03-03 23:43:37.889187600 +0100 +@@ -472,6 +472,7 @@ + if (retval < 0) + { + builtin_error (_("read error: %d: %s"), fd, strerror (errno)); ++ run_unwind_frame ("read_builtin"); + return (EXECUTION_FAILURE); + } + #endif diff --git a/debian/patches/readline51-001.dpatch b/debian/patches/readline51-001.dpatch new file mode 100755 index 0000000..268540b --- /dev/null +++ b/debian/patches/readline51-001.dpatch @@ -0,0 +1,94 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + + READLINE PATCH REPORT + ===================== + +Readline-Release: 5.1 +Patch-ID: readline51-001 + +Bug-Reported-by: Andreas Schwab <schwab@suse.de> +Bug-Reference-ID: <20051213141916.4014A394BFABD@sykes.suse.de> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00038.html + +Bug-Description: + +A problem with the readline callback interface can result in segmentation +faults when using the delete-char function via a multiple-key sequence. +Two consecutive calls to delete-char will crash the application calling +readline. + +Patch: + +*** ../readline-5.1/readline.c Mon Jul 4 22:29:35 2005 +--- lib/readline/readline.c Tue Dec 20 17:38:29 2005 +*************** +*** 715,719 **** + rl_dispatching = 1; + RL_SETSTATE(RL_STATE_DISPATCHING); +! r = (*map[key].function)(rl_numeric_arg * rl_arg_sign, key); + RL_UNSETSTATE(RL_STATE_DISPATCHING); + rl_dispatching = 0; +--- 715,719 ---- + rl_dispatching = 1; + RL_SETSTATE(RL_STATE_DISPATCHING); +! (*map[key].function)(rl_numeric_arg * rl_arg_sign, key); + RL_UNSETSTATE(RL_STATE_DISPATCHING); + rl_dispatching = 0; +*** ../readline-5.1/text.c Sat Sep 24 19:06:07 2005 +--- lib/readline/text.c Tue Dec 20 17:38:26 2005 +*************** +*** 1072,1077 **** + int count, key; + { +- int r; +- + if (count < 0) + return (_rl_rubout_char (-count, key)); +--- 1072,1075 ---- +*************** +*** 1091,1097 **** + rl_forward_byte (count, key); + +! r = rl_kill_text (orig_point, rl_point); + rl_point = orig_point; +- return r; + } + else +--- 1089,1094 ---- + rl_forward_byte (count, key); + +! rl_kill_text (orig_point, rl_point); + rl_point = orig_point; + } + else +*************** +*** 1100,1105 **** + + new_point = MB_NEXTCHAR (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO); +! return (rl_delete_text (rl_point, new_point)); + } + } + +--- 1097,1103 ---- + + new_point = MB_NEXTCHAR (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO); +! rl_delete_text (rl_point, new_point); + } ++ return 0; + } + diff --git a/debian/patches/rl-del-backspace-policy.dpatch b/debian/patches/rl-del-backspace-policy.dpatch new file mode 100644 index 0000000..ec56b43 --- /dev/null +++ b/debian/patches/rl-del-backspace-policy.dpatch @@ -0,0 +1,48 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Handle Debian Backspace/Delete keyboard policy + +diff -urb bash.orig/lib/readline/terminal.c bash/lib/readline/terminal.c +--- bash.orig/lib/readline/terminal.c 2003-09-18 17:03:42.000000000 +0200 ++++ bash/lib/readline/terminal.c 2003-09-27 23:25:59.000000000 +0200 +@@ -148,6 +148,9 @@ + /* Insert key */ + static char *_rl_term_kI; + ++/* The key sequence sent by the Delete key, if any. */ ++static char *_rl_term_kD; ++ + /* Cursor control */ + static char *_rl_term_vs; /* very visible */ + static char *_rl_term_ve; /* normal */ +@@ -314,6 +317,7 @@ + { "ic", &_rl_term_ic }, + { "im", &_rl_term_im }, + { "kH", &_rl_term_kH }, /* home down ?? */ ++ { "kD", &_rl_term_kD }, /* delete */ + { "kI", &_rl_term_kI }, /* insert */ + { "kd", &_rl_term_kd }, + { "ke", &_rl_term_ke }, /* end keypad mode */ +@@ -492,6 +496,7 @@ + + rl_bind_keyseq_if_unbound (_rl_term_kh, rl_beg_of_line); /* Home */ + rl_bind_keyseq_if_unbound (_rl_term_at7, rl_end_of_line); /* End */ ++ rl_bind_keyseq_if_unbound (_rl_term_kD, rl_delete); /* Delete */ + + _rl_keymap = xkeymap; + } diff --git a/debian/patches/rl-examples-bdb.dpatch b/debian/patches/rl-examples-bdb.dpatch new file mode 100644 index 0000000..33cca15 --- /dev/null +++ b/debian/patches/rl-examples-bdb.dpatch @@ -0,0 +1,30 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Modified readline examples to properly build with Debian setup. + +--- ./lib/readline/examples/rl.c~ Mon Nov 8 22:22:03 1999 ++++ ./lib/readline/examples/rl.c Fri Dec 31 17:34:30 1999 +@@ -11,7 +11,7 @@ + + #include <stdio.h> + #include <sys/types.h> +-#include "posixstat.h" ++#include <sys/stat.h> + + #if defined (READLINE_LIBRARY) + # include "readline.h" diff --git a/debian/patches/rl-header.dpatch b/debian/patches/rl-header.dpatch new file mode 100644 index 0000000..d147813 --- /dev/null +++ b/debian/patches/rl-header.dpatch @@ -0,0 +1,28 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: include stdio.h in readline.h +--- lib/readline/readline.h~ Thu Aug 5 14:10:59 1999 ++++ lib/readline/readline.h Mon Oct 9 20:32:56 2000 +@@ -32,6 +32,7 @@ + # include "keymaps.h" + # include "tilde.h" + #else ++# include <stdio.h> + # include <readline/rlstdc.h> + # include <readline/keymaps.h> + # include <readline/tilde.h> diff --git a/debian/patches/rl-inputrc.dpatch b/debian/patches/rl-inputrc.dpatch new file mode 100755 index 0000000..e79ed5e --- /dev/null +++ b/debian/patches/rl-inputrc.dpatch @@ -0,0 +1,102 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Support for /etc/inputrc in addition to ~/inputrc + +diff -ur bash.saved/lib/readline/bind.c bash/lib/readline/bind.c +--- bash.saved/lib/readline/bind.c 2005-01-16 13:18:30.000000000 +0100 ++++ bash/lib/readline/bind.c 2005-01-16 13:21:43.000000000 +0100 +@@ -713,6 +713,9 @@ + /* The last key bindings file read. */ + static char *last_readline_init_file = (char *)NULL; + ++/* Flag to read system init file */ ++static int read_system_init_file = 0; ++ + /* The file we're currently reading key bindings from. */ + static const char *current_readline_init_file; + static int current_readline_init_include_level; +@@ -780,7 +783,7 @@ + to the first non-null filename from this list: + 1. the filename used for the previous call + 2. the value of the shell variable `INPUTRC' +- 3. ~/.inputrc ++ 3. /etc/inputrc and ~/.inputrc + If the file existed and could be opened and read, 0 is returned, + otherwise errno is returned. */ + int +@@ -791,14 +794,31 @@ + if (filename == 0) + { + filename = last_readline_init_file; +- if (filename == 0) ++ if (filename == 0) { + filename = sh_get_env_value ("INPUTRC"); +- if (filename == 0) ++ read_system_init_file = 0; ++ } ++ if (filename == 0) { + filename = DEFAULT_INPUTRC; ++ read_system_init_file = 1; ++ } + } + +- if (*filename == 0) ++ if (*filename == 0) { + filename = DEFAULT_INPUTRC; ++ read_system_init_file = 1; ++ } ++ ++ if (read_system_init_file) ++ if (filename == last_readline_init_file) ++ { ++ filename = savestring (filename); ++ _rl_read_init_file (SYSTEM_INPUTRC, 0); ++ free (last_readline_init_file); ++ last_readline_init_file = filename; ++ } ++ else ++ _rl_read_init_file (SYSTEM_INPUTRC, 0); + + #if defined (__MSDOS__) + if (_rl_read_init_file (filename, 0) == 0) +Only in bash/lib/readline: bind.c.orig +Only in bash/lib/readline: bind.c.rej +diff -ur bash.saved/lib/readline/doc/rluser.texi bash/lib/readline/doc/rluser.texi +--- bash.saved/lib/readline/doc/rluser.texi 2005-01-16 13:18:30.000000000 +0100 ++++ bash/lib/readline/doc/rluser.texi 2005-01-16 13:21:28.000000000 +0100 +@@ -336,7 +336,8 @@ + @ifclear BashFeatures + file is taken from the value of the environment variable @env{INPUTRC}. If + @end ifclear +-that variable is unset, the default is @file{~/.inputrc}. ++that variable is unset, Readline will read both @file{/etc/inputrc} and ++@file{~/.inputrc}. + + When a program which uses the Readline library starts up, the + init file is read, and the key bindings are set. +diff -ur bash.saved/lib/readline/rlconf.h bash/lib/readline/rlconf.h +--- bash.saved/lib/readline/rlconf.h 2005-01-16 13:18:30.000000000 +0100 ++++ bash/lib/readline/rlconf.h 2005-01-16 13:21:28.000000000 +0100 +@@ -39,6 +39,7 @@ + + /* The final, last-ditch effort file name for an init file. */ + #define DEFAULT_INPUTRC "~/.inputrc" ++#define SYSTEM_INPUTRC "/etc/inputrc" + + /* If defined, expand tabs to spaces. */ + #define DISPLAY_TABS diff --git a/debian/patches/rl-setenv.dpatch b/debian/patches/rl-setenv.dpatch new file mode 100644 index 0000000..9ae1d08 --- /dev/null +++ b/debian/patches/rl-setenv.dpatch @@ -0,0 +1,30 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p0 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p0 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Prefer setenv over putenv + +--- lib/readline/shell.c~ 2004-10-17 13:07:37.000000000 +0200 ++++ lib/readline/shell.c 2004-10-17 13:06:48.000000000 +0200 +@@ -122,7 +122,7 @@ + { + char *b; + +-#if defined (HAVE_PUTENV) ++#if 0 + b = (char *)xmalloc (INT_STRLEN_BOUND (int) + sizeof ("LINES=") + 1); + sprintf (b, "LINES=%d", lines); + putenv (b); diff --git a/debian/patches/template.dpatch b/debian/patches/template.dpatch new file mode 100644 index 0000000..e583619 --- /dev/null +++ b/debian/patches/template.dpatch @@ -0,0 +1,18 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: <your description> diff --git a/debian/patches/ulimit-doc.dpatch b/debian/patches/ulimit-doc.dpatch new file mode 100644 index 0000000..39129bf --- /dev/null +++ b/debian/patches/ulimit-doc.dpatch @@ -0,0 +1,50 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Add ulimit options -e and -r. + +--- bash-3.1/doc/bashref.texi.ulimit 2006-01-10 11:21:49.000000000 +0000 ++++ bash-3.1/doc/bashref.texi 2006-01-10 11:25:06.000000000 +0000 +@@ -3833,7 +3833,7 @@ + @item ulimit + @btindex ulimit + @example +-ulimit [-acdfilmnpqstuvxSH] [@var{limit}] ++ulimit [-acdefilmnpqrstuvxSH] [@var{limit}] + @end example + @code{ulimit} provides control over the resources available to processes + started by the shell, on systems that allow such control. If an +@@ -3854,6 +3854,9 @@ + @item -d + The maximum size of a process's data segment. + ++@item -e ++The maximum scheduling priority. ++ + @item -f + The maximum size of files created by the shell. + +@@ -3875,6 +3878,9 @@ + @item -q + The maximum number of bytes in POSIX message queues. + ++@item -r ++The maximum RT priority. ++ + @item -s + The maximum stack size. + diff --git a/debian/patches/ulimit.dpatch b/debian/patches/ulimit.dpatch new file mode 100755 index 0000000..462dc61 --- /dev/null +++ b/debian/patches/ulimit.dpatch @@ -0,0 +1,88 @@ +#! /bin/sh -e + +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) patch $pdir -f --no-backup-if-mismatch -p1 < $0;; + -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +esac +exit 0 + +# DP: Add ulimit options -e and -r. + +--- bash-3.1/builtins/ulimit.def.ulimit 2005-08-04 13:39:04.000000000 +0100 ++++ bash-3.1/builtins/ulimit.def 2006-01-10 11:21:49.000000000 +0000 +@@ -34,6 +34,7 @@ + -a all current limits are reported + -c the maximum size of core files created + -d the maximum size of a process's data segment ++ -e the maximum scheduling priority (`nice') + -f the maximum size of files created by the shell + -i the maximum number of pending signals + -l the maximum size a process may lock into memory +@@ -41,6 +42,7 @@ + -n the maximum number of open file descriptors + -p the pipe buffer size + -q the maximum number of bytes in POSIX message queues ++ -r the maximum rt priority + -s the maximum stack size + -t the maximum amount of cpu time in seconds + -u the maximum number of user processes +@@ -202,6 +204,9 @@ + #ifdef RLIMIT_DATA + { 'd', RLIMIT_DATA, 1024, "data seg size", "kbytes" }, + #endif ++#ifdef RLIMIT_NICE ++ { 'e', RLIMIT_NICE, 1, "max nice", (char *)NULL}, ++#endif /* RLIMIT_NICE */ + { 'f', RLIMIT_FILESIZE, 1024, "file size", "blocks" }, + #ifdef RLIMIT_SIGPENDING + { 'i', RLIMIT_SIGPENDING, 1, "pending signals", (char *)NULL }, +@@ -217,6 +222,9 @@ + #ifdef RLIMIT_MSGQUEUE + { 'q', RLIMIT_MSGQUEUE, 1, "POSIX message queues", "bytes" }, + #endif ++#ifdef RLIMIT_RTPRIO ++ { 'r', RLIMIT_RTPRIO, 1, "max rt priority", (char *)NULL}, ++#endif /* RLIMIT_RTPRIO */ + #ifdef RLIMIT_STACK + { 's', RLIMIT_STACK, 1024, "stack size", "kbytes" }, + #endif +--- bash-3.1/doc/bash.1.ulimit 2006-01-10 11:21:49.000000000 +0000 ++++ bash-3.1/doc/bash.1 2006-01-10 11:24:43.000000000 +0000 +@@ -8496,7 +8496,7 @@ + returns true if any of the arguments are found, false if + none are found. + .TP +-\fBulimit\fP [\fB\-SHacdfilmnpqstuvx\fP [\fIlimit\fP]] ++\fBulimit\fP [\fB\-SHacdefilmnpqrstuvx\fP [\fIlimit\fP]] + Provides control over the resources available to the shell and to + processes started by it, on systems that allow such control. + The \fB\-H\fP and \fB\-S\fP options specify that the hard or soft limit is +@@ -8532,6 +8532,9 @@ + .B \-d + The maximum size of a process's data segment + .TP ++.B \-e ++The maximum scheduling priority (`nice') ++.TP + .B \-f + The maximum size of files created by the shell + .TP +@@ -8554,6 +8557,9 @@ + .B \-q + The maximum number of bytes in POSIX message queues + .TP ++.B \-r ++The maximum rt priority ++.TP + .B \-s + The maximum stack size + .TP |