--- bash-3.2.orig/debian/bashdb.emacsen-remove +++ bash-3.2/debian/bashdb.emacsen-remove @@ -0,0 +1,16 @@ +#!/bin/sh -e +# /usr/lib/emacsen-common/packages/remove/bashdb + +FLAVOR=$1 +PACKAGE=bashdb + +if [ ${FLAVOR} != emacs ]; then + if test -x /usr/sbin/install-info-altdir; then + echo remove/${PACKAGE}: removing Info links for ${FLAVOR} + install-info-altdir --quiet --remove --dirname=${FLAVOR} \ + /usr/share/info/${PACKAGE}.info.gz + fi + + echo remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR} + rm -rf /usr/share/${FLAVOR}/site-lisp/${PACKAGE} +fi --- bash-3.2.orig/debian/bash-minimal.postrm +++ bash-3.2/debian/bash-minimal.postrm @@ -0,0 +1,21 @@ +#! /bin/sh + +set -e + +case "$1" in + upgrade|failed-upgrade|abort-install|abort-upgrade) + ;; + remove|purge|disappear) + if [ -x /usr/sbin/remove-shell ] && [ -f /etc/shells ]; then + /usr/sbin/remove-shell /bin/bash-minimal + fi + ;; + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 --- bash-3.2.orig/debian/README.bashdb +++ bash-3.2/debian/README.bashdb @@ -0,0 +1,7 @@ +bashdb for Debian +----------------- + +The debugger enhanced bash binary is installed under the name +/usr/bin/bash-bashdb. + + -- Matthias Klose , Sun, 10 Aug 2003 23:10:38 +0200 --- bash-3.2.orig/debian/changelog +++ bash-3.2/debian/changelog @@ -0,0 +1,2099 @@ +bash (3.2-5ubuntu1) jaunty; urgency=low + + * Merge with Debian; remaining changes: + - Build from the upstream sources, build the documentation in info format. + - /etc/skel/.bashrc: eval lesspipe. + + -- Matthias Klose Mon, 02 Mar 2009 15:02:08 +0100 + +bash (3.2-5) unstable; urgency=low + + * Apply upstream fixes 040 - 048. + + -- Matthias Klose Sun, 01 Mar 2009 10:20:52 +0100 + +bash (3.2-4ubuntu1) intrepid; urgency=low + + * Merge with Debian; remaining changes: + - Build from the upstream sources, build the documentation in info format. + - /etc/skel/.bashrc: eval lesspipe. + + -- Matthias Klose Mon, 12 May 2008 18:53:01 +0200 + +bash (3.2-4) unstable; urgency=low + + * bash-minimal, bash-static: Only call `add-shell' on new installations. + * Only call remove-shell on package removal or purge. + + -- Matthias Klose Mon, 12 May 2008 18:49:07 +0200 + +bash (3.2-3ubuntu1) intrepid; urgency=low + + * Merge with Debian; remaining changes: + - Build from the upstream sources, build the documentation in info format. + - /etc/skel/.bashrc: eval lesspipe. + + -- Matthias Klose Sun, 11 May 2008 08:32:22 +0000 + +bash (3.2-3) unstable; urgency=low + + * /etc/skel/.bashrc: Overwrite SHELL for calling lesspipe. Closes: #385168. + * Only call `add-shell' on new installations. Closes: #477750. + * Apply upstream fixes 034 - 039. + * Add explicit copyright notice to clear_console(1). + + -- Matthias Klose Sun, 20 Apr 2008 13:31:10 +0200 + +bash (3.2-2ubuntu1) intrepid; urgency=low + + * Merge with Debian; remaining changes: + - Build from the upstream sources, build the documentation in info format. + + -- Matthias Klose Wed, 07 May 2008 11:31:40 +0200 + +bash (3.2-2) unstable; urgency=low + + * Add a shopt option compat31 to fall back to the behaviour of bash-3.1 + and earlier versions, in that quoting the string argument to the [[ + command's =~ +operator does not force string matching. + + * Merge from Ubuntu: + - Remove /etc/skel/.bash_profile, if it is unmodified; if modified and + /etc/skel/.profile is unmodifed, move .bash_profile to .profile. + - /etc/skel/.bashrc: Add an option to blurt a terminal window with a + colored prompt. + - /etc/skel/.bashrc: Add color support for grep and friends (commented + out by default). Closes: #420659. + - /etc/skel/.profile: Avoid the use of `~'. + - Don't run command-not-found from the shell scripts when it has been + removed in the meantime. + * /etc/skel/.bashrc: + - Comment out the lesspipe settings. Closes: #470453. + - Don't use PROMPT_COMMAND to set the title of an xterm. Closes: #420656. + - Don't second-guess terminal handling in dircolors. Closes: #473870. + - Don't overwrite GNU Midnight Commander's setting of HISTCONTROL to + `ignorespace'. Closes: #440102. + - Add a comment about setting HISTSIZE and HISTFILESIZE. Closes: #449587. + - Append to the history file, don't overwrite it. Closes: #452459. + - Use dir and vdir commands for dir vdir aliases. Closes: #420661. + * /etc/skel/.profile: + - Add comment about setting the umask for ssh logins. Closes: #314533. + + * Added code to defer the initialization of HISTSIZE until the history file + is loaded. Closes: #383762. + * Fix typos in README.Debian and preinst. Closes: #374452. + * Mention `exec' builtin in the section `redirection'. Closes: #378067. + * Add bashbug(1). Closes: #442477. + * Fix typos in bash(1). Closes: #390493, #426687. + * Fix bug in Bash_aliases example. Closes: #423488. + * Fix typo in help message for caller builtin. Closes: #452656. + + -- Matthias Klose Sun, 20 Apr 2008 11:20:08 +0200 + +bash (3.2-1) experimental; urgency=low + + * New upstream version (including upstream patches 01 - 33). Closes: #431620. + - Added write error reporting to printf builtin. Closes: #414285. + - Fixed a bug that caused `unset LANG' to not properly reset the locale. + Closes: #364861. + - Describe expansion of pattern in case statement. Closes: #342225. + - Improved handling of non-printable characters in prompt. Closes: #352234, + #362010, #397086, #418961, #471490. + - Fix typos in documentation. Closes: #382892. + + The syntax of regexes in Bash 3.2 was changed so that single quotes no + longer surround regexes. e.g, a regex of the form + if [[ "foo.tex" =~ '^(.*)\.tex$' ]] + becomes + if [[ "foo.tex" =~ ^(.*)\.tex$ ]] + + * Merge from Ubuntu: + - debian/skel.bashrc: Check for dircolors before using it. + - debian/skel.bashrc: Set HISTCONTROL to ignoreboth. + - Include correct bash.pot file. + - Move CWRU/changelog from the bash to the bash-doc package (we already + have the CHANGES files). + - debian/etc.bash.bashrc: Install command-not-found handler if available. + + -- Matthias Klose Sun, 10 Feb 2008 23:49:35 +0100 + +bash (3.2-0ubuntu17) hardy-proposed; urgency=low + + * /etc/skel/.bashrc: Fix typo, forcing a colored prompt. LP: #223256. + * Add missing md5sum for feisty and gutsy /etc/skel/.bash_profile, + so it is removed on upgrade to hardy if unmodified. LP: #211406. + * Apply upstream patches 034 - 039, applying fixes for: + - The bash getcwd replacement will write past the end of allocated memory + when it allocates the buffer itself if it uses the buffer size passed + as an argument, and that size is less than the length of the pathname. + - Bash incorrectly puts the second and subsequent children spawned by a + shell forked to run a command substitution in the wrong process group. + - When initializing a subshell, bash did not reset a sentinel keeping + track of the number of command substitutions, leading to an infinite + loop if an error was encountered in the subshell. + - Bash inappropriately evaluates command substitutions while expanding + directory names as part of command substitution. + - When reading input lines into a single variable using the `read' builtin, + bash did not free the memory it read after assigining it to the named + variable, causing a memory leak noticable when reading large amounts of + data. + - Replace shell-compat patches with upstream patch 039 (compat31). + * Reenable running the testsuite during the build. + * Only call add-shell on new installations; guard remove-shell in post + removal. + + -- Matthias Klose Wed, 07 May 2008 09:56:53 +0200 + +bash (3.2-0ubuntu16) hardy; urgency=low + + * Remove /etc/skel/.bash_profile, if it is unmodified; if modified and + /etc/skel/.profile is unmodifed, move .bash_profile to .profile. + LP: #211406. + * /etc/skel/.bashrc: Add an option to blurt a terminal window with a + colored prompt. LP: #103929. + * /etc/skel/.bashrc: Add color support for grep and friends (commented out + by default). LP: #144632. + * /etc/skel/.profile: Avoid the use of `~'. LP: #200283. + * Add a shopt option compat31 to falls back to the behaviour of bash-3.1 + and earlier versions, in that quoting the string argument to the [[ + command's =~ +operator does not force string matching. LP: #110407. + + -- Matthias Klose Tue, 15 Apr 2008 01:24:06 +0200 + +bash (3.2-0ubuntu15) hardy; urgency=low + + * Don't run command-not-found from the shell scripts when it has been + removed in the meantime (LP: #194939) + + -- Kjell Braden Sun, 24 Feb 2008 12:01:31 +0100 + +bash (3.2-0ubuntu14) hardy; urgency=low + + * Build-depend on sharutils ... but save the control file before uploading. + + -- Matthias Klose Sat, 09 Feb 2008 03:10:16 +0100 + +bash (3.2-0ubuntu13) hardy; urgency=low + + * Build-depend on sharutils. + + -- Matthias Klose Sat, 09 Feb 2008 00:19:37 +0000 + +bash (3.2-0ubuntu12) hardy; urgency=low + + * Apply upstream patches 026 - 033. Fixes for: + - Keep the Apple linker from attempting to link bash against Apple's + readline library "replacement" rather than the one shipped with bash. + - When updating the display after displaying, for instance, a list + of possible completions, readline will place the cursor at the wrong + position if the prompt contains invisible characters and a newline. + LP: #119938. + - Under some circumstances, readline will incorrectly display a prompt + string containing invisible characters after the final newline. + - When the bash arithmetic expression evaluator has temporarily turned off + evalation, such as when parsing a pre- or post-decrement or -increment + operator, and an error occurs, evaluation is not re-enabled. + - If redirections attached to a compound command fail, bash does not set + the command's exit status correctly. This only happens when the command + is the first in a sequential list. + - In certain cases when outputting characters at the end of the line, e.g., + when displaying the prompt string, readline positions the cursor + incorrectly if the prompt string contains invisible characters and the + text being drawn begins before the last invisible character in the line. + - There is an off-by-one error in the code that buffers characters + received very quickly in succession, causing characters to be dropped. + - References made within a function to an uninitialized local array + variable using the [*] subscript in a double-quoted string can result + in spurious ASCII 127 characters in the expanded value. + * Remove bash-completion from the source. + * Remove the conflict with bash-completion, recommend bash-completion. + * debian/skel.bashrc: Check for dircolors before using it. LP: #121992. + * Include correct bash.pot file. LP: #104261. + + -- Matthias Klose Fri, 08 Feb 2008 19:26:17 +0100 + +bash (3.2-0ubuntu11) gutsy; urgency=low + + * Move CWRU/changelog from the bash to the bash-doc package (we already + have the CHANGES files). + * Support safe-upgrade and full-upgrade in aptitude auto completion. + (Benjamin Rubin). LP: #128575. + + [ Daniel Hahler] + * Apply upstream patches 018 - 025 (LP: #147946), fixes for: + - 018: Fix losing saved status of a background job and fix + infinite loop after creating and waiting for 4096 jobs. + - 019: Properly report error status when rl_read_key returns -1, + fixes cause of input loops. + - 020: Fix state consistency in some cases of error processing, + when jumping back to the top-level processing loop from + a builtin command. + - 021: When the parser read a backslash-escaped character that would + be treated internally as an escape, it would double the number + of escape characters. + - 022: POSIX specifies that the `read' builtin invoked from an interative + shell must prompt with $PS2 when a line is continued using a backslash + while reading from a terminal. + - 023: When an error occurs during the pattern removal word expansion, + the shell can free unallocated memory or free memory multiple times. + - 024: Fix calculation of screen position when performing a redisplay in + which the new text uses more space, but fewer bytes. + - 025: Fix dropping each 511th character of buffered input, e.g. when + pasting a large amount of data. + + -- Matthias Klose Fri, 05 Oct 2007 15:31:40 +0200 + +bash (3.2-0ubuntu10) gutsy; urgency=low + + * Trigger rebuild for hppa + + -- LaMont Jones Fri, 28 Sep 2007 10:34:31 -0600 + +bash (3.2-0ubuntu9) gutsy; urgency=low + + * debian/etc.bash.bashrc: + - updated for new location of command-not-found + - fix parsing of commands that look like arguments (LP: #124301) + + -- Michael Vogt Mon, 27 Aug 2007 08:53:07 +0200 + +bash (3.2-0ubuntu8) gutsy; urgency=low + + * Apply upstream patch 014 - 017, fixes for: + - Mishandling word splitting under certain circumstances when IFS is + null (IFS=). + - Fix unlinking FIFOs under certain circumstances, when using FIFOs + for process substitution. + - Fixes for displaying long prompts. + * textex -> texlive transition. + + -- Matthias Klose Thu, 17 May 2007 11:39:42 +0200 + +bash (3.2-0ubuntu7) feisty; urgency=low + + * Apply upstream patch 011 - 013, fixes for: + - 011: Under certain circumstances (loopback mounts), the bash getcwd does + not return correct results. This patch allows the use of the Solaris + libc getcwd even though it doesn't dynamically allocate memory. + - 012: Some systems (AIX 4.x) don't implement the PRI_xxx macros correctly, + causing syntax errors when attempting to compile bash on those systems. + This patch adds support for the PRI_MACROS_BROKEN define. + - 013: Readline neglects to reallocate the array it uses to keep track + of wrapped screen lines when increasing its size. This will eventually + result in segmentation faults when given sufficiently long input. + + -- Matthias Klose Fri, 6 Apr 2007 15:34:09 +0200 + +bash (3.2-0ubuntu6) feisty; urgency=low + + * Apply upstream patch 010. + The glibc implementation of regcomp/regexec does not allow backslashes to + escape "ordinary" pattern characters when matching. Bash used backslashes + to quote all characters when the pattern argument to the [[ special + command's =~ operator was quoted. This caused the match to fail on Linux + and other systems using GNU libc. + + -- Matthias Klose Tue, 6 Mar 2007 03:59:49 +0100 + +bash (3.2-0ubuntu5) feisty; urgency=low + + * Install /etc/skel/.profile, instead of /etc/skel/.bash_profile. + Users will find a ~/.profile instead of ~/.bash_profile; ~/.profile + is not read by a bash login shell, if ~/.bash_profile still exists. + * Fix one more crash in clear_console. Ubuntu #87402. + + -- Matthias Klose Sat, 3 Mar 2007 14:06:07 +0100 + +bash (3.2-0ubuntu4) feisty; urgency=low + + * Fix crash in clear_console. Ubuntu #85165. + * Fix scp command completion. Ubuntu #82849. + * Set Ubuntu maintainer address. + + -- Matthias Klose Wed, 21 Feb 2007 15:38:51 +0100 + +bash (3.2-0ubuntu3) feisty; urgency=low + + * debian/rules: Adjust to changed brace expansion in 3.2. + + -- Matthias Klose Mon, 8 Jan 2007 16:29:27 +0000 + +bash (3.2-0ubuntu2) feisty; urgency=low + + * Apply upstream patches 006 - 009. + + -- Matthias Klose Mon, 8 Jan 2007 11:07:45 +0000 + +bash (3.2-0ubuntu1) feisty; urgency=low + + * New upstream version. + - Remove rl-inputrc.dpatch, applied upstream. + - Remove ulimit.dpatch, ulimit-doc.dpatch, read-memleak, login-shell, + man-typos, applied upstream. + * Bugs fixed upstream: + - Traps overwrite job names. Ubuntu #41082. + * Apply upstream patches 001 - 005. + * Set HISTCONTROL to ignoreboth. Ubuntu #66539. + * Fix comment about umask setting in /etc/skel/.bash_profile. Ubuntu #71294. + * bash-completion: + - Fix typo in pkg-config completion. Ubuntu #58054. + - Add completion for apt-get autoremove. Ubuntu #60666. + - Add kaffeine completion for srt files. Ubuntu #64274. + * Merge with Debian unstable; remaining changes: + - Source package built using the unmodified upstream tarball. + - Build the bash-doc package including the texinfo docs. + - Skeleton scripts. + + -- Matthias Klose Mon, 4 Dec 2006 10:01:04 +0000 + +bash (3.1dfsg-7) unstable; urgency=medium + + * Restore the bash(1) manual page. Closes: #392989. + + -- Matthias Klose Sun, 22 Oct 2006 13:41:59 +0000 + +bash (3.1dfsg-6) unstable; urgency=low + + * Remove the texinfo documentation from the package. Closes: #357260. + * Remove the FAQ from the package. + + -- Matthias Klose Thu, 12 Oct 2006 22:35:46 +0200 + +bash (3.1-5ubuntu3) edgy; urgency=low + + * debian/bash_completion/bash_completion: + - added new apt autoremove option + * debian/etc.bash.bashrc: + - if the command-not-found package is installed, use it + + -- Michael Vogt Tue, 19 Sep 2006 21:56:57 +0200 + +bash (3.1-5ubuntu2) edgy; urgency=low + + * debian/patches/command-not-found-bashrc.diff: + - support the command-not-found package (if installed) + out-of-the-box (command-not-found-magic spec) + + -- Michael Vogt Mon, 28 Aug 2006 20:22:52 +0200 + +bash (3.1-5ubuntu1) edgy; urgency=low + + * Resynchronize with Debian unstable. + - Remaining change: bashrc sudo hint. + + -- Matthias Klose Wed, 5 Jul 2006 13:11:22 +0000 + +bash (3.1-5) unstable; urgency=low + + * Work around the broken remove-shell, not checking for the existance + of /etc/shells (closes: #337097). + * Force rebuild of bashref.info (closes: #354303, #357258). + * Apply upstream patches 015, 016, 017, fixing + - a problem with the extended globbing code prevented dots from matching + filenames when used in some extended matching patterns. + - core dumps when attempting to perform globbing in directories with + very large numbers of files. + - Array expansion failure with an arithmetic syntax error when the + subscript appears within double quotes. Closes: #358831. + * Add copyrights for contributed files (Joost van Baal). Closes: #357607. + * bash_completion: + - Add apt-cache madison completion: Closes: #342073, #359021. + - Complete files with spaces for bzip2. Closes: #356218. + - Complete whatis and apropos like man. Closes: #352145. + - Ignore stderr in apt-cache completion. Closes: #367198. + - Add flv|FLV files completion for mplayer. Closes: #364509, #373904. + - Add dvi|DVI files completion for evince. Ubuntu #49880. + * Fix typos in man page. Closes: #360543. + + [ Ian Jackson ] + * Make bash die if it cannot read its input file. Closes: #320036. + (This is not an ideal fix because, for example, the exit status is + still wrong - it should be 127, not 2. Also, the filename is not + printed. Unfortunately the code is badly tangled making this small + fix the most appropriate approach.) + + -- Matthias Klose Wed, 5 Jul 2006 06:56:54 +0200 + +bash (3.1-4) unstable; urgency=low + + * Update upstream patch 010, apply upstream patches 012, 013, 014. + * bash-default-editor.dpatch: Fix typo (closes: #356308). + * clear_console: Add FreeBSD support (Aurelian Jarno). Closes: #355336. + * clear_console: Only get rid of any history in the scrollback, if + not running in a pseudo tty (closes: #355815). + * bash_completion: + - Fix error in minicom completion (closes: #357241). + + -- Matthias Klose Thu, 23 Mar 2006 01:16:22 +0100 + +bash (3.1-3) unstable; urgency=low + + * Apply upstream patches 006, 007, 008, 009, 010 and 011. + * Define PGRP_PIPE to avoid race condition; monitor mode causes emacs as + $EDITOR to hang on kernel 2.6 (Jim Paris). Closes: #224543. + * Fix read memleak when reading from non-blocking fd (Tim Waugh). + * Recognize 'exec -l /bin/bash' as login shell (Tim Waugh). + * Fix parameter expansion: Array member length expansion fails with nested + index expression (Jan C. Nordholz). Closes: #345861. + * Add swedish translation of message strings. Closes: #349677. + + Merge from Ubuntu: + * clear_console: New helper program to clear the console, including + the scrollback buffer. + * /etc/skel/.bash_logout: Install it again and use clear_console. + Ubuntu #29405. Closes: #331504. + * /etc/skel/.bashrc: Enable bash_completion. + Ubuntu #11414, #25096. + * bash_completion: + - Fix ssh completion to match lines starting with `Hostname' as well. + Closes: #343312. + * Add ulimit options -e and -r. + + * Update bash_completion to 20060301: + - Completion for minicom(1), mtr(8), sysctl(8), smartctl(8), vncviewer(1), + invoke-rc.d, update-rc.d and dpkg-source has been added. + Closes: #323824, #327414. + - gdb completion of second parameter was broken when first parameter + contained white space. + - gdb completion wasn't completing second parameter correctly when it was + a file, rather than a PID. + - Ruby ri completion has been broken for some time. This is now fixed. + - Various fixes to work around change in how POSIX quoting is handled in + bash 3.1. + - subversion completion has been reimplemented from scratch and integrated + into the main file. + - iconv(1) completion has been improved. + - yum(8) completion has been updated for current version of yum. + - ant completion will now make use of complete-ant-cmd.pl, if available. + - cvs(1) completion has been improved with 'update' and 'stat' completion. + - 'aptitude show' now works in the same way as 'apt-cache show'. + - make(1) now also completes on file names. + - MPlayer will now also complete on .flac, .mpc and .3gp files. + Closes: #340452. + - wine will now also complete on .exe.so files. + - unzip will now also complete on oowriter's .ott files. + - xine et al will now complete on .mng files. + - The list of programs completing on .dvi files has been expanded. + - The range of files on which timidity and evince complete has been + expanded. Closes: #351848. + - mkisofs completion now defaults to treating results as file names. + - $DEBUG has been renamed $BASH_COMPLETION_DEBUG to avoid namespace clashes + with other software. + - man(1) completion now works correctly on OpenBSD. + - svk and Mercurial completion have been added to contribs. Closes: #324169. + - Many other small optimisations and fixes. Closes: #325056. + + -- Matthias Klose Sat, 4 Mar 2006 01:54:25 +0100 + +bash (3.1-2) unstable; urgency=low + + * Apply upstream patches 002 - 005. + + -- Matthias Klose Tue, 10 Jan 2006 00:19:25 +0100 + +bash (3.1-0ubuntu3) dapper; urgency=low + + * Document supported ulimit options. + * Fix parsing problems with compound assignments + * Fix readline callback interface. + * Fix ssh command completion (closes: #343312). + + -- Matthias Klose Fri, 23 Dec 2005 11:31:36 +0100 + +bash (3.1-0ubuntu2) dapper; urgency=low + + * command-not-found handler: Print error message, when command not found. + Ubuntu #5120. + * fix ssh command completion. + + -- Matthias Klose Sun, 11 Dec 2005 16:14:14 +0100 + +bash (3.1-1) unstable; urgency=low + + * New upstream version (final 3.1 release). + - Fixed a small memory leak in the programmable completion code. + Closes: #338822. + * Generate the locales needed for the testsuite, build-depend on locales. + * Improve check for existance of /dev/stdin during build. Closes: #333935. + * Fix bash_completion, sudo completion does not protect empty arguments. + Closes: #329148. + * /etc/bash.bashrc: Don't change the xterm title by default, keep the + default for /etc/skel/.bashrc. Closes: #313617, #314614. + + -- Matthias Klose Sat, 10 Dec 2005 00:56:28 +0100 + +bash (3.0+3.1rc1-1) unstable; urgency=low + + * New upstream version (3.1-rc1). + * Remove patches applied upstream: rl-del-backspace-policy, bad-interp. + + -- Matthias Klose Fri, 11 Nov 2005 12:59:32 +0000 + +bash (3.0+3.1b1-1) unstable; urgency=low + + * New upstream version (3.1-beta1). + * Remove bash's dependency on passwd, add one to debianutils (>= 2.15). + + -- Matthias Klose Thu, 13 Oct 2005 15:49:49 +0200 + +bash (3.0+3.1a1-1) unstable; urgency=low + + * New upstream version (3.1-alpha1). + - Fix "cd -P" hanging (closes: #316407). + - Fixed exit status code so that a suspended job returns 128+signal as its + exit status (preventing commands after it in `&&' lists from being + executed). Closes: #288319. + - The globbing code now uses malloc, with its better failure properties, + rather than alloca(). Closes: #238226. + - In POSIX mode, if `xpg_echo' option is enabled, the `echo' builtin + doesn't try to interpret any options at all, as POSIX requires. + Closes: #303649. + - Some changes to the display code to improve display and redisplay of + multibyte characters. Closes: #309654. + - Fixed a bug that caused bash to close fd 2 if an `exec' failed and the + shell didn't exit. Closes: #310308. + - Fix segmentation fault if execve'd with NULL argv. Closes: #316206. + - Fix segfault, if free is called with already freed block argument. + Closes: #317324. + - Fix garbage in bash(1), section SIGNALS. Closes: #327035. + - Fixed vi-mode searching so that failure preserves the current line rather + than the last line in the history list. Closes: #297330. + - Fix segfault on variable assignment. Closes: #291840. + - Fixed parser to generate an error when the pipeline `argument' + to `!' or `time' is NULL. Closes: #273324, #342228. + - A bare `%' once again expands to the current job when used as a job + specifier, updated the help for `%'. Closes: #262095. + - Fix tilde expansion for some cases where it was performed + inappropriately. Closes: #263023. + - Replicate first character of $PS4, not only the first byte. + Closes: #288125. + - bashref.texi: Remove blank lines from contents. Closes: #307264. + * Remove patches applied upstream: + - bash30*, wcontinued, man-cdpath, update-multibyte-ifs, histtimeformat, + spelingm. + - rl-examples, rl-setenv, rl-display, rl-self-insert. + * Update patches: + - deb-bash-config, man-test, man-test2. + * bash(1): Fix /etc/bash.logout file name (closes: #289355). + * Document, that bash is configured using --disable-net-redirections. + Closes: #313538. + * Use `command -v editor`, as an editor, if available. Closes: #296603. + + -- Matthias Klose Fri, 9 Sep 2005 21:09:46 +0200 + +bash (3.0-17) unstable; urgency=low + + * Check that the device files /dev/std{in,out,err} are present at + build time. Closes: #327477. + * Remove html completion for w3m, users claim w3m to be a general viewer. + * /etc/bash.bashrc: Avoid stat on /etc/debian_chroot, if not necessary. + Closes: #303712. + * debian/patches/wcontinued.dpatch: Update, fixing hangs in + bash_completion (Junichi Uekawa). Closes: #318301. + * Build-depend on texinfo (>= 4.8). Closes: #316066. + + -- Matthias Klose Thu, 13 Oct 2005 11:24:21 +0000 + +bash (3.0-16ubuntu3) breezy; urgency=low + + * Don't install .bash_logout again, doesn't clear the buffer and + ps is not in required. + + -- Matthias Klose Wed, 5 Oct 2005 13:29:22 +0200 + +bash (3.0-16ubuntu2) breezy; urgency=low + + * Fix segmentation fault due to gcc optimization and longjmp. Patch + by Jim Paris. Debian #331381. + * Don't overwrite PROMPT_COMMAND in /etc/bash.bashrc. Ubuntu #15122. + Closes #330889. + * Install skeleton .bash_logout to clear the screen, when logging out + from the console. Ubuntu #10149. + + -- Matthias Klose Tue, 4 Oct 2005 18:01:26 +0200 + +bash (3.0-16ubuntu1) breezy; urgency=low + + * bash_completion changes: + - Add completion for evince. + - Fix completion for aptitude (Ubuntu 12549). + Closes: #293979, #325045, #327413. + - Add completion for *.flac files in mplayer (closes: #304778). + - Add completion for *.ott files for unzip and zipinfo (closes: #322481). + - Add html completion for w3m. + + -- Matthias Klose Fri, 9 Sep 2005 20:33:31 +0200 + +bash (3.0-16) unstable; urgency=low + + * Update to bash_completion 20050721 (v1.827). + - Fix function name in aptitude completion (closes: #304624, #320390). + * In PROMPT_COMMAND, use ~ instead of the complete path. + * Adjust for dpkg-dev (>= 1.13.9). Closes: #313546. + + -- Matthias Klose Mon, 5 Sep 2005 18:37:19 +0200 + +bash (3.0-15) unstable; urgency=low + + * glibc-2.3.5 defines WCONTINUED, which is available only since + Linux 2.6.10. On older kernels waitpid() returns -1 with errno + set to EINVAL if WCONTINUED is supplied in options. Retry without + WCONTINUED set in that case. + + -- Matthias Klose Wed, 25 May 2005 12:38:09 +0000 + +bash (3.0-14ubuntu1) breezy; urgency=low + + * Configure the static build --without-bash-malloc. + + -- Matthias Klose Sat, 21 May 2005 07:28:25 +0000 + +bash (3.0-15) unstable; urgency=low + + * Print out bad interpreter names with trailing ^M (DOS line endings). + Closes: #282762. + + -- Matthias Klose Sun, 23 Jan 2005 20:24:58 +0100 + +bash (3.0-14) unstable; urgency=low + + * Fix re-read-init-file (C-xC-r) not to read /etc/inputrc twice, + but /etc/inputrc and ~/.inputrc. Thanks to Vasco Pedro. + * Fix bug in readline's self-insert command (closes: #290103). + * Fix bash-builtins package description (closes: #290258). + * Add cross build support (closes: #283732). + * Update to bash_completion 20050121 (v1.786). + - Improve ssh2 known hosts completion. (closes: #282767). + - Pass over switches to metacommands like sudo, nice, exec, etc. + (closes: #289847) + - Trivial fix to allow python to be called with a path component without + bash displaying a bad subscript error. (closes: #290748) + - unzip should also work on .sxw files. (closes: #286738). + - Lots of commands that use _longopts() don't use filenames at all, so + these shouldn't be mapped with '-o filenames'. (closes: #283069, which + related only to wget). + - Make dd treat completions as filenames, which is bad for options, but + good for filename arguments to 'if' and 'of'. (closes: #287286). + - Fix lvresize errors when running as non-root (closes: #285604). + + -- Matthias Klose Sat, 22 Jan 2005 23:08:57 +0100 + +bash (3.0-13) unstable; urgency=low + + * Update to bash_completion 20050103 (v1.772). + * Fix segfault in the ``reverse-search-history'' feature of the readline + library, if the search string matches a previously entered command (ie + history) and must overflow the current screen width. Closes: #288940. + + -- Matthias Klose Wed, 12 Jan 2005 08:11:36 +0100 + +bash (3.0-12) unstable; urgency=low + + * debian/skel.bashrc: Quote dircolors invocation (closes: #285840). + + -- Matthias Klose Sun, 19 Dec 2004 17:48:17 +0100 + +bash (3.0-11) unstable; urgency=low + + * Adjustments to the skeleton files. + * Fix spelling errors in the docs (closes: #281842). + + -- Matthias Klose Wed, 17 Nov 2004 06:37:48 +0100 + +bash (3.0-10) unstable; urgency=low + + * Apply upstream patch 015-016. + + -- Matthias Klose Thu, 11 Nov 2004 07:15:34 +0100 + +bash (3.0-9) unstable; urgency=low + + * Apply upstream patch 001-014. + * Document handling of parameters of the test builtin (closes: #173273). + + -- Matthias Klose Fri, 29 Oct 2004 23:57:19 +0200 + +bash (3.0-8) unstable; urgency=low + + * Add a comment to /etc/bash.bashrc that the file is not read by + login shells (closes: #271413). + * Sync builtin CDPATH documentation with man page (closes: #259767). + * Document conditional file expressions acting on the target of + symbolic links as well (except -h, -L). Closes: #231267. + * Update to bash_completion 20041017 (v1.758). + - Unset `have' variable at end of sourcing (closes: #273809). + - Fix scp completion breakage when filenames contained an ampersand. + Closes: #262354. + + -- Matthias Klose Sun, 17 Oct 2004 09:31:03 +0200 + +bash (3.0-7) unstable; urgency=low + + * Apply upstream patches 001-013, remove patches collected from the net. + * Patch bash30-003 restores a measure of backwards compatibility for the + `trap signum' syntax (closes: #261948). + * Trim skeleton files. + + -- Matthias Klose Sun, 19 Sep 2004 09:06:36 +0200 + +bash (3.0-6) unstable; urgency=low + + * Fixed in bash-3.0: + - New option pipefail. If set, the return value of a pipeline is the + value of the last (rightmost) command to exit with a non-zero status, + or zero if all commands in the pipeline exit successfully. This option + is disabled by default. The two oldest outstanding bash reports are + gone (closes: #7047, #10494). + - "$( substitution strangeness (closes: #187983). + - timestamp support in history (closes: #161057). + * Various updates from the net: + - Fix a bug in array expansion. + - Fix a bug in brace expansion. + - Handle multibyte characters in IFS values. + - Fix a bug, when pipefail option is set. + - History saved-line handling (closes: #253766, #268922). + - Fix parameter expansion with UTF-8 and ${#var} or ${var: -1}. + * Apply patch to fix non POSIX function name and avoid use of global + variables (Stephen Gildea). Closes: #262105. + * Add command_not_found_handle in non POSIX interactive shells. + Closes: #243015. + * Check for /usr/sbin/remove-shell before using it (closes: #265982). + * bash-builtins: Install missing header files (closes: #265259). + * Clarify documentation about substring expansion (closes: #192831, #203767). + * Fix completion on ~/../``/ (closes: #261142). + * Clarify documentation about case-insensitive pathname expansion. + Closes: #141292. + * Apply patch to fix the display of UTF-8 characters. + Closes: #224916, #257540. + + -- Matthias Klose Sat, 4 Sep 2004 10:21:23 +0200 + +bash (3.0-5) unstable; urgency=medium + + * Fix segfault and wrong behaviour running the firehol script. + Closes: #262438, #262642. + * Add history scrolling patch patch (closes: #263064). + * Strip bash binary, leftover from debugging (closes: #263451). + * `cd -' printing the directory in non-interactive mode, non-POSIX mode + is new behaviour, not a bug (closes: #262619). + * Address build failure calling the 'binary' target directly instead of + dpkg-buildpackage (closes: #263797). + * Remove kfreebsd-gnu hack to disable bash malloc (closes: #263005). + + -- Matthias Klose Fri, 6 Aug 2004 07:10:24 +0200 + +bash (3.0-4) unstable; urgency=low + + * Revert substitution patch trying to fix completion on ~/../``/. + Reopens: #261142. Closes: #261955, #262338, #262602. + + -- Matthias Klose Sun, 1 Aug 2004 12:36:57 +0200 + +bash (3.0-3) unstable; urgency=high + + * Revert the following upstream change (until sarge is released): + The historical behavior of `trap' that allows a missing `action' argument + to cause each specified signal's handling to be reset to its default is + now only supported when `trap' is given a single non-option argument. + Addresses: #261948. + * Fix line wrapping (closes: #261957). + + -- Matthias Klose Fri, 30 Jul 2004 16:17:22 +0200 + +bash (3.0-2) unstable; urgency=medium + + * Fix typo in bash-minimal's postinst. Closes: #260506. + * Fixed in bash-3.0: + - pwd builtin exiting with write error. Closes: #243872. + + -- Matthias Klose Thu, 29 Jul 2004 07:13:13 +0200 + +bash (3.0-1) unstable; urgency=medium + + * New upstream release. + * Bugs fixed in this release (and the alpha/beta releases and release + candidates): + - Fixed a bug that caused the prompt to overwrite previous output when the + output doesn't contain a newline and the locale supports multibyte + characters. This same change fixes the problem of readline redisplay + slowing down dramatically as the line gets longer in multibyte locales. + Closed: #179883. + - The shell no longer seg faults if the expanded value of $PS4 is null + and `set -x' is enabled. Closes: #165533. + - Don't define a default DEFAULT_MAIL_DIRECTORY, because it can cause + a timeout on NFS mounts. Closes: #211426. + - Fixed a bad interaction between alias and completion. Closes: #186218. + - Fix initialization of local variables with "$@". Closes: #180290. + - Fixed segfault in "read -a foo <<< $(echo)". Closes: #167003. + - Fixed the history word tokenizer to handle <( and >( better when used as + part of bash. Closes: #165212. + - Fixed EINTR signal killing redirection. Closes: #164134. + - Fixed infinite loop with IFS="" and compgen -W. + Closes: #162952. + - Fixed the internal logout code so that shells that time out waiting for + input (using $TMOUT) run ~/.bash_logout. Closes: #152847. + - Speedups to the multibyte character redisplay code. Closes: #197965. + - Better error message on wrong kill arguments. Closes: #193570. + - Overwriting of prompt. Closes: #176968. + - The shell now reports on processes that dump core due to signals when + invoked as `-c command'. Closes: #211693. + - Fixed ferror beeing called w/o always first calling clearerr + results in spurious errors reported. Closes: #195116. + - Add missing trailing slash on directory completion. Closes: #178828. + - Fix different behaviour for builtin and external commands together + with arithmetic expansion. Closes: #173744. + - Fixed a bug that caused redirections accompanying a null command + to persist in the current shell. Closes: #173148. + - Fixed a bug that caused a leading `-' in the shell's name to cause it to + not be recognized as a restricted shell. Closes: #170298. + - Fix segfault in ill formed paramter expansion. Closes: #162773. + - Fixed a bug in brace expansion that caused a quoted `$' preceding an + open brace to inhibit brace expansion. Closes: #157954. + - Removed the attempts to avoid adding a slash at the end of a completed + executable name if there was a directory with the same name in the + current directory. Closes: #155134, #189006. + - Fix error message for circular alias expansions. Closes: #173588. + - Fixed a bug that caused some key bindings set in an inputrc to be ignored + at shell startup. Closes: #110969. + - Fix segfault on bad array subscripts. Closes: #232653. + - Fix "set completion-ignore-case on" breaking some tab completion. + Closes: #224303. + - Flag an error when a user uses "% DIGITS" instead of "%DIGITS", and + don't give him a different job instead. Closes: #173854. + - For 'cd filename' say 'not a directory', not 'no such file or directory' + when filename exists and is not a directory. Closes: #219958. + - Expansion results are the same for ${1:+"$@"} and "$@" if IFS is not + the default. + - The locale code does a better job of recomputing the various locale + variable values when LC_ALL is unset. Closes: #160932. + - Fix substitution error triggering an assertion. Closes: #251801. + * Documentation updated in this release (and the alpha/beta releases): + - Fix documentation about exit status of unset builtin. Closes: #183352. + - Clarify documentation for arguments of wait builtin. Closes: #174133. + - Document ${!prefix@} expansion. Closes: #168318. + - Fix documentation of GLOBIGNORE behaviour. Closes: #168267. + - Document the use of $EMACS. Closes: #174744. + - Improve documentation of the value of arithmetic expressions. + Closes: #168321. + - Make docs more explicit about variable indirection in shell parameter + expansion. Closes: #167002. + - Documentation for values of various assignments updated. Closes: #168331. + - In section "Shell Functions", add documentation for syntax, + which bash accepts. Closes: #172971. + - Fix documentation of the PATH variable. Closes: #155369. + - Document SHELL variable in section "Shell Variables". Closes: #249657. + - Remove reference to missing section in rbash(1). Closes: #249219. + * Fix another segfault in completion code. Closes: #261142. + + -- Matthias Klose Tue, 27 Jul 2004 21:23:42 +0200 + +bash (2.05b-2-22) unstable; urgency=low + + * Brown paperbag ... Fix typo in bash-minimal's postinst. + + -- Matthias Klose Tue, 20 Jul 2004 23:04:56 +0200 + +bash (2.05b-2-21) unstable; urgency=low + + * Remove the pre-dependency on passwd. + * Explicitely check for the existance of /usr/sbin/add-shell. + * Reassign #257744 to debootstrap to correctly handle the installation. + + -- Matthias Klose Mon, 19 Jul 2004 22:57:19 +0200 + +bash (2.05b-2-20) unstable; urgency=medium + + * Make passwd a pre-dependency (closes: #257744). + + -- Matthias Klose Sat, 17 Jul 2004 06:56:38 +0200 + +bash (2.05b-2-19) unstable; urgency=low + + * Build using gcc, not gcc-3.4 (closes: #259208). + + -- Matthias Klose Tue, 13 Jul 2004 21:25:28 +0200 + +bash (2.05b-2-18) unstable; urgency=low + + * Tighten dependency on passwd (closes: #257717). + * Update to bash_completion 20040711 (v1.737). + - Fix mutt folder completion (closes: #248635). + * Fix tab completion on relative path directories (closes: #189006). + * Modify lib/malloc/malloc.c to make it compile with gcc-3.4 (Andreas + Jochens). Closes: #258456. + + -- Matthias Klose Tue, 13 Jul 2004 06:15:46 +0200 + +bash (2.05b-2-17) unstable; urgency=low + + * Add dependencies on passwd (closes: #257630). + + -- Matthias Klose Sun, 4 Jul 2004 22:56:17 +0200 + +bash (2.05b-2-16) unstable; urgency=low + + * Handle shells using add-shell/remove-shell (closes: #254476). + * Update to bash_completion 20040704 (v1.731). + - Add autocompletion for dpkg -P, --purge (closes: #241042, #249934). + - Fix mutt folder completion (closes: #248635). + - Add autossh to ssh completions (closes: #252090). + - Emacs completion does not discard .tar* archives (closes: #252347). + - Add MS filename extensions to OpenOffice (closes: #252635). + - Add completion for tar.Z files (closes: #254896). + - Fix problems with sed-4.1 (closes: #256000). + - Fix dpkg completion with multiple arguments (closes: #257544). + * Fix formatting in bash(1). Closes: #248344. + + -- Matthias Klose Sun, 4 Jul 2004 16:07:24 +0200 + +bash (2.05b-2-15) unstable; urgency=low + + * Fix a bug that caused a leading `-' in the shell's name to cause it to + not be recognized as a restricted shell (closes: #170298). + * Fix option in menu file (closes: #162152). + * Backout patches/random patch (closes: #242111). + * Update to bash_completion 20040331 (v1.700). + * Update skeleton files and /etc/bash.bashrc to include the contents + of /etc/debian_chroot in the prompt, if the file exists. + * Add openoffice completions (closes: #244611). + * Remove ee (eeyes) completion (closes: #240668). eeyes isn't distributed + anymore. + * bash(1): Document ~/.bash_login and ~/.profile in FILES section. + Closes: #204766. + * Apply patch from http://www.savarese.org/posix/ to improve the mail + checking code so it won't check (and possibly cause an NFS file system + mount) until MAILPATH or MAIL is given a value. Closes: #211426. + * Add missing dependency in debian/rules (closes: #247413). + + -- Matthias Klose Sat, 8 May 2004 18:36:41 +0200 + +bash (2.05b-2-14) unstable; urgency=low + + * Add bash reference manual in PDF format (closes: #202849). + * Remove FAQ; the license doesn't allow modification (closes: #231157). + * debian/copyright: Name the copyright holders (closes: #233716). + * Update to bash_completion 20040214 (v1.690). + - Make xspec parsing immune to comments (closes: #226812). + - Another fix to sudo completion: "sudo completion is virtually + impossible to get right. It's just a question of choosing what + aspect of it is the least annoying to leave broken. :-(" + Closes: #223094. + - xine can also complete on .asx files (closes: #231356). + - Speedup dpkg completion (closes: #232585). + - Fix chsh completion (closes: #232214). + * Disable the GNU/kFreeBSD kludge (--without-bash-malloc). Closes: #234137. + + -- Matthias Klose Sun, 22 Feb 2004 13:31:03 +0100 + +bash (2.05b-2-13) unstable; urgency=medium + + * Apply patch to speedup display of characters under multibyte locales. + Thanks to Denis Barbier. Closes: #197965. + * Update to bash_completion 20040101 (v1.672). + - Closes: #215030, #224981. + - Include completion for sitecopy in contrib directory (closes: #223294). + * Fix typo in man page (closes: #224477). + * Don't build bashdb anymore. Not ready for use. Closes: #224573, #224566. + * Document /etc/bash.bashrc in bash man page (closes: #216403). + + -- Matthias Klose Sat, 24 Jan 2004 21:20:25 +0100 + +bash (2.05b-2-12) unstable; urgency=low + + * Update to bash_completion 20031022 (v1.644). + * Fix "suspend" segfaults in non-interactive shells (closes: #217188). + * Rename bashdb's gud.el to gud-bashdb.el (closes: #220002). + + -- Matthias Klose Mon, 10 Nov 2003 23:53:35 +0100 + +bash (2.05b-2-11) unstable; urgency=medium + + * Tighten automake build dependency (closes: #215350). + * Add dependency line for bashdb (closes: #215634). + * /etc/skel/.bashrc: set xterm's title as we do for PS1 (closes: #176734). + * Remove build dependency on readline (closes: #215165). + * Update to bash_completion 20031007 (v1.630). + + -- Matthias Klose Tue, 14 Oct 2003 20:37:23 +0200 + +bash (2.05b-2-10) unstable; urgency=low + + * Update to bash_completion 20030911 (v1.624). + + -- Matthias Klose Mon, 22 Sep 2003 11:43:39 +0200 + +bash (2.05b-2-9.1) unstable; urgency=low + + * Added build dependency on texi2html (closes: #211151). + * Create site-lisp directory in bashdb target. + + -- Herbert Xu Thu, 18 Sep 2003 18:39:51 +1000 + +bash (2.05b-2-9) unstable; urgency=low + + * Recompilation fixes segfaults in bash-static (closes: #205185). + * Build debugger enabled bash binary (bash-bashdb). Closes: #195877. + * Update to bash_completion 20030821 (v1.617). Closes: #203859, #205741. + * Adjust config.guess triplet for GNU/FreeBSD (closes: #194182). + * Fix package description (closes: #202344). + + -- Matthias Klose Mon, 8 Sep 2003 23:34:50 +0200 + +bash (2.05b-2-8.1) unstable; urgency=low + + * Fixed versioned dependency of bash-builtins (closes: #196421). + * Call dh_fixperms in bash-minimal. + + -- Herbert Xu Sat, 7 Jun 2003 12:44:18 +1000 + +bash (2.05b-2-8) unstable; urgency=low + + * Apply upstream patches 005, 006, 007. + 006 addresses the LSB 1.3 test suite failures (closes: #184888). + 007 addresses ~ command working with UTF-8 locales (closes: #179946). + * Build a minimal shell in package bash-minimal (closes: #176164). + Sort of fix for reports complaining that /bin/sh does have + additional features compiled in (closes: #183185). + * Build a static shell in package bash-static (closes: #138089). + * Update to bash_completion 20030527 (v1.571) (closes: #167852, #171523, + #184738, #185711, #189535, #192282). + * /etc/skel.profile: Export MANPATH (commented out). Closes: #180717. + * Add menu entry for bash (closes: #187596). + * + * Install info docs as bashref.info, symlink to bash.info (closes: #174674). + * Fix segfault with builtin shift, no arguments and "shopt -s shift_verbose". + Closes: #159996. + * Update config.{sub,guess} (closes: #179737). + * Fix apt-cache search completion (closes: #184144). + * Configure --without-bash-malloc on GNU/FreeBSD (closes: #194182). + + -- Matthias Klose Thu, 29 May 2003 17:00:53 +0200 + +bash (2.05b-7) unstable; urgency=medium + + * Fix rbash man page (closes: #181248). + * On m68k-linux, bash is miscompiled using gcc-3.2 and gcc-snapshot. + Revert back to gcc-2.95. + + -- Matthias Klose Fri, 28 Feb 2003 00:54:22 +0100 + +bash (2.05b-6) unstable; urgency=low + + * First upload compiled using gcc-3.2 as the default compiler. + * Update to bash_completion 20030126 (v1.520) (closes: #168478, #145481, + #150628, #158039, #168700, #169232, #169586, #171161, #171420, #171523, + #173096, #177654). + + -- Matthias Klose Mon, 27 Jan 2003 21:08:19 +0100 + +bash (2.05b-5) unstable; urgency=high + + * Build-depend on bison-1.35 (closes: #167635). + + -- Matthias Klose Mon, 4 Nov 2002 09:30:39 +0100 + +bash (2.05b-4) unstable; urgency=low + + * Ignore *~ and *.bak files in /etc/bash_completion.d/ (closes: #161027). + * debian/patches/rl-mbutil.dpatch: Fix segfault in mbutil.c. + * Update to bash_completion 20021026 (v1.462) (closes: #161671, #162161, + #163096, #163097, #164890, #165937). + * Apply fix for debian/bash.preinst.c (closes: #162424). + * Avoid warning in s390 build (closes: #160731). + * /etc/skel.bashrc: Add commented example to set the `checkwinsize' + option (maybe closes: #161984). + * Install builtins manpage as bash-builtins(7), add an alternative + builtins(7) with priority 10 (closes: #166082). + * Fix typo in documentation of deprecated arithmethic expansion. + Closes: #161386. + * rl-8bit-init.dpatch: Apply (closes: #164809). + * README.Debian: Removed invalid entry about ssh (closes: #159754). + + -- Matthias Klose Tue, 24 Sep 2002 12:40:35 +0200 + +bash (2.05b-3) unstable; urgency=low + + * Apply upstream patch 003 (Fix completing executable names). + Closes: #155134, #159466. + * Apply upstream patch 004. + * Fix completion by TAB in quoted sequence(`...`) with Multibyte Locale. + Patch from Satoshi Koike (closes: #155436). + * Update to bash_completion 20020909 (v1.410) (closes: #154595, #155211, + #155706). + * Don't set umask in /etc/skel/.bash_profile (closes: #155973). + * Drop suggestion of grep-dctrl (closes: #156351). + + -- Matthias Klose Fri, 9 Aug 2002 05:30:24 +0200 + +bash (2.05b-2) unstable; urgency=medium + + * Apply upstream patches: + - Fix a command completion problem (closes: #154273). + - Fix a segfault (closes: #154123). + - Fix for repeating an edit in vi mode. + * Fix typo in /etc/skel/.bashrc (closes: #153856). + * Update to bash_completion 20020727 (v1.390) (closes: #148873, #153045). + * Install info docs in "Shells" section (closes: #154618). + + -- Matthias Klose Fri, 2 Aug 2002 19:24:28 +0200 + +bash (2.05b-1) unstable; urgency=low + + * New upstream version: + - Fixed a problem with process substitution that resulted in incorrect + behavior when the number of process substitutions in an individual + command approached 64 (closes: #149229). + - Added putenv, setenv, unsetenv to getenv replacement (closes: #149262). + - Fixed bug, where bash incorrectly reports failure to execute a script. + Closes: #126620, #140819. + - Fixes an `out of memmory in pipe' error (closes: #134004). + - Fixed a bug that could cause the -O expand_aliases invocation option + to not take effect (closes: #122362). + - New code to handle multibyte characters (obsoletes and closes: #25131, + #118724). + - Fixed the /= and %= arithmetic operators to catch division by zero. + Closes: #148950. + - Fixed abort in completion of absolute filenames (closes: #136625). + - Fixed "declare -f"'s handling of here-documents (closes: #127452). + - Documentation for `==' adds hint for POSIX compliance (closes: #137741). + - Not reproducible anymore with new upstream version. Upstream regards + these as fixed (closes: #142906, #143811, #144375). + - Fix bug in `compgen -W' (closes: #143518). + - Fix memory corruption error printing error message (closes: #145229). + - Unreproducible with the new upstream version (closes: #135062). + - Fixed a bug that caused a syntax error when a command was terminated by + EOF (closes: #147258). + - Fixed a problem which caused the display to be messed up when the last + line of a multi-line prompt (possibly containing invisible characters) + was longer than the screen width (closes: #137268). + - The `home' and `end' keys are now bound to beginning-of-line and + end-of-line, respectively, if the corresponding termcap capabilities + are present (closes: #89026, #89034, #98029, #107453, #107897, #116943, + #119491, #128687, #130029). + - Fixed a bug that could cause the -O expand_aliases invocation option + to not take effect (closes: 148505). + - Bash now correctly honors setting LANG to some value when LC_ALL does not + already have a value (closes: #145597). + - The `unset' builtin no longer returns a failure status when asked to + unset a previously-unset variable or function (closes: #98743). + - Changes to make reading and writing the history file a little faster, and + to cope with huge history files without calling abort(3) from xmalloc. + Closes: #61006. + * Fixed in earlier versions of bash: + - Fixed a bug that caused SIGINT to kill shell scripts after the script + called `wait' (closes: #14658). + - Handling of ANSI sequences in PS1 (closes: #60914). + - ctrl+z when running while-loop puts bash in broken state (closes: #98521). + * Fix build error (closes: #151681). + * bash suggests bash-doc (closes: #152353). + * /etc/skel/.bashrc: Only enable color support for ls, when $TERM != dumb. + Closes: #143361. + * Report is missing any information. Bug submitter didn't respond. + Closes: #130051. + * Close a report for a sefault in bash-2.03, which cannot be reproduced + anymore in newer versions (2.05) (closes: #58404). + * Add the README.commands document to the doc directory. Reassign #106170 + to doc-linux-text. + * Update to bash_completion 20020716 (v1.383) (closes: #145938). + + -- Matthias Klose Fri, 19 Jul 2002 22:33:25 +0200 + +bash (2.05a-12) unstable; urgency=low + + * Update to bash_completion 20020528 (v1.335) (closes: #141970, #142015, + #142859, #144335, #146152, #146309, #146693). + Put the the contributed completion files into /usr/share/doc. + * Suggest grep-dctrl, which is called by the completion code. Added + note to README.bash_completion, that the completion code depends on it. + Closes: #146152. + * Mention bash_completion in the package description (closes: #146878). + * Fix brace expansion (Fix by Richard Kettlewell ). + Forwarded. Closes: #144983. + + -- Matthias Klose Thu, 30 May 2002 23:50:40 +0200 + +bash (2.05a-11) unstable; urgency=medium + + * Don't mishandle negative pid in `kill' builtin (closes: #133927, #137742). + * builtins(1) doesn't document `for' (closes: #118755). + * Add /usr/share/bash_completion directory to source package specific + completion files. + * Update to bash_completion 20020408 (v1.264). + Closes: #133109, #139375, #139675, #134713, #141134. + * Add completion to /etc/skel/.bashrc (commented out). Closes: #138921. + + -- Matthias Klose Mon, 8 Apr 2002 20:51:41 +0200 + +bash (2.05a-10) unstable; urgency=medium + + * Init seed of random generator in subshells (patch from Miha Tomsic). + * Update to bash_completion 20020330 (v1.237). + Closes: #138673, #138707, #139110 and #139675. + * Strip bash(1) again (closes: #138902). + + -- Matthias Klose Sun, 31 Mar 2002 08:08:26 +0200 + +bash (2.05a-9) unstable; urgency=low + + * Fix bug reading /etc/bash_completion.d files. + + -- Matthias Klose Sat, 16 Mar 2002 00:54:28 +0100 + +bash (2.05a-8) unstable; urgency=low + + * A last bash_completion bug fix upload (updated to v1.195, + see changelog.bash_completion.gz for details). + All files in /etc/bash_completion.d are read before ~/.bash_completion + is read. Files containing a dot are ignored. + Included completion extensions (closes: #129661, #137725, #137732). + + -- Matthias Klose Tue, 12 Mar 2002 23:25:21 +0100 + +bash (2.05a-7) unstable; urgency=low + + * A bash_completion bug fix upload (updated to v1.180, + see changelog.bash_completion.gz for details). Really closes: #133825. + + -- Matthias Klose Thu, 7 Mar 2002 00:06:14 +0100 + +bash (2.05a-6) unstable; urgency=medium + + * Configure --without-bash-malloc. At least on hppa, this fixes an error, + which shows up when building gcc or kernels: + malloc: /build/buildd/bash-2.05a/unwind_prot.c:284: assertion botched + free: called with unallocated block argument + * A bash_completion bug fix upload (updated to v1.163, + see changelog.bash_completion.gz for details). + Closes: #133111, #133112, #133116, #133825, #134296. + * Updated service completion patch (Ian Macdonald). + + -- Matthias Klose Sat, 2 Mar 2002 00:27:22 +0100 + +bash (2.05a-5) unstable; urgency=medium + + * A bash_completion bug fix upload (updated to v1.93, + see changelog.bash_completion.gz for details). + Closes: #129106, #130167, #129033, #129228, #129451, #129884, #132309, + #132529, #132552, #132553. + Ian even added completion for Quake! Horrible ... + * Include service completion patch. + * README.bash_completion: Fix reference to /etc/bash.bashrc (closes: #129816). + + -- Matthias Klose Wed, 6 Feb 2002 22:22:09 +0100 + +bash (2.05a-4) unstable; urgency=high + + * Fix for causing a segmentation fault when some special shell variables + are declared as array (therefore urgency high). + * Apply patch for function prototypes (closes: #124004, #124362). + * Capitalize `POSIX' in package description (closes: #124439). + * Add (commented) setting of MANPATH to /etc/skel/.bash_profile + (closes: #123792). + * Update builtins(1) (closes: #125673). + * Taken from the current upstream sources: Make the symlinked directory + completion behavior introduced in readline-4.2a a user-settable option. + If `mark-symlinked-directories' is set to `on', the symlinked directory + completion behavior is disabled, and symlinks that point to directories + have a slash appended. + * Add a script for programmable bash completion (version 1.53) from + http://www.caliban.org/bash/index.shtml#completion. Add commented + code into /etc/bash.bashrc and (closes: #127645). + * Install the changelog _and_ the CHANGES file to the doc dir. + * bash(1): mention quoting when assigning to FIGNORE (closes: #115290). + + -- Matthias Klose Sat, 12 Jan 2002 16:00:08 +0100 + +bash (2.05a-3) unstable; urgency=low + + * Include version.h in /usr/include/bash (closes: #120069). + * Link statically with readline and history to speed up link time + (and was done in bash-2.03). Closes: #107160. + * Add comment to set HISTCONTROL in /etc/skel/.bashrc (closes: #118132). + + -- Matthias Klose Sat, 8 Dec 2001 12:29:28 +0100 + +bash (2.05a-2) unstable; urgency=high + + * Update config.{sub,guess} from ftp://ftp.gnu.org/pub/gnu/config/. + + -- Matthias Klose Fri, 16 Nov 2001 19:07:06 +0100 + +bash (2.05a-1) unstable; urgency=medium + + * New upstream release. + * This is mainly a bugfix and code cleanup release (as you can see + from the version number as well). Fixes 64bit issues and index + overflow errors. Fixes the following Debian reports: + - Segmentation fault in script from report (closes: #119250). + - Extensions to the printf command (closes: #72320). + - Accept an empty list of items in a for loop (as ash does). + Closes: #91983. + - A bug that caused redirections with (...) subshells to be performed in + the wrong order was fixed (closes: #97551). + - Correctly handle errors from pipelines in andor lists (closes: #102196). + - Subshells of login shells no longer source ~/.bash_logout when they exit + (closes: #117701). + - Don't pass unset shell variable in the environment (closes: #117673). + * Upstream integrates the following Debian patches: + - debian/patches/mailcheck.dpatch: check for mail in the maildir format. + - debian/patches/gnu-source.dpatch: define GNU_SOURCE and include + strsignal prototype. + - Don't include -I/usr/include in CFLAGS. + - debian/patches/print-cmd.dpatch: Fixed an unassigned variable problem + in the redirection printing code. + - debian/patches/64bit.dpatch: 64-bit uncleanliness. + * Unable to reproduce behaviour with beta1, rc1 and final version from + report (closes: #110483, #110484). + * Point to the bash-doc package for example startup files (closes: #117642). + * The man page is precises: comments start with a word beginning with a `#'. + With '\ #', the doesn't start a word. Closes: #115118. + + -- Matthias Klose Wed, 14 Nov 2001 22:13:21 +0100 + +bash (2.05a-0rc1) unstable; urgency=low + + * New upstream (bugfix) release (release candidate). + * Add README.abs-guide, a pointer to the `Advanced Bash Scripting Guide'. + + -- Matthias Klose Fri, 2 Nov 2001 10:59:11 +0100 + +bash (2.05a-0beta1) unstable; urgency=low + + * New upstream (bugfix) release. + * Configured with --enable-largefile. + * Bugs fixed in this version. Closes: #72320, #91983, #97551, #102196, + #105231, #110483, #110484. + * Remove debian/patches/mailcheck.dpatch, included upstream. + * Closes: #61006. Logging history commands in the history cannot work. + * Not a bug (closes: #100743, #110604). + + -- Matthias Klose Thu, 11 Oct 2001 23:05:20 +0200 + +bash (2.05-10) unstable; urgency=medium + + * Rebuild with released libreadline library (closes: #113182). + + -- Matthias Klose Sun, 23 Sep 2001 01:16:48 +0200 + +bash (2.05-9) unstable; urgency=medium + + * Remove files left from test build (closes: #110307, #109807). + * Apply patches from reports (closes: #110275, #110276). + * Fix include of rbash man page (closes: #113111). + + -- Matthias Klose Sat, 22 Sep 2001 11:26:44 +0200 + +bash (2.05-8) unstable; urgency=low + + * Apply patch (Eric Gillespie) to define GNU_SOURCE and include + strsignal prototype (closes: #109807). + * Fix include of builtins man page (closes: #109917). + + -- Matthias Klose Sun, 26 Aug 2001 08:35:47 +0200 + +bash (2.05-7) unstable; urgency=high + + * Remove config.{cache,status} from source package (#107679). + (high urgency for hurd). + * /etc/skel/.bashrc: Fix dircolors invocation (closes: #107373). + Add commented code to set xterm's title to the prompt. + + -- Matthias Klose Mon, 6 Aug 2001 23:33:41 +0200 + +bash (2.05-6) unstable; urgency=low + + * Apply upstream patches p5, p6. + * Include missing header files in builtins package (closes: #105302). + * Don't list names of built-in commands in NAME section of builtins(1). + (closes: #99532). + * Document deprecated syntax of arithmetic evaluation (closes: #94266, + #95502). + * README.Debian: Document unsetting of SSH_CLIENT (closes: #88032). + + -- Matthias Klose Sat, 21 Jul 2001 18:41:10 +0200 + +bash (2.05-5) unstable; urgency=low + + * The behavior of range specificiers within bracket matching expressions + in the pattern matcher (e.g., [A-Z]) depends on the current locale, + specifically the value of the LC_COLLATE environment variable. + See /usr/share/doc/COMPAT.gz, 14. Closes #95285. + * Tagging reports as 'wontfix' and closing reports: + - exit status of pipes (#7047, #10494). + - completion behaviour on ':' (#78991). + - */text* completion (#21645). + * Documentation of command hashing is documented (#76135). + + -- Matthias Klose Thu, 26 Apr 2001 09:03:37 +0200 + +bash (2.05-4) unstable; urgency=low + + * Apply upstream patches p1-p4 (closes #92455). + * Fixed in bash-2.05-alpha1: closes #47588. + + -- Matthias Klose Wed, 25 Apr 2001 19:32:36 +0200 + +bash (2.05-3) unstable; urgency=low + + * Add 'Replaces: bash-doc (<= 2.05-1)' (closes: #93799). + + -- Matthias Klose Fri, 13 Apr 2001 01:15:19 +0200 + +bash (2.05-2) unstable; urgency=medium + + * Tighten build dependency (fixes #93509). Only an issue for upgrades + from bash-2.05-0, therefore urgency=medium. + * Remove changelog from bash package (also in bash-doc). Reported as + #93446, #93454, #93455. + * Fixed in bash-2.04, wrong example in report (#33822). + * Documented behaviour (ulimit, #72898). + * Use of redirection for #92324. + * sed, awk, ... builtins should be provided by the specific package. + there are other ways to make system scripts faster (ash, perl, + python, ...) (#61648). + * Unable to reproduce #34977 submitted for version 2.02.1, bug submitter + didn't respond to inquiries. Closing ... + * http://metalab.unc.edu/pub/Linux/docs/HOWTO/other-formats/html_single/Text-Terminal-HOWTO.html + as explanation for C-s behaviour (#68387, not sure why I missed this + for so long). + * Part one of the report is Posix.2 behaviour; part 2 (cd-ing relatively + from a subdirectory into a specified root-level directory) already + fixed in bash-2.04. #65316. + * Closing #13645. "The `-l' option should never have been documented, and it + was a mistake to include it in the first place -- it screws up the grammar. + Old Bourne shells and test commands had it because there was no other + way to find the length of a variable's value. Since bash has + ${#variable}, there's no need for it. POSIX.2 says, in the rationale, + that implementation is irregular and that the shell supports it directly + * Unable to reproduce #19211 submitted for version 2.01 in current + versions (2.04, 2.05). + * Close #2301, safe creation of temp files is documented in bash(1): + "If the redirection operator is >, and the noclobber option to the set + builtin has been enabled, the redirection will fail if the file whose + name results from the expansion of word exists and is a regular file. + If the redirection operator is >|, or the redirection operator is > and + the noclobber option to the set builtin command is not enabled, the + redirection is attempted even if the file named by word exists." + * Fixed upstream in 2.05: #84743. + * #76596: Bourne-style shells have always accepted multiple directory name + arguments to cd. If the user doesn't like it, have him define a shell + function (see README.Debian). + * bash already has enabled the system wide /etc/bash.bashrc (#82117). + * #88223: Starting bash with --posix, or -o posix, or as `sh', does make + the entire bash session posix-compliant (with the caveats noted in the + info manual). Posix-compliant does not mean `behaves exactly like + historical versions of sh', nor does it mean `does only what is in + the standard and nothing more'. + + Posix says nothing about brace expansion, so whether or not bash does + brace expansion in posix mode has no bearing on posix compliance. + + If you don't want brace expansion, use `set +o braceexpand' or + `set +B' or start bash with the `+B' option. + + * Lower temporarily severity of #92455, so that this version can move + to testing. This bug exists in 2.04 as well, so we don't make things + worse. + * Apply upstream patch 1. + + -- Matthias Klose Mon, 9 Apr 2001 23:29:24 +0200 + +bash (2.05-1) unstable; urgency=low + + * New upstream release. + * /etc/skel/.bashrc: fix alias (#92440). + + -- Matthias Klose Mon, 9 Apr 2001 18:24:10 +0200 + +bash (2.05-0beta2) unstable; urgency=low + + * New upstream release 2.05-beta2. + * Fixed upstream: #85234. + + -- Matthias Klose Thu, 29 Mar 2001 23:57:12 +0200 + +bash (2.05-0beta1) unstable; urgency=low + + * New upstream release 2.05-beta1. + * Fixed upstream: #66891, #67519, #68931, #72898, #75104, #75315, #75957, + #76603, #84906. + Reverted behaviour: #60375, #75540. + * /etc/skel/.bash_logout: Removed. Submitted bug report to util-linux. + Fixes #63025, #72327, #83609. + * Depend on makeinfo (fixes #87688). + + -- Matthias Klose Tue, 6 Feb 2001 18:46:40 +0100 + +bash (2.05-0alpha) unstable; urgency=low + + * New upstream release. + + -- Matthias Klose Sun, 26 Nov 2000 17:32:16 +0100 + +bash (2.04-9) unstable; urgency=low + + * Fix build bug. + + -- Matthias Klose Mon, 20 Nov 2000 23:35:03 +0100 + +bash (2.04-8) unstable; urgency=low + + * debian/control: Add bison to Build-Depends (fixes #73667). + * debian/rules: Add config.h to bash-builtins package (fixes #69802). + Strip bash binary (fixes #71252). + + -- Matthias Klose Sat, 18 Nov 2000 14:01:54 +0100 + +bash (2.04-7) unstable; urgency=low + + * debian/skel.bash_logout: Fix to clear all ttys (fixes #67772). + * debian/skel.bash_profile: Fix to include expanded ~/bin in path + (fixes #67714). + * Fix builtins.1 include (fixes #67094, #70007, #71848). + * debian/README.Debian: Document that bash is compiled with + -DSYS_BASHRC (fixes #66939). + * Fix hsuser doc (fixes #69392). + + -- Matthias Klose Mon, 2 Oct 2000 01:26:45 +0200 + +bash (2.04-6) unstable; urgency=low + + * debian/skel.bash_profile: Clarify where to look for for example files + (package bash-doc). Fixes #64311. + * debian/README.Debian: Explain, why bash is configured without + '--enable-net-redirections' (fixes #66352). + + -- Matthias Klose Wed, 28 Jun 2000 19:47:25 +0200 + +bash (2.04-5) unstable; urgency=low + + * debian/patches/alpha-unwind.dpatch: Patch from "Mikolaj J. Habryn" + . Should fix #62170, #62690, #65053. + * debian/rules: Configure with --disable-net-redirections (as suggested + in #65172). The patch submitted in the report can be found in + debian/patches/tcp-udp-service-names.dpatch. + * debian/patches/getcwd-error: Fix error message for two levels of + unreadable directories (#64659). + + -- Matthias Klose Mon, 5 Jun 2000 05:59:59 +0200 + +bash (2.04-4) unstable; urgency=low + + * debian/patches/p[5-7].dpatch: Upstream patches. + + -- Matthias Klose Wed, 3 May 2000 01:05:23 +0200 + +bash (2.04-3) unstable; urgency=low + + * debian/patches/p[1-4].dpatch: Upstream patches. + * debian/bash.preinst.c: s/MAX_PATH/PATH_MAX/g (fixes #62323). + + -- Matthias Klose Wed, 26 Apr 2000 19:53:16 +0200 + +bash (2.04-2) unstable; urgency=low + + * debian/patches/pattern-operator.dpatch: Fix pattern operator bug. + * debian/README.Debian: Add FAQ how to get rid off beeps for ambiguous + completions (fixes #59550). + + -- Matthias Klose Sat, 8 Apr 2000 22:06:34 +0200 + +bash (2.04-1) unstable; urgency=low + + * Final release. + * Don't strip bash (debugging #58404 ...). + + -- Matthias Klose Mon, 20 Mar 2000 19:37:44 +0100 + +bash (2.04-0beta5db1) unstable; urgency=low + + * New upstream version, beta 5, Debian build 1. + * Remove six dpatch files with patches now integrated upstream. + * Bugs fixed with this upstream version: #5703, #15165, #21363, #21901, + #33900, #36652, #38804, #41916, #47179, #47990, #50353, #56209, #57544. + * Compiled with NON_INTERACTIVE_LOGIN_SHELLS to run the startup files when + not in posix mode. Fixes #11938, #14287, #25245. + * Still in this version: #27090. + * The `-l' option to test is not included by intent (fixes #13645). + Comment from upstream: "The `-l' option should never have been documented, + and it was a mistake to include it in the first place -- it screws up the + grammar. Old Bourne shells and test commands had it because there was no + other way to find the length of a variable's value. Since bash has + ${#variable}, there's no need for it. POSIX.2 says, in the rationale, + that implementation is irregular and that the shell supports it directly. + * Report #26720: perl -e 'print ":;" x 100000' > foo; . ./foo dumps core. + Comment from upstream: This is not a bash bug; it is a process resource + problem. The default resource limit for stack size is 8M on my version of + Linux. The call tree created by the parser for the script (100000 calls + to `:') is 99999 nodes deep, and requires that many recursive calls to the + command execution routines. This overflows the stack, and bash segfaults. + I couldn't reproduce it anywhere but Linux, because the machines I tested + on all have reasonable default stack sizes. Raising the limit to 16M is + sufficient to cause the script to run successfully (I didn't try anything + between 8M and 16M). + * Report #30460: redirection is different from standard: bash --posix + $ mkdir foo; cd foo; echo anything goes > "this file" + $ for f in *; do tr ay \ o < $f | cat; done + sh: $f: ambiguous redirect + This is POSIX.2 behaviour. + * debian/bash.preinst.c: Check if /bin/sh points to something other than + bash and is not diverted and point to README.Debian how to divert + a file (fixes #34717, #45656). + * debian/patches/random.dpatch: Fix bug in patch (closes #38804). + * debian/README.Debian: Commented behaviour from report #50853. + + -- Matthias Klose Thu, 24 Feb 2000 19:34:10 +0100 + +bash (2.03-6) frozen unstable; urgency=medium + + * debian/bash.preinst.c: Evil kludge, deal with arbitrary name lengths + (fixes #54876). + * Apply NMU (fixes #55887). + * debian/rules: Install debian/bash.conffiles (fixes #57963, #58541). + + -- Matthias Klose Sun, 20 Feb 2000 19:50:48 +0100 + +bash (2.03-5.1) unstable; urgency=low + + * debian/patches/job-control-segfault.dpatch: Patch from Eric Weigel + . Closes: #55887 + + -- Adam Heath Sat, 22 Jan 2000 15:10:50 -0600 + +bash (2.03-5) unstable; urgency=low + + * Update rl.ctrl-char patch from Dan Jacobowitz. + Fixes #54805, #54639, #54612. + * Add autoconf to Build-Depends (finally, Roman ...) + + -- Matthias Klose Tue, 11 Jan 2000 20:50:31 +0100 + +bash (2.03-4) unstable; urgency=low + + * debian/control: Fix build dependencies (fixes #52777). + * debian/rules: Cleanup. + * debian/patches/rl-ctrl-char.dpatch: Don't assume char is signed by + default (fixes #53252). + * Build with libncurses5-dev (fixes #54165). + * Fix changelog symlink in bash-doc package (fixes #54240). + * debian/README.Debian: Add paragraph for writing prompts. + * debian/README.Debian: Add paragraph about hashing of moved commands + (and closing #36877). + * Install more verbose skeleton files (closes #39728). + * The `-l' option to test is not included by intent (fixes #13645). + Comment from upstream: "The `-l' option should never have been documented, + and it was a mistake to include it in the first place -- it screws up the + grammar. Old Bourne shells and test commands had it because there was no + other way to find the length of a variable's value. Since bash has + ${#variable}, there's no need for it. POSIX.2 says, in the rationale, + that implementation is irregular and that the shell supports it directly. + * Report #26720: perl -e 'print ":;" x 100000' > foo; . ./foo dumps core. + Comment from upstream: This is not a bash bug; it is a process resource + problem. The default resource limit for stack size is 8M on my version of + Linux. The call tree created by the parser for the script (100000 calls + to `:') is 99999 nodes deep, and requires that many recursive calls to the + command execution routines. This overflows the stack, and bash segfaults. + I couldn't reproduce it anywhere but Linux, because the machines I tested + on all have reasonable default stack sizes. Raising the limit to 16M is + sufficient to cause the script to run successfully (I didn't try anything + between 8M and 16M). + * Report #30460: redirection is different from standard: bash --posix + $ mkdir foo; cd foo; echo anything goes > "this file" + $ for f in *; do tr ay \ o < $f | cat; done + sh: $f: ambiguous redirect + This is POSIX.2 behaviour. + * debian/bash.preinst.c: Check if /bin/sh points to something other than + bash and is not diverted and point to README.Debian how to divert + a file (fixes #34717, #45656). + + -- Matthias Klose Fri, 7 Jan 2000 07:19:00 +0100 + +bash (2.03-3) unstable; urgency=low + + * Moved /etc/profile to base-files package (closes #52987). + * debian/skel.bash_profile: Use umask 022 as in debian/etc.profile + (closes #53020). + * debian/patches/secure-build.dpatch: Build bash without using guessable + file names in /tmp (closes #36027). + * debian/patches/bashbug-editor.dpatch: Use editor command, not emacs + (closes #32576, #32577). + * Fixed in 2.03 or before: #16013, #20455, #30803 (according to upstream + author, bug submitter does not respond). + * #44015 not a bug. Bash is more liberal than POSIX specifies, but function + names that are not identifiers is something that may go away in the future. + * #40242 not a bug: Non-interactive bash shells have always unset PS1, + so scripts and so on can test for it. + * Report #21645: */text* completion doesn't work anymore. According to the + upstream author, this feature was removed in bash-2.01.1. The TAB + completion only succeeds with globbing characters if there is a single + completion. It caused too many problems otherwise. + * Define DONT_REPORT_SIGPIPE: We don't want to see `Broken pipe' messages + when a job like `cat jobs.c | exit 1' is executed. Fixes part of #7047, + #10259, #10433 and #10494. Comment from the upstream author: "The default + bash behavior with respect to the exit status of a pipeline will not + change. Changing it as suggested in the discussion of #10494 would render + bash incompatible with every other shell out there.". Closed these reports. + * debian/etc.bash.bashrc: Set checkwinsize. + + -- Matthias Klose Sun, 19 Dec 1999 15:58:43 +0100 + +bash (2.03-2) unstable; urgency=low + + * Apply privmode patch (do not drop privileges, if called as /sh. + Closes #52586). + + -- Matthias Klose Mon, 13 Dec 1999 22:25:22 +0100 + +bash (2.03-1) unstable; urgency=low + + * New maintainer. + * New upstream version (closes: #34077, #35642, #46916). For a terse + description of new features and bug fixes see /usr/share/doc/bash/NEWS.gz. + * Fixed in upstream release (closes: #14229, #16856, #21363, #22498, #28849, + #29863, #37971, #38411, #40930, #49702). #37971 either here or in libc6. + #30803. + * Separate out documentation and examples to bash-doc package. + * Do not build shared readline libs from this source. According to the + upstream author: "It's not appropriate to build shared libraries from + the readline shipped with bash. That is designed to be linked directly + into bash." + * Link statically with included libreadline. It's intended, because + potato does not have a libreadline4 yet. Wait for bash-2.04 and + it's version of libreadline. + * debian/README.Debian: Sort of FAQ suggested by Guy Maor. + * debian/copyright: Updated URL. + * debian/rules: Introduced some variables for packages and directories. + * debian/control: Updated package names. Add Build-Depends. + * Point to /usr/doc/share in man pages (rbash.1, builtins.1). + * Make /usr/doc compatibility links (all but libreadline.postinst, which + is a C file). + * debian/patches/conf-update.dpatch: New config files from automake + (closes #33745). + * debian/patches/bashbug-editor.dpatch: Use EDITOR variable + (closes #32576, #32577). + * debian/etc.profile: Fixed comment that /etc/profile is used for Bourne + shell and Bourne compatible shells (closes: #3459). + * debian/patches/tempnam.dpatch: Applied patch from report #35975 + (closes: #35975). + * bash is not responsible for setting $USER in login shells (closes: #36103). + * Compile with -DSYS_BASHRC defined. /etc/bash.bashrc is empty by default + (closes #27055). + * Fixed with boot-floppies 2.1.3 (closes: #22517). + * debian/patches/mailcheck.dpatch: Add maildir support. Patch from + Miquel van Smoorenburg (closes #38794). + * Patches from NMU are applied (should close #43096). + * debian/control: Make builtins depend on source version of bash. + * Build for i386, not i486. + * Report #28811: "dpkg segfaults trying to install bash. Logging in then + produces segfault. Still having to run 2.00.0(1)". Not reproducable. + * Report #15165: "If the last command in the pipeline is killed by a signal, + bash does not report it even though $? contains the correct value". + Not reproducable. + * Report #21645: "If you type `rm */text*', previous versions would + complete text given that they're under the same directory. 2.01.1-1 + doesn't do that anymore.". Not documented anywhere. It seems, this was + a bug disguised as a feature ;-) + * Report #36027: "During compiling bash package, files with hardcoded names + are created in /tmp. In a malicious multi-user environment, this allows + attacks to the user's files and possibly allow creating trojan packages. + If the compiling user is root...". + Submitter cannot be reached. autoconf/automake issues? Reassign to general? + * Report #16700: "bash terminated when I asked it "mailq -v", while in an + xterm, with a sysload of approx 1"; not reproducable. Submitter offers + core file. + * Report #37637: Not reproduceable (should close #37637). + * Report #37275: A dpkg error? Or just another reason to completely link + bash statically? + * Report #34978, #42858: The prerm now is a binary pragram. + #34977 as well? #36016 (patch)? + * Report #43737: Non bug. Behaviour changed from 1.4 to 2.0 (closes: #43737). + * Report #36459: Non bug (closes #36459). + * Report #19211: Wanted behaviour? + * Report #11938: The included patch is applied upstream (closes: #11938). + * Report #10699, #45656: Todo: See #34717 ... + * Report #35127: Apply included patch. TODO: test and forward upstream. + * Report #41082: Obsoleted patches (closes: #35130, #41802). + * Reports tested and still in this version (should be forwarded ...): + #2301, #21901, #26619, #26720, #27090, #30460, #33900, #34833, + #36877 + #38804, #41916 (update docs?), + #46901, #47990. + * Report #47849: You *must* reset OPTIND to 1 before reusing getopts. + * Report #45841: This is a POSIX.2/XPG5 requirement. + * Report #35979, #45379: set -e works on simple commands only. + (command) is not a simple command. + * Report #38244: -x and -v and all of the rest of the options are documented + in the `set' builtin section. The OPTIONS section of the man page refers + to `set'. + * Report #37654: When in a pipeline, `tty' prints `not a tty'. This is why + grep is looking for `not' in file `a'. Try `w | echo $(tty)'. + * Report #33822: This is a locale problem. The de_DE locale gives lower case + and upper case letters the same collating weight. POSIX.2 warns that + range expressions are not portable across locales. + * Report #28789, #22291: resizing xterm bash doesn' t update window limits. + Use `shopt -s checkwinsize'. (closes: #28789, #22291). + * Report #39728: Suggestion to add something to /etc/skel files. A matter + of taste. Added comments where to find `fancy' startup files. + + * Work needed: #33822 (huh?), #42916 and #44015 (update docs, dashs in + identifiers). + + * Not tested: (#7047, #10259, #10433, #10494), #14287 (how to test?), + #14658 (how to test?), #16013, #16797, #20455 (alpha arch), #20821, + #22632, #26571, #29610, #35994 (powerpc arch), + #36652, #40242, #47179. + + -- Matthias Klose Sat, 4 Dec 1999 17:03:47 +0100 + +bash (2.02.1-1.8) unstable; urgency=low + + * Applied Anthonies patch and recompiled as the libc5 version did + not compile for him (closes: #34717, #43050, #43096, #10699). + * Bumped the version number of libreadline and recompiled, + hopefully in time before the dinstall run ;) + + -- Torsten Landschoff Sat, 18 Sep 1999 19:26:20 +0200 + +bash (2.02.1-1.7) unstable; urgency=low + + * Non-maintainer release. + * Make bash not Pre-Depend on itself. That is, make bash's preinst + something other than a /bin/sh script; in this case a reasonably + simple binary. + * Remove /bin/sh from the .deb, and reinstate it in the postinst if + it's not already present. Hence make the postinst a /bin/bash script + instead of a /bin/sh script. + + -- Anthony Towns Sat, 28 Aug 1999 01:09:08 +1000 + +bash (2.02.1-1.6) unstable; urgency=low + + * Non-maintainer release. + * Link bash statically with libreadline. Closes: #42858. + + -- Thomas Quinot Fri, 13 Aug 1999 21:47:35 +0200 + +bash (2.02.1-1.5) unstable; urgency=low + + * Non-maintainer release. + * Updated to standards version 3.0.0. + * Fixed dependency on libreadlineg2. Closes: #35130, #39280, #41802. + + -- Thomas Quinot Thu, 29 Jul 1999 13:05:26 +0200 + +bash (2.02.1-1.4) unstable; urgency=low + + * Non-maintainer release. + * Make libreadlineg2 conflict with bash (<< 2.02.1-1.2) + + -- Joel Klecker Thu, 25 Mar 1999 09:40:39 -0800 + +bash (2.02.1-1.3) unstable; urgency=low + + * Non-maintainer release. + * Recompile against ncurses 4.2-3.2 for versioned dependency. + * Add (>= 2.1-13.1) depend to readline shlibs. + + -- Joel Klecker Thu, 18 Mar 1999 12:33:28 -0800 + +bash (2.02.1-1.2) unstable; urgency=low + + * Non-maintainer release. + * Recompile against glibc 2.1 for libreadline. + + -- Joel Klecker Fri, 5 Mar 1999 09:36:54 -0800 + +bash (2.02.1-1.1) unstable; urgency=low + + * Non-maintainer upload. + * Replaced config.{sub,guess} with newer ones for ARM. + + -- Jim Pick Mon, 22 Feb 1999 23:57:53 -0800 + +bash (2.02.1-1) unstable; urgency=low + + * libreadline 2.1-13 + * Upstream upgrade, closes: #26582 + * Bugs fixed upstream: closes: #21511, #24004. + * Rules, control fixes for hurd, powerpc, alpha closes: #29123, #29395, + #24931, #31289. + * Included paren-matching feature in readline, closes: #27707. + * Removed convert-meta comment from etc/inputrc, closes: #23035. + * Use system random instead of lousy builtin one, closes: #22104. + + -- Guy Maor Mon, 15 Feb 1999 12:57:53 -0800 + +bash (2.01.1-4.1) unstable; urgency=low + + * Non-maintainer upload. + * libreadline 2.1-12 + * Rebuild with ncurses4.0 to avoid packages linked with libreadline + depending on two versions of ncurses; reported by Martin Mitchell + . [#27762] + * debian/rl.shlibs: bump versioned dependency to >= 2.1-12. + * debian/rules (build): add --with-curses to avoid ever linking with + termcap; reported by, ehm, Guy Maor . [#25118] + + -- James Troup Tue, 20 Oct 1998 03:24:03 +0100 + +bash (2.01.1-3.1) frozen unstable; urgency=low + + * Non-maintainer release. + * Build with ncurses3.0-altdev, so libreadline2 doesn't depend on libc6. + * Use -linux instead of -debian-linux. + + -- Joel Klecker Tue, 14 July 1998 16:26:43 -0700 + +bash (2.01.1-3) unstable frozen; urgency=medium + + * libreadline 2.1-10 + * Make libreadlineg2's postinst a c program, like libreadline2. + * Check return code from tempfile in bashbug, closes: #22349. + * glibc 2.1 patch, closes #22532. + * remove . from /etc/profile PATH, closes #22738. + + -- Guy Maor Mon, 25 May 1998 22:41:06 -0700 + +bash (2.01.1-2) unstable frozen; urgency=high + + * libreadline 2.1-9. + * Predepend on libreadlineg2 >= 2.1-8, closes: #20572. + + -- Guy Maor Wed, 8 Apr 1998 01:07:10 -0700 + +bash (2.01.1-1) frozen unstable; urgency=low + + * libreadline 2.1-8. + * Upstream upgrade, closes: #13762, #14446, #18296. + * Fixed /etc/inputrc, closes: #19745, #19075, #13643, #18004, #17256, + #15345, #14672, #15213, #15345, #15638, #18004, #16797, #15638, #19241. + * Applied patch to read End, Delete, closes: #20053. + * Don't build libc5 packages on alpha & powerpc, closes: #13761, #15538, + #15829. + * Add sh(1) - symlink to bash(1), close: #15659. + * Fix unsafe requests in rbash(1), builtins(1), closes: #19086. + * bashbug uses tempfile, closes: #19781. + * fixed fc -l segfault, closes: #13726. + + -- Guy Maor Sat, 28 Mar 1998 19:34:15 -0800 + +bash (2.01-5) unstable; urgency=low + + * libreadline 2.1-7 + * libreadline tries INPUTRC if it's set, else _both_ /etc/inputrc and + ~/.inputrc + * A better /etc/inputrc. + + -- Guy Maor Thu, 25 Sep 1997 11:38:41 -0500 + +bash (2.01-4) unstable; urgency=low + + * libreadline 2.1-6 + * bash-builtin examples moved to correct place. + * libreadline tries /etc/inputrc if ~/.inputrc doesn't exist. + * set -a; set +a problem seems to be fixed (8390) + + -- Guy Maor Wed, 24 Sep 1997 14:36:02 -0500 + +bash (2.01-3) unstable; urgency=low + + * libreadline 2.1-5 + * Bash depended on wrong version of libreadlineg2. (#12150, #12316) + * Put current version in libreadlineg2 shlibs file. + * Honor TMPDIR by using tempnam(3) (#9201). + + -- Guy Maor Sun, 24 Aug 1997 23:31:19 -0500 + +bash (2.01-2) unstable; urgency=low + + * libreadline 2.1-4 + * Make bash predepend on libreadlineg2 (>=2.01-1) so as not to break + systems which installed James's releases. + * Fix references to shell runtime code in libreadline.so and libhistory.so. + * Fix declare -p dumping core on empty temp variable (#12017). + * make_quoted_replacement() checks for empty rl_filename_quote_characters + (12051). + * readline/readline.h - rl_dispatching should be extern (#11049). + * Added libreadline2g-dbg. + + -- Guy Maor Sat, 16 Aug 1997 13:38:37 -0500 + +bash (2.01-1) unstable; urgency=low + + * libreadline 2.1-3 + * Maintainer release of 2.01. (2.01 fixes 3815, 4783, 7782, 8439, 10416, + 10598, 10604, 11806). + * Cleaned and corrected rules, Makefiles, control files. (7580, 11406). + * Reimplemented SHELL compile time as runtime check. Backward compatible + with old bash (10916). + * Added rbash man page (8645). + * ldconfig run in postinst, compiled as libc5 (10176) + * :( set -a;set +a problem still there, but acts differently. + + -- Guy Maor Thu, 14 Aug 1997 15:35:23 -0500 + +bash (2.01-0.1) unstable; urgency=high + + * libreadline 2.1-2.2 + * libreadline2 now has a preinst script which ensures that ld.so.1 + knows about /lib/libc5-compat and /usr/lib/libc5-compat. Before this + change, trying to install with a libc (< 5.4.23-4) broke bash. + * libreadlineg2 no longer has version dependant shlibs file [#10742]. + + -- James Troup Mon, 23 Jun 1997 22:00:18 +0100 + +bash (2.01-0) unstable; urgency=medium + + * libreadline 2.1-2.1 + * Non-maintainer release + * New upstream version [#10416, #10598, #10604, #8390] + * Rebuilt for glibc; now provides libreadline2g{,-dev} and + libreadline2{,-altdev}. + * Not all of Guy's changes are implemented, noticeably a security + improvement in execute-cmds.c and his alteration of libreadline's + compile time dependance on -DSHELL to run time dependance. + + -- James Troup Thur, 19 June 1997 19:13:34 +0100 + +bash (2.0-3) unstable; urgency=medium + + * libreadline 2.1-2 + * #include in general.h needed for alpha build (#7658) + * Don't drop suid/sgid bits if invoked as sh (#7796) + * Applied patch to fix time in for loop (#7436) + * Split off bash-builtins with examples & necessary headers + * Juggled libreadline2 documentation around (#7275) + + -- Guy Maor Mon, 10 Mar 1997 12:45:06 -0600 + +bash (2.0-2) unstable; urgency=low + + * Added NEWS, COMPAT to /usr/doc/bash + + -- Guy Maor Fri, 7 Feb 1997 17:35:21 -0600 + +bash (2.0-1) unstable; urgency=low + + * Upstream upgrade. + * .bash_history created 600 by default. + * Security improvements when creating files in /tmp + * Reimplemented SHELL run-time check with backward 2.0 compatibility + + -- Guy Maor Wed, 29 Jan 1997 03:31:47 -0600 + +bash (1.14.7-2) frozen unstable; urgency=low + + * libhistory.so had wrong soname (fixes bug 5381). + + -- Guy Maor Sat, 16 Nov 1996 11:07:08 -0600 + +bash (1.14.7-1) frozen unstable; urgency=low + + * New upstream version converted to new source format. + libreadline2, libreadline2-dev produced from bash source. + * Made libreadline SHELL define into a runtime check with rl_shell, + history_shell flags, 4 hooks. + * echo checks write errors (fixes 818). + * default unreadable .bash_history in /etc/skel (fixes 1549). + + -- Guy Maor Sat, 9 Nov 1996 05:07:31 -0600 --- bash-3.2.orig/debian/README.bash_completion +++ bash-3.2/debian/README.bash_completion @@ -0,0 +1,17 @@ + Programmable Completion + ======================= + +[BUG REPORTING: Please direct all enhancement requests directly to the + bash_completion maintainer, the completion script won't be changed for + Debian specific enhancements. If you find a real bug, report it the usual + way. The bash_completion author can be reached at + http://freshmeat.net/projects/bashcompletion/ + + If you find a newer version on freshmeat, you can replace it, if you did + not change the Debian version. +] + +To enable programmable completion for bash on Debian, uncomment the +bash_completion lines in /etc/bash.bashrc to source /etc/bash_completion. +/etc/bash_completion sources ~/.bash_completion, if it exists. + --- bash-3.2.orig/debian/changelog.saved +++ bash-3.2/debian/changelog.saved @@ -0,0 +1,8 @@ + + - 014: Bash mishandles word splitting under certain circumstances + when IFS is null (IFS=). Constructs affected include ${param/pat/sub} + and others when expanding arrays (array[@]). + - 015: Under certain circumstances, when using FIFOs for process + substitution, bash fails to unlink the FIFOs. This leaves open + file descriptors that can cause the shell to hang and litters + the file system. --- bash-3.2.orig/debian/md5.h +++ bash-3.2/debian/md5.h @@ -0,0 +1,91 @@ +/* + Copyright (C) 1999, 2002 Aladdin Enterprises. All rights reserved. + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + L. Peter Deutsch + ghost@aladdin.com + + */ +/* $Id: md5.h 43594 2006-04-03 16:27:50Z matthias.klose $ */ +/* + Independent implementation of MD5 (RFC 1321). + + This code implements the MD5 Algorithm defined in RFC 1321, whose + text is available at + http://www.ietf.org/rfc/rfc1321.txt + The code is derived from the text of the RFC, including the test suite + (section A.5) but excluding the rest of Appendix A. It does not include + any code or documentation that is identified in the RFC as being + copyrighted. + + The original and principal author of md5.h is L. Peter Deutsch + . Other authors are noted in the change history + that follows (in reverse chronological order): + + 2002-04-13 lpd Removed support for non-ANSI compilers; removed + references to Ghostscript; clarified derivation from RFC 1321; + now handles byte order either statically or dynamically. + 1999-11-04 lpd Edited comments slightly for automatic TOC extraction. + 1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5); + added conditionalization for C++ compilation from Martin + Purschke . + 1999-05-03 lpd Original version. + */ + +#ifndef md5_INCLUDED +# define md5_INCLUDED + +/* + * This package supports both compile-time and run-time determination of CPU + * byte order. If ARCH_IS_BIG_ENDIAN is defined as 0, the code will be + * compiled to run only on little-endian CPUs; if ARCH_IS_BIG_ENDIAN is + * defined as non-zero, the code will be compiled to run only on big-endian + * CPUs; if ARCH_IS_BIG_ENDIAN is not defined, the code will be compiled to + * run on either big- or little-endian CPUs, but will run slightly less + * efficiently on either one than if ARCH_IS_BIG_ENDIAN is defined. + */ + +typedef unsigned char md5_byte_t; /* 8-bit byte */ +typedef unsigned int md5_word_t; /* 32-bit word */ + +/* Define the state of the MD5 Algorithm. */ +typedef struct md5_state_s { + md5_word_t count[2]; /* message length in bits, lsw first */ + md5_word_t abcd[4]; /* digest buffer */ + md5_byte_t buf[64]; /* accumulate block */ +} md5_state_t; + +#ifdef __cplusplus +extern "C" +{ +#endif + +/* Initialize the algorithm. */ +void md5_init(md5_state_t *pms); + +/* Append a string to the message. */ +void md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes); + +/* Finish the message and return the digest. */ +void md5_finish(md5_state_t *pms, md5_byte_t digest[16]); + +#ifdef __cplusplus +} /* end extern "C" */ +#endif + +#endif /* md5_INCLUDED */ --- bash-3.2.orig/debian/bash-builtins.7 +++ bash-3.2/debian/bash-builtins.7 @@ -0,0 +1,18 @@ +.\" This is a hack to force bash builtins into the whatis database +.\" and to get the list of builtins to come up with the man command. +.TH BASH-BUILTINS 7 "2001 October 29" "GNU Bash-2.05a" +.SH NAME +bash-builtins \- bash built-in commands, see \fBbash\fR(1) +.SH SYNOPSIS +bash defines the following built-in commands: +:, ., [, alias, bg, bind, break, builtin, case, cd, command, compgen, complete, +continue, declare, dirs, disown, echo, enable, eval, exec, exit, +export, fc, fg, getopts, hash, help, history, if, jobs, kill, +let, local, logout, popd, printf, pushd, pwd, read, readonly, return, set, +shift, shopt, source, suspend, test, times, trap, type, typeset, +ulimit, umask, unalias, unset, until, wait, while. +.SH BASH BUILTIN COMMANDS +.nr zZ 1 +.so man1/bash.1 +.SH SEE ALSO +bash(1), sh(1) --- bash-3.2.orig/debian/skel.bashrc +++ bash-3.2/debian/skel.bashrc @@ -0,0 +1,99 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples + +# If not running interactively, don't do anything +[ -z "$PS1" ] && return + +# don't put duplicate lines in the history. See bash(1) for more options +# don't overwrite GNU Midnight Commander's setting of `ignorespace'. +export HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups +# ... or force ignoredups and ignorespace +export HISTCONTROL=ignoreboth + +# append to the history file, don't overwrite it +shopt -s histappend + +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# make less more friendly for non-text input files, see lesspipe(1) +[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +# set a fancy prompt (non-color, unless we know we "want" color) +case "$TERM" in + xterm-color) color_prompt=yes;; +esac + +# uncomment for a colored prompt, if the terminal has the capability; turned +# off by default to not distract the user: the focus in a terminal window +# should be on the output of commands, not on the prompt +#force_color_prompt=yes + +if [ -n "$force_color_prompt" ]; then + if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then + # We have color support; assume it's compliant with Ecma-48 + # (ISO/IEC-6429). (Lack of such support is extremely rare, and such + # a case would tend to support setf rather than setaf.) + color_prompt=yes + else + color_prompt= + fi +fi + +if [ "$color_prompt" = yes ]; then + PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' +else + PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' +fi +unset color_prompt force_color_prompt + +# If this is an xterm set the title to user@host:dir +case "$TERM" in +xterm*|rxvt*) + PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" + ;; +*) + ;; +esac + +# Alias definitions. +# You may want to put all your additions into a separate file like +# ~/.bash_aliases, instead of adding them here directly. +# See /usr/share/doc/bash-doc/examples in the bash-doc package. + +#if [ -f ~/.bash_aliases ]; then +# . ~/.bash_aliases +#fi + +# enable color support of ls and also add handy aliases +if [ -x /usr/bin/dircolors ]; then + eval "`dircolors -b`" + alias ls='ls --color=auto' + #alias dir='dir --color=auto' + #alias vdir='vdir --color=auto' + + #alias grep='grep --color=auto' + #alias fgrep='fgrep --color=auto' + #alias egrep='egrep --color=auto' +fi + +# some more ls aliases +#alias ll='ls -l' +#alias la='ls -A' +#alias l='ls -CF' + +# enable programmable completion features (you don't need to enable +# this, if it's already enabled in /etc/bash.bashrc and /etc/profile +# sources /etc/bash.bashrc). +if [ -f /etc/bash_completion ]; then + . /etc/bash_completion +fi --- bash-3.2.orig/debian/etc.bash.bashrc +++ bash-3.2/debian/etc.bash.bashrc @@ -0,0 +1,60 @@ +# System-wide .bashrc file for interactive bash(1) shells. + +# To enable the settings / commands in this file for login shells as well, +# this file has to be sourced in /etc/profile. + +# If not running interactively, don't do anything +[ -z "$PS1" ] && return + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +# set a fancy prompt (non-color, overwrite the one in /etc/profile) +PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' + +# Commented out, don't overwrite xterm -T "title" -n "icontitle" by default. +# If this is an xterm set the title to user@host:dir +#case "$TERM" in +#xterm*|rxvt*) +# PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"' +# ;; +#*) +# ;; +#esac + +# enable bash completion in interactive shells +#if [ -f /etc/bash_completion ]; then +# . /etc/bash_completion +#fi + +# sudo hint +if [ ! -e $HOME/.sudo_as_admin_successful ]; then + case " $(groups) " in *\ admin\ *) + if [ -x /usr/bin/sudo ]; then + cat <<-EOF + To run a command as administrator (user "root"), use "sudo ". + See "man sudo_root" for details. + + EOF + fi + esac +fi + +# if the command-not-found package is installed, use it +if [ -x /usr/lib/command-not-found ]; then + function command_not_found_handle { + # check because c-n-f could've been removed in the meantime + if [ -x /usr/lib/command-not-found ]; then + /usr/bin/python /usr/lib/command-not-found -- $1 + return $? + else + return 127 + fi + } +fi --- bash-3.2.orig/debian/README.commands +++ bash-3.2/debian/README.commands @@ -0,0 +1,189 @@ + This is a jumping-off reference point for new users who may be + completely unfamiliar with Linux commands. It does not contain all + the information you need about using the Linux console, but instead + just gives you enough information to get started finding the + information you need. + +Linux Commands + + To run a command, type the command at the prompt, followed by any + necessary options, and then press the Enter or Return key. + + Most commands operate silently unless they are specifically asked to + say what they are doing. If there is no error message, the command + should have worked. + + The operation of most commands can be changed by putting command + options immediately after the command name. There are several styles + of options used, and you have to check the documentation for each + command to know what options it can take, and what they do. + + Linux commands are case-sensitive, and almost always are all + lower-case. ls is a valid command; LS is not. + + In most cases you can use the tab key to ask the command shell to + auto-complete the command, directory or filename you have started + to type. If a unique completion exists, the shell will type it. If + not, you can press tab a second time to obtain a list of the + possible auto-completions. + +Commands for Reading Documentation + + In the following command examples, the [ ] characters are not + typed, they mean that whatever is enclosed is optional. For + example, you can also start `info' without any subject at all. + + When a given keyboard shortcut is preceded by ctrl- or alt- , that + means hold the control or alt key down, and type the given key + while holding it down (the same way you use the shift key). A + shorthand notation for ctrl- is ^ (^C means ctrl-C). + + man subject + man shows the manual page on the command (use q or ctrl-C to + get out of it if it doesn't terminate at the end of the + text). + + info [subject] + A lot of Debian Linux documentation is provided in info + format. This is similar to a hypertext format, in that you + can jump to other sections of the documentation by following + links embedded in the text. An info tutorial is available + within info, using ctrl-h followed by h. + + help [subject] + Use help for on-line help about the shell's built-in commands. + help by itself prints a list of subjects for which you can + ask for help. + + pager filename + pager displays a plain text file one screen at a time. + Additional screens can be displayed by pressing the space + bar, and previous screens can be displayed by pressing the b + key. When finished viewing the help, press q to return to + the prompt. + + Using -h --help with | pager + Most commands offer very brief built-in help by typing the + command followed by + + -h or --help + + If the help scrolls up beyond the top of the screen before + you can read it, add + + | pager + + to the end of the command. + + zmore document.gz + zmore is a document pager -- it displays the contents of + compressed documentation on your disk, one screenful at a + time. Compression is signified by filenames ending in .gz . + + lynx [document] or lynx [directory] or lynx [url] + lynx is a text-based web browser. It can display documents + (plain-text, compressed, or html), directory listings, and + urls such as www.google.com. It does not display images. + +Commands for Navigating Directories + + pwd + Displays your current working directory. The p stands for + print, which is a carryover from when unix was designed, + before the advent of computer screens. Interactive computer + responses were printed on paper by a connected electric + typewriter instead of being displayed electronically. + + cd [directory] + Change your current directory to the named directory. If you + don't specify directory, you will be returned to your home + directory. The `root' directory is signified by / at the + beginning of the directory path ( / also separates directory + and file names within the path). Thus paths beginning with / + are `absolute' paths; cd will take you to an absolute path + no matter what your current directory is. Paths not + beginning with / specify paths relative to your + current directory. cd .. means change to the parent + directory of your current working directory. + + ls [directory] + ls lists the contents of directory. If you don't specify a + directory name, the current working directory's list is + displayed. + + find directory -name filename + find tells you where filename is in the tree starting at + directory. This command has many other useful options. + +Documentation Indices + + The standard doc-linux-text package installs compressed text linux + HOWTOs in + + /usr/share/doc/HOWTO/en-txt/ + + Particularly helpful HOWTOs for new users are + + /usr/share/doc/HOWTO/en-txt/Unix-and-Internet-Fundamentals-HOWTO.gz + /usr/share/doc/HOWTO/en-txt/mini/INDEX.gz + /usr/share/doc/HOWTO/en-txt/Reading-List-HOWTO.gz + /usr/share/doc/HOWTO/en-txt/META-FAQ.gz + + Individual package documentation is installed in + + /usr/share/doc/ + + New user website references include + + http://www.debian.org/doc/FAQ + http://www.linuxdoc.org/LDP/gs/gs.html + +Recording User Sessions + + script filename + Use script to record everything that appears on the screen + (until the next exit) in filename. This is useful if you + need to record what's going on in order to include it in + your message when you ask for help. Use exit, logout or + ctrl-D to stop the recording session. + +Turning Echo On/Off + + To turn off echoing of characters to the screen, you can use + ctrl-S. ctrl-Q starts the echo again. If your terminal suddenly + seems to become unresponsive, try ctrl-Q; you may have accidentally + typed ctrl-S which activated echo-off. + +Virtual Consoles + + By default, six virtual consoles are provided. If you want to + execute another command without interrupting the operation of a + command you previously started, you can switch to another virtual + console (similar to a separate window). This is very handy for + displaying the documentation for a command in one console while + actually trying the command in another. Switch consoles 1 through 6 + by using alt-F1 through alt-F6. + +Logging Out + + exit or logout + + Use exit or logout to terminate your session and log + out. You should be returned to the log-in prompt. + +Turning Off the Computer + + Turning the computer on and off is really a system administration + subject, but I include it here because it is something that every + user who is his own administrator needs to know. + + halt or shutdown -t 0 -h now + This command shuts the computer down safely. You can also + use ctrl-alt-del if your system is set up for that. (If you + are in X, ctrl-alt-del will be intercepted by X. Get out of + X first by using ctrl-alt-backspace.) + + +To display this file one screen at a time, type + +pager /usr/share/doc/doc-linux-text/README.commands --- bash-3.2.orig/debian/rules +++ bash-3.2/debian/rules @@ -0,0 +1,688 @@ +#! /usr/bin/make -f +# -*- makefile -*- + +#export DH_VERBOSE=1 + +unexport LANG LC_ALL LC_CTYPE LC_COLLATE LC_TIME LC_NUMERIC LC_MESSAGES + +# architecture dependent variables +DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH) +DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) +DEB_HOST_GNU_CPU := $(shell dpkg-architecture -qDEB_HOST_GNU_CPU) +DEB_HOST_GNU_SYSTEM := $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM) +DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) + +VERSION := 3.2 +#PKGVERSION := $(shell dpkg-parsechangelog \ +# | sed -n '/Version:/s/\(.* \)\(.*\)-2\(.*\)/\2\3/p') +#PKGVERSION := 3.0 +#dpkg_ctrl_args := -v$(PKGVERSION) -VBinary-Version=$(PKGVERSION) + + +with_gfdl = no +with_gfdl = yes + +CC = gcc +CFLAGS = -g -O2 -Wall +SHELL = /bin/bash +YACC = bison -y + +IX = install -o 0 -g 0 +ID = install -o 0 -g 0 -m 644 + +# built with installed libreadline? +with_installed_rl = no + +debflags = + +p = bash +p_min = bash-minimal +p_stat = bash-static +p_bins = bash-builtins +p_doc = bash-doc +p_bdb = bashdb + +d = debian/$(p) +d_min = debian/$(p_min) +d_stat = debian/$(p_stat) +d_bins = debian/$(p_bins) +d_doc = debian/$(p_doc) +d_bdb = debian/$(p_bdb) + +conf_args = \ + --with-curses \ + --disable-net-redirections \ + --enable-largefile \ + --prefix=/usr \ + --infodir=/usr/share/info \ + --mandir=/usr/share/man +ifeq ($(with_installed_rl),yes) + conf_args += --with-installed-readline +endif + +static_conf_args := $(conf_args) \ + --enable-static-link \ + --without-bash-malloc \ + --host=$(DEB_HOST_GNU_TYPE) + +conf_args += --host=$(DEB_HOST_GNU_TYPE) + +min_conf_args = \ + --enable-minimal-config \ + --enable-largefile \ + --prefix=/usr \ + --infodir=/usr/share/info \ + --mandir=/usr/share/man +min_conf_args += --host=$(DEB_HOST_GNU_TYPE) + + +#build: bash-build minimal-build static-build preinst-build all-bashdb-build check +build: before-build bash-build minimal-build static-build preinst-build check + +before-build: + : # see #327477, needed to have HAVE_DEV_STDIN defined + (test -d /dev/fd && test -r /dev/stdin < /dev/null) \ + || (test -d /proc/self/fd && test -r /dev/stdin < /dev/null) +ifneq (,$(findstring $(DEB_HOST_ARCH_OS), linux freebsd)) + $(CC) $(CFLAGS) -o clear_console debian/clear_console.c -lncurses +endif + +# --------------------------------------------------------------------------- +# build standard bash + +bash-build: + $(MAKE) -f debian/rules do-build-bash \ + bash_src=bash \ + bash_patches="$(debian_patches)" \ + build=bash \ + configure_args="$(conf_args)" +bash-configure: + $(MAKE) -f debian/rules do-configure-bash \ + bash_src=bash \ + bash_patches="$(debian_patches)" \ + build=bash \ + configure_args="$(conf_args)" + +# --------------------------------------------------------------------------- +# build minimal bash + +minimal-build: + $(MAKE) -f debian/rules do-build-min \ + bash_src=bash \ + bash_patches="$(debian_patches)" \ + build=min \ + configure_args="$(min_conf_args)" +minimal-configure: + $(MAKE) -f debian/rules do-configure-min \ + bash_src=bash \ + bash_patches="$(debian_patches)" \ + build=min \ + configure_args="$(min_conf_args)" + +# --------------------------------------------------------------------------- +# build static bash + +static-build: + $(MAKE) -f debian/rules do-build-static \ + bash_src=bash \ + bash_patches="$(debian_patches)" \ + build=static \ + configure_args="$(static_conf_args)" +static-configure: + $(MAKE) -f debian/rules do-configure-static \ + bash_src=bash \ + bash_patches="$(debian_patches)" \ + build=static \ + configure_args="$(static_conf_args)" + +# --------------------------------------------------------------------------- +# build standard bash + +all-bashdb-build: bashdb-build #bashdb-doc-build + +bashdb-build: + DEBUGGER_START_FILE=/usr/share/bashdb/dbg-main.inc \ + $(MAKE) -f debian/rules do-build-bashdb \ + bash_src=bashdb \ + bash_patches="$(bashdb_patches)" \ + build=bashdb \ + configure_args="$(conf_args)" +bashdb-configure: + DEBUGGER_START_FILE=/usr/share/bashdb/dbg-main.inc \ + $(MAKE) -f debian/rules do-configure-bashdb \ + bash_src=bashdb \ + bash_patches="$(bashdb_patches)" \ + build=bashdb \ + configure_args="$(conf_args)" + +bashdb-doc-build: stamps/stamp-build-bashdb-doc +stamps/stamp-build-bashdb-doc: + cp -p build-bashdb/doc/version.texi bashdb/doc/ + cp -p build-bashdb/debugger/doc/version.texi bashdb/debugger/doc/ +# $(MAKE) -C build-bashdb doc + $(MAKE) -C build-bashdb/debugger/doc + touch stamps/stamp-build-bashdb-doc + +# --------------------------------------------------------------------------- + +bash-doc-build: stamps/stamp-build-bash-doc +stamps/stamp-build-bash-doc: +ifeq ($(with_gfdl),yes) + rm -f bash/doc/bashref.info + $(MAKE) -C build-bash/doc bashref.info bashref.pdf +endif + touch stamps/stamp-build-bash-doc + +# --------------------------------------------------------------------------- + +check: stamps/stamp-check +stamps/stamp-check: bash-build + @echo BEGIN test +ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) + ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS))) + -sh debian/locale-gen + LOCPATH=$(CURDIR)/locales \ + time $(MAKE) -C build-bash test 2>&1 | tee build-bash/test-protocol + endif +else + @echo Suppress 'make' test, because this is cross build +endif + @echo END test + touch stamps/stamp-check + +# --------------------------------------------------------------------------- + +clean: + dh_testdir + dh_testroot + rm -rf stamps build-* bash bashdb + rm -f debian/bash.preinst debian/*.o + rm -f debian/README.Debian + rm -rf locales + rm -f clear_console + dh_clean + +preinst-build: debian/bash.preinst +debian/bash.preinst: debian/bash.preinst.c debian/md5.c debian/md5.h + $(CC) -O2 -c -Idebian -o debian/md5.o debian/md5.c + $(CC) -O2 -c -Idebian -o debian/bash.preinst.o debian/bash.preinst.c + $(CC) -O2 -s -o debian/bash.preinst debian/md5.o debian/bash.preinst.o + +# --------------------------------------------------------------------------- + + +install: bash-install #bashdb-install + +bash-install: bash-build stamps/stamp-install-bash +stamps/stamp-install-bash: stamps/stamp-build-bash + dh_testdir + dh_testroot + dh_clean -k -p$(p) -p$(p_doc) -p$(p_bins) + dh_installdirs -p$(p) \ + bin \ + etc/skel \ + usr/share/doc/$(p) + dh_installdirs -p$(p_doc) \ + usr/share/doc/$(p) + dh_installdirs -p$(p_bins) \ + usr/share/doc/$(p)/examples/loadables \ + usr/include/bash/{builtins,lib/{glob,tilde}} + +ifeq ($(with_gfdl),yes) +# XXXXX + cp -p build-bash/doc/*.info bash/doc/ +endif + + : # install it + $(MAKE) -C build-bash install \ + CC='$(CC)' \ + CFLAGS='$(CFLAGS)' \ + YACC="$(YACC)" \ + DESTDIR=$(CURDIR)/$(d) + mv $(d)/usr/bin/bash $(d)/bin/. + chmod 755 $(d)/usr/bin/bashbug + $(ID) debian/bashbug.1 $(d)/usr/share/man/man1/ +ifneq ($(with_gfdl),yes) + mkdir -p $(d)/usr/share/man/man1 + cp -p bash/doc/bash.1 $(d)/usr/share/man/man1/bash.1 +endif + + : # extra links + ln -sf bash $(d)/bin/rbash + ln -sf bash $(d)/bin/sh + ln -sf bash.1 $(d)/usr/share/man/man1/sh.1 + + : # skeleton files + $(ID) debian/etc.bash.bashrc $(d)/etc/bash.bashrc + $(ID) debian/skel.bashrc $(d)/etc/skel/.bashrc + $(ID) debian/skel.profile $(d)/etc/skel/.profile + $(ID) debian/skel.bash_logout $(d)/etc/skel/.bash_logout + + : # clean_console +ifneq (,$(findstring $(DEB_HOST_ARCH_OS), linux freebsd)) + $(IX) clear_console $(d)/usr/bin/ + $(ID) debian/clear_console.1 $(d)/usr/share/man/man1/ +endif + +ifeq (0,1) + : # install bash-completion + mkdir -p $(d)/etc/bash_completion.d + $(ID) debian/bash_completion/bash_completion $(d)/etc/. + cp -a debian/bash_completion/contrib \ + $(d)/usr/share/doc/$(p)/completion-contrib + chmod 755 $(d)/usr/share/doc/$(p)/completion-contrib + chmod 644 $(d)/usr/share/doc/$(p)/completion-contrib/* + $(ID) debian/bash_completion/Changelog \ + $(d)/usr/share/doc/$(p)/changelog.bash_completion + $(ID) debian/README.bash_completion $(d)/usr/share/doc/$(p)/ + cat debian/bash_completion/README \ + >> $(d)/usr/share/doc/$(p)/README.bash_completion + $(ID) debian/bash_completion/BUGS \ + $(d)/usr/share/doc/bash/BUGS.bash_completion +endif + +ifeq ($(with_gfdl),yes) + : # files for the bash-doc package + mv $(d)/usr/share/info/bash.info $(d)/usr/share/info/bashref.info + ln -sf bashref.info $(d)/usr/share/info/bash.info + mv $(d)/usr/share/info $(d_doc)/usr/share/ +endif + + dh_installexamples -p$(p_doc) bash/examples/* + mv $(d_doc)/usr/share/doc/$(p_doc)/examples \ + $(d_doc)/usr/share/doc/$(p)/examples + rm -rf $(d_doc)/usr/share/doc/$(p)/examples/loadables + ln -sf ../$(p)/examples $(d_doc)/usr/share/doc/$(p_doc)/examples + + cd $(d_doc)/usr/share/doc/$(p)/examples && chmod 644 \ + *bashdb/PERMISSION complete/complete.gnu-longopt + cd $(d_doc)/usr/share/doc/$(p)/examples && chmod 755 \ + misc/aliasconv.*sh misc/cshtobash + + cd $(d_doc)/usr/share/doc/$(p)/examples && chmod 644 \ + scripts/shprompt scripts/precedence \ + scripts/bcsh.sh scripts/krand.bash + + : # files for the bash-builtins package + $(ID) bash/include/*.h bash/*.h $(d_bins)/usr/include/bash/ + $(ID) build-bash/*.h $(d_bins)/usr/include/bash/ + rm -f $(d_bins)/usr/include/bash/y.tab.h + $(ID) bash/builtins/*.h $(d_bins)/usr/include/bash/builtins/ + $(ID) bash/lib/glob/*.h $(d_bins)/usr/include/bash/lib/glob/ + $(ID) bash/lib/tilde/*.h $(d_bins)/usr/include/bash/lib/tilde/ + $(ID) bash/examples/loadables/{README,*.c} \ + $(d_bins)/usr/share/doc/$(p)/examples/loadables + $(ID) build-bash/examples/loadables/Makefile \ + $(d_bins)/usr/share/doc/$(p)/examples/loadables + ln -sf bash $(d_bins)/usr/share/doc/$(p_bins) + + cat debian/README stamps/stamp-patch-bash > debian/README.Debian + + touch stamps/stamp-install-bash + +bashdb-install: stamps/stamp-install-bashdb +stamps/stamp-install-bashdb: stamps/stamp-build-bashdb + dh_testdir + dh_testroot + dh_clean -k -p$(p_bdb) + dh_installdirs -p$(p_bdb) \ + usr/share/doc/$(p_bdb) \ + usr/share/emacs/site-lisp/$(p_bdb) + + : # install it + $(MAKE) -C build-bashdb install \ + CC='$(CC)' \ + CFLAGS='$(CFLAGS)' \ + YACC="$(YACC)" \ + DESTDIR=$(CURDIR)/$(d_bdb) + rm -f $(d_bdb)/usr/bin/bashbug + rm -f $(d_bdb)/usr/share/man/man1/bashbug.1 + rm -f $(d_bdb)/usr/share/info/* + + mv $(d_bdb)/usr/share/man/man1/bash.1 \ + $(d_bdb)/usr/share/man/man1/bash+dbg.1 + + $(MAKE) -C build-bashdb/debugger/doc install \ + DESTDIR=$(CURDIR)/$(d_bdb) + cp -p build-bashdb/debugger/doc/bashdb.html \ + $(d_bdb)/usr/share/doc/$(p_bdb)/. + cp -p build-bashdb/debugger/doc/bashdb.1 \ + $(d_bdb)/usr/share/man/man1/. + + : # some corrections + mv $(d_bdb)/usr/bin/bash $(d_bdb)/usr/bin/bash+dbg + sed -e 's,/usr/bin/bash,/usr/bin/bash+dbg,g' \ + -e 's,/lib/bashdb,/share/bashdb,g' \ + $(d_bdb)/usr/bin/bashdb > $(d_bdb)/usr/bin/bashdb.new + mv -f $(d_bdb)/usr/bin/bashdb.new $(d_bdb)/usr/bin/bashdb + chmod 755 $(d_bdb)/usr/bin/bashdb + cp -p bashdb/debugger/emacs/*.el \ + $(d_bdb)/usr/share/emacs/site-lisp/$(p_bdb)/ + + touch stamps/stamp-install-bashdb + +binary-doc: bash-install bash-doc-build + dh_testdir + dh_testroot + mkdir -p $(d_doc)/usr/share/doc/$(p) + dh_installdocs -p$(p_doc) +ifeq ($(with_gfdl),yes) + cp -p build-bash/doc/bashref.pdf $(d_doc)/usr/share/doc/$(p)/. + dh_link -p$(p_doc) \ + /usr/share/doc/$(p)/bashref.pdf /usr/share/doc/$(p_doc)/bashref.pdf +endif + dh_installchangelogs -p$(p_doc) bash/CWRU/changelog + dh_compress -p$(p_doc) -Xexamples -X.pdf + dh_fixperms -p$(p_doc) + dh_installdeb -p$(p_doc) + dh_gencontrol -p$(p_doc) + dh_md5sums -p$(p_doc) + dh_builddeb -p$(p_doc) + +binary-bash: bash-install debian/bash.preinst + dh_testdir + dh_testroot + dh_installchangelogs -p$(p) + dh_installdocs -p$(p) \ + bash/{CHANGES,NEWS,COMPAT,doc/INTRO,POSIX} \ + debian/{README.Debian,README.abs-guide,README.commands} \ + debian/inputrc.arrows +ifeq ($(with_gfdl),yes) + cp -p bash/doc/FAQ $(d)/usr/share/doc/$(p)/. +endif + cp -p debian/FAQ $(d)/usr/share/doc/$(p)/. + dh_installman -p$(p) bash/doc/rbash.1 debian/bash-builtins.7 + dh_installmenu -p$(p) + dh_strip -p$(p) + dh_compress -p$(p) + dh_fixperms -p$(p) + dh_shlibdeps -p$(p) -- -dPre-Depends $(d)/bin/bash debian/bash.preinst + dh_installdeb -p$(p) + dh_gencontrol -p$(p) + dh_md5sums -p$(p) + dh_builddeb -p$(p) + +# Even though it contains only headers and example files, +# bash-builtins is NOT arch-independent because the config.h* files +# differ on different archs. +binary-builtins: bash-install + dh_testdir + dh_testroot + dh_compress -p$(p_bins) -Xexamples + dh_fixperms -p$(p_bins) + dh_installdeb -p$(p_bins) + dh_gencontrol -p$(p_bins) + dh_md5sums -p$(p_bins) + dh_builddeb -p$(p_bins) + +binary-static: static-build + dh_testdir + dh_testroot + dh_clean -k -p$(p_stat) + dh_installdirs -p$(p_stat) \ + bin \ + usr/share/man/man1 + cp -p build-static/bash $(d_stat)/bin/bash-static + cp -p bash/doc/bash.1 $(d_stat)/usr/share/man/man1/bash-static.1 + dh_installdocs -p$(p_stat) + dh_installchangelogs -p$(p_stat) + dh_strip -p$(p_stat) + dh_compress -p$(p_stat) + dh_fixperms -p$(p_stat) + dh_installdeb -p$(p_stat) + dh_gencontrol -p$(p_stat) + dh_md5sums -p$(p_stat) + dh_builddeb -p$(p_stat) + +binary-minimal: minimal-build + dh_testdir + dh_testroot + dh_clean -k -p$(p_min) + dh_installdirs -p$(p_min) \ + bin \ + usr/share/man/man1 + cp -p build-min/bash $(d_min)/bin/bash-minimal + cp -p debian/bash-minimal.1 $(d_min)/usr/share/man/man1/. + dh_installdocs -p$(p_min) + dh_installchangelogs -p$(p_min) + dh_strip -p$(p_min) + dh_compress -p$(p_min) + dh_fixperms -p$(p_min) + dh_shlibdeps -p$(p_min) + dh_installdeb -p$(p_min) + dh_gencontrol -p$(p_min) + dh_md5sums -p$(p_min) + dh_builddeb -p$(p_min) + +binary-bashdb: bashdb-install + dh_testdir + dh_testroot + dh_installdocs -p$(p_bdb) \ + bashdb/{CHANGES,NEWS,README} + cp -p debian/README.bashdb $(d_bdb)/usr/share/doc/$(p_bdb)/README.Debian + for i in AUTHORS CHANGES NEWS README THANKS TODO; do \ + cp -p bashdb/debugger/$$i \ + $(d_bdb)/usr/share/doc/$(p_bdb)/$$i.bashdb; \ + done + dh_installdocs -p$(p_bdb) + dh_installchangelogs -p$(p_bdb) bashdb/debugger/ChangeLog + dh_installemacsen -p$(p_bdb) + dh_strip -p$(p_bdb) + dh_compress -p$(p_bdb) + dh_fixperms -p$(p_bdb) + dh_installdeb -p$(p_bdb) + dh_gencontrol -p$(p_bdb) + dh_md5sums -p$(p_bdb) + dh_builddeb -p$(p_bdb) + +binary-indep: binary-doc +binary-arch: binary-bash binary-builtins binary-static binary-minimal #binary-bashdb +binary: binary-indep binary-arch + +# --------------------------------------------------------------------------- +# common rules for all bash build variations + +do-build-$(build): stamps/stamp-build-$(build) +stamps/stamp-build-$(build): stamps/stamp-configure-$(build) + dh_testdir +ifneq (,$(profiled_build)) + $(MAKE) -C build-$(build) \ + CC='$(CC)' \ + CFLAGS='$(CFLAGS) -fprofile-generate' \ + YACC="$(YACC)" \ + deb_builddir=build-$(build)/ \ + $(debflags) + -sh debian/locale-gen + cp debian/run-my-gprof bash/tests/ + LOCPATH=$(CURDIR)/locales \ + time $(MAKE) -C build-$(build) TESTSCRIPT=run-my-gprof test 2>&1 \ + | tee build-bash/profile-protocol + $(MAKE) -C build-$(build) clean + rm -f build-$(build)/lib/malloc/malloc*.gc?? + $(MAKE) -C build-$(build) \ + CC='$(CC)' \ + CFLAGS='$(CFLAGS) -fprofile-use' \ + YACC="$(YACC)" \ + deb_builddir=build-$(build)/ \ + $(debflags) +else + $(MAKE) -C build-$(build) \ + CC='$(CC)' \ + CFLAGS='$(CFLAGS)' \ + YACC="$(YACC)" \ + deb_builddir=build-$(build)/ \ + $(debflags) +endif + ifeq ($(with_gfdl),yes) + $(MAKE) -C build-$(build)/doc \ + bash.info +endif + touch stamps/stamp-build-$(build) + +do-configure-$(build): stamps/stamp-configure-$(build) +stamps/stamp-configure-$(build): stamps/stamp-patch-$(bash_src) + dh_testdir + rm -rf build-$(build) + mkdir build-$(build) + cd build-$(build) && \ + CC="$(CC)" CFLAGS="$(CFLAGS)" YACC="$(YACC)" \ + ../$(bash_src)/configure $(configure_args) + if ! grep -q '#define HAVE_DEV_STDIN 1' build-$(build)/config.h; then \ + echo "HAVE_DEV_STDIN not defined, abortig build"; \ + exit 1; \ + fi + touch stamps/stamp-configure-$(build) + +patchdir = debian/patches +debian_patches = \ + bash32-001 \ + bash32-002 \ + bash32-003 \ + bash32-004 \ + bash32-005 \ + bash32-006 \ + bash32-007 \ + bash32-008 \ + bash32-009 \ + bash32-010 \ + bash32-011 \ + bash32-012 \ + bash32-013 \ + bash32-014 \ + bash32-015 \ + bash32-016 \ + bash32-017 \ + bash32-018 \ + bash32-019 \ + bash32-020 \ + bash32-021 \ + bash32-022 \ + bash32-023 \ + bash32-024 \ + bash32-025 \ + bash32-026 \ + bash32-027 \ + bash32-028 \ + bash32-029 \ + bash32-030 \ + bash32-031 \ + bash32-032 \ + bash32-033 \ + bash32-034 \ + bash32-035 \ + bash32-036 \ + bash32-037 \ + bash32-038 \ + bash32-039 \ + bash32-040 \ + bash32-041 \ + bash32-042 \ + bash32-043 \ + bash32-044 \ + bash32-045 \ + bash32-046 \ + bash32-047 \ + bash32-048 \ + bashbug-editor \ + deb-bash-config \ + deb-examples \ + man-arithmetic \ + man-fignore \ + man-bashrc \ + man-bashlogout \ + man-substring-exp \ + man-nocaseglob \ + man-test \ + man-test2 \ + man-net-redirections \ + privmode \ + rbash-manpage \ + command-not-found \ + bash-default-editor \ + po-sv \ + bash-subst-param-length \ + pgrp-pipe \ + input-err \ + exec-redirections-man \ + bash-aliases-repeat \ + builtins-caller \ + man-bold-comma \ + +ifeq ($(with_gfdl),yes) + debian_patches += \ + command-not-found-doc \ + man-substring-exp-doc \ + man-test2-doc \ + man-net-redirections-doc \ + bash32-039-doc \ + exec-redirections-texi \ + +endif + +# all debian_patches, without bash205b-* +# patches integrated in bashdb: builtins-shift, execute-cmd, man-arithmetic, +# man-builtin, man-fignore, random, rbash-manpage, report-155436, +# rl-8bit-init, s390-build +# and bashdb patch +# rbash-manpage \ + +bashdb_patches = \ + bashdb \ + rl-examples-bdb \ + rl-inputrc \ + bashbug-editor \ + deb-bash-config \ + deb-examples \ + privmode \ + +# various \ + +# these are applied in bashdb cvs as well +# man-arithmetic \ +# man-fignore \ +# random \ +# report-155436 \ +# s390-build \ +# builtins-shift + +patch-$(bash_src): stamps/stamp-patch-$(bash_src) +stamps/stamp-patch-$(bash_src): stamps/stamp-unpack-$(bash_src) \ + $(foreach p,$(bash_patches),stamps/stamp-patch-$(bash_src)-$(p)) + echo -e "\nPatches applied in this version:" > pxxx + for i in $(bash_patches); do \ + echo -e "\n$$i:" >> pxxx; \ + sed -n 's/^# *DP: */ /p' $(patchdir)/$$i.dpatch >> pxxx; \ + done + mv -f pxxx $@ + +stamps/stamp-patch-$(bash_src)-%: $(patchdir)/%.dpatch + if [ -f $@ ]; then \ + echo "$* patches already applied."; exit 1; \ + fi + sh $< -patch -d $(bash_src) + echo "$* patches applied." > $@ + +unpack-$(bash_src): stamps/stamp-unpack-$(bash_src) +stamps/stamp-unpack-$(bash_src): + mkdir -p stamps + rm -rf bash-$(VERSION) $(bash_src) + rm -f stamps/stamp-patch-$(bash_src){,-*} + tar xfz bash-$(VERSION)*.tar.gz + mv bash-$(VERSION) $(bash_src) + uudecode -o - debian/bash.pot.uu | zcat > $(bash_src)/po/bash.pot + cp -p /usr/share/misc/config.* $(bash_src)/. + cp -p /usr/share/misc/config.* $(bash_src)/support/. + touch stamps/stamp-unpack-$(bash_src) + +.PHONY: unpack patch binary binary-arch binary-indep clean \ + build bash-build minimal-build static-build preinst-build \ + all-bashdb-build bashdb-build bashdb-doc-build \ + check \ + bash-configure minimal-configure static-configure bashdb-configure \ + binary-doc binary-bash binary-builtins binary-static binary-bashdb \ + install bash-install bashdb-install + +# Local Variables: +# mode: makefile +# end: --- bash-3.2.orig/debian/bash-doc.postinst +++ bash-3.2/debian/bash-doc.postinst @@ -0,0 +1,11 @@ +#! /bin/sh + +set -e + +if [ -f /usr/share/info/bashref.info.gz ]; then + install-info --quiet --section "Shells" "Shells" \ + --description="GNU Bourne-Again SHell Features." \ + /usr/share/info/bashref.info.gz +fi + +#DEBHELPER# --- bash-3.2.orig/debian/skel.bash_logout +++ bash-3.2/debian/skel.bash_logout @@ -0,0 +1,7 @@ +# ~/.bash_logout: executed by bash(1) when login shell exits. + +# when leaving the console clear the screen to increase privacy + +if [ "$SHLVL" = 1 ]; then + [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q +fi --- bash-3.2.orig/debian/bashbug.1 +++ bash-3.2/debian/bashbug.1 @@ -0,0 +1,68 @@ +.TH "BASHBUG" "1" "11 December 2007" "GNU Bash 3\.1" "bashbug" +.nh +.ad l +.SH "NAME" +bashbug - report a bug in bash +.SH "SYNOPSIS" +.HP 8 +\fBbashbug\fR [\fB\-\-help\fR] [\fB\-\-version\fR] [\fB\fIbug\-report\-email\-addresses\fR\fR] +.SH "DESCRIPTION" +.PP + +\fBbashbug\fR +is a utility for reporting bugs in Bash to the maintainers\. +.PP + +\fBbashbug\fR +will start up your preferred editor with a preformatted bug report template for you to fill in\. Save the file and quit the editor once you have completed the missing fields\. +\fBbashbug\fR +will notify you of any problems with the report and ask for confirmation before sending it\. By default the bug report is mailed to both the GNU developers and the Debian Bash maintainers\. The recipients can be changed by giving a comma separated list of +\fIbug\-report\-email\-addresses\fR\. +.PP +If you invoke +\fBbashbug\fR +by accident, just quit your editor\. You will always be asked for confirmation before a bug report is sent\. +.SH "OPTIONS" +.PP +.PP +\fB\-\-help\fR +.RS +Show a brief usage message and exit\. +.RE +.PP +\fB\-\-version\fR +.RS +Show the version of +\fBbashbug\fR +and exit\. +.RE +.PP +\fBbug\-report\-email\-addresses\fR +.RS +Comma separated list of recipients\' email addresses\. By default the report is mailed to both the GNU developers and the Debian Bash maintainers\. +.RE +.SH "ENVIRONMENT" +.PP +.PP +\fBDEFEDITOR\fR +.RS +Editor to use for editing the bug report\. +.RE +.PP +\fBEDITOR\fR +.RS +Editor to use for editing the bug report (overridden by +\fBDEFEDITOR\fR)\. +.RE +.SH "SEE ALSO" +.PP + +\fBbash\fR(1), +\fBreportbug\fR(1), +\fBupdate-alternatives\fR(8) +for preferred editor\. +.SH "AUTHOR" +.PP +This manual page was written by Christer Andersson + +for the Debian project (but may be used by others)\. --- bash-3.2.orig/debian/bash.menu +++ bash-3.2/debian/bash.menu @@ -0,0 +1,2 @@ +?package(bash):needs="text" section="Applications/Shells" title="Bash" command="/bin/bash --login" +?package(bash):needs="text" section="Applications/Shells" title="Sh" command="/bin/sh --login" --- bash-3.2.orig/debian/bash-minimal.postinst +++ bash-3.2/debian/bash-minimal.postinst @@ -0,0 +1,13 @@ +#! /bin/sh + +set -e + +if [ "$1" = configure ] && dpkg --compare-versions "$2" le 3.2-4 \ + && [ -x /usr/sbin/add-shell ] +then + /usr/sbin/add-shell /bin/bash-minimal +fi + +#DEBHELPER# + +exit 0 --- bash-3.2.orig/debian/bash.postrm +++ bash-3.2/debian/bash.postrm @@ -0,0 +1,22 @@ +#! /bin/sh + +set -e + +case "$1" in + upgrade|failed-upgrade|abort-install|abort-upgrade) + ;; + remove|purge|disappear) + if [ -x /usr/sbin/remove-shell ] && [ -f /etc/shells ]; then + /usr/sbin/remove-shell /bin/bash + /usr/sbin/remove-shell /bin/rbash + fi + ;; + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 --- bash-3.2.orig/debian/clear_console.1 +++ bash-3.2/debian/clear_console.1 @@ -0,0 +1,50 @@ +.\"*************************************************************************** +.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. * +.\" * +.\" Permission is hereby granted, free of charge, to any person obtaining a * +.\" copy of this software and associated documentation files (the * +.\" "Software"), to deal in the Software without restriction, including * +.\" without limitation the rights to use, copy, modify, merge, publish, * +.\" distribute, distribute with modifications, sublicense, and/or sell * +.\" copies of the Software, and to permit persons to whom the Software is * +.\" furnished to do so, subject to the following conditions: * +.\" * +.\" The above copyright notice and this permission notice shall be included * +.\" in all copies or substantial portions of the Software. * +.\" * +.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * +.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * +.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * +.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * +.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * +.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * +.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. * +.\" * +.\" Except as contained in this notice, the name(s) of the above copyright * +.\" holders shall not be used in advertising or otherwise to promote the * +.\" sale, use or other dealings in this Software without prior written * +.\" authorization. * +.\"*************************************************************************** +.\" +.\" $Id: clear.1,v 1.3 2000/07/15 23:59:35 china Exp $ +.TH clear_console 1 "" +.ds n 5 +.SH NAME +\fBclear_console\fR - clear the console +.SH SYNOPSIS +\fBclear_console\fR +.br +.SH DESCRIPTION +\fBclear_console\fR clears your console if this is possible. It looks in the +environment for the terminal type and then in the \fBterminfo\fR database to +figure out how to clear the screen. To clear the buffer, it then changes the +foreground virtual terminal to another terminal and then back to the original +terminal. +.SH SEE ALSO +\fBclear\fR(1), \fBchvt\fR(1) +.\"# +.\"# The following sets edit modes for GNU EMACS +.\"# Local Variables: +.\"# mode:nroff +.\"# fill-column:79 +.\"# End: --- bash-3.2.orig/debian/bashdb.copyright +++ bash-3.2/debian/bashdb.copyright @@ -0,0 +1,430 @@ +This is Debian GNU/Linux's prepackaged version of the FSF's GNU Bash, +the Bourne Again SHell. + +This package was put together by Matthias Klose , from +the following sources: + + bash: ftp.gnu.org:/pub/gnu/bash/bash-2.05b.tar.gz + bash_completion: http://freshmeat.net/projects/bashcompletion/ + bashdb: http://bashdb.sf.net/ + (CVS snapshot taken 20030908) + +Bash is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +Bash is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License with +your Debian GNU/Linux system, in /usr/share/common-licenses/GPL, or with +the Debian GNU/Linux bash source package as the file COPYING. If not, +write to the Free Software Foundation, Inc., 59 Temple Place - Suite +330, Boston, MA 02111-1307, USA. + +The Free Software Foundation has exempted Bash from the requirement of +Paragraph 2c of the General Public License. This is to say, there is +no requirement for Bash to print a notice when it is started +interactively in the usual way. We made this exception because users +and standards expect shells not to print such messages. This +exception applies to any program that serves as a shell and that is +based primarily on Bash as opposed to other GNU software. + + +bash_completion is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later version. + +bashdb is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later version. + +The bashdb manual is licensed under the GFDL (attached here): + + This file documents the BASH debugger BASH. + + This is the 2.05b rebash-0.43 Edition, April 2002, of `Debugging + with BASHDB: the GNU Source-Level Debugger' for REBASH + + Copyright (C) 2002,2003 Rocky Bernstein for the Free Software + Foundation. + + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.1 or + any later version published by the Free Software Foundation; with no + Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. + + +GNU Free Documentation License +****************************** + + Version 1.1, March 2000 + Copyright (C) 2000 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or other + written document "free" in the sense of freedom: to assure everyone + the effective freedom to copy and redistribute it, with or without + modifying it, either commercially or noncommercially. Secondarily, + this License preserves for the author and publisher a way to get + credit for their work, while not being considered responsible for + modifications made by others. + + This License is a kind of "copyleft", which means that derivative + works of the document must themselves be free in the same sense. + It complements the GNU General Public License, which is a copyleft + license designed for free software. + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same freedoms + that the software does. But this License is not limited to + software manuals; it can be used for any textual work, regardless + of subject matter or whether it is published as a printed book. + We recommend this License principally for works whose purpose is + instruction or reference. + + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work that contains a + notice placed by the copyright holder saying it can be distributed + under the terms of this License. The "Document", below, refers to + any such manual or work. Any member of the public is a licensee, + and is addressed as "you." + + A "Modified Version" of the Document means any work containing the + Document or a portion of it, either copied verbatim, or with + modifications and/or translated into another language. + + A "Secondary Section" is a named appendix or a front-matter + section of the Document that deals exclusively with the + relationship of the publishers or authors of the Document to the + Document's overall subject (or to related matters) and contains + nothing that could fall directly within that overall subject. + (For example, if the Document is in part a textbook of + mathematics, a Secondary Section may not explain any mathematics.) + The relationship could be a matter of historical connection with + the subject or with related matters, or of legal, commercial, + philosophical, ethical or political position regarding them. + + The "Invariant Sections" are certain Secondary Sections whose + titles are designated, as being those of Invariant Sections, in + the notice that says that the Document is released under this + License. + + The "Cover Texts" are certain short passages of text that are + listed, as Front-Cover Texts or Back-Cover Texts, in the notice + that says that the Document is released under this License. + + A "Transparent" copy of the Document means a machine-readable copy, + represented in a format whose specification is available to the + general public, whose contents can be viewed and edited directly + and straightforwardly with generic text editors or (for images + composed of pixels) generic paint programs or (for drawings) some + widely available drawing editor, and that is suitable for input to + text formatters or for automatic translation to a variety of + formats suitable for input to text formatters. A copy made in an + otherwise Transparent file format whose markup has been designed + to thwart or discourage subsequent modification by readers is not + Transparent. A copy that is not "Transparent" is called "Opaque." + + Examples of suitable formats for Transparent copies include plain + ASCII without markup, Texinfo input format, LaTeX input format, + SGML or XML using a publicly available DTD, and + standard-conforming simple HTML designed for human modification. + Opaque formats include PostScript, PDF, proprietary formats that + can be read and edited only by proprietary word processors, SGML + or XML for which the DTD and/or processing tools are not generally + available, and the machine-generated HTML produced by some word + processors for output purposes only. + + The "Title Page" means, for a printed book, the title page itself, + plus such following pages as are needed to hold, legibly, the + material this License requires to appear in the title page. For + works in formats which do not have any title page as such, "Title + Page" means the text near the most prominent appearance of the + work's title, preceding the beginning of the body of the text. + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that you + add no other conditions whatsoever to those of this License. You + may not use technical measures to obstruct or control the reading + or further copying of the copies you make or distribute. However, + you may accept compensation in exchange for copies. If you + distribute a large enough number of copies you must also follow + the conditions in section 3. + + You may also lend copies, under the same conditions stated above, + and you may publicly display copies. + + 3. COPYING IN QUANTITY + + If you publish printed copies of the Document numbering more than + 100, and the Document's license notice requires Cover Texts, you + must enclose the copies in covers that carry, clearly and legibly, + all these Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also clearly + and legibly identify you as the publisher of these copies. The + front cover must present the full title with all words of the + title equally prominent and visible. You may add other material + on the covers in addition. Copying with changes limited to the + covers, as long as they preserve the title of the Document and + satisfy these conditions, can be treated as verbatim copying in + other respects. + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + If you publish or distribute Opaque copies of the Document + numbering more than 100, you must either include a + machine-readable Transparent copy along with each Opaque copy, or + state in or with each Opaque copy a publicly-accessible + computer-network location containing a complete Transparent copy + of the Document, free of added material, which the general + network-using public has access to download anonymously at no + charge using public-standard network protocols. If you use the + latter option, you must take reasonably prudent steps, when you + begin distribution of Opaque copies in quantity, to ensure that + this Transparent copy will remain thus accessible at the stated + location until at least one year after the last time you + distribute an Opaque copy (directly or through your agents or + retailers) of that edition to the public. + + It is requested, but not required, that you contact the authors of + the Document well before redistributing any large number of + copies, to give them a chance to provide you with an updated + version of the Document. + + 4. MODIFICATIONS + + You may copy and distribute a Modified Version of the Document + under the conditions of sections 2 and 3 above, provided that you + release the Modified Version under precisely this License, with + the Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version to + whoever possesses a copy of it. In addition, you must do these + things in the Modified Version: + + A. Use in the Title Page (and on the covers, if any) a title + distinct from that of the Document, and from those of previous + versions (which should, if there were any, be listed in the + History section of the Document). You may use the same title + as a previous version if the original publisher of that version + gives permission. + B. List on the Title Page, as authors, one or more persons or + entities responsible for authorship of the modifications in the + Modified Version, together with at least five of the principal + authors of the Document (all of its principal authors, if it + has less than five). + C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. + D. Preserve all the copyright notices of the Document. + E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + F. Include, immediately after the copyright notices, a license + notice giving the public permission to use the Modified Version + under the terms of this License, in the form shown in the + Addendum below. + G. Preserve in that license notice the full lists of Invariant + Sections and required Cover Texts given in the Document's + license notice. + H. Include an unaltered copy of this License. + I. Preserve the section entitled "History", and its title, and add + to it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. + If there is no section entitled "History" in the Document, + create one stating the title, year, authors, and publisher of + the Document as given on its Title Page, then add an item + describing the Modified Version as stated in the previous + sentence. + J. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and + likewise the network locations given in the Document for + previous versions it was based on. These may be placed in the + "History" section. You may omit a network location for a work + that was published at least four years before the Document + itself, or if the original publisher of the version it refers + to gives permission. + K. In any section entitled "Acknowledgements" or "Dedications", + preserve the section's title, and preserve in the section all the + substance and tone of each of the contributor acknowledgements + and/or dedications given therein. + L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. + M. Delete any section entitled "Endorsements." Such a section + may not be included in the Modified Version. + N. Do not retitle any existing section as "Endorsements" or to + conflict in title with any Invariant Section. + + If the Modified Version includes new front-matter sections or + appendices that qualify as Secondary Sections and contain no + material copied from the Document, you may at your option + designate some or all of these sections as invariant. To do this, + add their titles to the list of Invariant Sections in the Modified + Version's license notice. These titles must be distinct from any + other section titles. + + You may add a section entitled "Endorsements", provided it contains + nothing but endorsements of your Modified Version by various + parties-for example, statements of peer review or that the text has + been approved by an organization as the authoritative definition + of a standard. + + You may add a passage of up to five words as a Front-Cover Text, + and a passage of up to 25 words as a Back-Cover Text, to the end + of the list of Cover Texts in the Modified Version. Only one + passage of Front-Cover Text and one of Back-Cover Text may be + added by (or through arrangements made by) any one entity. If the + Document already includes a cover text for the same cover, + previously added by you or by arrangement made by the same entity + you are acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + The author(s) and publisher(s) of the Document do not by this + License give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version. + + 5. COMBINING DOCUMENTS + + You may combine the Document with other documents released under + this License, under the terms defined in section 4 above for + modified versions, provided that you include in the combination + all of the Invariant Sections of all of the original documents, + unmodified, and list them all as Invariant Sections of your + combined work in its license notice. + + The combined work need only contain one copy of this License, and + multiple identical Invariant Sections may be replaced with a single + copy. If there are multiple Invariant Sections with the same name + but different contents, make the title of each such section unique + by adding at the end of it, in parentheses, the name of the + original author or publisher of that section if known, or else a + unique number. Make the same adjustment to the section titles in + the list of Invariant Sections in the license notice of the + combined work. + + In the combination, you must combine any sections entitled + "History" in the various original documents, forming one section + entitled "History"; likewise combine any sections entitled + "Acknowledgements", and any sections entitled "Dedications." You + must delete all sections entitled "Endorsements." + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other + documents released under this License, and replace the individual + copies of this License in the various documents with a single copy + that is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you insert + a copy of this License into the extracted document, and follow + this License in all other respects regarding verbatim copying of + that document. + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with other + separate and independent documents or works, in or on a volume of + a storage or distribution medium, does not as a whole count as a + Modified Version of the Document, provided no compilation + copyright is claimed for the compilation. Such a compilation is + called an "aggregate", and this License does not apply to the + other self-contained works thus compiled with the Document, on + account of their being thus compiled, if they are not themselves + derivative works of the Document. + + If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one + quarter of the entire aggregate, the Document's Cover Texts may be + placed on covers that surround only the Document within the + aggregate. Otherwise they must appear on covers around the whole + aggregate. + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section + 4. Replacing Invariant Sections with translations requires special + permission from their copyright holders, but you may include + translations of some or all Invariant Sections in addition to the + original versions of these Invariant Sections. You may include a + translation of this License provided that you also include the + original English version of this License. In case of a + disagreement between the translation and the original English + version of this License, the original English version will prevail. + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document + except as expressly provided for under this License. Any other + attempt to copy, modify, sublicense or distribute the Document is + void, and will automatically terminate your rights under this + License. However, parties who have received copies, or rights, + from you under this License will not have their licenses + terminated so long as such parties remain in full compliance. + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software Foundation may publish new, revised versions of + the GNU Free Documentation License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. See + http://www.gnu.org/copyleft/. + + Each version of the License is given a distinguishing version + number. If the Document specifies that a particular numbered + version of this License "or any later version" applies to it, you + have the option of following the terms and conditions either of + that specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by the + Free Software Foundation. + + +ADDENDUM: How to use this License for your documents +==================================================== + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and license +notices just after the title page: + + Copyright (C) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.1 + or any later version published by the Free Software Foundation; + with the Invariant Sections being LIST THEIR TITLES, with the + Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. + A copy of the license is included in the section entitled "GNU + Free Documentation License." + + If you have no Invariant Sections, write "with no Invariant Sections" +instead of saying which ones are invariant. If you have no Front-Cover +Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being +LIST"; likewise for Back-Cover Texts. + + If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, to +permit their use in free software. --- bash-3.2.orig/debian/copyright +++ bash-3.2/debian/copyright @@ -0,0 +1,435 @@ +This is Debian GNU/Linux's prepackaged version of the FSF's GNU Bash, +the Bourne Again SHell. + +This package was put together by Matthias Klose , from +the following sources: + + bash: ftp.gnu.org:/pub/gnu/bash/bash-3.2.tar.gz + bashdb: http://bashdb.sf.net/ + +Bash homepage: http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html + +Copyright (C) 1989-2006 Free Software Foundation, Inc. + +Bash is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +Bash is distributed in the hope that it will be useful, but WITHOUT +ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License with +your Debian GNU/Linux system, in /usr/share/common-licenses/GPL, or with +the Debian GNU/Linux bash source package as the file COPYING. If not, +write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, +Boston, MA 02110-1301, USA. + +The Free Software Foundation has exempted Bash from the requirement of +Paragraph 2c of the General Public License. This is to say, there is +no requirement for Bash to print a notice when it is started +interactively in the usual way. We made this exception because users +and standards expect shells not to print such messages. This +exception applies to any program that serves as a shell and that is +based primarily on Bash as opposed to other GNU software. + + +bashdb is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later version. + +Files with other copyright statement than: Copyright FSF, License GPL +--------------------------------------------------------------------- + +doc/FAQ ("the Bash FAQ") + + This document is Copyright 1995-2005 by Chester Ramey. + + Permission is hereby granted, without written agreement and + without license or royalty fees, to use, copy, and distribute + this document for any purpose, provided that the above copyright + notice appears in all copies of this document and that the + contents of this document remain unaltered. + + +doc/bashref.texi ("Bash Reference Manual"): + + Copyright (c) 1988-2005 Free Software Foundation, Inc. + + Permission is granted to make and distribute verbatim copies of + this manual provided the copyright notice and this permission notice + are preserved on all copies. + + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.1 or + any later version published by the Free Software Foundation; with no + Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' + and with the Back-Cover Texts as in (a) below. A copy of the license is + included in the section entitled ``GNU Free Documentation License.'' + + (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify + this GNU Manual, like GNU software. Copies published by the Free + Software Foundation raise funds for GNU development.'' + + +examples/bashdb/bashdb (Bash shell debugger) + + # Adapted from an idea in O'Reilly's `Learning the Korn Shell' + # Copyright (C) 1993-1994 O'Reilly and Associates, Inc. + # Copyright (C) 1998, 1999, 2001 Gary V. Vaughan > + + # This program is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License [...] + + +examples/functions/pathfuncs (add dir to path) + + # @(#)Copyright (c) 1991 Simon J. Gerraty + # + # This file is provided in the hope that it will + # be of use. There is absolutely NO WARRANTY. + # Permission to copy, redistribute or otherwise + # use this file is hereby granted provided that + # the above copyright notice and this notice are + # left intact. + + +examples/functions/recurse (Recursive Directory Traverser) + + # Author: Kaz Kylheku + # Copyright 1999 + + +examples/scripts/bcsh.sh (Bourne shell cshell-emulator) + + # "Copyright (c) Chris Robertson, December 1985" + # + # This software may be used for any purpose provided the original + # copyright notice and this notice are affixed thereto. No warranties of + # any kind whatsoever are provided with this software, and it is hereby + # understood that the author is not liable for any damagages arising + # from the use of this software. + + +examples/scripts/websrv.sh (WWW server in sh) + + #copyright chris ulrich; This software may be used or modified + #in any way so long as this notice remains intact. + + +examples/loadables/getconf.c (POSIX.2 getconf utility) + + /* + * ORIGINAL COPYRIGHT STATEMENT: + * + * Copyright (c) 1994 Winning Strategies, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Winning Strategies, Inc. + * 4. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + /* + * POSIX.2 getconf utility + * + * Originally Written by: + * J.T. Conklin (jtc@wimsey.com), Winning Strategies, Inc. + * + * Heavily modified for inclusion in bash by + * Chet Ramey + */ + + +examples/loadables/cut.c: + + /* + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Adam S. Moskowitz of Menlo Consulting and Marciano Pitargue. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + + +lib/readline/doc/rlman.texi (part of the GNU Readline Library manual) + + Copyright (c) 1988-2004 Free Software Foundation, Inc. + + Permission is granted to make and distribute verbatim copies of + this manual provided the copyright notice and this permission notice + are preserved on all copies. + + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.1 or + any later version published by the Free Software Foundation; with no + Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' + and with the Back-Cover Texts as in (a) below. A copy of the license is + included in the section entitled ``GNU Free Documentation License.'' + + (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify + this GNU Manual, like GNU software. Copies published by the Free + Software Foundation raise funds for GNU development.'' + + +lib/readline/doc/rltech.texi (part of the GNU Readline Library manual) + + Copyright (C) 1988-2005 Free Software Foundation, Inc. + + Permission is granted to make and distribute verbatim copies of + this manual provided the copyright notice and this permission notice + pare preserved on all copies. + + Permission is granted to process this file through TeX and print the + results, provided the printed document carries copying permission + notice identical to this one except for the removal of this paragraph + (this paragraph not being relevant to the printed manual). + + Permission is granted to copy and distribute modified versions of this + manual under the conditions for verbatim copying, provided that the entire + resulting derived work is distributed under the terms of a permission + notice identical to this one. + + Permission is granted to copy and distribute translations of this manual + into another language, under the above conditions for modified versions, + except that this permission notice may be stated in a translation approved + by the Foundation. + + +lib/readline/doc/rluser.texi (part of the GNU Readline Library manual) + + Copyright (C) 1988-2005 Free Software Foundation, Inc. + + Authored by Brian Fox and Chet Ramey. + + Permission is granted to process this file through Tex and print the + results, provided the printed document carries copying permission notice + identical to this one except for the removal of this paragraph (this + paragraph not being relevant to the printed manual). + + Permission is granted to make and distribute verbatim copies of this manual + provided the copyright notice and this permission notice are preserved on + all copies. + + Permission is granted to copy and distribute modified versions of this + manual under the conditions for verbatim copying, provided also that the + GNU Copyright statement is available to the distributee, and provided that + the entire resulting derived work is distributed under the terms of a + permission notice identical to this one. + + Permission is granted to copy and distribute translations of this manual + into another language, under the above conditions for modified versions. + + +readline/doc/{history,hstech,hsuser}.texi (GNU History Library Manual) + + Copyright (C) 1988-2002 Free Software Foundation, Inc. + Authored by Brian Fox and Chet Ramey. + + Permission is granted to make and distribute verbatim copies of this manual + provided the copyright notice and this permission notice are preserved on + all copies. + + Permission is granted to process this file through Tex and print the + results, provided the printed document carries copying permission notice + identical to this one except for the removal of this paragraph (this + paragraph not being relevant to the printed manual). + + Permission is granted to copy and distribute modified versions of this + manual under the conditions for verbatim copying, provided also that the + GNU Copyright statement is available to the distributee, and provided that + the entire resulting derived work is distributed under the terms of a + permission notice identical to this one. + + Permission is granted to copy and distribute translations of this manual + into another language, under the above conditions for modified versions. + + +lib/sh/inet_aton.c: + + * Copyright (c) 1983, 1990, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * - + * Portions Copyright (c) 1993 by Digital Equipment Corporation. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies, and that + * the name of Digital Equipment Corporation not be used in advertising or + * publicity pertaining to distribution of the document or software without + * specific, written prior permission. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL + * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT + * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + + +lib/termcap/grot/termcap.info (GNU termcap library manual) + + Copyright (C) 1988 Free Software Foundation, Inc. + + Permission is granted to make and distribute verbatim copies of + this manual provided the copyright notice and this permission notice + are preserved on all copies. + + Permission is granted to process this file through TeX and print the + results, provided the printed document carries copying permission + notice identical to this one except for the removal of this paragraph + (this paragraph not being relevant to the printed manual). + + Permission is granted to copy and distribute modified versions of this + manual under the conditions for verbatim copying, provided that the entire + resulting derived work is distributed under the terms of a permission + notice identical to this one. + + Permission is granted to copy and distribute translations of this manual + into another language, under the above conditions for modified versions, + except that this permission notice may be stated in a translation approved + by the Foundation. + + +support/man2html.c + + * This program was written by Richard Verhoeven (NL:5482ZX35) + * at the Eindhoven University of Technology. Email: rcb5@win.tue.nl + * + * Permission is granted to distribute, modify and use this program as long + * as this comment is not removed or changed. + * + * THIS IS A MODIFIED VERSION. IT WAS MODIFIED BY chet@po.cwru.edu FOR + * USE BY BASH. + +debian/md5.[ch] + +/* + Copyright (C) 1999, 2002 Aladdin Enterprises. All rights reserved. + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + L. Peter Deutsch + ghost@aladdin.com + + */ +/* $Id: md5.h 43594 2006-04-03 16:27:50Z matthias.klose $ */ +/* + Independent implementation of MD5 (RFC 1321). + + This code implements the MD5 Algorithm defined in RFC 1321, whose + text is available at + http://www.ietf.org/rfc/rfc1321.txt + The code is derived from the text of the RFC, including the test suite + (section A.5) but excluding the rest of Appendix A. It does not include + any code or documentation that is identified in the RFC as being + copyrighted. + + The original and principal author of md5.h is L. Peter Deutsch + . Other authors are noted in the change history + that follows (in reverse chronological order): + + 2002-04-13 lpd Removed support for non-ANSI compilers; removed + references to Ghostscript; clarified derivation from RFC 1321; + now handles byte order either statically or dynamically. + 1999-11-04 lpd Edited comments slightly for automatic TOC extraction. + 1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5); + added conditionalization for C++ compilation from Martin + Purschke . + 1999-05-03 lpd Original version. + */ --- bash-3.2.orig/debian/FAQ +++ bash-3.2/debian/FAQ @@ -0,0 +1,35 @@ +[ The original document has a license, which doesn't allow inclusion of the + FAQ in the main section of the Debian packages and therefore isn't + distributed in the Debian packages for bash. Pleae get it from the upstream + location. +] + +----------- +This is the Bash FAQ, version 3.20, for Bash version 2.05b. + +This document contains a set of frequently-asked questions concerning +Bash, the GNU Bourne-Again Shell. Bash is a freely-available command +interpreter with advanced features for both interactive use and shell +programming. + +Another good source of basic information about shells is the collection +of FAQ articles periodically posted to comp.unix.shell. + +Questions and comments concerning this document should be sent to +chet@po.cwru.edu. + +This document is available for anonymous FTP with the URL + +ftp://ftp.cwru.edu/pub/bash/FAQ + +The Bash home page is http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html + +The original document has the following license: +----------- +This document is Copyright 1995-2002 by Chester Ramey. + +Permission is hereby granted, without written agreement and +without license or royalty fees, to use, copy, and distribute +this document for any purpose, provided that the above copyright +notice appears in all copies of this document and that the +contents of this document remain unaltered. --- bash-3.2.orig/debian/etc.profile +++ bash-3.2/debian/etc.profile @@ -0,0 +1,27 @@ +# /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) +# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). + +PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games" + +if [ -f /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +if [ "$PS1" ]; then + if [ "$BASH" ]; then + PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' + if [ -f /etc/bash.bashrc ]; then + . /etc/bash.bashrc + fi + else + if [ "`id -u`" -eq 0 ]; then + PS1='# ' + else + PS1='$ ' + fi + fi +fi + +export PATH + +umask 022 --- bash-3.2.orig/debian/run-my-gprof +++ bash-3.2/debian/run-my-gprof @@ -0,0 +1,32 @@ +#! /bin/sh + +PATH=.:$PATH # just to get recho/zecho/printenv if not run via `make tests' +export PATH + +# unset BASH_ENV only if it is set +[ "${BASH_ENV+set}" = "set" ] && unset BASH_ENV +# ditto for SHELLOPTS +#[ "${SHELLOPTS+set}" = "set" ] && unset SHELLOPTS + +: ${THIS_SH:=../bash} +export THIS_SH + +${THIS_SH} ./version + +rm -f /tmp/xx + +echo Any output from any test, unless otherwise noted, indicates a possible anomaly + +echo Running tests as test load ... + +for x in run-* +do + case $x in + $0|run-minimal|run-gprof|run-all) ;; + run-jobs|run-gprof) echo SKIP $x ;; + *.orig|*~) ;; + *) echo $x ; sh $x ;; + esac +done + +exit 0 --- bash-3.2.orig/debian/bash-doc.doc-base +++ bash-3.2/debian/bash-doc.doc-base @@ -0,0 +1,10 @@ +Document: bashref +Title: Bash Reference Manual +Author: Chet Ramey +Abstract: Bash is an sh-compatible command language interpreter that executes + commands read from the standard input or from a file. Bash also + incorporates useful features from the Korn and C shells (ksh and csh). +Section: Apps/Shells + +Format: pdf +Files: /usr/share/doc/bash/bashref.pdf --- bash-3.2.orig/debian/locale-gen +++ bash-3.2/debian/locale-gen @@ -0,0 +1,30 @@ +#!/bin/sh + +LOCPATH=`pwd`/locales +export LOCPATH + +[ -d $LOCPATH ] || mkdir -p $LOCPATH + +umask 022 + +echo "Generating locales..." +while read locale charset; do + case $locale in \#*) continue;; esac + [ -n "$locale" -a -n "$charset" ] || continue + echo -n " `echo $locale | sed 's/\([^.\@]*\).*/\1/'`" + echo -n ".$charset" + echo -n `echo $locale | sed 's/\([^\@]*\)\(\@.*\)*/\2/'` + echo -n '...' + if [ -f $LOCPATH/$locale ]; then + input=$locale + else + input=`echo $locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'` + fi + localedef -i $input -c -f $charset $LOCPATH/$locale #-A /etc/locale.alias + echo ' done'; \ +done <. Other authors are noted in the change history + that follows (in reverse chronological order): + + 2002-04-13 lpd Clarified derivation from RFC 1321; now handles byte order + either statically or dynamically; added missing #include + in library. + 2002-03-11 lpd Corrected argument list for main(), and added int return + type, in test program and T value program. + 2002-02-21 lpd Added missing #include in test program. + 2000-07-03 lpd Patched to eliminate warnings about "constant is + unsigned in ANSI C, signed in traditional"; made test program + self-checking. + 1999-11-04 lpd Edited comments slightly for automatic TOC extraction. + 1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5). + 1999-05-03 lpd Original version. + */ + +#include "md5.h" +#include +#include + +#undef BYTE_ORDER /* 1 = big-endian, -1 = little-endian, 0 = unknown */ +#ifdef ARCH_IS_BIG_ENDIAN +# define BYTE_ORDER (ARCH_IS_BIG_ENDIAN ? 1 : -1) +#else +# define BYTE_ORDER 0 +#endif + +#define T_MASK ((md5_word_t)~0) +#define T1 /* 0xd76aa478 */ (T_MASK ^ 0x28955b87) +#define T2 /* 0xe8c7b756 */ (T_MASK ^ 0x173848a9) +#define T3 0x242070db +#define T4 /* 0xc1bdceee */ (T_MASK ^ 0x3e423111) +#define T5 /* 0xf57c0faf */ (T_MASK ^ 0x0a83f050) +#define T6 0x4787c62a +#define T7 /* 0xa8304613 */ (T_MASK ^ 0x57cfb9ec) +#define T8 /* 0xfd469501 */ (T_MASK ^ 0x02b96afe) +#define T9 0x698098d8 +#define T10 /* 0x8b44f7af */ (T_MASK ^ 0x74bb0850) +#define T11 /* 0xffff5bb1 */ (T_MASK ^ 0x0000a44e) +#define T12 /* 0x895cd7be */ (T_MASK ^ 0x76a32841) +#define T13 0x6b901122 +#define T14 /* 0xfd987193 */ (T_MASK ^ 0x02678e6c) +#define T15 /* 0xa679438e */ (T_MASK ^ 0x5986bc71) +#define T16 0x49b40821 +#define T17 /* 0xf61e2562 */ (T_MASK ^ 0x09e1da9d) +#define T18 /* 0xc040b340 */ (T_MASK ^ 0x3fbf4cbf) +#define T19 0x265e5a51 +#define T20 /* 0xe9b6c7aa */ (T_MASK ^ 0x16493855) +#define T21 /* 0xd62f105d */ (T_MASK ^ 0x29d0efa2) +#define T22 0x02441453 +#define T23 /* 0xd8a1e681 */ (T_MASK ^ 0x275e197e) +#define T24 /* 0xe7d3fbc8 */ (T_MASK ^ 0x182c0437) +#define T25 0x21e1cde6 +#define T26 /* 0xc33707d6 */ (T_MASK ^ 0x3cc8f829) +#define T27 /* 0xf4d50d87 */ (T_MASK ^ 0x0b2af278) +#define T28 0x455a14ed +#define T29 /* 0xa9e3e905 */ (T_MASK ^ 0x561c16fa) +#define T30 /* 0xfcefa3f8 */ (T_MASK ^ 0x03105c07) +#define T31 0x676f02d9 +#define T32 /* 0x8d2a4c8a */ (T_MASK ^ 0x72d5b375) +#define T33 /* 0xfffa3942 */ (T_MASK ^ 0x0005c6bd) +#define T34 /* 0x8771f681 */ (T_MASK ^ 0x788e097e) +#define T35 0x6d9d6122 +#define T36 /* 0xfde5380c */ (T_MASK ^ 0x021ac7f3) +#define T37 /* 0xa4beea44 */ (T_MASK ^ 0x5b4115bb) +#define T38 0x4bdecfa9 +#define T39 /* 0xf6bb4b60 */ (T_MASK ^ 0x0944b49f) +#define T40 /* 0xbebfbc70 */ (T_MASK ^ 0x4140438f) +#define T41 0x289b7ec6 +#define T42 /* 0xeaa127fa */ (T_MASK ^ 0x155ed805) +#define T43 /* 0xd4ef3085 */ (T_MASK ^ 0x2b10cf7a) +#define T44 0x04881d05 +#define T45 /* 0xd9d4d039 */ (T_MASK ^ 0x262b2fc6) +#define T46 /* 0xe6db99e5 */ (T_MASK ^ 0x1924661a) +#define T47 0x1fa27cf8 +#define T48 /* 0xc4ac5665 */ (T_MASK ^ 0x3b53a99a) +#define T49 /* 0xf4292244 */ (T_MASK ^ 0x0bd6ddbb) +#define T50 0x432aff97 +#define T51 /* 0xab9423a7 */ (T_MASK ^ 0x546bdc58) +#define T52 /* 0xfc93a039 */ (T_MASK ^ 0x036c5fc6) +#define T53 0x655b59c3 +#define T54 /* 0x8f0ccc92 */ (T_MASK ^ 0x70f3336d) +#define T55 /* 0xffeff47d */ (T_MASK ^ 0x00100b82) +#define T56 /* 0x85845dd1 */ (T_MASK ^ 0x7a7ba22e) +#define T57 0x6fa87e4f +#define T58 /* 0xfe2ce6e0 */ (T_MASK ^ 0x01d3191f) +#define T59 /* 0xa3014314 */ (T_MASK ^ 0x5cfebceb) +#define T60 0x4e0811a1 +#define T61 /* 0xf7537e82 */ (T_MASK ^ 0x08ac817d) +#define T62 /* 0xbd3af235 */ (T_MASK ^ 0x42c50dca) +#define T63 0x2ad7d2bb +#define T64 /* 0xeb86d391 */ (T_MASK ^ 0x14792c6e) + + +static void +md5_process(md5_state_t *pms, const md5_byte_t *data /*[64]*/) +{ + md5_word_t + a = pms->abcd[0], b = pms->abcd[1], + c = pms->abcd[2], d = pms->abcd[3]; + md5_word_t t; +#if BYTE_ORDER > 0 + /* Define storage only for big-endian CPUs. */ + md5_word_t X[16]; +#else + /* Define storage for little-endian or both types of CPUs. */ + md5_word_t xbuf[16]; + const md5_word_t *X; +#endif + + { +#if BYTE_ORDER == 0 + /* + * Determine dynamically whether this is a big-endian or + * little-endian machine, since we can use a more efficient + * algorithm on the latter. + */ + static const int w = 1; + + if (*((const md5_byte_t *)&w)) /* dynamic little-endian */ +#endif +#if BYTE_ORDER <= 0 /* little-endian */ + { + /* + * On little-endian machines, we can process properly aligned + * data without copying it. + */ + if (!((data - (const md5_byte_t *)0) & 3)) { + /* data are properly aligned */ + X = (const md5_word_t *)data; + } else { + /* not aligned */ + memcpy(xbuf, data, 64); + X = xbuf; + } + } +#endif +#if BYTE_ORDER == 0 + else /* dynamic big-endian */ +#endif +#if BYTE_ORDER >= 0 /* big-endian */ + { + /* + * On big-endian machines, we must arrange the bytes in the + * right order. + */ + const md5_byte_t *xp = data; + int i; + +# if BYTE_ORDER == 0 + X = xbuf; /* (dynamic only) */ +# else +# define xbuf X /* (static only) */ +# endif + for (i = 0; i < 16; ++i, xp += 4) + xbuf[i] = xp[0] + (xp[1] << 8) + (xp[2] << 16) + (xp[3] << 24); + } +#endif + } + +#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32 - (n)))) + + /* Round 1. */ + /* Let [abcd k s i] denote the operation + a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */ +#define F(x, y, z) (((x) & (y)) | (~(x) & (z))) +#define SET(a, b, c, d, k, s, Ti)\ + t = a + F(b,c,d) + X[k] + Ti;\ + a = ROTATE_LEFT(t, s) + b + /* Do the following 16 operations. */ + SET(a, b, c, d, 0, 7, T1); + SET(d, a, b, c, 1, 12, T2); + SET(c, d, a, b, 2, 17, T3); + SET(b, c, d, a, 3, 22, T4); + SET(a, b, c, d, 4, 7, T5); + SET(d, a, b, c, 5, 12, T6); + SET(c, d, a, b, 6, 17, T7); + SET(b, c, d, a, 7, 22, T8); + SET(a, b, c, d, 8, 7, T9); + SET(d, a, b, c, 9, 12, T10); + SET(c, d, a, b, 10, 17, T11); + SET(b, c, d, a, 11, 22, T12); + SET(a, b, c, d, 12, 7, T13); + SET(d, a, b, c, 13, 12, T14); + SET(c, d, a, b, 14, 17, T15); + SET(b, c, d, a, 15, 22, T16); +#undef SET + + /* Round 2. */ + /* Let [abcd k s i] denote the operation + a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */ +#define G(x, y, z) (((x) & (z)) | ((y) & ~(z))) +#define SET(a, b, c, d, k, s, Ti)\ + t = a + G(b,c,d) + X[k] + Ti;\ + a = ROTATE_LEFT(t, s) + b + /* Do the following 16 operations. */ + SET(a, b, c, d, 1, 5, T17); + SET(d, a, b, c, 6, 9, T18); + SET(c, d, a, b, 11, 14, T19); + SET(b, c, d, a, 0, 20, T20); + SET(a, b, c, d, 5, 5, T21); + SET(d, a, b, c, 10, 9, T22); + SET(c, d, a, b, 15, 14, T23); + SET(b, c, d, a, 4, 20, T24); + SET(a, b, c, d, 9, 5, T25); + SET(d, a, b, c, 14, 9, T26); + SET(c, d, a, b, 3, 14, T27); + SET(b, c, d, a, 8, 20, T28); + SET(a, b, c, d, 13, 5, T29); + SET(d, a, b, c, 2, 9, T30); + SET(c, d, a, b, 7, 14, T31); + SET(b, c, d, a, 12, 20, T32); +#undef SET + + /* Round 3. */ + /* Let [abcd k s t] denote the operation + a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */ +#define H(x, y, z) ((x) ^ (y) ^ (z)) +#define SET(a, b, c, d, k, s, Ti)\ + t = a + H(b,c,d) + X[k] + Ti;\ + a = ROTATE_LEFT(t, s) + b + /* Do the following 16 operations. */ + SET(a, b, c, d, 5, 4, T33); + SET(d, a, b, c, 8, 11, T34); + SET(c, d, a, b, 11, 16, T35); + SET(b, c, d, a, 14, 23, T36); + SET(a, b, c, d, 1, 4, T37); + SET(d, a, b, c, 4, 11, T38); + SET(c, d, a, b, 7, 16, T39); + SET(b, c, d, a, 10, 23, T40); + SET(a, b, c, d, 13, 4, T41); + SET(d, a, b, c, 0, 11, T42); + SET(c, d, a, b, 3, 16, T43); + SET(b, c, d, a, 6, 23, T44); + SET(a, b, c, d, 9, 4, T45); + SET(d, a, b, c, 12, 11, T46); + SET(c, d, a, b, 15, 16, T47); + SET(b, c, d, a, 2, 23, T48); +#undef SET + + /* Round 4. */ + /* Let [abcd k s t] denote the operation + a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */ +#define I(x, y, z) ((y) ^ ((x) | ~(z))) +#define SET(a, b, c, d, k, s, Ti)\ + t = a + I(b,c,d) + X[k] + Ti;\ + a = ROTATE_LEFT(t, s) + b + /* Do the following 16 operations. */ + SET(a, b, c, d, 0, 6, T49); + SET(d, a, b, c, 7, 10, T50); + SET(c, d, a, b, 14, 15, T51); + SET(b, c, d, a, 5, 21, T52); + SET(a, b, c, d, 12, 6, T53); + SET(d, a, b, c, 3, 10, T54); + SET(c, d, a, b, 10, 15, T55); + SET(b, c, d, a, 1, 21, T56); + SET(a, b, c, d, 8, 6, T57); + SET(d, a, b, c, 15, 10, T58); + SET(c, d, a, b, 6, 15, T59); + SET(b, c, d, a, 13, 21, T60); + SET(a, b, c, d, 4, 6, T61); + SET(d, a, b, c, 11, 10, T62); + SET(c, d, a, b, 2, 15, T63); + SET(b, c, d, a, 9, 21, T64); +#undef SET + + /* Then perform the following additions. (That is increment each + of the four registers by the value it had before this block + was started.) */ + pms->abcd[0] += a; + pms->abcd[1] += b; + pms->abcd[2] += c; + pms->abcd[3] += d; +} + +void +md5_init(md5_state_t *pms) +{ + pms->count[0] = pms->count[1] = 0; + pms->abcd[0] = 0x67452301; + pms->abcd[1] = /*0xefcdab89*/ T_MASK ^ 0x10325476; + pms->abcd[2] = /*0x98badcfe*/ T_MASK ^ 0x67452301; + pms->abcd[3] = 0x10325476; +} + +void +md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes) +{ + const md5_byte_t *p = data; + int left = nbytes; + int offset = (pms->count[0] >> 3) & 63; + md5_word_t nbits = (md5_word_t)(nbytes << 3); + + if (nbytes <= 0) + return; + + /* this special case is handled recursively */ + if (nbytes > INT_MAX - offset) { + int overlap; + + /* handle the append in two steps to prevent overflow */ + overlap = 64 - offset; + + md5_append(pms, data, overlap); + md5_append(pms, data + overlap, nbytes - overlap); + return; + } + + /* Update the message length. */ + pms->count[1] += nbytes >> 29; + pms->count[0] += nbits; + if (pms->count[0] < nbits) + pms->count[1]++; + + /* Process an initial partial block. */ + if (offset) { + int copy = (offset + nbytes > 64 ? 64 - offset : nbytes); + + memcpy(pms->buf + offset, p, copy); + if (offset + copy < 64) + return; + p += copy; + left -= copy; + md5_process(pms, pms->buf); + } + + /* Process full blocks. */ + for (; left >= 64; p += 64, left -= 64) + md5_process(pms, p); + + /* Process a final partial block. */ + if (left) + memcpy(pms->buf, p, left); +} + +void +md5_finish(md5_state_t *pms, md5_byte_t digest[16]) +{ + static const md5_byte_t pad[64] = { + 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + md5_byte_t data[8]; + int i; + + /* Save the length before padding. */ + for (i = 0; i < 8; ++i) + data[i] = (md5_byte_t)(pms->count[i >> 2] >> ((i & 3) << 3)); + /* Pad to 56 bytes mod 64. */ + md5_append(pms, pad, ((55 - (pms->count[0] >> 3)) & 63) + 1); + /* Append the length. */ + md5_append(pms, data, 8); + for (i = 0; i < 16; ++i) + digest[i] = (md5_byte_t)(pms->abcd[i >> 2] >> ((i & 3) << 3)); +} --- bash-3.2.orig/debian/compat +++ bash-3.2/debian/compat @@ -0,0 +1 @@ +5 --- bash-3.2.orig/debian/etc.inputrc +++ bash-3.2/debian/etc.inputrc @@ -0,0 +1,17 @@ +# /etc/inputrc - global inputrc for libreadline +# See readline(3readline) and `info readline' for more information. + +# Be 8 bit clean. +set input-meta on +set output-meta on + +# To allow the use of german 8bit-characters like the german umlauts, comment +# out the two lines below. However this makes the meta key not work as a meta +# key, which is annoying to those which don't need to type in 8-bit characters. + +#set meta-flag on +#set convert-meta off + +# use a visible bell if one is available +#set bell-style none +#set bell-style visible --- bash-3.2.orig/debian/bash.pot.uu +++ bash-3.2/debian/bash.pot.uu @@ -0,0 +1,450 @@ +begin-base64 644 bash-3.2.pot.gz +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 +==== --- bash-3.2.orig/debian/bash-doc.prerm +++ bash-3.2/debian/bash-doc.prerm @@ -0,0 +1,5 @@ +#! /bin/sh -e + +install-info --quiet --remove bashref + +#DEBHELPER# --- bash-3.2.orig/debian/skel.profile +++ bash-3.2/debian/skel.profile @@ -0,0 +1,22 @@ +# ~/.profile: executed by the command interpreter for login shells. +# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login +# exists. +# see /usr/share/doc/bash/examples/startup-files for examples. +# the files are located in the bash-doc package. + +# the default umask is set in /etc/profile; for setting the umask +# for ssh logins, install and configure the libpam-umask package. +#umask 022 + +# if running bash +if [ -n "$BASH_VERSION" ]; then + # include .bashrc if it exists + if [ -f "$HOME/.bashrc" ]; then + . "$HOME/.bashrc" + fi +fi + +# set PATH so it includes user's private bin if it exists +if [ -d "$HOME/bin" ] ; then + PATH="$HOME/bin:$PATH" +fi --- bash-3.2.orig/debian/watch +++ bash-3.2/debian/watch @@ -0,0 +1,2 @@ +version=2 +ftp://ftp.gnu.org/gnu/bash/bash-([\d\.]*).tar.gz debian uupdate --- bash-3.2.orig/debian/bashdb.prerm +++ bash-3.2/debian/bashdb.prerm @@ -0,0 +1,5 @@ +#! /bin/sh -e + +install-info --quiet --remove bashdb + +#DEBHELPER# --- bash-3.2.orig/debian/bash-minimal.1 +++ bash-3.2/debian/bash-minimal.1 @@ -0,0 +1,62 @@ +.TH BASH 1 "May 24, 2003" bash "Debian Free Documentation" +.SH NAME +bash-minimal \- A bash version configured with minimal features +.SH SYNOPSIS +bash [\fB\s-1options\s0\fR] ... [\fI\s-1file\s0\fR] + +.SH DESCRIPTION + +\fBbash-minimal\fR is configured using --enable-minimal-config, which +produces a shell with minimal features, close to the historical Bourne +shell. This means: +.IP "\(bu" 4 +No alias expansion and the `alias' and `unalias' builtins. +.IP "\(bu" 4 +No support for the alternate form of the `for' command that +behaves like the C language `for' statement. +.IP "\(bu" 4 +No support for one-dimensional array shell variables. +.IP "\(bu" 4 +No support for `csh'-like history substitution. +.IP "\(bu" 4 +No `csh'-like brace expansion ( `b{a,b}c' ==> `bac bbc' ). +.IP "\(bu" 4 +No support for recognizing `time' as a reserved word and for +displaying timing statistics for the pipeline following `time'. This +allows pipelines as well as shell builtins and functions to be timed. +.IP "\(bu" 4 +No support for the `[[' conditional command. +.IP "\(bu" 4 +No support for a `csh'-like directory stack and the `pushd', +`popd', and `dirs' builtins +.IP "\(bu" 4 +No support for the `((...))' command. +.IP "\(bu" 4 +No support for the extended pattern matching features. +.IP "\(bu" 4 +No `help' builtin, which displays help on shell builtins and +variables. +.IP "\(bu" 4 +No command history and the `fc' and `history' builtin commands. +.IP "\(bu" 4 +No job control features. +.IP "\(bu" 4 +No special handling of filenames of the form `/dev/tcp/HOST/PORT' and +`/dev/udp/HOST/PORT' when used in redirections. +.IP "\(bu" 4 +No process substitution. +.IP "\(bu" 4 +No interpretation of a number of backslash-escaped characters in the +`$PS1', `$PS2', `$PS3', and `$PS4' prompt strings. +.IP "\(bu" 4 +No programmable completion facilities. +.IP "\(bu" 4 +No support for command-line editing and history with the Bash version +of the Readline library. +.IP "\(bu" 4 +No support for a "restricted shell". If this is enabled, Bash, when +called as `rbash', enters a restricted mode. +.IP "\(bu" 4 +No `select' builtin, which allows the generation of simple menus. +.SH "SEE ALSO" +.BR bash(1) --- bash-3.2.orig/debian/bashdb.emacsen-install +++ bash-3.2/debian/bashdb.emacsen-install @@ -0,0 +1,50 @@ +#! /bin/sh -e +# /usr/lib/emacsen-common/packages/install/bashdb + +# Written by Jim Van Zandt , borrowing heavily +# from the install scripts for gettext by Santiago Vila +# and octave by Dirk Eddelbuettel . + +FLAVOR=$1 +PACKAGE=bashdb + +if [ ${FLAVOR} = emacs ]; then exit 0; fi + +# bashdb's gud.el doesn't support emacs20 +if [ ${FLAVOR} = emacs20 ]; then exit 0; fi + +FILES="bashdb.el gud.el" + +echo install/${PACKAGE}: Handling install for emacsen flavor ${FLAVOR} + +#FLAVORTEST=`echo $FLAVOR | cut -c-6` +#if [ ${FLAVORTEST} = xemacs ] ; then +# SITEFLAG="-no-site-file" +#else +# SITEFLAG="--no-site-file" +#fi +FLAGS="${SITEFLAG} -q -batch -l path.el -f batch-byte-compile" + +ELDIR=/usr/share/emacs/site-lisp/${PACKAGE} +ELCDIR=/usr/share/${FLAVOR}/site-lisp/${PACKAGE} + +# Install-info-altdir does not actually exist. +# Maybe somebody will write it. +if test -x /usr/sbin/install-info-altdir; then + echo install/${PACKAGE}: install Info links for ${FLAVOR} + install-info-altdir --quiet --section "" "" --dirname=${FLAVOR} \ + /usr/share/info/${PACKAGE}.info.gz +fi + +install -m 755 -d ${ELCDIR} +cd ${ELDIR} +cp ${FILES} ${ELCDIR} +cd ${ELCDIR} + +cat << EOF > path.el +(setq load-path (cons "." load-path) byte-compile-warnings nil) +EOF +${FLAVOR} ${FLAGS} ${FILES} +rm -f *.el path.el + +exit 0 --- bash-3.2.orig/debian/bash-static.postinst +++ bash-3.2/debian/bash-static.postinst @@ -0,0 +1,13 @@ +#! /bin/sh + +set -e + +if [ "$1" = configure ] && dpkg --compare-versions "$2" le 3.2-4 \ + && [ -x /usr/sbin/add-shell ] +then + /usr/sbin/add-shell /bin/bash-static +fi + +#DEBHELPER# + +exit 0 --- bash-3.2.orig/debian/bash.preinst.c +++ bash-3.2/debian/bash.preinst.c @@ -0,0 +1,250 @@ +/* Copyright (c) 1999 Anthony Towns + * Copyright (c) 2000, 2002 Matthias Klose + * Copyright (c) 2008 Canonical Ltd + * + * You may freely use, distribute, and modify this program. + */ + +// Don't rely on /bin/sh and popen! + +#include +#include +#include +#include +#include +#include +#include +#include + +/* XXX: evil kludge, deal with arbitrary name lengths */ +#ifndef PATH_MAX +#define PATH_MAX 4096 +#endif + +#include "md5.h" + +int check_predepends(void) +{ + pid_t child; + + switch(child = fork()) { + case -1: + /* fork failed */ + return EXIT_FAILURE; + + case 0: + /* i'm the child */ + { + execl( "/usr/bin/dpkg", "/usr/bin/dpkg", + "--assert-support-predepends", NULL ); + _exit(127); + } + + default: + /* i'm the parent */ + { + int status; + pid_t pid; + pid = wait(&status); + if (pid == child) { + if (WIFEXITED(status) && WEXITSTATUS(status) == 0) { + return EXIT_SUCCESS; + } + } + } + } + return EXIT_FAILURE; +} + +#define BUFSIZE 8192 + +int md5sum_match(char *fn, char* fn_digest) +{ + md5_state_t md5; + md5_byte_t digest[16]; + unsigned char hexdigest[33]; + int i, j, fd; + size_t nbytes; + md5_byte_t buf[BUFSIZE]; + + // if not existant, md5sums don't match + if (access(fn, R_OK)) + return 0; + if ((fd = open(fn, O_RDONLY)) == -1) + return 0; + + md5_init(&md5); + while (nbytes = read(fd, buf, BUFSIZE)) + md5_append(&md5, buf, nbytes); + md5_finish(&md5, digest); + close(fd); + + for (i = j = 0; i < 16; i++) { + unsigned char c; + c = (digest[i] >> 4) & 0xf; + c = (c > 9) ? c + 'a' - 10 : c + '0'; + hexdigest[j++] = c; + c = (digest[i] & 0xf); + c = (c > 9) ? c + 'a' - 10 : c + '0'; + hexdigest[j++] = c; + } + hexdigest[j] = '\0'; +#ifdef NDEBUG + fprintf(stderr, "fn=%s, md5sum=%s, expected=%s\n", fn, hexdigest, fn_digest); +#endif + return !strcmp(fn_digest, hexdigest); +} + +int unmodified_file(char *fn, int md5sumc, unsigned char* md5sumv[]) +{ + int i; + + // if not existant, pretend its unmodified + if (access(fn, R_OK)) + return 1; + for (i = 0; i < md5sumc; i++) { + if (md5sum_match(fn, md5sumv[i])) + return 1; + } + return 0; +} + +unsigned char *md5sumv_bash_profile[] = { + "d1a8c44e7dd1bed2f3e75d1343b6e4e1", // dapper, edgy, etch + "0bc1802860b758732b862ef973cd79ff", // feisty, gutsy +}; +const int md5sumc_bash_profile = sizeof(md5sumv_bash_profile) / sizeof (char *); + +unsigned char *md5sumv_profile[] = { + "7d97942254c076a2ea5ea72180266420", // feisty, gutsy +}; +const int md5sumc_profile = sizeof(md5sumv_profile) / sizeof (char *); + +#ifdef BC_CONFIG +unsigned char *md5sumv_completion[] = { + "2bc0b6cf841eefd31d607e618f1ae29d", // dapper + "ae1d298e51ea7f8253eea8b99333561f", // edgy + "adc2e9fec28bd2d4a720e725294650f0", // feisty + "c8bce25ea68fb0312579a421df99955c", // gutsy, and last one in bash + "9da8d1c95748865d516764fb9af82af9", // etch, sid (last one in bash) +}; +const int md5sumc_completion = sizeof(md5sumv_completion) / sizeof (char *); +#endif + +char *check_diversion(void) +{ + pid_t child; + int pipedes[2]; + + if (pipe(pipedes)) + return NULL; + + + switch(child = fork()) { + case -1: + /* fork failed */ + close(pipedes[0]); + close(pipedes[1]); + return NULL; + + case 0: + /* i'm the child */ + { + if (dup2(pipedes[STDOUT_FILENO], STDOUT_FILENO) < 0) + _exit(127); + close(pipedes[STDIN_FILENO]); + close(pipedes[STDOUT_FILENO]); + execl( "/usr/sbin/dpkg-divert", "/usr/sbin/dpkg-divert", + "--list", "/bin/sh", NULL ); + _exit(127); + } + + default: + /* i'm the parent */ + { + static char line[1024]; + FILE *fd; + + close (pipedes[STDOUT_FILENO]); + fcntl (pipedes[STDIN_FILENO], F_SETFD, FD_CLOEXEC); + fd = fdopen (pipedes[STDIN_FILENO], "r"); + + while (fgets(line, 1024, fd) != NULL) { + line[strlen(line)-1] = '\0'; + break; + } + fclose(fd); + return line; + } + } + return NULL; +} + +const char *msg = + "As bash for Debian is destined to provide a working /bin/sh (pointing to\n" + "/bin/bash) your link will be overwritten by a default link.\n\n" + "If you don't want further upgrades to overwrite your customization, please\n" + "read /usr/share/doc/bash/README.Debian.gz for a more permanent solution.\n\n" + "[Press RETURN to continue]"; + +int main(void) { + int targetlen; + char target[PATH_MAX+1], answer[1024], *fn; + + fn = "/etc/skel/.bash_profile"; + if (!access(fn, R_OK)) { + if (unmodified_file(fn, md5sumc_bash_profile, md5sumv_bash_profile)) { + printf("removing %s in favour of /etc/skel/.profile\n", fn); + unlink(fn); + } + else { + fn = "/etc/skel/.profile"; + if (!access(fn, R_OK)) { + if (unmodified_file(fn, md5sumc_profile, md5sumv_profile)) { + printf("renaming /etc/skel/.bash_profile to %s\n", fn); + rename("/etc/skel/.bash_profile", fn); + } + } + } + } + +#ifdef BC_CONFIG + fn = "/etc/bash_completion"; + if (!access(fn, R_OK)) { + if (unmodified_file(fn, md5sumc_completion, md5sumv_completion)) { + printf("removing unmodified %s, now in package bash-completion\n", fn); + unlink(fn); + } + } +#endif + + if (check_predepends() != EXIT_SUCCESS) { + printf("\nPlease upgrade to a new version of dpkg\n\n"); + return EXIT_FAILURE; + } + targetlen = readlink("/bin/sh", target, PATH_MAX); + if (targetlen == -1) { + // error reading link. Will be overwritten. + puts("The bash upgrade discovered that something is wrong with your /bin/sh link."); + puts(msg); + fgets(answer, 1024, stdin); + return EXIT_SUCCESS; + } + target[targetlen] = '\0'; + if (strcmp(target, "bash") != 0 && strcmp(target, "/bin/bash") != 0) { + char *diversion = check_diversion(); + + if (diversion == NULL) + return EXIT_FAILURE; + // printf("diversion: /%s/\n", diversion); + if (strcmp(diversion, "") != 0) + // link is diverted + return EXIT_SUCCESS; + printf("The bash upgrade discovered that your /bin/sh link points to %s.\n", target); + puts(msg); + fgets(answer, 1024, stdin); + return EXIT_SUCCESS; + } + + return EXIT_SUCCESS; +} --- bash-3.2.orig/debian/bash.prerm +++ bash-3.2/debian/bash.prerm @@ -0,0 +1,22 @@ +#! /bin/bash + +set -e + +case "$1" in + upgrade) + update-alternatives --remove builtins.7.gz \ + /usr/share/man/man7/bash-builtins.7.gz + ;; + + remove|deconfigure) + ;; + + failed-upgrade) + ;; + *) + echo "prerm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# --- bash-3.2.orig/debian/bashdb.emacsen-startup +++ bash-3.2/debian/bashdb.emacsen-startup @@ -0,0 +1,20 @@ +;; -*-emacs-lisp-*- +;; +;; Emacs startup file for the Debian bashdb package +;; +;; Originally contributed by Nils Naumann +;; Modified by Dirk Eddelbuettel +;; Adapted for dh-make by Jim Van Zandt + +;; The bashdb package follows the Debian/GNU Linux 'emacsen' policy and +;; byte-compiles its elisp files for each 'emacs flavor' (emacs19, +;; xemacs19, emacs20, xemacs20...). The compiled code is then +;; installed in a subdirectory of the respective site-lisp directory. +;; We have to add this to the load-path: +(unless (eq flavor 'emacs20) + (let ((package-dir (concat "/usr/share/" + (symbol-name flavor) + "/site-lisp/bashdb"))) + (when (file-directory-p package-dir) + (setq load-path (cons package-dir load-path)))) + (autoload 'bashdb "bashdb" "Run the bash debugger." t)) --- bash-3.2.orig/debian/bash.postinst +++ bash-3.2/debian/bash.postinst @@ -0,0 +1,26 @@ +#! /bin/bash + +set -e + +# the symlink is in the package now. So this should never happen ... +if [ ! -e /bin/sh ]; then + ln -s bash /bin/sh +fi + +update-alternatives --install \ + /usr/share/man/man7/builtins.7.gz \ + builtins.7.gz \ + /usr/share/man/man7/bash-builtins.7.gz \ + 10 \ + || true + +if [ "$1" = configure ] && dpkg --compare-versions "$2" le 3.2-3 \ + && [ -x /usr/sbin/add-shell ] +then + /usr/sbin/add-shell /bin/bash + /usr/sbin/add-shell /bin/rbash +fi + +#DEBHELPER# + +exit 0 --- bash-3.2.orig/debian/inputrc.arrows +++ bash-3.2/debian/inputrc.arrows @@ -0,0 +1,30 @@ +# This file controls the behaviour of line input editing for +# programs that use the Gnu Readline library. +# +# Arrow keys in keypad mode +# +"\C-[OD" backward-char +"\C-[OC" forward-char +"\C-[OA" previous-history +"\C-[OB" next-history +# +# Arrow keys in ANSI mode +# +"\C-[[D" backward-char +"\C-[[C" forward-char +"\C-[[A" previous-history +"\C-[[B" next-history +# +# Arrow keys in 8 bit keypad mode +# +"\C-M-OD" backward-char +"\C-M-OC" forward-char +"\C-M-OA" previous-history +"\C-M-OB" next-history +# +# Arrow keys in 8 bit ANSI mode +# +"\C-M-[D" backward-char +"\C-M-[C" forward-char +"\C-M-[A" previous-history +"\C-M-[B" next-history --- bash-3.2.orig/debian/bash-static.postrm +++ bash-3.2/debian/bash-static.postrm @@ -0,0 +1,21 @@ +#! /bin/sh + +set -e + +case "$1" in + upgrade|failed-upgrade|abort-install|abort-upgrade) + ;; + remove|purge|disappear) + if [ -x /usr/sbin/remove-shell ] && [ -f /etc/shells ]; then + /usr/sbin/remove-shell /bin/bash-static + fi + ;; + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 --- bash-3.2.orig/debian/clear_console.c +++ bash-3.2/debian/clear_console.c @@ -0,0 +1,285 @@ +/* +Copyright (C) 2006-2008 Canonical Ltd. + +clear_console and it's man page are free software; you can redistribute it +and/or modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2, or (at your +option) any later version. +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#if defined(__linux) +#include +#include +#elif defined(__FreeBSD_kernel__) +#include +#include +#endif + +#include +#include + +#define VERSION "0.1" + +char* progname; +int quiet = 0; + +void usage() +{ + fprintf(stderr, "Usage: %s [option]\n", progname); + fprintf(stderr, "valid options are:\n"); + fprintf(stderr, "\t-q --quiet don't print error messages\n"); + fprintf(stderr, "\t-h --help display this help text and exit\n"); + fprintf(stderr, "\t-V --version display version information and exit\n"); +} + +const struct option opts[] = +{ + /* operations */ + {"help", no_argument, 0, 'h'}, + {"version", no_argument, 0, 'V'}, + {"quiet", no_argument, 0, 'q'}, + {0, 0, 0, 0} +}; + +static int putch(int c) +{ + return putchar(c); +} + + +/* taken from console-utils, lib/misc-console-utils.c */ + +int is_a_console(int fd) +{ +#if defined(__linux__) + char arg; +#elif defined(__FreeBSD_kernel__) + int arg; +#endif + + arg = 0; + return (ioctl(fd, KDGKBTYPE, &arg) == 0 + && ((arg == KB_OTHER) || (arg == KB_101) || (arg == KB_84))); +} + +static int open_a_console(char *fnam) +{ + int fd; + + /* try read-only */ + fd = open(fnam, O_RDWR); + + /* if failed, try read-only */ + if (fd < 0 && errno == EACCES) + fd = open(fnam, O_RDONLY); + + /* if failed, try write-only */ + if (fd < 0 && errno == EACCES) + fd = open(fnam, O_WRONLY); + + /* if failed, fail */ + if (fd < 0) + return -1; + + /* if not a console, fail */ + if (! is_a_console(fd)) + { + close(fd); + return -1; + } + + /* success */ + return fd; +} + +/* + * Get an fd for use with kbd/console ioctls. + * We try several things because opening /dev/console will fail + * if someone else used X (which does a chown on /dev/console). + * + * if tty_name is non-NULL, try this one instead. + */ + +int get_console_fd(char* tty_name) +{ + int fd; + + if (tty_name) + { + if (-1 == (fd = open_a_console(tty_name))) + return -1; + else + return fd; + } + + fd = open_a_console("/dev/tty"); + if (fd >= 0) + return fd; + + fd = open_a_console("/dev/tty0"); + if (fd >= 0) + return fd; + + fd = open_a_console("/dev/console"); + if (fd >= 0) + return fd; + + for (fd = 0; fd < 3; fd++) + if (is_a_console(fd)) + return fd; + +#if 0 + fprintf(stderr, + _("Couldnt get a file descriptor referring to the console\n")); +#endif + return -1; /* total failure */ +} + + +int is_pseudo_tty(int fd) +{ + char *tty = ttyname(fd); + + if (!tty) + { + if (!quiet) + perror("ttyname"); + return 0; + } + + if (strlen(tty) >= 9 && !strncmp(tty, "/dev/pts/", 9)) + return 1; + + if (strlen(tty) >= 8 && !strncmp(tty, "/dev/tty", 8) + && tty[8] >= 'a' && tty[8] <= 'z') + return 1; + + return 0; +} + +int clear_console(int fd) +{ + int num, tmp_num; +#if defined(__linux__) + struct vt_stat vtstat; +#endif + + /* clear screen */ + setupterm((char *) 0, 1, (int *) 0); + if (tputs(clear_screen, lines > 0 ? lines : 1, putch) == ERR) + { + exit(1); + } + + if (is_pseudo_tty(STDIN_FILENO)) + return 0; + + if (!strcmp(getenv("TERM"), "screen")) + return 0; + + /* get current vt */ +#if defined(__linux__) + if (ioctl(fd, VT_GETSTATE, &vtstat) < 0) +#elif defined(__FreeBSD_kernel__) + if (ioctl(fd, VT_ACTIVATE, &num) < 0) +#endif + { + if (!quiet) + fprintf(stderr, "%s: cannot get VTstate\n", progname); + exit(1); + } +#if defined(__linux__) + num = vtstat.v_active; +#endif + tmp_num = (num == 1 ? 2 : 1); + + /* switch vt to clear the scrollback buffer */ + if (ioctl(fd, VT_ACTIVATE, tmp_num)) + { + if (!quiet) + perror("chvt: VT_ACTIVATE"); + exit(1); + } + + if (ioctl(fd, VT_WAITACTIVE, tmp_num)) + { + if (!quiet) + perror("VT_WAITACTIVE"); + exit(1); + } + + /* switch back */ + if (ioctl(fd, VT_ACTIVATE, num)) + { + if (!quiet) + perror("chvt: VT_ACTIVATE"); + exit(1); + } + + if (ioctl(fd, VT_WAITACTIVE, num)) + { + if (!quiet) + perror("VT_WAITACTIVE"); + exit(1); + } + return 0; +} + +int main (int argc, char* argv[]) +{ + int fd; + int result; /* option handling */ + int an_option; + + if ((progname = strrchr(argv[0], '/')) == NULL) + progname = argv[0]; + else + progname++; + + while (1) + { + result = getopt_long(argc, argv, "Vhq", opts, &an_option); + + if (result == EOF) + break; + + switch (result) + { + case 'V': + fprintf(stdout, "%s: Version %s\n", progname, VERSION); + exit (0); + case 'h': + usage(); + exit (0); + + case 'q': + quiet = 1; + } + } + + if (optind < argc) + { + if (!quiet) + fprintf(stderr, "%s: no non-option arguments are valid", progname); + exit(1); + } + + if ((fd = get_console_fd(NULL)) == -1) + { + if (!quiet) + fprintf(stderr, "%s: terminal is not a console\n", progname); + exit(1); + } + + clear_console(fd); + + return 0; +} --- bash-3.2.orig/debian/bashdb.postinst +++ bash-3.2/debian/bashdb.postinst @@ -0,0 +1,9 @@ +#! /bin/sh + +set -e + +install-info --quiet --section "Shells" "Shells" \ + --description="Debugging with the BASH debugger" \ + /usr/share/info/bashdb.info.gz + +#DEBHELPER# --- bash-3.2.orig/debian/README +++ bash-3.2/debian/README @@ -0,0 +1,140 @@ +Bash Configuration for Debian +----------------------------- + +A number of patches for the bash sources is applied for the Debian build +of bash. See the details at the end of the file. + +The bash package was built using the following configuration options: + + --with-curses \ + --disable-net-redirections \ + --enable-largefile \ + +bash-static additionally configured with --enable-static-link, bash-minimal +configured with --enable-minimal-config --enable-largefile. + + +A kind of FAQ for bash on Debian GNU/{Linux,Hurd} +------------------------------------------------- + +0. symlinked directory completion behavior + + Starting with readline-4.2a, completion on symlinks that point + to directories does not append the slash. To restore the behaviour + found in readline-4.2, add to /etc/inputrc or ~/.inputrc: + + set mark-symlinked-directories on + +1. How can I make /bin/sh point to something else? + + Type + + dpkg-divert --add /bin/sh + + and then point it to whatever you want. Upgrades to bash won't upgrade + the /bin/sh symlink. To put /bin/sh under dpkg control again, type + + dpkg-divert --remove /bin/sh + + +2. How can I make bash 8-bit clean so I can type hi-bit characters + directly? + + Remove the comments from the indicated lines in /etc/inputrc. + It doesn't ship this way because otherwise the Meta bindings will not work. + +3. How to get rid off annoying beeps for ambiguous completions? + + Put in /etc/inputrc (or in your ~/.inputrc): + + set show-all-if-ambiguous on + + Other people prefer: + + set bell-style none + +4. bash doesn't display prompts correctly. + + When using colors in prompts (or escape characters), then make sure + those characters are surrounded by \[ and \]. For more information + look at the man page bash(1) and search for PROMPTING. + +5. What is /etc/bash.bashrc? It doesn't seem to be documented. + + The Debian version of bash is compiled with a special option + (-DSYS_BASHRC) that makes bash read /etc/bash.bashrc before ~/.bashrc + for interactive non-login shells. So, on Debian systems, + /etc/bash.bashrc is to ~/.bashrc as /etc/profile is to + ~/.bash_profile. + +6. bash does not check $PATH if hash fails + + bash hashes the location of recently executed commands. When a command + is moved to a new location in the PATH, the command is still in the PATH + but the hash table still records the old location. + + For performance reasons bash does not remove the command from the hash + and relook it up in PATH. + + Use 'hash -r' manually or set a bash option: 'shopt -s checkhash'. + +7. Bourne-style shells have always accepted multiple directory name arguments + to cd. If the user doesn't like it, have him define a shell function: + + cd() + { + case $# in + 0|1) ;; + *) echo "cd: too many arguments ; return 2 ;; + esac + builtin cd "$@" + } + +8. key bindings for ESC + + Consider the following .inputrc: + + set editing-mode vi + + keymap vi + "\M-[D": backward-char + "\M-[C": forward-char + "\M-[A": previous-history + "\M-[B": next-history + + And, just to be certain, set -o reports that vi is on. + + However, ESC k does not send me to the previous line. + + I'm guessing that this is a conflict between bash's concept of a meta + keymap and its concept of vi's command-mode character -- which is to + say that its data structures don't properly reflect its implementation. + + Note that if I remove the meta prefix, leaving lines like: + "[A": previous-history + + That vi command mode keys work fine, and I can use the arrow keys in vi + mode, *provided I'm already in command mode already*. In other words, + bash is doing something wrong here such that it doesn't see the escape + character at the begining of the key sequence even when in vi insert mode. + + Comment from the upstream author: "This guy destroyed the key binding for + ESC, which effectively disabled vi command mode. It's not as simple as he + paints it to be -- the binding for ESC in the vi insertion keymap *must* + be a function because of the other things needed when switching + from insert mode to command mode. + + If he wants to change something in vi's command mode, he needs + to use `set keymap vi-command' and enter key bindings without + the \M- prefix (as he discovered)." + +9. Why is bash configured with --disable-net-redirections? + + It can produce completely unexpected results. This kind of + feature should not be part of a shell but a special tool. And + that tool has existed for years already, it's called netcat. + + +Patches Applied to the Bash Sources +----------------------------------- + --- bash-3.2.orig/debian/control +++ bash-3.2/debian/control @@ -0,0 +1,89 @@ +Source: bash +Section: base +Priority: required +Maintainer: Ubuntu Core developers +XSBC-Original-Maintainer: Matthias Klose +Standards-Version: 3.7.3 +Build-Depends: autoconf, autotools-dev, patch, bison, libncurses5-dev, + texinfo, debhelper (>= 5), texi2html, locales, gettext, sharutils, time +Build-Depends-Indep: texlive-latex-base + +Package: bash +Architecture: any +Pre-Depends: ${shlibs:Pre-Depends} +Depends: base-files (>= 2.1.12), debianutils (>= 2.15) +Recommends: bash-completion (>= 20060301-0) +Conflicts: bash-completion (<< 20060301-0) +Replaces: bash-doc (<= 2.05-1), bash-completion (<< 20060301-0) +Suggests: bash-doc +Essential: yes +Section: shells +Priority: required +Description: The GNU Bourne Again SHell + Bash is an sh-compatible command language interpreter that executes + commands read from the standard input or from a file. Bash also + incorporates useful features from the Korn and C shells (ksh and csh). + . + Bash is ultimately intended to be a conformant implementation of the + IEEE POSIX Shell and Tools specification (IEEE Working Group 1003.2). + . + The Programmable Completion Code, by Ian Macdonald, is now found in + the bash-completion package. + +Package: bash-minimal +Architecture: any +Depends: ${shlibs:Depends}, passwd (>= 1:4.0.3-10) +Suggests: bash-doc +Section: shells +Priority: optional +Description: The GNU Bourne Again SHell (minimal version) + Bash is an sh-compatible command language interpreter that executes + commands read from the standard input or from a file. Bash also + incorporates useful features from the Korn and C shells (ksh and csh). + . + Configured using --enable-minimal-config. + +Package: bash-static +Architecture: any +Depends: passwd (>= 1:4.0.3-10) +Suggests: bash-doc +Section: shells +Priority: optional +Description: The GNU Bourne Again SHell (static version) + Bash is an sh-compatible command language interpreter that executes + commands read from the standard input or from a file. Bash also + incorporates useful features from the Korn and C shells (ksh and csh). + . + Statically linked. + +Package: bash-builtins +Architecture: any +Depends: bash (= ${binary:Version}) +Section: utils +Priority: optional +Description: Bash loadable builtins - headers & examples + Bash can dynamically load new builtin commands. Included are the + necessary headers to compile your own builtins and lots of examples. + +Package: bash-doc +Architecture: all +Section: doc +Priority: optional +Replaces: bash (<< 3.2-1) +Description: Documentation and examples for the The GNU Bourne Again SHell + Bash is an sh-compatible command language interpreter that executes + commands read from the standard input or from a file. Bash also + incorporates useful features from the Korn and C shells (ksh and csh). + . + This package contains the distributable documentation, all the + examples and the main changelog. + +Package: bashdb +Architecture: any +Depends: ${shlibs:Depends} +Suggests: bash-doc +Section: shells +Priority: optional +Description: The GNU Bourne Again SHell Debugger + The bash debugger is a patched version of bash 2.05b to provide + debugging support and better error reporting. --- bash-3.2.orig/debian/patches/bash-aliases-repeat.dpatch +++ bash-3.2/debian/patches/bash-aliases-repeat.dpatch @@ -0,0 +1,45 @@ +#! /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 bug in Bash_aliases example. + +--- examples/startup-files/Bash_aliases~ 2008-04-19 21:57:24.000000000 +0200 ++++ examples/startup-files/Bash_aliases 2008-04-19 21:59:43.000000000 +0200 +@@ -41,20 +41,20 @@ + { + local count="$1" i; + shift; +- for i in $(seq 1 "$count"); ++ for i in $(_seq 1 "$count"); + do + eval "$@"; + done + } + + # Subfunction needed by `repeat'. +-seq () ++_seq () + { + local lower upper output; + lower=$1 upper=$2; + + if [ $lower -ge $upper ]; then return; fi +- while [ $lower -le $upper ]; ++ while [ $lower -lt $upper ]; + do + echo -n "$lower " + lower=$(($lower + 1)) --- bash-3.2.orig/debian/patches/bash32-041.dpatch +++ bash-3.2/debian/patches/bash32-041.dpatch @@ -0,0 +1,173 @@ +#! /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: bash-3.2 upstream patch bash32-041 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-041 + +Bug-Reported-by: Dan Jacobson +Bug-Reference-ID: <873arjs11h.fsf@jidanni.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-02/msg00049.html + +Bug-Description: + +Bash saved and restored the value of `set -o history' while sourcing files, +preventing users from turning off history with `set +o history' in .bashrc. + +Patch: + +*** ../bash-3.2-patched/bashhist.c 2005-12-26 13:31:16.000000000 -0500 +--- bashhist.c 2008-08-17 13:07:40.000000000 -0400 +*************** +*** 81,84 **** +--- 81,85 ---- + becomes zero when we read lines from a file, for example. */ + int remember_on_history = 1; ++ int enable_history_list = 1; /* value for `set -o history' */ + + /* The number of lines that Bash has added to this history session. The +*************** +*** 235,239 **** + history_expansion_inhibited = 1; + #endif +! remember_on_history = interact != 0; + history_inhibit_expansion_function = bash_history_inhibit_expansion; + } +--- 236,240 ---- + history_expansion_inhibited = 1; + #endif +! remember_on_history = enable_history_list = interact != 0; + history_inhibit_expansion_function = bash_history_inhibit_expansion; + } +*** ../bash-3.2-patched/builtins/set.def 2006-07-27 09:41:43.000000000 -0400 +--- builtins/set.def 2008-08-14 16:33:41.000000000 -0400 +*************** +*** 190,194 **** + #endif /* BANG_HISTORY */ + #if defined (HISTORY) +! { "history", '\0', &remember_on_history, bash_set_history, (setopt_get_func_t *)NULL }, + #endif + { "ignoreeof", '\0', &ignoreeof, set_ignoreeof, (setopt_get_func_t *)NULL }, +--- 198,202 ---- + #endif /* BANG_HISTORY */ + #if defined (HISTORY) +! { "history", '\0', &enable_history_list, bash_set_history, (setopt_get_func_t *)NULL }, + #endif + { "ignoreeof", '\0', &ignoreeof, set_ignoreeof, (setopt_get_func_t *)NULL }, +*************** +*** 382,385 **** +--- 390,394 ---- + if (on_or_off == FLAG_ON) + { ++ enable_history_list = 1; + bash_history_enable (); + if (history_lines_this_session == 0) +*************** +*** 387,392 **** + } + else +! bash_history_disable (); +! return (1 - remember_on_history); + } + #endif +--- 396,404 ---- + } + else +! { +! enable_history_list = 0; +! bash_history_disable (); +! } +! return (1 - enable_history_list); + } + #endif +*************** +*** 566,570 **** + { + #if defined (HISTORY) +! remember_on_history = 1; + #endif + ignoreeof = 0; +--- 578,582 ---- + { + #if defined (HISTORY) +! remember_on_history = enable_history_list = 1; + #endif + ignoreeof = 0; +*** ../bash-3.2-patched/builtins/evalstring.c 2006-07-28 15:12:16.000000000 -0400 +--- builtins/evalstring.c 2008-11-10 21:17:16.000000000 -0500 +*************** +*** 68,71 **** +--- 68,79 ---- + static int cat_file __P((REDIRECT *)); + ++ #if defined (HISTORY) ++ static void ++ set_history_remembering () ++ { ++ remember_on_history = enable_history_list; ++ } ++ #endif ++ + /* How to force parse_and_execute () to clean up after itself. */ + void +*************** +*** 116,120 **** + + #if defined (HISTORY) +! unwind_protect_int (remember_on_history); /* can be used in scripts */ + # if defined (BANG_HISTORY) + if (interactive_shell) +--- 124,131 ---- + + #if defined (HISTORY) +! if (parse_and_execute_level == 0) +! add_unwind_protect (set_history_remembering, (char *)NULL); +! else +! unwind_protect_int (remember_on_history); /* can be used in scripts */ + # if defined (BANG_HISTORY) + if (interactive_shell) +*** ../bash-3.2-patched/bashhist.h 2005-07-01 15:44:41.000000000 -0400 +--- bashhist.h 2008-08-17 12:51:07.000000000 -0400 +*************** +*** 32,35 **** +--- 32,38 ---- + + extern int remember_on_history; ++ extern int enable_history_list; /* value for `set -o history' */ ++ extern int literal_history; /* controlled by `shopt lithist' */ ++ extern int force_append_history; + extern int history_lines_this_session; + extern int history_lines_in_file; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 40 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 41 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bashdb-updates.dpatch +++ bash-3.2/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 + --- bash-3.2.orig/debian/patches/po-sv.dpatch +++ bash-3.2/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 , 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 \n" ++"Language-Team: Swedish \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 "" ++msgstr "" ++ ++#: 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 " ++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." ++ --- bash-3.2.orig/debian/patches/bashdb.dpatch +++ bash-3.2/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 --- bash-3.2.orig/debian/patches/rl-setenv.dpatch +++ bash-3.2/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); --- bash-3.2.orig/debian/patches/exec-redirections-man.dpatch +++ bash-3.2/debian/patches/exec-redirections-man.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 + +--- bash/doc/bash.1~ 2006-07-12 20:16:36.000000000 -0400 ++++ bash/doc/bash.1 2006-07-12 20:26:49.000000000 -0400 +@@ -3014,6 +3014,10 @@ + Redirections using file descriptors greater than 9 should be used with + care, as they may conflict with file descriptors the shell uses + internally. ++.PP ++Note that the ++.B exec ++builtin command can make redirections take effect in the current shell. + .SS Redirecting Input + .PP + Redirection of input causes the file whose name results from + --- bash-3.2.orig/debian/patches/bash32-010.dpatch +++ bash-3.2/debian/patches/bash32-010.dpatch @@ -0,0 +1,226 @@ +#! /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: bash-3.2 upstream patch bash32-010 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-010 + +Bug-Reported-by: Ryan Waldron +Bug-Reference-ID: <20070119065603.546D011E9C@kansas.erebor.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-01/msg00059.html + +Bug-Description: + +The glibc implementation of regcomp/regexec does not allow backslashes to +escape "ordinary" pattern characters when matching. Bash used backslashes +to quote all characters when the pattern argument to the [[ special +command's =~ operator was quoted. This caused the match to fail on Linux +and other systems using GNU libc. + +Patch: + +*** ../bash-3.2.9/pathexp.h Sat Feb 19 17:23:18 2005 +--- pathexp.h Wed Jan 31 22:53:16 2007 +*************** +*** 1,5 **** + /* pathexp.h -- The shell interface to the globbing library. */ + +! /* Copyright (C) 1987-2005 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 1,5 ---- + /* pathexp.h -- The shell interface to the globbing library. */ + +! /* Copyright (C) 1987-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 33,36 **** +--- 33,37 ---- + #define QGLOB_CVTNULL 0x01 /* convert QUOTED_NULL strings to '\0' */ + #define QGLOB_FILENAME 0x02 /* do correct quoting for matching filenames */ ++ #define QGLOB_REGEXP 0x04 /* quote an ERE for regcomp/regexec */ + + #if defined (EXTENDED_GLOB) +*** ../bash-3.2.9/pathexp.c Mon May 6 13:43:05 2002 +--- pathexp.c Mon Feb 26 16:59:23 2007 +*************** +*** 1,5 **** + /* pathexp.c -- The shell interface to the globbing library. */ + +! /* Copyright (C) 1995-2002 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 1,5 ---- + /* pathexp.c -- The shell interface to the globbing library. */ + +! /* Copyright (C) 1995-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 111,114 **** +--- 111,141 ---- + } + ++ /* Return 1 if C is a character that is `special' in a POSIX ERE and needs to ++ be quoted to match itself. */ ++ static inline int ++ ere_char (c) ++ int c; ++ { ++ switch (c) ++ { ++ case '.': ++ case '[': ++ case '\\': ++ case '(': ++ case ')': ++ case '*': ++ case '+': ++ case '?': ++ case '{': ++ case '|': ++ case '^': ++ case '$': ++ return 1; ++ default: ++ return 0; ++ } ++ return (0); ++ } ++ + /* PATHNAME can contain characters prefixed by CTLESC; this indicates + that the character is to be quoted. We quote it here in the style +*************** +*** 143,146 **** +--- 170,175 ---- + if ((qflags & QGLOB_FILENAME) && pathname[i+1] == '/') + continue; ++ if ((qflags & QGLOB_REGEXP) && ere_char (pathname[i+1]) == 0) ++ continue; + temp[j++] = '\\'; + i++; +*** ../bash-3.2.9/subst.c Tue Nov 7 16:14:41 2006 +--- subst.c Wed Jan 31 23:09:58 2007 +*************** +*** 5,9 **** + beauty, but, hey, you're alright.'' */ + +! /* Copyright (C) 1987-2006 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 5,9 ---- + beauty, but, hey, you're alright.'' */ + +! /* Copyright (C) 1987-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 2647,2655 **** + /* This needs better error handling. */ + /* Expand W for use as an argument to a unary or binary operator in a +! [[...]] expression. If SPECIAL is nonzero, this is the rhs argument + to the != or == operator, and should be treated as a pattern. In +! this case, we quote the string specially for the globbing code. The +! caller is responsible for removing the backslashes if the unquoted +! words is needed later. */ + char * + cond_expand_word (w, special) +--- 2647,2656 ---- + /* This needs better error handling. */ + /* Expand W for use as an argument to a unary or binary operator in a +! [[...]] expression. If SPECIAL is 1, this is the rhs argument + to the != or == operator, and should be treated as a pattern. In +! this case, we quote the string specially for the globbing code. If +! SPECIAL is 2, this is an rhs argument for the =~ operator, and should +! be quoted appropriately for regcomp/regexec. The caller is responsible +! for removing the backslashes if the unquoted word is needed later. */ + char * + cond_expand_word (w, special) +*************** +*** 2659,2662 **** +--- 2660,2664 ---- + char *r, *p; + WORD_LIST *l; ++ int qflags; + + if (w->word == 0 || w->word[0] == '\0') +*************** +*** 2673,2678 **** + else + { + p = string_list (l); +! r = quote_string_for_globbing (p, QGLOB_CVTNULL); + free (p); + } +--- 2675,2683 ---- + else + { ++ qflags = QGLOB_CVTNULL; ++ if (special == 2) ++ qflags |= QGLOB_REGEXP; + p = string_list (l); +! r = quote_string_for_globbing (p, qflags); + free (p); + } +*** ../bash-3.2.9/execute_cmd.c Sat Aug 26 00:23:17 2006 +--- execute_cmd.c Wed Jan 31 23:12:06 2007 +*************** +*** 1,5 **** + /* execute_cmd.c -- Execute a COMMAND structure. */ + +! /* Copyright (C) 1987-2005 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 1,5 ---- + /* execute_cmd.c -- Execute a COMMAND structure. */ + +! /* Copyright (C) 1987-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 2547,2551 **** + if (arg1 == 0) + arg1 = nullstr; +! arg2 = cond_expand_word (cond->right->op, patmatch||rmatch); + if (arg2 == 0) + arg2 = nullstr; +--- 2547,2551 ---- + if (arg1 == 0) + arg1 = nullstr; +! arg2 = cond_expand_word (cond->right->op, rmatch ? 2 : (patmatch ? 1 : 0)); + if (arg2 == 0) + arg2 = nullstr; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 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_ */ --- bash-3.2.orig/debian/patches/deb-examples.dpatch +++ bash-3.2/debian/patches/deb-examples.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 readline header location on Debian systems + +--- bash/examples/loadables/README~ 2006-12-04 10:21:13.000000000 +0000 ++++ bash/examples/loadables/README 2006-12-04 10:23:05.000000000 +0000 +@@ -32,6 +32,9 @@ + 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. ++ + basename.c Return non-directory portion of pathname. + cat.c cat(1) replacement with no options - the way cat was intended. + cut.c cut(1) replacement. --- bash-3.2.orig/debian/patches/deb-bash-config.dpatch +++ bash-3.2/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 --- bash-3.2.orig/debian/patches/man-net-redirections-doc.dpatch +++ bash-3.2/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. --- bash-3.2.orig/debian/patches/bash32-029.dpatch +++ bash-3.2/debian/patches/bash32-029.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 + +# DP: bash-3.2 upstream patch bash32-029 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-029 + +Bug-Reported-by: Tomas Janousek +Bug-Reference-ID: <20071102104034.GA26893@redhat.com> +Bug-Reference-URL: https://bugzilla.redhat.com/show_bug.cgi?id=286861 + +Bug-Description: + +When the bash arithmetic expression evaluator has temporarily turned off +evalation, such as when parsing a pre- or post-decrement or -increment +operator, and an error occurs, evaluation is not re-enabled. + +Patch: + +*** ../bash-3.2-patched/expr.c 2007-08-25 13:47:05.000000000 -0400 +--- expr.c 2007-10-18 08:08:44.000000000 -0400 +*************** +*** 287,290 **** +--- 287,292 ---- + } + free (expr_stack[expr_depth]); /* free the allocated EXPR_CONTEXT */ ++ ++ noeval = 0; /* XXX */ + } + +*************** +*** 320,323 **** +--- 322,326 ---- + + val = 0; ++ noeval = 0; + + FASTCOPY (evalbuf, oevalbuf, sizeof (evalbuf)); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 28 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 29 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-015.dpatch +++ bash-3.2/debian/patches/bash32-015.dpatch @@ -0,0 +1,114 @@ +#! /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: bash-3.2 upstream patch bash32-015 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-015 + +Bug-Reported-by: +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +Under certain circumstances, when using FIFOs for process substitution, +bash fails to unlink the FIFOs. This leaves open file descriptors that +can cause the shell to hang and litters the file system. + +Patch: + +*** ../bash-3.2-patched/execute_cmd.c Fri Mar 2 16:20:50 2007 +--- execute_cmd.c Wed Jan 31 23:12:06 2007 +*************** +*** 3051,3054 **** +--- 3051,3059 ---- + command_line = savestring (the_printed_command_except_trap); + ++ #if defined (PROCESS_SUBSTITUTION) ++ if ((subshell_environment & SUBSHELL_COMSUB) && (simple_command->flags & CMD_NO_FORK) && fifos_pending() > 0) ++ simple_command->flags &= ~CMD_NO_FORK; ++ #endif ++ + execute_disk_command (words, simple_command->redirects, command_line, + pipe_in, pipe_out, async, fds_to_close, +*** ../bash-3.2-patched/subst.c Fri Mar 2 16:20:50 2007 +--- subst.c Tue Mar 6 11:40:55 2007 +*************** +*** 4129,4132 **** +--- 4151,4160 ---- + } + ++ int ++ fifos_pending () ++ { ++ return nfifo; ++ } ++ + static char * + make_named_pipe () +*************** +*** 4178,4181 **** +--- 4206,4215 ---- + } + ++ int ++ fifos_pending () ++ { ++ return 0; /* used for cleanup; not needed with /dev/fd */ ++ } ++ + void + unlink_fifo_list () +*************** +*** 4671,4674 **** +--- 4719,4725 ---- + last_command_exit_value = rc; + rc = run_exit_trap (); ++ #if defined (PROCESS_SUBSTITUTION) ++ unlink_fifo_list (); ++ #endif + exit (rc); + } +*** ../bash-3.2-patched/subst.h Tue Sep 19 08:34:41 2006 +--- subst.h Wed Jan 10 09:46:47 2007 +*************** +*** 223,226 **** +--- 223,227 ---- + extern char *pat_subst __P((char *, char *, char *, int)); + ++ extern int fifos_pending __P((void)); + extern void unlink_fifo_list __P((void)); + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 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_ */ --- bash-3.2.orig/debian/patches/bash32-043.dpatch +++ bash-3.2/debian/patches/bash32-043.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 -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: bash-3.2 upstream patch bash32-043 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-043 + +Bug-Reported-by: Morita Sho +Bug-Reference-ID: +Bug-Reference-URL: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=478096 + +Bug-Description: + +Side effects caused by setting function-local versions of variables bash +handles specially persisted after the function returned. + +Patch: + +*** ../bash-3.2-patched/variables.c 2007-08-25 13:47:05.000000000 -0400 +--- variables.c 2008-11-09 17:47:31.000000000 -0500 +*************** +*** 3459,3465 **** + var->attributes &= ~(att_tempvar|att_propagate); + else +! shell_variables->flags |= VC_HASTMPVAR; + v->attributes |= var->attributes; + } + + dispose_variable (var); +--- 3771,3779 ---- + var->attributes &= ~(att_tempvar|att_propagate); + else +! shell_variables->flags |= VC_HASTMPVAR; + v->attributes |= var->attributes; + } ++ else ++ stupidly_hack_special_variables (var->name); /* XXX */ + + dispose_variable (var); +*************** +*** 3548,3551 **** +--- 3862,3867 ---- + v->attributes |= var->attributes; + } ++ else ++ stupidly_hack_special_variables (var->name); /* XXX */ + + dispose_variable (var); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 42 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 43 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/input-err.dpatch +++ bash-3.2/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); + } + --- bash-3.2.orig/debian/patches/command-not-found-doc.dpatch +++ bash-3.2/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 --- bash-3.2.orig/debian/patches/bash32-032.dpatch +++ bash-3.2/debian/patches/bash32-032.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: bash-3.2 upstream patch bash32-032 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-032 + +Bug-Reported-by: Uwe Doering +Bug-Reference-ID: <46F3DD72.2090801@geminix.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-09/msg00102.html + +Bug-Description: + +There is an off-by-one error in the code that buffers characters received +very quickly in succession, causing characters to be dropped. + +Patch: + +*** ../bash-3.2-patched/lib/readline/input.c 2007-08-25 13:47:10.000000000 -0400 +--- lib/readline/input.c 2007-10-12 22:55:25.000000000 -0400 +*************** +*** 155,159 **** + pop_index--; + if (pop_index < 0) +! pop_index = ibuffer_len - 1; + ibuffer[pop_index] = key; + return (1); +--- 155,159 ---- + pop_index--; + if (pop_index < 0) +! pop_index = ibuffer_len; + ibuffer[pop_index] = key; + return (1); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 31 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 32 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-035.dpatch +++ bash-3.2/debian/patches/bash32-035.dpatch @@ -0,0 +1,178 @@ +#! /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: bash-3.2 upstream patch bash32-035 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-035 + +Bug-Reported-by: Ingo Molnar +Bug-Reference-ID: <20071205202901.GA25202@elte.hu> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-12/msg00014.html + +Bug-Description: + +Bash incorrectly puts the second and subsequent children spawned by a +shell forked to run a command substitution in the wrong process group. + +Patch: + +*** ../bash-3.2-patched/subst.c 2007-12-13 22:31:21.000000000 -0500 +--- subst.c 2008-01-17 22:48:15.000000000 -0500 +*************** +*** 4621,4627 **** + + #if defined (JOB_CONTROL) + set_sigchld_handler (); + stop_making_children (); +! pipeline_pgrp = old_pipeline_pgrp; + #else + stop_making_children (); +--- 4721,4728 ---- + + #if defined (JOB_CONTROL) + set_sigchld_handler (); + stop_making_children (); +! if (pid != 0) +! pipeline_pgrp = old_pipeline_pgrp; + #else + stop_making_children (); +*** ../bash-3.2-patched/jobs.c 2007-08-25 13:46:59.000000000 -0400 +--- jobs.c 2007-12-08 16:47:43.000000000 -0500 +*************** +*** 251,254 **** +--- 251,255 ---- + static int set_job_status_and_cleanup __P((int)); + ++ static WAIT job_signal_status __P((int)); + static WAIT raw_job_exit_status __P((int)); + +*************** +*** 2220,2223 **** +--- 2238,2261 ---- + } + ++ static WAIT ++ job_signal_status (job) ++ int job; ++ { ++ register PROCESS *p; ++ WAIT s; ++ ++ p = jobs[job]->pipe; ++ do ++ { ++ s = p->status; ++ if (WIFSIGNALED(s) || WIFSTOPPED(s)) ++ break; ++ p = p->next; ++ } ++ while (p != jobs[job]->pipe); ++ ++ return s; ++ } ++ + /* Return the exit status of the last process in the pipeline for job JOB. + This is the exit status of the entire job. */ +*************** +*** 2302,2310 **** + received, only if one of the jobs run is killed via SIGINT. If + job control is not set, the job will be run in the same pgrp as +! the shell, and the shell will see any signals the job gets. */ + + /* This is possibly a race condition -- should it go in stop_pipeline? */ + wait_sigint_received = 0; +! if (job_control == 0) + { + old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); +--- 2343,2354 ---- + received, only if one of the jobs run is killed via SIGINT. If + job control is not set, the job will be run in the same pgrp as +! the shell, and the shell will see any signals the job gets. In +! fact, we want this set every time the waiting shell and the waited- +! for process are in the same process group, including command +! substitution. */ + + /* This is possibly a race condition -- should it go in stop_pipeline? */ + wait_sigint_received = 0; +! if (job_control == 0 || (subshell_environment&SUBSHELL_COMSUB)) + { + old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler); +*************** +*** 2452,2464 **** + the last process in the pipeline. If no process exits due to a + signal, S is left as the status of the last job in the pipeline. */ +! p = jobs[job]->pipe; +! do +! { +! s = p->status; +! if (WIFSIGNALED(s) || WIFSTOPPED(s)) +! break; +! p = p->next; +! } +! while (p != jobs[job]->pipe); + + if (WIFSIGNALED (s) || WIFSTOPPED (s)) +--- 2496,2500 ---- + the last process in the pipeline. If no process exits due to a + signal, S is left as the status of the last job in the pipeline. */ +! s = job_signal_status (job); + + if (WIFSIGNALED (s) || WIFSTOPPED (s)) +*************** +*** 2494,2497 **** +--- 2530,2551 ---- + } + } ++ else if ((subshell_environment & SUBSHELL_COMSUB) && wait_sigint_received) ++ { ++ /* If waiting for a job in a subshell started to do command ++ substitution, simulate getting and being killed by the SIGINT to ++ pass the status back to our parent. */ ++ s = job_signal_status (job); ++ ++ if (WIFSIGNALED (s) && WTERMSIG (s) == SIGINT && signal_is_trapped (SIGINT) == 0) ++ { ++ UNBLOCK_CHILD (oset); ++ restore_sigint_handler (); ++ old_sigint_handler = set_signal_handler (SIGINT, SIG_DFL); ++ if (old_sigint_handler == SIG_IGN) ++ restore_sigint_handler (); ++ else ++ kill (getpid (), SIGINT); ++ } ++ } + + /* Moved here from set_job_status_and_cleanup, which is in the SIGCHLD +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 34 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 35 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-008.dpatch +++ bash-3.2/debian/patches/bash32-008.dpatch @@ -0,0 +1,67 @@ +#! /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: bash-3.2 upstream patch bash32-008 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-008 + +Bug-Reported-by: Linda Walsh +Bug-Reference-ID: <456041FD.8000605@tlinx.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00040.html + +Bug-Description: + +When checking pathnames from the command hash table (e.g., when the `checkhash' +shell option is enabled), a bug causes bash to delete and re-lookup each +command. + +Patch: + +*** ../bash-3.2-patched/findcmd.c Wed Aug 17 16:49:54 2005 +--- findcmd.c Fri Nov 24 10:48:37 2006 +*************** +*** 309,313 **** + { + st = file_status (hashed_file); +! if ((st ^ (FS_EXISTS | FS_EXECABLE)) != 0) + { + phash_remove (pathname); +--- 309,313 ---- + { + st = file_status (hashed_file); +! if ((st & (FS_EXISTS|FS_EXECABLE)) != (FS_EXISTS|FS_EXECABLE)) + { + phash_remove (pathname); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 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_ */ --- bash-3.2.orig/debian/patches/privmode.dpatch +++ bash-3.2/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 : +# 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 --- bash-3.2.orig/debian/patches/man-vx-opts.dpatch +++ bash-3.2/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. --- bash-3.2.orig/debian/patches/man-nocaseglob.dpatch +++ bash-3.2/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 ``.'' --- bash-3.2.orig/debian/patches/bash32-048.dpatch +++ bash-3.2/debian/patches/bash32-048.dpatch @@ -0,0 +1,75 @@ +#! /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: bash-3.2 upstream patch bash32-048 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-048 + +Bug-Reported-by: Steffen Kiess +Bug-Reference-ID: <1223929957.5383.6.camel@fips> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-10/msg00047.html + +Bug-Description: + +When invoked as `bash -c', bash did not execute an EXIT trap when the last +command in the executed list was a command run from the file system. + +Patch: + +*** /Users/chet/src/bash/bash-3.2-patched/builtins/evalstring.c 2006-07-28 15:12:16.000000000 -0400 +--- builtins/evalstring.c 2008-11-13 18:38:45.000000000 -0500 +*************** +*** 249,252 **** +--- 249,253 ---- + * we're not running a trap AND + * we have parsed the full command (string == '\0') AND ++ * we're not going to run the exit trap AND + * we have a simple command without redirections AND + * the command is not being timed AND +*************** +*** 259,263 **** + *bash_input.location.string == '\0' && + command->type == cm_simple && +! !command->redirects && !command->value.Simple->redirects && + ((command->flags & CMD_TIME_PIPELINE) == 0) && + ((command->flags & CMD_INVERT_RETURN) == 0)) +--- 260,265 ---- + *bash_input.location.string == '\0' && + command->type == cm_simple && +! signal_is_trapped (EXIT_TRAP) == 0 && +! command->redirects == 0 && command->value.Simple->redirects == 0 && + ((command->flags & CMD_TIME_PIPELINE) == 0) && + ((command->flags & CMD_INVERT_RETURN) == 0)) +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 47 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 48 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-031.dpatch +++ bash-3.2/debian/patches/bash32-031.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 -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: bash-3.2 upstream patch bash32-031 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-031 + +Bug-Reported-by: Miroslav Lichvar +Bug-Reference-ID: Fri, 02 Nov 2007 14:07:45 +0100 +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-11/msg00000.html + +Bug-Description: + +In certain cases when outputting characters at the end of the line, +e.g., when displaying the prompt string, readline positions the cursor +incorrectly if the prompt string contains invisible characters and the +text being drawn begins before the last invisible character in the line. + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c 2007-08-25 13:47:08.000000000 -0400 +--- lib/readline/display.c 2007-11-10 17:51:29.000000000 -0500 +*************** +*** 1566,1574 **** + else + { +- /* We have horizontal scrolling and we are not inserting at +- the end. We have invisible characters in this line. This +- is a dumb update. */ + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; + return; + } +--- 1619,1632 ---- + else + { + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; ++ /* If nfd begins before any invisible characters in the prompt, ++ adjust _rl_last_c_pos to account for wrap_offset and set ++ cpos_adjusted to let the caller know. */ ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } + return; + } +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 30 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 31 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/man-bashrc.dpatch +++ bash-3.2/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 --- bash-3.2.orig/debian/patches/bash32-025.dpatch +++ bash-3.2/debian/patches/bash32-025.dpatch @@ -0,0 +1,98 @@ +#! /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: bash-3.2 upstream patch bash32-025 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-025 + +Bug-Reported-by: Tom Bjorkholm +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-04/msg00004.html + +Bug-Description: + +An off-by-one error in readline's input buffering caused readline to drop +each 511th character of buffered input (e.g., when pasting a large amount +of data into a terminal window). + +Patch: + +*** ../bash-3.2-patched/lib/readline/input.c Wed Aug 16 15:15:16 2006 +--- lib/readline/input.c Tue Jul 17 09:24:21 2007 +*************** +*** 134,139 **** + + *key = ibuffer[pop_index++]; +! + if (pop_index >= ibuffer_len) + pop_index = 0; + +--- 134,142 ---- + + *key = ibuffer[pop_index++]; +! #if 0 + if (pop_index >= ibuffer_len) ++ #else ++ if (pop_index > ibuffer_len) ++ #endif + pop_index = 0; + +*************** +*** 251,255 **** + { + k = (*rl_getc_function) (rl_instream); +! rl_stuff_char (k); + if (k == NEWLINE || k == RETURN) + break; +--- 254,259 ---- + { + k = (*rl_getc_function) (rl_instream); +! if (rl_stuff_char (k) == 0) +! break; /* some problem; no more room */ + if (k == NEWLINE || k == RETURN) + break; +*************** +*** 374,378 **** +--- 378,386 ---- + } + ibuffer[push_index++] = key; ++ #if 0 + if (push_index >= ibuffer_len) ++ #else ++ if (push_index > ibuffer_len) ++ #endif + push_index = 0; + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 24 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 25 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-022.dpatch +++ bash-3.2/debian/patches/bash32-022.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 + +# DP: bash-3.2 upstream patch bash32-022 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-022 + +Bug-Reported-by: Chet Ramey +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +POSIX specifies that the `read' builtin invoked from an interative shell +must prompt with $PS2 when a line is continued using a backslash while +reading from a terminal. + +Patch: + +*** ../bash-3.2-patched/builtins/read.def Tue Sep 19 08:45:48 2006 +--- builtins/read.def Thu May 24 16:03:30 2007 +*************** +*** 128,133 **** + { + register char *varname; +! int size, i, nr, pass_next, saw_escape, eof, opt, retval, code; +! int input_is_tty, input_is_pipe, unbuffered_read; + int raw, edit, nchars, silent, have_timeout, fd; + unsigned int tmout; +--- 131,136 ---- + { + register char *varname; +! int size, i, nr, pass_next, saw_escape, eof, opt, retval, code, print_ps2; +! int input_is_tty, input_is_pipe, unbuffered_read, skip_ctlesc, skip_ctlnul; + int raw, edit, nchars, silent, have_timeout, fd; + unsigned int tmout; +*************** +*** 135,139 **** + char c; + char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname; +! char *e, *t, *t1; + struct stat tsb; + SHELL_VAR *var; +--- 138,142 ---- + char c; + char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname; +! char *e, *t, *t1, *ps2; + struct stat tsb; + SHELL_VAR *var; +*************** +*** 149,152 **** +--- 152,156 ---- + USE_VAR(i); + USE_VAR(pass_next); ++ USE_VAR(print_ps2); + USE_VAR(saw_escape); + USE_VAR(input_is_pipe); +*************** +*** 164,167 **** +--- 168,172 ---- + #endif + USE_VAR(list); ++ USE_VAR(ps2); + + i = 0; /* Index into the string that we are reading. */ +*************** +*** 387,391 **** + #endif + +! for (eof = retval = 0;;) + { + #if defined (READLINE) +--- 394,399 ---- + #endif + +! ps2 = 0; +! for (print_ps2 = eof = retval = 0;;) + { + #if defined (READLINE) +*************** +*** 413,416 **** +--- 421,433 ---- + #endif + ++ if (print_ps2) ++ { ++ if (ps2 == 0) ++ ps2 = get_string_value ("PS2"); ++ fprintf (stderr, "%s", ps2 ? ps2 : ""); ++ fflush (stderr); ++ print_ps2 = 0; ++ } ++ + if (unbuffered_read) + retval = zread (fd, &c, 1); +*************** +*** 441,445 **** + pass_next = 0; + if (c == '\n') +! i--; /* back up over the CTLESC */ + else + goto add_char; +--- 458,466 ---- + pass_next = 0; + if (c == '\n') +! { +! i--; /* back up over the CTLESC */ +! if (interactive && input_is_tty && raw == 0) +! print_ps2 = 1; +! } + else + goto add_char; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 21 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 22 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-028.dpatch +++ bash-3.2/debian/patches/bash32-028.dpatch @@ -0,0 +1,79 @@ +#! /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: bash-3.2 upstream patch bash32-028 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-028 + +Bug-Reported-by: dAniel hAhler +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +Under some circumstances, readline will incorrectly display a prompt string +containing invisible characters after the final newline. + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c 2007-08-25 13:47:08.000000000 -0400 +--- lib/readline/display.c 2007-11-10 17:51:29.000000000 -0500 +*************** +*** 392,396 **** + local_prompt = expand_prompt (p, &prompt_visible_length, + &prompt_last_invisible, +! (int *)NULL, + &prompt_physical_chars); + c = *t; *t = '\0'; +--- 420,424 ---- + local_prompt = expand_prompt (p, &prompt_visible_length, + &prompt_last_invisible, +! &prompt_invis_chars_first_line, + &prompt_physical_chars); + c = *t; *t = '\0'; +*************** +*** 399,403 **** + local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length, + (int *)NULL, +! &prompt_invis_chars_first_line, + (int *)NULL); + *t = c; +--- 427,431 ---- + local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length, + (int *)NULL, +! (int *)NULL, + (int *)NULL); + *t = c; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 27 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 28 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-002.dpatch +++ bash-3.2/debian/patches/bash32-002.dpatch @@ -0,0 +1,67 @@ +#! /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: bash-3.2 upstream patch bash32-002 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-002 + +Bug-Reported-by: Jim Gifford +Bug-Reference-ID: <12j2pc3aq35mb04@corp.supernews.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00082.html + +Bug-Description: + +An incorrect encoding specification in the Content-Type header causes msgfmt +to fail, which causes `make install' to fail. + +Patch: + +*** ../bash-3.2/po/ru.po Tue Jan 10 17:51:03 2006 +--- po/ru.po Mon Oct 16 15:13:23 2006 +*************** +*** 13,17 **** + "Language-Team: Russian \n" + "MIME-Version: 1.0\n" +! "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +--- 13,17 ---- + "Language-Team: Russian \n" + "MIME-Version: 1.0\n" +! "Content-Type: text/plain; charset=KOI8-R\n" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 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_ */ --- bash-3.2.orig/debian/patches/bash32-040.dpatch +++ bash-3.2/debian/patches/bash32-040.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: bash-3.2 upstream patch bash32-040 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-040 + +Bug-Reported-by: John McCabe-Dansted +Bug-Reference-ID: +Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/202885 + +Bug-Description: + +When using the `set' builtin to list all shell variables, the shell uses +the wrong variable when computing the length of a variable's value. + +Patch: + +*** ../bash-3.2-patched/array.c 2007-03-24 14:51:03.000000000 -0400 +--- array.c 2008-08-17 13:07:04.000000000 -0400 +*************** +*** 684,688 **** + valstr = element_value (ae) ? sh_double_quote (element_value(ae)) + : (char *)NULL; +! elen = STRLEN (indstr) + 8 + STRLEN (valstr); + RESIZE_MALLOCED_BUFFER (result, rlen, (elen + 1), rsize, rsize); + +--- 809,813 ---- + valstr = element_value (ae) ? sh_double_quote (element_value(ae)) + : (char *)NULL; +! elen = STRLEN (is) + 8 + STRLEN (valstr); + RESIZE_MALLOCED_BUFFER (result, rlen, (elen + 1), rsize, rsize); + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 39 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 40 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-046.dpatch +++ bash-3.2/debian/patches/bash32-046.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: bash-3.2 upstream patch bash32-046 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-046 + +Bug-Reported-by: Wang Xin +Bug-Reference-ID: <9a73e1570807062042ide16698m10e1b18036c95592@mail.gmail.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-07/msg00014.html + +Bug-Description: + +Bash did not compute the length of multibyte characters correctly when +performing array element length references (e.g., ${#var[subscript]}). + +Patch: + +*** /usr/src/local/bash/bash-3.2-patched/subst.c 2008-04-28 22:00:20.000000000 -0400 +--- subst.c 2008-11-10 22:02:38.000000000 -0500 +*************** +*** 4813,4817 **** + t = (ind == 0) ? value_cell (var) : (char *)NULL; + +! len = STRLEN (t); + return (len); + } +--- 4813,4817 ---- + t = (ind == 0) ? value_cell (var) : (char *)NULL; + +! len = MB_STRLEN (t); + return (len); + } +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 45 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 46 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-013.dpatch +++ bash-3.2/debian/patches/bash32-013.dpatch @@ -0,0 +1,84 @@ +#! /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: bash-3.2 upstream patch bash32-013 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-013 + +Bug-Reported-by: Magnus Svensson +Bug-Reference-ID: <45BDC44D.80609@mysql.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-01/msg00002.html + +Bug-Description: + +Readline neglects to reallocate the array it uses to keep track of wrapped +screen lines when increasing its size. This will eventually result in +segmentation faults when given sufficiently long input. + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c Thu Sep 14 14:20:12 2006 +--- lib/readline/display.c Fri Feb 2 20:23:17 2007 +*************** +*** 561,574 **** +--- 561,586 ---- + wrap_offset = prompt_invis_chars_first_line = 0; + } + ++ #if defined (HANDLE_MULTIBYTE) + #define CHECK_INV_LBREAKS() \ + do { \ + if (newlines >= (inv_lbsize - 2)) \ + { \ + inv_lbsize *= 2; \ + inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ ++ _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \ + } \ + } while (0) ++ #else ++ #define CHECK_INV_LBREAKS() \ ++ do { \ ++ if (newlines >= (inv_lbsize - 2)) \ ++ { \ ++ inv_lbsize *= 2; \ ++ inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \ ++ } \ ++ } while (0) ++ #endif /* HANDLE_MULTIBYTE */ + + #if defined (HANDLE_MULTIBYTE) + #define CHECK_LPOS() \ + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 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_ */ --- bash-3.2.orig/debian/patches/man-test2-doc.dpatch +++ bash-3.2/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. --- bash-3.2.orig/debian/patches/man-substring-exp-doc.dpatch +++ bash-3.2/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{*}, --- bash-3.2.orig/debian/patches/bash32-039.dpatch +++ bash-3.2/debian/patches/bash32-039.dpatch @@ -0,0 +1,180 @@ +#! /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: bash-3.2 upstream patch bash32-039 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-039 + +Bug-Reported-by: rew@erebor.com +Bug-Reference-ID: <20070119065603.546D011E9C@kansas.erebor.com> +Bug-Reference-URL: + +Bug-Description: + +Bash-3.2 changed the behavior of the [[ command's `=~' operator when the +right-hand side was quoted: it matched the quoted portions as strings. +This patch introduces a new shell option: compat31. When enabled, it +restores the bash-3.1 behavior with respect to evaluating quoted arguments +to the =~ operator. + +Patch: + +*** ../bash-3.2-patched/execute_cmd.c 2007-12-14 21:12:39.000000000 -0500 +--- execute_cmd.c 2008-02-22 21:20:40.000000000 -0500 +*************** +*** 2547,2551 **** + if (arg1 == 0) + arg1 = nullstr; +! arg2 = cond_expand_word (cond->right->op, rmatch ? 2 : (patmatch ? 1 : 0)); + if (arg2 == 0) + arg2 = nullstr; +--- 2552,2557 ---- + if (arg1 == 0) + arg1 = nullstr; +! arg2 = cond_expand_word (cond->right->op, +! (rmatch && shell_compatibility_level > 31) ? 2 : (patmatch ? 1 : 0)); + if (arg2 == 0) + arg2 = nullstr; +*** ../bash-3.2-patched/shell.h 2003-06-01 15:04:36.000000000 -0400 +--- shell.h 2008-02-22 21:16:48.000000000 -0500 +*************** +*** 90,93 **** +--- 90,94 ---- + extern int interactive, interactive_shell; + extern int startup_state; ++ extern int shell_compatibility_level; + + /* Structure to pass around that holds a bitmap of file descriptors +*** ../bash-3.2-patched/version.c 2007-12-14 21:12:29.000000000 -0500 +--- version.c 2008-04-10 08:22:22.000000000 -0400 +*************** +*** 44,47 **** +--- 44,50 ---- + const char *sccs_version = SCCSVERSION; + ++ /* If == 31, shell compatible with bash-3.1, == 32 with bash-3.2, and so on */ ++ int shell_compatibility_level = 32; ++ + /* Functions for getting, setting, and displaying the shell version. */ + +*** ../bash-3.2-patched/builtins/shopt.def 2005-02-19 17:25:03.000000000 -0500 +--- builtins/shopt.def 2008-04-10 08:13:32.000000000 -0400 +*************** +*** 102,105 **** +--- 102,107 ---- + static int set_shellopts_after_change __P((int)); + ++ static int set_compatibility_level __P((int)); ++ + #if defined (RESTRICTED_SHELL) + static int set_restricted_shell __P((int)); +*************** +*** 107,110 **** +--- 109,113 ---- + + static int shopt_login_shell; ++ static int shopt_compat31; + + typedef int shopt_set_func_t __P((int)); +*************** +*** 122,125 **** +--- 125,129 ---- + { "cmdhist", &command_oriented_history, (shopt_set_func_t *)NULL }, + #endif ++ { "compat31", &shopt_compat31, set_compatibility_level }, + { "dotglob", &glob_dot_filenames, (shopt_set_func_t *)NULL }, + { "execfail", &no_exit_on_failed_exec, (shopt_set_func_t *)NULL }, +*************** +*** 460,463 **** +--- 464,479 ---- + } + ++ static int ++ set_compatibility_level (mode) ++ int mode; ++ { ++ /* Need to change logic here as we add more compatibility levels */ ++ if (shopt_compat31) ++ shell_compatibility_level = 31; ++ else ++ shell_compatibility_level = 32; ++ return 0; ++ } ++ + #if defined (RESTRICTED_SHELL) + /* Don't allow the value of restricted_shell to be modified. */ +*** ../bash-3.2-patched/doc/bash.1 2006-09-28 10:26:05.000000000 -0400 +--- doc/bash.1 2008-04-25 12:32:49.000000000 -0400 +*************** +*** 7978,7981 **** +--- 8200,8209 ---- + easy re-editing of multi-line commands. + .TP 8 ++ .B compat31 ++ If set, ++ .B bash ++ changes its behavior to that of version 3.1 with respect to quoted ++ arguments to the conditional command's =~ operator. ++ .TP 8 + .B dotglob + If set, +*** ../bash-3.2-patched/tests/shopt.right 2005-02-19 17:46:09.000000000 -0500 +--- tests/shopt.right 2008-04-28 09:13:07.000000000 -0400 +*************** +*** 7,10 **** +--- 7,11 ---- + shopt -u checkwinsize + shopt -s cmdhist ++ shopt -u compat31 + shopt -u dotglob + shopt -u execfail +*************** +*** 54,57 **** +--- 55,59 ---- + shopt -u checkhash + shopt -u checkwinsize ++ shopt -u compat31 + shopt -u dotglob + shopt -u execfail +*************** +*** 78,81 **** +--- 80,84 ---- + checkhash off + checkwinsize off ++ compat31 off + dotglob off + execfail off + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 38 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 39 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-016.dpatch +++ bash-3.2/debian/patches/bash32-016.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 + +# DP: bash-3.2 upstream patch bash32-016 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-016 + +Bug-Reported-by: Peter Volkov +Bug-Reference-ID: <1171795523.8021.18.camel@localhost> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-02/msg00054.html + +Bug-Description: + +When moving the cursor, bash sometimes misplaces the cursor when the prompt +contains two or more multibyte characters. The particular circumstance that +uncovered the problem was having the (multibyte) current directory name in +the prompt string. + +Patch: + +*** ../bash-3.2/lib/readline/display.c Fri Jan 19 13:34:50 2007 +--- lib/readline/display.c Sat Mar 10 17:25:44 2007 +*************** +*** 1745,1749 **** + { + dpos = _rl_col_width (data, 0, new); +! if (dpos > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; +--- 1745,1752 ---- + { + dpos = _rl_col_width (data, 0, new); +! /* Use NEW when comparing against the last invisible character in the +! prompt string, since they're both buffer indices and DPOS is a +! desired display position. */ +! if (new > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 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_ */ --- bash-3.2.orig/debian/patches/bash-subst-param-length.dpatch +++ bash-3.2/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] == '!') --- bash-3.2.orig/debian/patches/bash32-014.dpatch +++ bash-3.2/debian/patches/bash32-014.dpatch @@ -0,0 +1,326 @@ +#! /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: bash-3.2 upstream patch bash32-014 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-014 + +Bug-Reported-by: Brett Stahlman +Bug-Reference-ID: <000701c72d29$a227e0e0$5ec7cf47@computerroom> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-12/msg00065.html + +Bug-Description: + +Bash mishandles word splitting under certain circumstances when IFS is +null (IFS=). Constructs affected include ${param/pat/sub} and others +when expanding arrays (array[@]). + +Patch: + +*** ../bash-3.2-patched/array.c Wed Jun 1 16:39:22 2005 +--- array.c Mon Jan 15 22:58:00 2007 +*************** +*** 121,125 **** + } + +- #ifdef INCLUDE_UNUSED + /* + * Make and return a new array composed of the elements in array A from +--- 121,124 ---- +*************** +*** 142,146 **** + n = array_create_element (element_index(p), element_value(p)); + ADD_BEFORE(a->head, n); +! mi = element_index(ae); + } + a->num_elements = i; +--- 141,145 ---- + n = array_create_element (element_index(p), element_value(p)); + ADD_BEFORE(a->head, n); +! mi = element_index(n); + } + a->num_elements = i; +*************** +*** 148,152 **** + return a; + } +- #endif + + /* +--- 147,150 ---- +*************** +*** 301,304 **** +--- 299,319 ---- + } + ++ ARRAY * ++ array_quote_escapes(array) ++ ARRAY *array; ++ { ++ ARRAY_ELEMENT *a; ++ char *t; ++ ++ if (array == 0 || array_head(array) == 0 || array_empty(array)) ++ return (ARRAY *)NULL; ++ for (a = element_forw(array->head); a != array->head; a = element_forw(a)) { ++ t = quote_escapes (a->value); ++ FREE(a->value); ++ a->value = t; ++ } ++ return array; ++ } ++ + /* + * Return a string whose elements are the members of array A beginning at +*************** +*** 312,318 **** + int starsub, quoted; + { + ARRAY_ELEMENT *h, *p; + arrayind_t i; +! char *ifs, sep[2]; + + p = a ? array_head (a) : 0; +--- 327,334 ---- + int starsub, quoted; + { ++ ARRAY *a2; + ARRAY_ELEMENT *h, *p; + arrayind_t i; +! char *ifs, sep[2], *t; + + p = a ? array_head (a) : 0; +*************** +*** 337,340 **** +--- 353,363 ---- + ; + ++ a2 = array_slice(a, h, p); ++ ++ if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) ++ array_quote(a2); ++ else ++ array_quote_escapes(a2); ++ + if (starsub && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) { + ifs = getifs(); +*************** +*** 344,348 **** + sep[1] = '\0'; + +! return (array_to_string_internal (h, p, sep, quoted)); + } + +--- 367,374 ---- + sep[1] = '\0'; + +! t = array_to_string (a2, sep, 0); +! array_dispose(a2); +! +! return t; + } + +*************** +*** 368,372 **** + + if (mflags & MATCH_QUOTED) +! array_quote (a2); + if (mflags & MATCH_STARSUB) { + ifs = getifs(); +--- 394,400 ---- + + if (mflags & MATCH_QUOTED) +! array_quote(a2); +! else +! array_quote_escapes(a2); + if (mflags & MATCH_STARSUB) { + ifs = getifs(); +*** ../bash-3.2-patched/array.h Sun Jun 1 15:50:30 2003 +--- array.h Mon Jan 15 22:35:35 2007 +*************** +*** 56,59 **** +--- 56,60 ---- + extern int array_shift_element __P((ARRAY *, char *)); + extern ARRAY *array_quote __P((ARRAY *)); ++ extern ARRAY *array_quote_escapes __P((ARRAY *)); + + extern char *array_subrange __P((ARRAY *, arrayind_t, arrayind_t, int, int)); +*** ../bash-3.2-patched/subst.c Fri Mar 2 16:20:50 2007 +--- subst.c Tue Mar 6 11:40:55 2007 +*************** +*** 1888,1892 **** +--- 1889,1899 ---- + #endif + ++ /* XXX -- why call quote_list if ifs == 0? we can get away without doing ++ it now that quote_escapes quotes spaces */ ++ #if 0 + tlist = ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || (ifs && *ifs == 0)) ++ #else ++ tlist = (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) ++ #endif + ? quote_list (list) + : list_quote_escapes (list); +*************** +*** 2922,2926 **** + /* Quote escape characters in string s, but no other characters. This is + used to protect CTLESC and CTLNUL in variable values from the rest of +! the word expansion process after the variable is expanded. */ + char * + quote_escapes (string) +--- 2935,2944 ---- + /* Quote escape characters in string s, but no other characters. This is + used to protect CTLESC and CTLNUL in variable values from the rest of +! the word expansion process after the variable is expanded. If IFS is +! null, we quote spaces as well, just in case we split on spaces later +! (in the case of unquoted $@, we will eventually attempt to split the +! entire word on spaces). Corresponding code exists in dequote_escapes. +! Even if we don't end up splitting on spaces, quoting spaces is not a +! problem. */ + char * + quote_escapes (string) +*************** +*** 2930,2933 **** +--- 2948,2952 ---- + size_t slen; + char *result, *send; ++ int quote_spaces; + DECLARE_MBSTATE; + +*************** +*** 2935,2938 **** +--- 2954,2958 ---- + send = string + slen; + ++ quote_spaces = (ifs_value && *ifs_value == 0); + t = result = (char *)xmalloc ((slen * 2) + 1); + s = string; +*************** +*** 2940,2944 **** + while (*s) + { +! if (*s == CTLESC || *s == CTLNUL) + *t++ = CTLESC; + COPY_CHAR_P (t, s, send); +--- 2960,2964 ---- + while (*s) + { +! if (*s == CTLESC || *s == CTLNUL || (quote_spaces && *s == ' ')) + *t++ = CTLESC; + COPY_CHAR_P (t, s, send); +*************** +*** 2982,2985 **** +--- 3002,3006 ---- + size_t slen; + char *result, *send; ++ int quote_spaces; + DECLARE_MBSTATE; + +*************** +*** 2996,3002 **** + return (strcpy (result, s)); + + while (*s) + { +! if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL)) + { + s++; +--- 3017,3024 ---- + return (strcpy (result, s)); + ++ quote_spaces = (ifs_value && *ifs_value == 0); + while (*s) + { +! if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL || (quote_spaces && s[1] == ' '))) + { + s++; +*************** +*** 4462,4466 **** + RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, DEFAULT_ARRAY_SIZE); + +! if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || c == CTLESC || c == CTLNUL) + istring[istring_index++] = CTLESC; + +--- 4498,4510 ---- + RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, DEFAULT_ARRAY_SIZE); + +! /* This is essentially quote_string inline */ +! if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) /* || c == CTLESC || c == CTLNUL */) +! istring[istring_index++] = CTLESC; +! /* Escape CTLESC and CTLNUL in the output to protect those characters +! from the rest of the word expansions (word splitting and globbing.) +! This is essentially quote_escapes inline. */ +! else if (c == CTLESC) +! istring[istring_index++] = CTLESC; +! else if (c == CTLNUL || (c == ' ' && (ifs_value && *ifs_value == 0))) + istring[istring_index++] = CTLESC; + +*************** +*** 5552,5555 **** +--- 5610,5616 ---- + rely on array_subrange to understand how to deal with them). */ + tt = array_subrange (array_cell (v), e1, e2, starsub, quoted); ++ #if 0 ++ /* array_subrange now calls array_quote_escapes as appropriate, so the ++ caller no longer needs to. */ + if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0) + { +*************** +*** 5558,5561 **** +--- 5619,5623 ---- + } + else ++ #endif + temp = tt; + break; +*************** +*** 5808,5811 **** +--- 5870,5876 ---- + case VT_ARRAYVAR: + temp = array_patsub (array_cell (v), p, rep, mflags); ++ #if 0 ++ /* Don't need to do this anymore; array_patsub calls array_quote_escapes ++ as appropriate before adding the space separators. */ + if (temp && (mflags & MATCH_QUOTED) == 0) + { +*************** +*** 5814,5817 **** +--- 5879,5883 ---- + temp = tt; + } ++ #endif + break; + #endif +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 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_ */ --- bash-3.2.orig/debian/patches/bash32-009.dpatch +++ bash-3.2/debian/patches/bash32-009.dpatch @@ -0,0 +1,80 @@ +#! /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: bash-3.2 upstream patch bash32-009 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-009 + +Bug-Reported-by: James.M.Botte@lowes.com +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-12/msg00000.html + +Bug-Description: + +When using its built-in replacement for snprintf/asprintf, bash does not +treat the %x, %X, and %o format specifiers as unsigned numbers. + +Patch: + +*** ../bash-3.2-patched/lib/sh/snprintf.c Mon Nov 13 08:58:52 2006 +--- lib/sh/snprintf.c Wed Dec 6 11:15:04 2006 +*************** +*** 669,673 **** + + sd = d; /* signed for ' ' padding in base 10 */ +! flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0; + if (*p->pf == 'X') + flags |= FL_HEXUPPER; +--- 674,679 ---- + + sd = d; /* signed for ' ' padding in base 10 */ +! flags = 0; +! flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0; + if (*p->pf == 'X') + flags |= FL_HEXUPPER; +*************** +*** 739,743 **** + + sd = d; /* signed for ' ' padding in base 10 */ +! flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0; + if (*p->pf == 'X') + flags |= FL_HEXUPPER; +--- 745,749 ---- + + sd = d; /* signed for ' ' padding in base 10 */ +! flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0; + if (*p->pf == 'X') + flags |= FL_HEXUPPER; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 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_ */ --- bash-3.2.orig/debian/patches/bash-default-editor.dpatch +++ bash-3.2/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 --- bash-3.2.orig/debian/patches/bash32-033.dpatch +++ bash-3.2/debian/patches/bash32-033.dpatch @@ -0,0 +1,107 @@ +#! /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: bash-3.2 upstream patch bash32-033 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-033 + +Bug-Reported-by: Christophe Martin +Bug-Reference-ID: <465ABA4A.3030805@free.fr> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-05/msg00104.html + +Bug-Description: + +References made within a function to an uninitialized local array variable +using the [*] subscript in a double-quoted string can result in spurious +ASCII 127 characters in the expanded value. + +Patch: + +*** ../bash-3.2-patched/arrayfunc.c 2007-08-25 13:47:05.000000000 -0400 +--- arrayfunc.c 2007-05-31 11:55:46.000000000 -0400 +*************** +*** 723,727 **** + { + if (rtype) +! *rtype = 1; + if (allow_all == 0) + { +--- 723,727 ---- + { + if (rtype) +! *rtype = (t[0] == '*') ? 1 : 2; + if (allow_all == 0) + { +*** ../bash-3.2-patched/subst.c 2007-08-25 13:47:08.000000000 -0400 +--- subst.c 2007-11-14 15:43:00.000000000 -0500 +*************** +*** 4908,4915 **** + intmax_t arg_index; + SHELL_VAR *var; +! int atype; + + ret = 0; + temp = 0; + + /* Handle multiple digit arguments, as in ${11}. */ +--- 4973,4981 ---- + intmax_t arg_index; + SHELL_VAR *var; +! int atype, rflags; + + ret = 0; + temp = 0; ++ rflags = 0; + + /* Handle multiple digit arguments, as in ${11}. */ +*************** +*** 4944,4947 **** +--- 5010,5015 ---- + ? quote_string (temp) + : quote_escapes (temp); ++ else if (atype == 1 && temp && QUOTED_NULL (temp) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) ++ rflags |= W_HASQUOTEDNULL; + } + #endif +*************** +*** 4971,4974 **** +--- 5039,5043 ---- + ret = alloc_word_desc (); + ret->word = temp; ++ ret->flags |= rflags; + } + return ret; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 32 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 33 + + #endif /* _PATCHLEVEL_H_ */ + --- bash-3.2.orig/debian/patches/man-test2.dpatch +++ bash-3.2/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 --- bash-3.2.orig/debian/patches/bash32-011.dpatch +++ bash-3.2/debian/patches/bash32-011.dpatch @@ -0,0 +1,157 @@ +#! /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: bash-3.2 upstream patch bash32-011 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-011 + +Bug-Reported-by: Petr Sumbera +Bug-Reference-ID: <45AF5F4B.1020800@sun.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-01/msg00049.html + +Bug-Description: + +Under certain circumstances (loopback mounts), the bash getcwd does not +return correct results. This patch allows the use of the Solaris libc +getcwd even though it doesn't dynamically allocate memory. + +Run `touch configure' to make sure make doesn't try to run autoconf. +Then run configure with whatever options you like. + +Patch: + +*** ../bash-3.2-patched/configure.in Tue Sep 26 11:05:45 2006 +--- configure.in Wed Jan 31 09:48:00 2007 +*************** +*** 6,10 **** + dnl Process this file with autoconf to produce a configure script. + +! # Copyright (C) 1987-2006 Free Software Foundation, Inc. + + # This program is free software; you can redistribute it and/or modify +--- 6,10 ---- + dnl Process this file with autoconf to produce a configure script. + +! # Copyright (C) 1987-2007 Free Software Foundation, Inc. + + # This program is free software; you can redistribute it and/or modify +*************** +*** 992,996 **** + sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;; + sunos4*) LOCAL_CFLAGS=-DSunOS4 ;; +! solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;; + lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; + linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading +--- 992,997 ---- + sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;; + sunos4*) LOCAL_CFLAGS=-DSunOS4 ;; +! solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;; +! solaris2*) LOCAL_CFLAGS=-DSOLARIS ;; + lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; + linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading +*** ../bash-3.2-patched/config-bot.h Tue Sep 12 16:43:04 2006 +--- config-bot.h Tue Mar 6 10:41:31 2007 +*************** +*** 2,6 **** + /* modify settings or make new ones based on what autoconf tells us. */ + +! /* Copyright (C) 1989-2002 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 2,6 ---- + /* modify settings or make new ones based on what autoconf tells us. */ + +! /* Copyright (C) 1989-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 71,77 **** + #endif + +! /* If we have a getcwd(3), but it calls popen(), #undef HAVE_GETCWD so +! the replacement in getcwd.c will be built. */ +! #if defined (HAVE_GETCWD) && defined (GETCWD_BROKEN) + # undef HAVE_GETCWD + #endif +--- 71,79 ---- + #endif + +! /* If we have a getcwd(3), but one that does not dynamically allocate memory, +! #undef HAVE_GETCWD so the replacement in getcwd.c will be built. We do +! not do this on Solaris, because their implementation of loopback mounts +! breaks the traditional file system assumptions that getcwd uses. */ +! #if defined (HAVE_GETCWD) && defined (GETCWD_BROKEN) && !defined (SOLARIS) + # undef HAVE_GETCWD + #endif +*** ../bash-3.2-patched/builtins/common.c Thu Jul 27 09:39:51 2006 +--- builtins/common.c Tue Mar 6 10:43:27 2007 +*************** +*** 1,3 **** +! /* Copyright (C) 1987-2005 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 1,3 ---- +! /* Copyright (C) 1987-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 476,480 **** +--- 476,484 ---- + if (the_current_working_directory == 0) + { ++ #if defined (GETCWD_BROKEN) ++ the_current_working_directory = getcwd (0, PATH_MAX); ++ #else + the_current_working_directory = getcwd (0, 0); ++ #endif + if (the_current_working_directory == 0) + { +*** ../bash-3.2-patched/configure Tue Sep 26 11:06:01 2006 +--- configure Tue Mar 6 10:59:20 2007 +*************** +*** 27317,27321 **** + sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;; + sunos4*) LOCAL_CFLAGS=-DSunOS4 ;; +! solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;; + lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; + linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading +--- 27317,27322 ---- + sco3.2*) LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;; + sunos4*) LOCAL_CFLAGS=-DSunOS4 ;; +! solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;; +! solaris2*) LOCAL_CFLAGS=-DSOLARIS ;; + lynxos*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;; + linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 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_ */ --- bash-3.2.orig/debian/patches/bashbug-editor.dpatch +++ bash-3.2/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 --- bash-3.2.orig/debian/patches/bash32-019.dpatch +++ bash-3.2/debian/patches/bash32-019.dpatch @@ -0,0 +1,362 @@ +#! /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: bash-3.2 upstream patch bash32-019 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-019 + +Bug-Reported-by: Thomas Loeber +Bug-Reference-ID: <200703082223.08919.ifp@loeber1.de> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00036.html + +Bug-Description: + +When rl_read_key returns -1, indicating that bash's controlling terminal +has been invalidated for some reason (e.g., receiving a SIGHUP), the error +status was not reported correctly to the caller. This could cause input +loops. + +Patch: + +*** ../bash-3.2-patched/lib/readline/complete.c Fri Jul 28 11:35:49 2006 +--- lib/readline/complete.c Tue Mar 13 08:50:16 2007 +*************** +*** 429,433 **** + if (c == 'n' || c == 'N' || c == RUBOUT) + return (0); +! if (c == ABORT_CHAR) + _rl_abort_internal (); + if (for_pager && (c == NEWLINE || c == RETURN)) +--- 440,444 ---- + if (c == 'n' || c == 'N' || c == RUBOUT) + return (0); +! if (c == ABORT_CHAR || c < 0) + _rl_abort_internal (); + if (for_pager && (c == NEWLINE || c == RETURN)) +*** ../bash-3.2-patched/lib/readline/input.c Wed Aug 16 15:15:16 2006 +--- lib/readline/input.c Wed May 2 16:07:59 2007 +*************** +*** 514,518 **** + int size; + { +! int mb_len = 0; + size_t mbchar_bytes_length; + wchar_t wc; +--- 522,526 ---- + int size; + { +! int mb_len, c; + size_t mbchar_bytes_length; + wchar_t wc; +*************** +*** 521,531 **** + memset(&ps, 0, sizeof (mbstate_t)); + memset(&ps_back, 0, sizeof (mbstate_t)); +! + while (mb_len < size) + { + RL_SETSTATE(RL_STATE_MOREINPUT); +! mbchar[mb_len++] = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + + mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps); + if (mbchar_bytes_length == (size_t)(-1)) +--- 529,545 ---- + memset(&ps, 0, sizeof (mbstate_t)); + memset(&ps_back, 0, sizeof (mbstate_t)); +! +! mb_len = 0; + while (mb_len < size) + { + RL_SETSTATE(RL_STATE_MOREINPUT); +! c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ break; ++ ++ mbchar[mb_len++] = c; ++ + mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps); + if (mbchar_bytes_length == (size_t)(-1)) +*************** +*** 565,569 **** + c = first; + memset (mb, 0, mlen); +! for (i = 0; i < mlen; i++) + { + mb[i] = (char)c; +--- 579,583 ---- + c = first; + memset (mb, 0, mlen); +! for (i = 0; c >= 0 && i < mlen; i++) + { + mb[i] = (char)c; +*** ../bash-3.2-patched/lib/readline/isearch.c Mon Dec 26 17:18:53 2005 +--- lib/readline/isearch.c Fri Mar 9 14:30:59 2007 +*************** +*** 328,333 **** + + f = (rl_command_func_t *)NULL; +! +! /* Translate the keys we do something with to opcodes. */ + if (c >= 0 && _rl_keymap[c].type == ISFUNC) + { +--- 328,340 ---- + + f = (rl_command_func_t *)NULL; +! +! if (c < 0) +! { +! cxt->sflags |= SF_FAILED; +! cxt->history_pos = cxt->last_found_line; +! return -1; +! } +! +! /* Translate the keys we do something with to opcodes. */ + if (c >= 0 && _rl_keymap[c].type == ISFUNC) + { +*** ../bash-3.2-patched/lib/readline/misc.c Mon Dec 26 17:20:46 2005 +--- lib/readline/misc.c Fri Mar 9 14:44:11 2007 +*************** +*** 147,150 **** +--- 147,152 ---- + rl_clear_message (); + RL_UNSETSTATE(RL_STATE_NUMERICARG); ++ if (key < 0) ++ return -1; + return (_rl_dispatch (key, _rl_keymap)); + } +*** ../bash-3.2-patched/lib/readline/readline.c Wed Aug 16 15:00:36 2006 +--- lib/readline/readline.c Fri Mar 9 14:47:24 2007 +*************** +*** 646,649 **** +--- 669,677 ---- + { + nkey = _rl_subseq_getchar (cxt->okey); ++ if (nkey < 0) ++ { ++ _rl_abort_internal (); ++ return -1; ++ } + r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg); + cxt->flags |= KSEQ_DISPATCHED; +*** ../bash-3.2-patched/lib/readline/text.c Fri Jul 28 11:55:27 2006 +--- lib/readline/text.c Sun Mar 25 13:41:38 2007 +*************** +*** 858,861 **** +--- 864,870 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ return -1; ++ + #if defined (HANDLE_SIGNALS) + if (RL_ISSTATE (RL_STATE_CALLBACK) == 0) +*************** +*** 1521,1524 **** +--- 1530,1536 ---- + mb_len = _rl_read_mbchar (mbchar, MB_LEN_MAX); + ++ if (mb_len <= 0) ++ return -1; ++ + if (count < 0) + return (_rl_char_search_internal (-count, bdir, mbchar, mb_len)); +*************** +*** 1537,1540 **** +--- 1549,1555 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ return -1; ++ + if (count < 0) + return (_rl_char_search_internal (-count, bdir, c)); +*** ../bash-3.2-patched/lib/readline/vi_mode.c Sat Jul 29 16:42:28 2006 +--- lib/readline/vi_mode.c Fri Mar 9 15:02:11 2007 +*************** +*** 887,890 **** +--- 887,897 ---- + c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); ++ ++ if (c < 0) ++ { ++ *nextkey = 0; ++ return -1; ++ } ++ + *nextkey = c; + +*************** +*** 903,906 **** +--- 910,918 ---- + c = rl_read_key (); /* real command */ + RL_UNSETSTATE(RL_STATE_MOREINPUT); ++ if (c < 0) ++ { ++ *nextkey = 0; ++ return -1; ++ } + *nextkey = c; + } +*************** +*** 1225,1236 **** + _rl_callback_generic_arg *data; + { + #if defined (HANDLE_MULTIBYTE) +! _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! _rl_vi_last_search_char = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + #endif + + _rl_callback_func = 0; + _rl_want_redisplay = 1; +--- 1243,1262 ---- + _rl_callback_generic_arg *data; + { ++ int c; + #if defined (HANDLE_MULTIBYTE) +! c = _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + #endif + ++ if (c <= 0) ++ return -1; ++ ++ #if !defined (HANDLE_MULTIBYTE) ++ _rl_vi_last_search_char = c; ++ #endif ++ + _rl_callback_func = 0; + _rl_want_redisplay = 1; +*************** +*** 1248,1251 **** +--- 1274,1278 ---- + int count, key; + { ++ int c; + #if defined (HANDLE_MULTIBYTE) + static char *target; +*************** +*** 1294,1302 **** + { + #if defined (HANDLE_MULTIBYTE) +! _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! _rl_vi_last_search_char = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); + #endif + } +--- 1321,1335 ---- + { + #if defined (HANDLE_MULTIBYTE) +! c = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX); +! if (c <= 0) +! return -1; +! _rl_vi_last_search_mblen = c; + #else + RL_SETSTATE(RL_STATE_MOREINPUT); +! c = rl_read_key (); + RL_UNSETSTATE(RL_STATE_MOREINPUT); ++ if (c < 0) ++ return -1; ++ _rl_vi_last_search_char = c; + #endif + } +*************** +*** 1468,1471 **** +--- 1501,1507 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + ++ if (c < 0) ++ return -1; ++ + #if defined (HANDLE_MULTIBYTE) + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) +*************** +*** 1486,1489 **** +--- 1522,1528 ---- + _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX); + ++ if (c < 0) ++ return -1; ++ + _rl_callback_func = 0; + _rl_want_redisplay = 1; +*************** +*** 1517,1520 **** +--- 1556,1562 ---- + _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX); + ++ if (c < 0) ++ return -1; ++ + return (_rl_vi_change_char (count, c, mb)); + } +*************** +*** 1651,1655 **** + RL_UNSETSTATE(RL_STATE_MOREINPUT); + +! if (ch < 'a' || ch > 'z') + { + rl_ding (); +--- 1693,1697 ---- + RL_UNSETSTATE(RL_STATE_MOREINPUT); + +! if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */ + { + rl_ding (); +*************** +*** 1703,1707 **** + return 0; + } +! else if (ch < 'a' || ch > 'z') + { + rl_ding (); +--- 1745,1749 ---- + return 0; + } +! else if (ch < 0 || ch < 'a' || ch > 'z') /* make test against 0 explicit */ + { + rl_ding (); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 18 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 19 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/man-test.dpatch +++ bash-3.2/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. --- bash-3.2.orig/debian/patches/bash32-042.dpatch +++ bash-3.2/debian/patches/bash32-042.dpatch @@ -0,0 +1,67 @@ +#! /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: bash-3.2 upstream patch bash32-042 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-042 + +Bug-Reported-by: Archimerged Ark Submedes +Bug-Reference-ID: <5ba4bef00804182116g65ff71e0qdffcf672f205e708@mail.gmail.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-04/msg00041.html + +Bug-Description: + +An operator precedence error prevented the bash arithmetic evaluator from +parsing conditional commands correctly. + +Patch: + +*** ../bash-3.2-patched/expr.c 2007-12-13 22:30:43.000000000 -0500 +--- expr.c 2008-08-17 13:09:59.000000000 -0400 +*************** +*** 521,525 **** + noeval++; + } +! val2 = explor (); + if (set_noeval) + noeval--; +--- 521,526 ---- + noeval++; + } +! +! val2 = expcond (); + if (set_noeval) + noeval--; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 41 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 42 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-001.dpatch +++ bash-3.2/debian/patches/bash32-001.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: bash-3.2 upstream patch bash32-001 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-001 + +Bug-Reported-by: Greg Schafer +Bug-Reference-ID: <20061012084940.GA15768@tigers.local> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00046.html + +Bug-Description: + +When using historical ``-style command substitution, bash incorrectly attempts +to interpret shell comments while scanning for the closing backquote. + +Patch: + +*** ../bash-3.2/parse.y Tue Sep 19 16:37:21 2006 +--- parse.y Thu Oct 12 10:30:57 2006 +*************** +*** 2736,2740 **** + 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. */ +--- 2736,2740 ---- + count = 1; + pass_next_character = backq_backslash = was_dollar = in_comment = 0; +! check_comment = (flags & P_COMMAND) && qc != '`' && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0; + + /* RFLAGS is the set of flags we want to pass to recursive calls. */ +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 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_ */ --- bash-3.2.orig/debian/patches/rl-header.dpatch +++ bash-3.2/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 + # include + # include + # include --- bash-3.2.orig/debian/patches/man-arithmetic.dpatch +++ bash-3.2/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 --- bash-3.2.orig/debian/patches/bash32-027.dpatch +++ bash-3.2/debian/patches/bash32-027.dpatch @@ -0,0 +1,104 @@ +#! /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: bash-3.2 upstream patch bash32-027 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-027 + +Bug-Reported-by: dAniel hAhler +Bug-Reference-ID: <4702ED8A.5000503@thequod.de> +Bug-Reference-URL: https://bugs.launchpad.net/ubuntu/+source/bash/+bug/119938 + +Bug-Description: + +When updating the display after displaying, for instance, a list of possible +completions, readline will place the cursor at the wrong position if the +prompt contains invisible characters and a newline. + +Patch: + +*** ../bash-3.2.25/lib/readline/display.c Mon Aug 6 14:26:29 2007 +--- lib/readline/display.c Wed Oct 10 22:43:58 2007 +*************** +*** 1049,1053 **** + else + tx = nleft; +! if (_rl_last_c_pos > tx) + { + _rl_backspace (_rl_last_c_pos - tx); /* XXX */ +--- 1049,1053 ---- + else + tx = nleft; +! if (tx >= 0 && _rl_last_c_pos > tx) + { + _rl_backspace (_rl_last_c_pos - tx); /* XXX */ +*************** +*** 1205,1209 **** + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd; + int current_invis_chars; + int col_lendiff, col_temp; +--- 1205,1209 ---- + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +*************** +*** 1466,1469 **** +--- 1466,1471 ---- + } + ++ o_cpos = _rl_last_c_pos; ++ + /* When this function returns, _rl_last_c_pos is correct, and an absolute + cursor postion in multibyte mode, but a buffer index when not in a +*************** +*** 1475,1479 **** + invisible characters in the prompt string. Let's see if setting this when + we make sure we're at the end of the drawn prompt string works. */ +! if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && _rl_last_c_pos == prompt_physical_chars) + cpos_adjusted = 1; + #endif +--- 1477,1483 ---- + invisible characters in the prompt string. Let's see if setting this when + we make sure we're at the end of the drawn prompt string works. */ +! if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && +! (_rl_last_c_pos > 0 || o_cpos > 0) && +! _rl_last_c_pos == prompt_physical_chars) + cpos_adjusted = 1; + #endif +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 26 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 27 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/random.dpatch +++ bash-3.2/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) --- bash-3.2.orig/debian/patches/man-bold-comma.dpatch +++ bash-3.2/debian/patches/man-bold-comma.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: markup fix + +--- bash-3.1/doc/bash.1.orig 2007-05-30 09:53:07.000000000 +0200 ++++ bash-3.1/doc/bash.1 2007-05-30 09:53:13.000000000 +0200 +@@ -577,7 +577,7 @@ + have equal precedence, followed by + .B ; + and +-.BR &, ++.BR & , + which have equal precedence. + .PP + A sequence of one or more newlines may appear in a \fIlist\fP instead --- bash-3.2.orig/debian/patches/man-fignore.dpatch +++ bash-3.2/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 --- bash-3.2.orig/debian/patches/man-builtin.dpatch +++ bash-3.2/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) --- bash-3.2.orig/debian/patches/bash32-044.dpatch +++ bash-3.2/debian/patches/bash32-044.dpatch @@ -0,0 +1,169 @@ +#! /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: bash-3.2 upstream patch bash32-044 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-044 + +Bug-Reported-by: slinkp +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-05/msg00085.html + +Bug-Description: + +The presence of invisible characters in a prompt longer than the screenwidth +with invisible characters on the first and last prompt lines caused readline +to place the cursor in the wrong physical location. + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c 2007-12-14 21:12:40.000000000 -0500 +--- lib/readline/display.c 2008-10-23 09:39:46.000000000 -0400 +*************** +*** 911,914 **** +--- 944,951 ---- + OFFSET (which has already been calculated above). */ + ++ #define INVIS_FIRST() (prompt_physical_chars > _rl_screenwidth ? prompt_invis_chars_first_line : wrap_offset) ++ #define WRAP_OFFSET(line, offset) ((line == 0) \ ++ ? (offset ? INVIS_FIRST() : 0) \ ++ : ((line == prompt_last_screen_line) ? wrap_offset-prompt_invis_chars_first_line : 0)) + #define W_OFFSET(line, offset) ((line) == 0 ? offset : 0) + #define VIS_LLEN(l) ((l) > _rl_vis_botlin ? 0 : (vis_lbreaks[l+1] - vis_lbreaks[l])) +*************** +*** 945,949 **** + _rl_last_c_pos > wrap_offset && + o_cpos < prompt_last_invisible) +! _rl_last_c_pos -= wrap_offset; + + /* If this is the line with the prompt, we might need to +--- 982,992 ---- + _rl_last_c_pos > wrap_offset && + o_cpos < prompt_last_invisible) +! _rl_last_c_pos -= prompt_invis_chars_first_line; /* XXX - was wrap_offset */ +! else if (linenum == prompt_last_screen_line && prompt_physical_chars > _rl_screenwidth && +! (MB_CUR_MAX > 1 && rl_byte_oriented == 0) && +! cpos_adjusted == 0 && +! _rl_last_c_pos != o_cpos && +! _rl_last_c_pos > (prompt_last_invisible - _rl_screenwidth - prompt_invis_chars_first_line)) +! _rl_last_c_pos -= (wrap_offset-prompt_invis_chars_first_line); + + /* If this is the line with the prompt, we might need to +*************** +*** 1205,1209 **** + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +--- 1264,1268 ---- + { + register char *ofd, *ols, *oe, *nfd, *nls, *ne; +! int temp, lendiff, wsatend, od, nd, twidth, o_cpos; + int current_invis_chars; + int col_lendiff, col_temp; +*************** +*** 1221,1225 **** + temp = _rl_last_c_pos; + else +! temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset); + if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode + && _rl_last_v_pos == current_line - 1) +--- 1280,1284 ---- + temp = _rl_last_c_pos; + else +! temp = _rl_last_c_pos - WRAP_OFFSET (_rl_last_v_pos, visible_wrap_offset); + if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode + && _rl_last_v_pos == current_line - 1) +*************** +*** 1587,1599 **** + { + _rl_output_some_chars (nfd + lendiff, temp - lendiff); +- #if 1 + /* XXX -- this bears closer inspection. Fixes a redisplay bug + reported against bash-3.0-alpha by Andreas Schwab involving + multibyte characters and prompt strings with invisible + characters, but was previously disabled. */ +! _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-col_lendiff); +! #else +! _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-lendiff); +! #endif + } + } +--- 1648,1660 ---- + { + _rl_output_some_chars (nfd + lendiff, temp - lendiff); + /* XXX -- this bears closer inspection. Fixes a redisplay bug + reported against bash-3.0-alpha by Andreas Schwab involving + multibyte characters and prompt strings with invisible + characters, but was previously disabled. */ +! if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) +! twidth = _rl_col_width (nfd+lendiff, 0, temp-col_lendiff); +! else +! twidth = temp - lendiff; +! _rl_last_c_pos += twidth; + } + } +*************** +*** 1789,1793 **** + int cpos, dpos; /* current and desired cursor positions */ + +! woff = W_OFFSET (_rl_last_v_pos, wrap_offset); + cpos = _rl_last_c_pos; + #if defined (HANDLE_MULTIBYTE) +--- 1850,1854 ---- + int cpos, dpos; /* current and desired cursor positions */ + +! woff = WRAP_OFFSET (_rl_last_v_pos, wrap_offset); + cpos = _rl_last_c_pos; + #if defined (HANDLE_MULTIBYTE) +*************** +*** 1803,1807 **** + prompt string, since they're both buffer indices and DPOS is a + desired display position. */ +! if (new > prompt_last_invisible) /* XXX - don't use woff here */ + { + dpos -= woff; +--- 1864,1872 ---- + prompt string, since they're both buffer indices and DPOS is a + desired display position. */ +! if ((new > prompt_last_invisible) || /* XXX - don't use woff here */ +! (prompt_physical_chars > _rl_screenwidth && +! _rl_last_v_pos == prompt_last_screen_line && +! wrap_offset != woff && +! new > (prompt_last_invisible-_rl_screenwidth-wrap_offset))) + { + dpos -= woff; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 43 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 44 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-021.dpatch +++ bash-3.2/debian/patches/bash32-021.dpatch @@ -0,0 +1,91 @@ +#! /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: bash-3.2 upstream patch bash32-021 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-021 + +Bug-Reported-by: BAGSHAW Paul RD-TECH-REN +Bug-Reference-ID: <941BA0BF46DB8F4983FF7C8AFE800BC205EA7D4B@ftrdmel3.rd.francetelecom.fr> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00065.html + +Bug-Description: + +When the parser read a backslash-escaped character that would be treated +internally as an escape, it would double the number of escape characters. + +Patch: + +*** ../bash-3.2-patched/parse.y Mon Oct 30 17:22:00 2006 +--- parse.y Sat Mar 24 17:13:20 2007 +*************** +*** 3377,3381 **** + { + pass_next_character = 0; +! goto got_character; + } + +--- 3377,3381 ---- + { + pass_next_character = 0; +! goto got_escaped_character; + } + +*************** +*** 3651,3660 **** + got_character: + +- all_digit_token &= DIGIT (character); +- dollar_present |= character == '$'; +- + if (character == CTLESC || character == CTLNUL) + token[token_index++] = CTLESC; + + token[token_index++] = character; + +--- 3651,3662 ---- + got_character: + + if (character == CTLESC || character == CTLNUL) + token[token_index++] = CTLESC; + ++ got_escaped_character: ++ ++ all_digit_token &= DIGIT (character); ++ dollar_present |= character == '$'; ++ + token[token_index++] = character; + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 20 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 21 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-039-doc.dpatch +++ bash-3.2/debian/patches/bash32-039-doc.dpatch @@ -0,0 +1,53 @@ +#! /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: bash-3.2 upstream patch bash32-039 (documentation) + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-039 + +Bug-Reported-by: rew@erebor.com +Bug-Reference-ID: <20070119065603.546D011E9C@kansas.erebor.com> +Bug-Reference-URL: + +Bug-Description: + +Bash-3.2 changed the behavior of the [[ command's `=~' operator when the +right-hand side was quoted: it matched the quoted portions as strings. +This patch introduces a new shell option: compat31. When enabled, it +restores the bash-3.1 behavior with respect to evaluating quoted arguments +to the =~ operator. + +Patch: + +*** ../bash-20080214/doc/bashref.texi 2008-02-08 21:28:35.000000000 -0500 +--- doc/bashref.texi 2008-02-22 21:44:51.000000000 -0500 +*************** +*** 4053,4056 **** +--- 4061,4069 ---- + easy re-editing of multi-line commands. + ++ @item compat31 ++ If set, Bash ++ changes its behavior to that of version 3.1 with respect to quoted ++ arguments to the conditional command's =~ operator. ++ + @item dotglob + If set, Bash includes filenames beginning with a `.' in --- bash-3.2.orig/debian/patches/bash32-023.dpatch +++ bash-3.2/debian/patches/bash32-023.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: bash-3.2 upstream patch bash32-023 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-023 + +Bug-Reported-by: Chet Ramey +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +When an error occurs during the pattern removal word expansion, the shell +can free unallocated memory or free memory multiple times. + +Patch: + +*** ../bash-3.2-patched/subst.c Tue Apr 3 16:47:19 2007 +--- subst.c Tue Jul 17 09:45:11 2007 +*************** +*** 3975,3979 **** + patstr++; + +! pattern = getpattern (patstr, quoted, 1); + + temp1 = (char *)NULL; /* shut up gcc */ +--- 4008,4016 ---- + patstr++; + +! /* Need to pass getpattern newly-allocated memory in case of expansion -- +! the expansion code will free the passed string on an error. */ +! temp1 = savestring (patstr); +! pattern = getpattern (temp1, quoted, 1); +! free (temp1); + + temp1 = (char *)NULL; /* shut up gcc */ +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 22 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 23 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/rbash-manpage.dpatch +++ bash-3.2/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) --- bash-3.2.orig/debian/patches/rl-del-backspace-policy.dpatch +++ bash-3.2/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; + } --- bash-3.2.orig/debian/patches/bash32-007.dpatch +++ bash-3.2/debian/patches/bash32-007.dpatch @@ -0,0 +1,74 @@ +#! /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: bash-3.2 upstream patch bash32-007 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-007 + +Bug-Reported-by: jidanni@jidanni.org +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00039.html + +Bug-Description: + +When removing the current or previous job from the jobs list, bash incorrectly +resets the current job under some circumstances. + +Patch: + +*** ../bash-3.2-patched/jobs.c Sat Jul 29 16:40:48 2006 +--- jobs.c Fri Nov 24 14:50:01 2006 +*************** +*** 985,990 **** + if (temp == 0) + return; +- if (job_index == js.j_current || job_index == js.j_previous) +- reset_current (); + + if ((dflags & DEL_NOBGPID) == 0) +--- 985,988 ---- +*************** +*** 1029,1032 **** +--- 1027,1033 ---- + else if (jobs[js.j_firstj] == 0 || jobs[js.j_lastj] == 0) + reset_job_indices (); ++ ++ if (job_index == js.j_current || job_index == js.j_previous) ++ reset_current (); + } + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 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_ */ + + --- bash-3.2.orig/debian/patches/bash32-024.dpatch +++ bash-3.2/debian/patches/bash32-024.dpatch @@ -0,0 +1,96 @@ +#! /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: bash-3.2 upstream patch bash32-024 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-024 + +Bug-Reported-by: Peter Volkov +Bug-Reference-ID: <1178376645.9063.25.camel@localhost> +Bug-Reference-URL: http://bugs.gentoo.org/177095 + +Bug-Description: + +The readline display code miscalculated the screen position when performing +a redisplay in which the new text occupies more screen space that the old, +but takes fewer bytes to do so (e.g., when replacing a shorter string +containing multibyte characters with a longer one containing only ASCII). + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c Thu Apr 26 11:38:22 2007 +--- lib/readline/display.c Thu Jul 12 23:10:10 2007 +*************** +*** 1519,1527 **** + /* Non-zero if we're increasing the number of lines. */ + int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin; + /* Sometimes it is cheaper to print the characters rather than + use the terminal's capabilities. If we're growing the number + of lines, make sure we actually cause the new line to wrap + around on auto-wrapping terminals. */ +! if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl)) + { + /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and +--- 1568,1596 ---- + /* Non-zero if we're increasing the number of lines. */ + int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin; ++ /* If col_lendiff is > 0, implying that the new string takes up more ++ screen real estate than the old, but lendiff is < 0, meaning that it ++ takes fewer bytes, we need to just output the characters starting ++ from the first difference. These will overwrite what is on the ++ display, so there's no reason to do a smart update. This can really ++ only happen in a multibyte environment. */ ++ if (lendiff < 0) ++ { ++ _rl_output_some_chars (nfd, temp); ++ _rl_last_c_pos += _rl_col_width (nfd, 0, temp); ++ /* If nfd begins before any invisible characters in the prompt, ++ adjust _rl_last_c_pos to account for wrap_offset and set ++ cpos_adjusted to let the caller know. */ ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } ++ return; ++ } + /* Sometimes it is cheaper to print the characters rather than + use the terminal's capabilities. If we're growing the number + of lines, make sure we actually cause the new line to wrap + around on auto-wrapping terminals. */ +! else if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl)) + { + /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 23 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 24 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-012.dpatch +++ bash-3.2/debian/patches/bash32-012.dpatch @@ -0,0 +1,115 @@ +#! /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: bash-3.2 upstream patch bash32-012 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-012 + +Bug-Reported-by: John Wyman +Bug-Reference-ID: <5E7DEFC094C35044B87FAE761D9F0EE20143A3B7@exchange2k.celink.com> +Bug-Reference-URL: + +Bug-Description: + +Some systems (AIX 4.x) don't implement the PRI_xxx macros correctly, +causing syntax errors when attempting to compile bash on those systems. +This patch adds support for the PRI_MACROS_BROKEN define. + +You will need to re-run `configure' after applying the patch. Run +`touch configure' so make doesn't try to run autoconf. + +Patch: + +*** ../bash-3.2.11/config.h.in Tue Sep 12 16:00:54 2006 +--- config.h.in Tue Mar 6 11:17:55 2007 +*************** +*** 1,5 **** + /* config.h -- Configuration file for bash. */ + +! /* Copyright (C) 1987-2006 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 1,5 ---- + /* config.h -- Configuration file for bash. */ + +! /* Copyright (C) 1987-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 414,417 **** +--- 414,419 ---- + #undef HAVE_DECL_STRTOLD + ++ #undef PRI_MACROS_BROKEN ++ + #undef STRTOLD_BROKEN + +*************** +*** 1007,1010 **** +--- 1009,1015 ---- + #undef HAVE_DCGETTEXT + ++ /* Define if you have the `localeconv' function. */ ++ #undef HAVE_LOCALECONV ++ + /* Define if your system has a working `malloc' function. */ + /* #undef HAVE_MALLOC */ +*** ../bash-3.2.11/builtins/printf.def Mon Nov 13 08:58:52 2006 +--- builtins/printf.def Sun Feb 4 13:58:59 2007 +*************** +*** 2,6 **** + It implements the builtin "printf" in Bash. + +! Copyright (C) 1997-2005 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +--- 2,6 ---- + It implements the builtin "printf" in Bash. + +! Copyright (C) 1997-2007 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. +*************** +*** 71,74 **** +--- 71,78 ---- + #include "common.h" + ++ #if defined (PRI_MACROS_BROKEN) ++ # undef PRIdMAX ++ #endif ++ + #if !defined (PRIdMAX) + # if HAVE_LONG_LONG +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 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_ */ --- bash-3.2.orig/debian/patches/bash32-047.dpatch +++ bash-3.2/debian/patches/bash32-047.dpatch @@ -0,0 +1,84 @@ +#! /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: bash-3.2 upstream patch bash32-047 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-047 + +Bug-Reported-by: Roman Rakus +Bug-Reference-ID: <48A89EBC.906@redhat.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-08/msg00026.html + +Bug-Description: + +When using the `.' (source) builtin, under certain circumstances bash was +too careful in discarding state to preserve internal consistency. One +effect was that assignments to readonly variables would cause entire scripts +to be aborted instead of execution of the offending command. This behavior +was introduced by bash-3.2 patch 20. + +Patch: + +*** /usr/src/local/chet/src/bash/bash-3.2-patched/subst.c 2008-04-29 21:24:55.000000000 -0400 +--- subst.c 2008-11-13 17:44:25.000000000 -0500 +*************** +*** 138,142 **** + extern int last_command_exit_value, last_command_exit_signal; + extern int subshell_environment; +! extern int subshell_level; + extern int eof_encountered; + extern int return_catch_flag, return_catch_value; +--- 138,142 ---- + extern int last_command_exit_value, last_command_exit_signal; + extern int subshell_environment; +! extern int subshell_level, parse_and_execute_level; + extern int eof_encountered; + extern int return_catch_flag, return_catch_value; +*************** +*** 7673,7677 **** + expanding_redir = 0; + +! top_level_cleanup (); /* from sig.c */ + + jump_to_top_level (v); +--- 7673,7679 ---- + expanding_redir = 0; + +! if (parse_and_execute_level == 0) +! top_level_cleanup (); /* from sig.c */ +! + + jump_to_top_level (v); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 46 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 47 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/exec-redirections-texi.dpatch +++ bash-3.2/debian/patches/exec-redirections-texi.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 -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 + +--- bash/doc/bashref.texi~ 2005-10-03 15:07:21.000000000 -0400 ++++ bash/doc/bashref.texi 2006-07-12 21:26:57.000000000 -0400 +@@ -2030,6 +2030,9 @@ + care, as they may conflict with file descriptors the shell uses + internally. + ++Note that the @code{exec} builtin command can make redirections take ++effect in the current shell. ++ + @subsection Redirecting Input + Redirection of input causes the file whose name results from + the expansion of @var{word} --- bash-3.2.orig/debian/patches/rl-examples-bdb.dpatch +++ bash-3.2/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 + #include +-#include "posixstat.h" ++#include + + #if defined (READLINE_LIBRARY) + # include "readline.h" --- bash-3.2.orig/debian/patches/bash32-004.dpatch +++ bash-3.2/debian/patches/bash32-004.dpatch @@ -0,0 +1,115 @@ +#! /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: bash-3.2 upstream patch bash32-004 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-004 + +Bug-Reported-by: Stuart Shelton +Bug-Reference-ID: <619141e40610261203y6cda5aa6i23cb24c7aeba996e@mail.gmail.com> +Bug-Reference-URL: + +Bug-Description: + +A bug in the parameter pattern substitution implementation treated a pattern +whose first character was `/' (after expansion) as specifying global +replacement. + +Patch: + +*** ../bash-3.2/subst.c Tue Sep 19 08:35:09 2006 +--- subst.c Thu Oct 26 09:17:50 2006 +*************** +*** 5707,5712 **** +--- 5707,5717 ---- + vtype &= ~VT_STARSUB; + + mflags = 0; ++ if (patsub && *patsub == '/') ++ { ++ mflags |= MATCH_GLOBREP; ++ patsub++; ++ } + + /* Malloc this because expand_string_if_necessary or one of the expansion + functions in its call chain may free it on a substitution error. */ +*************** +*** 5741,5753 **** + } + + /* ksh93 doesn't allow the match specifier to be a part of the expanded +! pattern. This is an extension. */ + p = pat; +! if (pat && pat[0] == '/') +! { +! mflags |= MATCH_GLOBREP|MATCH_ANY; +! p++; +! } + else if (pat && pat[0] == '#') + { + mflags |= MATCH_BEG; +--- 5746,5757 ---- + } + + /* ksh93 doesn't allow the match specifier to be a part of the expanded +! pattern. This is an extension. Make sure we don't anchor the pattern +! at the beginning or end of the string if we're doing global replacement, +! though. */ + p = pat; +! if (mflags & MATCH_GLOBREP) +! mflags |= MATCH_ANY; + else if (pat && pat[0] == '#') + { + mflags |= MATCH_BEG; +*** ../bash-3.2/tests/new-exp.right Thu Aug 10 12:00:00 2006 +--- tests/new-exp.right Sun Oct 29 16:03:36 2006 +*************** +*** 430,436 **** + Case06---1---A B C::--- + Case07---3---A:B:C--- + Case08---3---A:B:C--- +! ./new-exp.tests: line 506: /${$(($#-1))}: bad substitution + argv[1] = + argv[2] = + argv[3] = +--- 430,436 ---- + Case06---1---A B C::--- + Case07---3---A:B:C--- + Case08---3---A:B:C--- +! ./new-exp.tests: line 506: ${$(($#-1))}: bad substitution + argv[1] = + argv[2] = + argv[3] = +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 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_ */ --- bash-3.2.orig/debian/patches/bash32-003.dpatch +++ bash-3.2/debian/patches/bash32-003.dpatch @@ -0,0 +1,166 @@ +#! /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: bash-3.2 upstream patch bash32-003 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-003 + +Bug-Reported-by: John Gatewood Ham +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00045.html + +Bug-Description: + +When using the conditional command's `=~' operator to match regular +expressions, the parser did not skip over shell metacharacters in the +regular expression, leading to syntax errors. + +Patch: + +*** ../bash-3.2-patched/parse.y Tue Oct 17 11:45:20 2006 +--- parse.y Sat Oct 14 14:56:16 2006 +*************** +*** 1029,1034 **** +--- 1029,1035 ---- + #define PST_CMDTOKEN 0x1000 /* command token OK - unused */ + #define PST_COMPASSIGN 0x2000 /* parsing x=(...) compound assignment */ + #define PST_ASSIGNOK 0x4000 /* assignment statement ok in this context */ ++ #define PST_REGEXP 0x8000 /* parsing an ERE/BRE as a single word */ + + /* Initial size to allocate for tokens, and the + amount to grow them by. */ +*************** +*** 2591,2596 **** +--- 2592,2600 ---- + return (character); + } + ++ if (parser_state & PST_REGEXP) ++ goto tokword; ++ + /* Shell meta-characters. */ + if MBTEST(shellmeta (character) && ((parser_state & PST_DBLPAREN) == 0)) + { +*************** +*** 2698,2703 **** +--- 2702,2708 ---- + if MBTEST(character == '-' && (last_read_token == LESS_AND || last_read_token == GREATER_AND)) + return (character); + ++ tokword: + /* Okay, if we got this far, we have to read a word. Read one, + and then check it against the known ones. */ + result = read_token_word (character); +*************** +*** 3202,3209 **** + if (tok == WORD && test_binop (yylval.word->word)) + op = yylval.word; + #if defined (COND_REGEXP) +! else if (tok == WORD && STREQ (yylval.word->word,"=~")) +! op = yylval.word; + #endif + else if (tok == '<' || tok == '>') + op = make_word_from_token (tok); /* ( */ +--- 3207,3217 ---- + if (tok == WORD && test_binop (yylval.word->word)) + op = yylval.word; + #if defined (COND_REGEXP) +! else if (tok == WORD && STREQ (yylval.word->word, "=~")) +! { +! op = yylval.word; +! parser_state |= PST_REGEXP; +! } + #endif + else if (tok == '<' || tok == '>') + op = make_word_from_token (tok); /* ( */ +*************** +*** 3234,3239 **** +--- 3242,3248 ---- + + /* rhs */ + tok = read_token (READ); ++ parser_state &= ~PST_REGEXP; + if (tok == WORD) + { + tright = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL); +*************** +*** 3419,3427 **** + goto next_character; + } + + #ifdef EXTENDED_GLOB + /* Parse a ksh-style extended pattern matching specification. */ +! if (extended_glob && PATTERN_CHAR (character)) + { + peek_char = shell_getc (1); + if MBTEST(peek_char == '(') /* ) */ +--- 3428,3461 ---- + goto next_character; + } + ++ #ifdef COND_REGEXP ++ /* When parsing a regexp as a single word inside a conditional command, ++ we need to special-case characters special to both the shell and ++ regular expressions. Right now, that is only '(' and '|'. */ /*)*/ ++ if MBTEST((parser_state & PST_REGEXP) && (character == '(' || character == '|')) /*)*/ ++ { ++ if (character == '|') ++ goto got_character; ++ ++ push_delimiter (dstack, character); ++ ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0); ++ pop_delimiter (dstack); ++ if (ttok == &matched_pair_error) ++ return -1; /* Bail immediately. */ ++ RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2, ++ token_buffer_size, TOKEN_DEFAULT_GROW_SIZE); ++ token[token_index++] = character; ++ strcpy (token + token_index, ttok); ++ token_index += ttoklen; ++ FREE (ttok); ++ dollar_present = all_digit_token = 0; ++ goto next_character; ++ } ++ #endif /* COND_REGEXP */ ++ + #ifdef EXTENDED_GLOB + /* Parse a ksh-style extended pattern matching specification. */ +! if MBTEST(extended_glob && PATTERN_CHAR (character)) + { + peek_char = shell_getc (1); + if MBTEST(peek_char == '(') /* ) */ + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 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_ */ + --- bash-3.2.orig/debian/patches/man-substring-exp.dpatch +++ bash-3.2/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 *, --- bash-3.2.orig/debian/patches/bash32-037.dpatch +++ bash-3.2/debian/patches/bash32-037.dpatch @@ -0,0 +1,129 @@ +#! /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: bash-3.2 upstream patch bash32-037 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-037 + +Bug-Reported-by: jared r r spiegel +Bug-Reference-ID: <200801152201.m0FM1lDp021260@iorek.ice-nine.org> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-01/msg00049.html + +Bug-Description: + +Bash inappropriately evaluates command substitutions while expanding +directory names as part of command substitution. + +Patch: + +*** ../bash-3.2-patched/subst.c 2007-12-13 22:31:21.000000000 -0500 +--- subst.c 2008-01-17 22:48:15.000000000 -0500 +*************** +*** 2815,2821 **** + to jump_to_top_level here so we don't endlessly loop. */ + WORD_LIST * +! expand_prompt_string (string, quoted) + char *string; + int quoted; + { + WORD_LIST *value; +--- 2895,2902 ---- + to jump_to_top_level here so we don't endlessly loop. */ + WORD_LIST * +! expand_prompt_string (string, quoted, wflags) + char *string; + int quoted; ++ int wflags; + { + WORD_LIST *value; +*************** +*** 2825,2829 **** + return ((WORD_LIST *)NULL); + +! td.flags = 0; + td.word = savestring (string); + +--- 2906,2910 ---- + return ((WORD_LIST *)NULL); + +! td.flags = wflags; + td.word = savestring (string); + +*** ../bash-3.2-patched/subst.h 2007-03-24 14:51:05.000000000 -0400 +--- subst.h 2008-01-17 22:46:08.000000000 -0500 +*************** +*** 136,140 **** + + /* Expand a prompt string. */ +! extern WORD_LIST *expand_prompt_string __P((char *, int)); + + /* Expand STRING just as if you were expanding a word. This also returns +--- 137,141 ---- + + /* Expand a prompt string. */ +! extern WORD_LIST *expand_prompt_string __P((char *, int, int)); + + /* Expand STRING just as if you were expanding a word. This also returns +*** ../bash-3.2-patched/parse.y 2007-08-25 13:47:06.000000000 -0400 +--- parse.y 2008-01-17 22:46:30.000000000 -0500 +*************** +*** 4367,4371 **** + { + last_exit_value = last_command_exit_value; +! list = expand_prompt_string (result, Q_DOUBLE_QUOTES); + free (result); + result = string_list (list); +--- 4367,4371 ---- + { + last_exit_value = last_command_exit_value; +! list = expand_prompt_string (result, Q_DOUBLE_QUOTES, 0); + free (result); + result = string_list (list); +*** ../bash-3.2-patched/bashline.c 2006-07-29 16:39:30.000000000 -0400 +--- bashline.c 2008-02-17 12:53:42.000000000 -0500 +*************** +*** 2358,2362 **** + { + new_dirname = savestring (local_dirname); +! wl = expand_prompt_string (new_dirname, 0); /* does the right thing */ + if (wl) + { +--- 2376,2380 ---- + { + new_dirname = savestring (local_dirname); +! wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB); /* does the right thing */ + if (wl) + { +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 36 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 37 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-034.dpatch +++ bash-3.2/debian/patches/bash32-034.dpatch @@ -0,0 +1,93 @@ +#! /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: bash-3.2 upstream patch bash32-034 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-034 + +Bug-Reported-by: Ian Campbell +Bug-Reference-ID: +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-10/msg00060.html + +Bug-Description: + +The bash getcwd replacement will write past the end of allocated memory +when it allocates the buffer itself if it uses the buffer size passed as +an argument, and that size is less than the length of the pathname. + +Patch: + +*** ../bash-3.2-patched/lib/sh/getcwd.c 2004-07-21 17:15:19.000000000 -0400 +--- lib/sh/getcwd.c 2007-12-31 19:26:36.000000000 -0500 +*************** +*** 252,268 **** + { + size_t len = pathbuf + pathsize - pathp; + if (buf == NULL) + { +! if (len < (size_t) size) +! len = size; +! buf = (char *) malloc (len); + if (buf == NULL) + goto lose2; + } +! else if ((size_t) size < len) +! { +! errno = ERANGE; +! goto lose2; +! } + (void) memcpy((PTR_T) buf, (PTR_T) pathp, len); + } +--- 287,305 ---- + { + size_t len = pathbuf + pathsize - pathp; ++ if (buf == NULL && size <= 0) ++ size = len; ++ ++ if ((size_t) size < len) ++ { ++ errno = ERANGE; ++ goto lose2; ++ } + if (buf == NULL) + { +! buf = (char *) malloc (size); + if (buf == NULL) + goto lose2; + } +! + (void) memcpy((PTR_T) buf, (PTR_T) pathp, len); + } +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 33 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 34 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/command-not-found.dpatch +++ bash-3.2/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 --- bash-3.2.orig/debian/patches/template.dpatch +++ bash-3.2/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: --- bash-3.2.orig/debian/patches/pgrp-pipe.dpatch +++ bash-3.2/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 + --- bash-3.2.orig/debian/patches/bash32-030.dpatch +++ bash-3.2/debian/patches/bash32-030.dpatch @@ -0,0 +1,69 @@ +#! /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: bash-3.2 upstream patch bash32-030 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-030 + +Bug-Reported-by: Paul Eggert Andreas Schwab +Bug-Reference-ID: <877il0nu84.fsf_-_@penguin.cs.ucla.edu> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-11/msg00023.html http://lists.gnu.org/archive/html/bug-bash/2007-11/msg00022.htmlhttp://lists.gnu.org/archive/html/bug-bash/2007-11/msg00022.html + +Bug-Description: + +If redirections attached to a compound command fail, bash does not set the +command's exit status correctly. This only happens when the command is the +first in a sequential list. + +Patch: + +*** ../bash-3.2-patched/execute_cmd.c 2007-03-24 14:51:05.000000000 -0400 +--- execute_cmd.c 2007-11-05 22:31:14.000000000 -0500 +*************** +*** 615,619 **** + redirection_undo_list = (REDIRECT *)NULL; + dispose_exec_redirects (); +! return (EXECUTION_FAILURE); + } + +--- 620,624 ---- + redirection_undo_list = (REDIRECT *)NULL; + dispose_exec_redirects (); +! return (last_command_exit_value = EXECUTION_FAILURE); + } + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 29 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 30 + + #endif /* _PATCHLEVEL_H_ */ + + --- bash-3.2.orig/debian/patches/bash32-038.dpatch +++ bash-3.2/debian/patches/bash32-038.dpatch @@ -0,0 +1,99 @@ +#! /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: bash-3.2 upstream patch bash32-038 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-038 + +Bug-Reported-by: Wojciech Puchar +Bug-Reference-ID: <200803131141.m2DBf9vo001136@wojtek.tensor.gdynia.pl> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-03/msg00029.html + +Bug-Description: + +When reading input lines into a single variable using the `read' builtin, +bash did not free the memory it read after assigining it to the named +variable, causing a memory leak noticable when reading large amounts of +data. + + +Patch: + +*** ../bash-3.2-patched/builtins/read.def 2007-08-25 13:47:07.000000000 -0400 +--- builtins/read.def 2008-03-07 12:55:47.000000000 -0500 +*************** +*** 135,139 **** + char c; + char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname; +! char *e, *t, *t1, *ps2; + struct stat tsb; + SHELL_VAR *var; +--- 152,156 ---- + char c; + char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname; +! char *e, *t, *t1, *ps2, *tofree; + struct stat tsb; + SHELL_VAR *var; +*************** +*** 675,678 **** +--- 728,732 ---- + /* Check whether or not the number of fields is exactly the same as the + number of variables. */ ++ tofree = NULL; + if (*input_string) + { +*************** +*** 680,684 **** + t = get_word_from_string (&input_string, ifs_chars, &e); + if (*input_string == 0) +! input_string = t; + else + input_string = strip_trailing_ifs_whitespace (t1, ifs_chars, saw_escape); +--- 734,738 ---- + t = get_word_from_string (&input_string, ifs_chars, &e); + if (*input_string == 0) +! tofree = input_string = t; + else + input_string = strip_trailing_ifs_whitespace (t1, ifs_chars, saw_escape); +*************** +*** 695,698 **** +--- 749,754 ---- + var = bind_read_variable (list->word->word, input_string); + stupidly_hack_special_variables (list->word->word); ++ FREE (tofree); ++ + if (var) + VUNSETATTR (var, att_invisible); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 37 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 38 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-018.dpatch +++ bash-3.2/debian/patches/bash32-018.dpatch @@ -0,0 +1,117 @@ +#! /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: bash-3.2 upstream patch bash32-018 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-018 + +Bug-Reported-by: osicka@post.cz +Bug-Reference-ID: <228.177-19682-1132061412-1179356692@post.cz> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-05/msg00061.html + +Bug-Description: + +In certain cases, bash can lose the saved status of a background job, though +it should still be reported by `wait'. Bash can also loop infinitely after +creating and waiting for 4096 jobs. + +Patch: + +*** ../bash-20070510/jobs.c Thu Mar 8 16:05:50 2007 +--- jobs.c Fri May 18 11:40:14 2007 +*************** +*** 784,792 **** + { + old = js.j_firstj++; + while (js.j_firstj != old) + { + if (js.j_firstj >= js.j_jobslots) + js.j_firstj = 0; +! if (jobs[js.j_firstj]) + break; + js.j_firstj++; +--- 784,794 ---- + { + old = js.j_firstj++; ++ if (old >= js.j_jobslots) ++ old = js.j_jobslots - 1; + while (js.j_firstj != old) + { + if (js.j_firstj >= js.j_jobslots) + js.j_firstj = 0; +! if (jobs[js.j_firstj] || js.j_firstj == old) /* needed if old == 0 */ + break; + js.j_firstj++; +*************** +*** 798,806 **** + { + old = js.j_lastj--; + while (js.j_lastj != old) + { + if (js.j_lastj < 0) + js.j_lastj = js.j_jobslots - 1; +! if (jobs[js.j_lastj]) + break; + js.j_lastj--; +--- 800,810 ---- + { + old = js.j_lastj--; ++ if (old < 0) ++ old = 0; + while (js.j_lastj != old) + { + if (js.j_lastj < 0) + js.j_lastj = js.j_jobslots - 1; +! if (jobs[js.j_lastj] || js.j_lastj == old) /* needed if old == js.j_jobslots */ + break; + js.j_lastj--; +*************** +*** 964,968 **** + realloc_jobs_list (); + +! return (js.j_lastj); + } + +--- 975,983 ---- + realloc_jobs_list (); + +! #ifdef DEBUG +! itrace("compact_jobs_list: returning %d", (js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0); +! #endif +! +! return ((js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0); + } + +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 17 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 18 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/man-bashlogout.dpatch +++ bash-3.2/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 --- bash-3.2.orig/debian/patches/bash32-045.dpatch +++ bash-3.2/debian/patches/bash32-045.dpatch @@ -0,0 +1,69 @@ +#! /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: bash-3.2 upstream patch bash32-045 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-045 + +Bug-Reported-by: Roman Rakus +Bug-Reference-ID: <4864B4A0.1060402@redhat.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2008-06/msg00098.html + +Bug-Description: + +When short-circuiting execution due to the `break' or `continue' builtins, +bash did not preserve the value of $?. + +Patch: + +*** ../bash-3.2-patched/execute_cmd.c 2008-04-28 22:00:24.000000000 -0400 +--- execute_cmd.c 2008-10-18 14:35:03.000000000 -0400 +*************** +*** 502,507 **** +--- 514,526 ---- + volatile int save_line_number; + ++ #if 0 + if (command == 0 || breaking || continuing || read_but_dont_execute) + return (EXECUTION_SUCCESS); ++ #else ++ if (breaking || continuing) ++ return (last_command_exit_value); ++ if (command == 0 || read_but_dont_execute) ++ return (EXECUTION_SUCCESS); ++ #endif + + QUIT; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 44 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 45 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-026.dpatch +++ bash-3.2/debian/patches/bash32-026.dpatch @@ -0,0 +1,101 @@ +#! /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: bash-3.2 upstream patch bash32-026 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-026 + +Bug-Reported-by: Chet Ramey +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +This keeps the Apple linker from attempting to link bash against Apple's +readline library "replacement" rather than the one shipped with bash. It +extends the configure workaround to Mac OS X Leopard (10.5). + +As a side effect, the patch updates the copyright date displayed in the +version string. + +You must re-run configure after applying the patch, and before rebuilding +bash. + +Patch: + +*** ../bash-3.2-patched/configure.in 2007-03-06 11:07:38.000000000 -0500 +--- configure.in 2007-11-23 15:37:41.000000000 -0500 +*************** +*** 519,523 **** + # dynamic version + case "${host_os}" in +! darwin8*) READLINE_LIB='${READLINE_LIBRARY}' ;; + *) READLINE_LIB=-lreadline ;; + esac +--- 519,523 ---- + # dynamic version + case "${host_os}" in +! darwin[[89]]*) READLINE_LIB='${READLINE_LIBRARY}' ;; + *) READLINE_LIB=-lreadline ;; + esac +*** ../bash-3.2-patched/configure 2007-03-24 14:51:22.000000000 -0400 +--- configure 2007-11-23 15:46:15.000000000 -0500 +*************** +*** 4872,4876 **** + # dynamic version + case "${host_os}" in +! darwin8*) READLINE_LIB='${READLINE_LIBRARY}' ;; + *) READLINE_LIB=-lreadline ;; + esac +--- 4872,4876 ---- + # dynamic version + case "${host_os}" in +! darwin[89]*) READLINE_LIB='${READLINE_LIBRARY}' ;; + *) READLINE_LIB=-lreadline ;; + esac +*** ../bash-3.2-patched/version.c 2005-05-16 11:58:34.000000000 -0400 +--- version.c 2007-11-23 16:03:40.000000000 -0500 +*************** +*** 80,83 **** + printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE); + if (extended) +! printf (_("Copyright (C) 2005 Free Software Foundation, Inc.\n")); + } +--- 80,83 ---- + printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE); + if (extended) +! printf (_("Copyright (C) 2007 Free Software Foundation, Inc.\n")); + } +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 25 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 26 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-006.dpatch +++ bash-3.2/debian/patches/bash32-006.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 + +# DP: bash-3.2 upstream patch bash32-006 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-006 + +Bug-Reported-by: ebb9@byu.net +Bug-Reference-ID: <45540862.9030900@byu.net> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00017.html + http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00016.html + +Bug-Description: + +In some cases, code that is intended to be used in the presence of multibyte +characters is called when no such characters are present, leading to incorrect +display position calculations and incorrect redisplay. + +Patch: + +*** ../bash-3.2-patched/lib/readline/display.c Thu Sep 14 14:20:12 2006 +--- lib/readline/display.c Mon Nov 13 17:55:57 2006 +*************** +*** 2381,2384 **** +--- 2409,2414 ---- + if (end <= start) + return 0; ++ if (MB_CUR_MAX == 1 || rl_byte_oriented) ++ return (end - start); + + memset (&ps, 0, sizeof (mbstate_t)); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 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_ */ --- bash-3.2.orig/debian/patches/bash32-036.dpatch +++ bash-3.2/debian/patches/bash32-036.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: bash-3.2 upstream patch bash32-036 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-036 + +Bug-Reported-by: Len Lattanzi +Bug-Reference-ID: <87493131-7AEC-4301-A684-E6CC6D06E3E1@apple.com> +Bug-Reference-URL: + +Bug-Description: + +When initializing a subshell, bash did not reset a sentinel keeping track +of the number of command substitutions, leading to an infinite loop if +an error was encountered in the subshell. + +Patch: + +*** ../bash-3.2-patched/execute_cmd.c 2007-12-13 22:31:14.000000000 -0500 +--- execute_cmd.c 2007-12-20 08:52:34.000000000 -0500 +*************** +*** 3881,3884 **** +--- 3916,3921 ---- + + clear_unwind_protect_list (0); ++ /* XXX -- are there other things we should be resetting here? */ ++ parse_and_execute_level = 0; /* nothing left to restore it */ + + /* We're no longer inside a shell function. */ +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 35 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 36 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-017.dpatch +++ bash-3.2/debian/patches/bash32-017.dpatch @@ -0,0 +1,104 @@ +#! /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: bash-3.2 upstream patch bash32-017 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-017 + +Bug-Reported-by: Peter Volkov +Bug-Reference-ID: <1173636022.7039.36.camel@localhost> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00039.html + +Bug-Description: + +When restoring the original prompt after finishing an incremental search, +bash sometimes places the cursor incorrectly if the primary prompt contains +invisible characters. + +Patch: + +*** ../bash-3.2.16/lib/readline/display.c Fri Apr 20 13:30:16 2007 +--- lib/readline/display.c Fri Apr 20 15:17:01 2007 +*************** +*** 1599,1604 **** + if (temp > 0) + { + _rl_output_some_chars (nfd, temp); +! _rl_last_c_pos += _rl_col_width (nfd, 0, temp);; + } + } +--- 1599,1618 ---- + if (temp > 0) + { ++ /* If nfd begins at the prompt, or before the invisible ++ characters in the prompt, we need to adjust _rl_last_c_pos ++ in a multibyte locale to account for the wrap offset and ++ set cpos_adjusted accordingly. */ + _rl_output_some_chars (nfd, temp); +! if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) +! { +! _rl_last_c_pos += _rl_col_width (nfd, 0, temp); +! if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) +! { +! _rl_last_c_pos -= wrap_offset; +! cpos_adjusted = 1; +! } +! } +! else +! _rl_last_c_pos += temp; + } + } +*************** +*** 1608,1613 **** +--- 1622,1639 ---- + if (temp > 0) + { ++ /* If nfd begins at the prompt, or before the invisible ++ characters in the prompt, we need to adjust _rl_last_c_pos ++ in a multibyte locale to account for the wrap offset and ++ set cpos_adjusted accordingly. */ + _rl_output_some_chars (nfd, temp); + _rl_last_c_pos += col_temp; /* XXX */ ++ if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) ++ { ++ if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible)) ++ { ++ _rl_last_c_pos -= wrap_offset; ++ cpos_adjusted = 1; ++ } ++ } + } + lendiff = (oe - old) - (ne - new); +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 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_ */ --- bash-3.2.orig/debian/patches/builtins-caller.dpatch +++ bash-3.2/debian/patches/builtins-caller.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: Fix typo in help message for caller builtin + +--- bash/builtins/caller.def~ 2006-08-24 17:30:39.000000000 +0200 ++++ bash/builtins/caller.def 2008-04-19 23:28:44.000000000 +0200 +@@ -130,7 +130,7 @@ + static char *caller_doc[] = { + N_("Returns the context of the current subroutine call."), + N_(" "), +- N_("Without EXPR, returns returns \"$line $filename\". With EXPR,"), ++ N_("Without EXPR, returns \"$line $filename\". With EXPR,"), + N_("returns \"$line $subroutine $filename\"; this extra information"), + N_("can be used used to provide a stack trace."), + N_(" "), --- bash-3.2.orig/debian/patches/bash32-020.dpatch +++ bash-3.2/debian/patches/bash32-020.dpatch @@ -0,0 +1,202 @@ +#! /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: bash-3.2 upstream patch bash32-020 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-020 + +Bug-Reported-by: Ian A Watson +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +In some cases of error processing, a jump back to the top-level processing +loop from a builtin command would leave the shell in an inconsistent state. + +Patch: + +*** ../bash-3.2-patched/sig.c Wed Jan 25 14:57:59 2006 +--- sig.c Sat Mar 10 11:11:30 2007 +*************** +*** 351,354 **** +--- 351,373 ---- + #undef XHANDLER + ++ /* Run some of the cleanups that should be performed when we run ++ jump_to_top_level from a builtin command context. XXX - might want to ++ also call reset_parser here. */ ++ void ++ top_level_cleanup () ++ { ++ /* Clean up string parser environment. */ ++ while (parse_and_execute_level) ++ parse_and_execute_cleanup (); ++ ++ #if defined (PROCESS_SUBSTITUTION) ++ unlink_fifo_list (); ++ #endif /* PROCESS_SUBSTITUTION */ ++ ++ run_unwind_protects (); ++ loop_level = continuing = breaking = 0; ++ return_catch_flag = 0; ++ } ++ + /* What to do when we've been interrupted, and it is safe to handle it. */ + void +*** ../bash-3.2-patched/sig.h Wed Jan 25 14:50:27 2006 +--- sig.h Sat Mar 10 11:14:18 2007 +*************** +*** 122,125 **** +--- 122,126 ---- + extern void initialize_terminating_signals __P((void)); + extern void reset_terminating_signals __P((void)); ++ extern void top_level_cleanup __P((void)); + extern void throw_to_top_level __P((void)); + extern void jump_to_top_level __P((int)) __attribute__((__noreturn__)); +*** ../bash-3.2-patched/builtins/common.c Tue Apr 3 16:47:13 2007 +--- builtins/common.c Mon Apr 30 15:01:33 2007 +*************** +*** 132,135 **** +--- 132,136 ---- + { + builtin_error (_("too many arguments")); ++ top_level_cleanup (); + jump_to_top_level (DISCARD); + } +*************** +*** 396,400 **** + throw_to_top_level (); + else +! jump_to_top_level (DISCARD); + } + no_args (list->next); +--- 410,417 ---- + throw_to_top_level (); + else +! { +! top_level_cleanup (); +! jump_to_top_level (DISCARD); +! } + } + no_args (list->next); +*** ../bash-3.2-patched/subst.c Tue Apr 3 16:47:19 2007 +--- subst.c Tue Jul 17 09:45:11 2007 +*************** +*** 1279,1283 **** + if (no_longjmp_on_fatal_error == 0) + { /* { */ +! report_error ("bad substitution: no closing `%s' in %s", "}", string); + last_command_exit_value = EXECUTION_FAILURE; + exp_jump_to_top_level (DISCARD); +--- 1290,1294 ---- + if (no_longjmp_on_fatal_error == 0) + { /* { */ +! report_error (_("bad substitution: no closing `%s' in %s"), "}", string); + last_command_exit_value = EXECUTION_FAILURE; + exp_jump_to_top_level (DISCARD); +*************** +*** 7662,7665 **** +--- 7706,7711 ---- + expand_no_split_dollar_star = 0; /* XXX */ + expanding_redir = 0; ++ ++ top_level_cleanup (); /* from sig.c */ + + jump_to_top_level (v); +*************** +*** 7880,7884 **** + { + report_error (_("no match: %s"), tlist->word->word); +! jump_to_top_level (DISCARD); + } + else if (allow_null_glob_expansion == 0) +--- 7927,7931 ---- + { + report_error (_("no match: %s"), tlist->word->word); +! exp_jump_to_top_level (DISCARD); + } + else if (allow_null_glob_expansion == 0) +*** ../bash-3.2-patched/arrayfunc.c Thu Jul 27 09:37:59 2006 +--- arrayfunc.c Thu May 31 11:55:46 2007 +*************** +*** 619,622 **** +--- 619,624 ---- + { + last_command_exit_value = EXECUTION_FAILURE; ++ ++ top_level_cleanup (); + jump_to_top_level (DISCARD); + } +*** ../bash-3.2-patched/expr.c Wed Dec 28 17:47:03 2005 +--- expr.c Tue Apr 24 14:17:59 2007 +*************** +*** 930,933 **** +--- 930,934 ---- + { + expr_unwind (); ++ top_level_cleanup (); + jump_to_top_level (DISCARD); + } +*** ../bash-3.2-patched/variables.c Fri Sep 8 13:33:32 2006 +--- variables.c Tue Jul 17 09:54:59 2007 +*************** +*** 1822,1830 **** + lval = evalexp (oval, &expok); /* ksh93 seems to do this */ + if (expok == 0) +! jump_to_top_level (DISCARD); + } + rval = evalexp (value, &expok); + if (expok == 0) +! jump_to_top_level (DISCARD); + if (flags & ASS_APPEND) + rval += lval; +--- 1855,1869 ---- + lval = evalexp (oval, &expok); /* ksh93 seems to do this */ + if (expok == 0) +! { +! top_level_cleanup (); +! jump_to_top_level (DISCARD); +! } + } + rval = evalexp (value, &expok); + if (expok == 0) +! { +! top_level_cleanup (); +! jump_to_top_level (DISCARD); +! } + if (flags & ASS_APPEND) + rval += lval; +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 26,30 **** + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 19 + + #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- + looks for to find the patch level (for the sccs version string). */ + +! #define PATCHLEVEL 20 + + #endif /* _PATCHLEVEL_H_ */ --- bash-3.2.orig/debian/patches/bash32-005.dpatch +++ bash-3.2/debian/patches/bash32-005.dpatch @@ -0,0 +1,242 @@ +#! /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: bash-3.2 upstream patch bash32-005 + + BASH PATCH REPORT + ================= + +Bash-Release: 3.2 +Patch-ID: bash32-005 + +Bug-Reported-by: Stuart Shelton +Bug-Reference-ID: <453F7CC8.6030907@openobjects.com> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00127.html + +Bug-Description: + +A missing extern declaration for `asprintf' caused `double' arguments to be +passed as `0', leading to incorrect results. Additionally, a bug in the +replacement asprintf/snprintf function caused an infinite loop when passed +0 arguments to the floating point conversions under some circumstances. + +Patch: + +*** ../bash-3.2/builtins/printf.def Mon Sep 18 08:48:42 2006 +--- builtins/printf.def Tue Oct 31 08:19:44 2006 +*************** +*** 49,54 **** +--- 49,60 ---- + # define INT_MIN (-2147483647-1) + #endif + ++ #if defined (PREFER_STDARG) ++ # include ++ #else ++ # include ++ #endif ++ + #include + #include + +*************** +*** 151,156 **** +--- 157,166 ---- + #define SKIP1 "#'-+ 0" + #define LENMODS "hjlLtz" + ++ #ifndef HAVE_ASPRINTF ++ extern int asprintf __P((char **, const char *, ...)) __attribute__((__format__ (printf, 2, 3))); ++ #endif ++ + static void printf_erange __P((char *)); + static int printstr __P((char *, char *, int, int, int)); + static int tescape __P((char *, char *, int *)); + + +*** ../bash-3.2/lib/sh/snprintf.c Thu Apr 6 09:48:40 2006 +--- lib/sh/snprintf.c Sat Oct 28 00:00:13 2006 +*************** +*** 471,476 **** +--- 476,483 ---- + 10^x ~= r + * log_10(200) = 2; + * log_10(250) = 2; ++ * ++ * NOTE: do not call this with r == 0 -- an infinite loop results. + */ + static int + log_10(r) +*************** +*** 576,583 **** + { + integral_part[0] = '0'; + integral_part[1] = '\0'; +! fraction_part[0] = '0'; +! fraction_part[1] = '\0'; + if (fract) + *fract = fraction_part; + return integral_part; +--- 583,593 ---- + { + integral_part[0] = '0'; + integral_part[1] = '\0'; +! /* The fractional part has to take the precision into account */ +! for (ch = 0; ch < precision-1; ch++) +! fraction_part[ch] = '0'; +! fraction_part[ch] = '0'; +! fraction_part[ch+1] = '\0'; + if (fract) + *fract = fraction_part; + return integral_part; +*************** +*** 805,810 **** +--- 815,821 ---- + PUT_CHAR(*tmp, p); + tmp++; + } ++ + PAD_LEFT(p); + } + +*************** +*** 972,982 **** + if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp))) + tmp = t; + + /* calculate the padding. 1 for the dot */ + p->width = p->width - + ((d > 0. && p->justify == RIGHT) ? 1:0) - + ((p->flags & PF_SPACE) ? 1:0) - +! strlen(tmp) - p->precision - 1; + PAD_RIGHT(p); + PUT_PLUS(d, p, 0.); + PUT_SPACE(d, p, 0.); +--- 983,1003 ---- + if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp))) + tmp = t; + ++ if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0) ++ { ++ /* smash the trailing zeros unless altform */ ++ for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--) ++ tmp2[i] = '\0'; ++ if (tmp2[0] == '\0') ++ p->precision = 0; ++ } ++ + /* calculate the padding. 1 for the dot */ + p->width = p->width - + ((d > 0. && p->justify == RIGHT) ? 1:0) - + ((p->flags & PF_SPACE) ? 1:0) - +! strlen(tmp) - p->precision - +! ((p->precision != 0 || (p->flags & PF_ALTFORM)) ? 1 : 0); /* radix char */ + PAD_RIGHT(p); + PUT_PLUS(d, p, 0.); + PUT_SPACE(d, p, 0.); +*************** +*** 991,1001 **** + if (p->precision != 0 || (p->flags & PF_ALTFORM)) + PUT_CHAR(decpoint, p); /* put the '.' */ + +- if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0) +- /* smash the trailing zeros unless altform */ +- for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--) +- tmp2[i] = '\0'; +- + for (; *tmp2; tmp2++) + PUT_CHAR(*tmp2, p); /* the fraction */ + +--- 1012,1017 ---- +*************** +*** 1011,1024 **** + char *tmp, *tmp2; + int j, i; + +! if (chkinfnan(p, d, 1) || chkinfnan(p, d, 2)) + return; /* already printed nan or inf */ + + GETLOCALEDATA(decpoint, thoussep, grouping); + DEF_PREC(p); +! j = log_10(d); +! d = d / pow_10(j); /* get the Mantissa */ +! d = ROUND(d, p); + tmp = dtoa(d, p->precision, &tmp2); + + /* 1 for unit, 1 for the '.', 1 for 'e|E', +--- 1027,1045 ---- + char *tmp, *tmp2; + int j, i; + +! if (d != 0 && (chkinfnan(p, d, 1) || chkinfnan(p, d, 2))) + return; /* already printed nan or inf */ + + GETLOCALEDATA(decpoint, thoussep, grouping); + DEF_PREC(p); +! if (d == 0.) +! j = 0; +! else +! { +! j = log_10(d); +! d = d / pow_10(j); /* get the Mantissa */ +! d = ROUND(d, p); +! } + tmp = dtoa(d, p->precision, &tmp2); + + /* 1 for unit, 1 for the '.', 1 for 'e|E', +*************** +*** 1076,1081 **** +--- 1097,1103 ---- + PUT_CHAR(*tmp, p); + tmp++; + } ++ + PAD_LEFT(p); + } + #endif +*************** +*** 1358,1364 **** + STAR_ARGS(data); + DEF_PREC(data); + d = GETDOUBLE(data); +! i = log_10(d); + /* + * for '%g|%G' ANSI: use f if exponent + * is in the range or [-4,p] exclusively +--- 1380,1386 ---- + STAR_ARGS(data); + DEF_PREC(data); + d = GETDOUBLE(data); +! i = (d != 0.) ? log_10(d) : -1; + /* + * for '%g|%G' ANSI: use f if exponent + * is in the range or [-4,p] exclusively +*** ../bash-3.2/patchlevel.h Thu Apr 13 08:31:04 2006 +--- patchlevel.h Mon Oct 16 14:22:54 2006 +*************** +*** 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_ */ --- bash-3.2.orig/debian/patches/man-net-redirections.dpatch +++ bash-3.2/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 --- bash-3.2.orig/debian/new/changelog-add +++ bash-3.2/debian/new/changelog-add @@ -0,0 +1,4 @@ +bash (2.05b-4) unstable; urgency=low + + * Remove /bin/sh symlink from package. + * Pre-Depend on base-files (>= 3.0.5), which contains the symlink. --- bash-3.2.orig/debian/new/bash.preinst.c +++ bash-3.2/debian/new/bash.preinst.c @@ -0,0 +1,229 @@ +/* Copyright (c) 1999 Anthony Towns + * Copyright (c) 2000 Matthias Klose + * + * You may freely use, distribute, and modify this program. + */ + +// Don't rely on /bin/sh and popen! + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* XXX: evil kludge, deal with arbitrary name lengths */ +#ifndef PATH_MAX +#define PATH_MAX 4096 +#endif + +int myexec(char *cmd, ...) +{ + va_list ap; + pid_t child; + + char *new_argv[10]; + int new_argc = 0, i; + + new_argv[new_argc++] = cmd; + va_start(ap, cmd); + while ((new_argv[new_argc++] = va_arg(ap, char *))); + va_end(ap); + + switch(child = fork()) { + case -1: + /* fork failed */ + return EXIT_FAILURE; + + case 0: + /* i'm the child */ + { + execv(cmd, new_argv); + _exit(127); + } + + default: + /* i'm the parent */ + { + int status; + pid_t pid; + pid = wait(&status); + if (pid == child) { + if (WIFEXITED(status) && WEXITSTATUS(status) == 0) { + return EXIT_SUCCESS; + } + } + } + } + return EXIT_FAILURE; +} + +int check_predepends(void) +{ + return myexec("/usr/bin/dpkg", "--assert-support-predepends", NULL); +} + +int dpkg_compare_versions(char *v1, char *op, char *v2) +{ + return myexec("/usr/bin/dpkg", "--compare-versions", v1, op, v2, NULL); +} + +int dpkg_divert_add(char *pkg, char *file) +{ + return myexec("/usr/sbin/dpkg-divert", "--package", pkg, "--add", file, NULL); +} + +char *check_diversion(char *diversion_name) +{ + pid_t child; + int pipedes[2]; + + if (pipe(pipedes)) + return NULL; + + + switch(child = fork()) { + case -1: + /* fork failed */ + close(pipedes[0]); + close(pipedes[1]); + return NULL; + + case 0: + /* i'm the child */ + { + if (dup2(pipedes[STDOUT_FILENO], STDOUT_FILENO) < 0) + _exit(127); + close(pipedes[STDIN_FILENO]); + close(pipedes[STDOUT_FILENO]); + execl( "/usr/sbin/dpkg-divert", "/usr/sbin/dpkg-divert", + "--list", diversion_name, NULL ); + _exit(127); + } + + default: + /* i'm the parent */ + { + static char line[1024]; + FILE *fd; + + close (pipedes[STDOUT_FILENO]); + fcntl (pipedes[STDIN_FILENO], F_SETFD, FD_CLOEXEC); + fd = fdopen (pipedes[STDIN_FILENO], "r"); + + while (fgets(line, 1024, fd) != NULL) { + line[strlen(line)-1] = '\0'; + break; + } + fclose(fd); + return line; + } + } + return NULL; +} + +#define FIRST_WITHOUT_SHLINK "2.05b-4" + +const char *msg = + "As bash for Debian is destined to provide a working /bin/sh (pointing to\n" + "/bin/bash) your link will be overwritten by a default link.\n\n" + "If you don't want further upgrades to overwrite your customization,\n" + "please read /usr/share/doc/bash/README.Debian for a more permanent solution.\n\n" + "[Press RETURN to continue]"; + +int main(int argc, char *argv[]) { + int targetlen; + char target[PATH_MAX+1], answer[1024]; + + if (argc < 2) { + printf("\nbash/preinst: expected at least one argument\n\n"); + return EXIT_FAILURE; + } + + if (check_predepends() != EXIT_SUCCESS) { + printf("\nPlease upgrade to a new version of dpkg\n\n"); + return EXIT_FAILURE; + } + +/* + if [ "$1" = upgrade ] && dpkg --compare-versions "$2" lt FIRST_WITHOUT_SHLINK; then + div=$(dpkg-divert --list /bin/sh) + if [ -z "$div" ]; then + dpkg-divert --package bash --add /bin/sh + ln -sf dash /bin/sh + fi + div=$(dpkg-divert --list /usr/share/man/man1/sh.1.gz) + if [ -z "$div" ]; then + dpkg-divert --package bash --add /usr/share/man/man1/sh.1.gz + ln -sf dash.1.gz /usr/share/man/man1/sh.1.gz + fi + fi +*/ + + if (strcmp(argv[1], "upgrade") == 0) { + if (argc < 3) { + printf("\nbash/preinst upgrade: expected at least two arguments\n\n"); + return EXIT_FAILURE; + } + if (dpkg_compare_versions(argv[2], "lt", FIRST_WITHOUT_SHLINK) == EXIT_SUCCESS) { + char *diversion = check_diversion("/bin/sh"); + + if (diversion == NULL) + return EXIT_FAILURE; + // printf("diversion: /%s/\n", diversion); + if (strcmp(diversion, "") == 0) { + // link is not diverted + dpkg_divert_add("bash", "/bin/sh"); + + unlink("/bin/sh"); + symlink("dash", "/bin/sh"); + } + + diversion = check_diversion("/usr/share/man/man1/sh.1.gz"); + + if (diversion == NULL) + return EXIT_FAILURE; + // printf("diversion: /%s/\n", diversion); + if (strcmp(diversion, "") == 0) { + // link is not diverted + dpkg_divert_add("bash", "/usr/share/man/man1/sh.1.gz"); + + unlink("/usr/share/man/man1/sh.1.gz"); + symlink("dash.1.gz", "/usr/share/man/man1/sh.1.gz"); + } + + } + } + +#if 0 + targetlen = readlink("/bin/sh", target, PATH_MAX); + if (targetlen == -1) { + // error reading link. Will be overwritten. + puts("The bash upgrade discovered that something is wrong with your /bin/sh link."); + puts(msg); + fgets(answer, 1024, stdin); + return EXIT_SUCCESS; + } + target[targetlen] = '\0'; + if (strcmp(target, "bash") != 0 && strcmp(target, "/bin/bash") != 0) { + char *diversion = check_diversion("/bin/sh"); + + if (diversion == NULL) + return EXIT_FAILURE; + // printf("diversion: /%s/\n", diversion); + if (strcmp(diversion, "") != 0) + // link is diverted + return EXIT_SUCCESS; + printf("The bash upgrade discovered that your /bin/sh link points to %s.\n", target); + puts(msg); + fgets(answer, 1024, stdin); + return EXIT_SUCCESS; + } +#endif + + return EXIT_SUCCESS; +} --- bash-3.2.orig/debian/new/bash.postinst +++ bash-3.2/debian/new/bash.postinst @@ -0,0 +1,27 @@ +#! /bin/bash -e + +if [ "$1" = configure ] && [ -n "$2" ] && dpkg --compare-versions "$2" lt 2.05b-4; \ +then + div=$(dpkg-divert --list /bin/sh) + if [ -n "$div" ] && [ -z "${div%%* by bash}" ]; then + # paranoia + ln -sf dash /bin/sh + rm -f /bin/sh.distrib + + dpkg-divert --remove /bin/sh + fi + + div=$(dpkg-divert --list /usr/share/man/man1/sh.1.gz) + if [ -n "$div" ] && [ -z "${div%%* by bash}" ]; then + # paranoia + ln -sf dash.1.gz /usr/share/man/man1/sh.1.gz + rm -f /usr/share/man/man1/sh.1.gz.distrib + + dpkg-divert --remove /usr/share/man/man1/sh.1.gz + fi +fi + +# the symlink is in the package now. So this should never happen ... +if [ ! -e /bin/sh ]; then + ln -s dash /bin/sh +fi