From e3af937042423cb5644bc00b08054c6823572fb4 Mon Sep 17 00:00:00 2001 From: Chet Ramey Date: Mon, 12 Dec 2011 22:16:16 -0500 Subject: [PATCH] commit bash-4.2 snapshot --- CHANGES | 9 + builtins/mkbuiltins.c | 2 +- configure | 22 +- configure.in | 4 +- doc/FAQ | 2 +- doc/bashref.dvi | Bin 680368 -> 680368 bytes doc/bashref.pdf | Bin 570068 -> 570072 bytes execute_cmd.c | 6 +- lib/readline/COPYING | 675 +++++++++++++++++++++++++++++++- lib/readline/ansi_stdlib.h | 55 ++- lib/readline/bind.c | 4 +- lib/readline/doc/fdl.texi | 507 +++++++++++++++++++++++- lib/readline/doc/history.texi | 2 +- lib/readline/doc/hstech.texi | 2 +- lib/readline/doc/hsuser.texi | 2 +- lib/readline/doc/rlman.texi | 2 +- lib/readline/doc/rltech.texi | 2 +- lib/readline/doc/rluser.texi | 2 +- lib/readline/doc/rluserman.texi | 2 +- lib/readline/doc/version.texi | 2 +- lib/readline/posixdir.h | 62 ++- lib/readline/posixjmp.h | 41 +- lib/readline/posixselect.h | 48 ++- lib/readline/posixstat.h | 143 ++++++- lib/readline/signals.c | 1 + lib/readline/tilde.c | 503 +++++++++++++++++++++++- lib/readline/tilde.h | 81 +++- po/en@boldquot.gmo | Bin 161159 -> 161163 bytes po/en@boldquot.po | 2 +- po/en@quot.gmo | Bin 159607 -> 159611 bytes po/en@quot.po | 2 +- subst.c | 40 +- support/mkconffiles | 0 support/mkversion.sh | 0 support/rlvers.sh | 0 support/shobj-conf | 0 trap.c | 1 + 37 files changed, 2152 insertions(+), 74 deletions(-) mode change 120000 => 100644 lib/readline/COPYING mode change 120000 => 100644 lib/readline/ansi_stdlib.h mode change 120000 => 100644 lib/readline/doc/fdl.texi mode change 120000 => 100644 lib/readline/posixdir.h mode change 120000 => 100644 lib/readline/posixjmp.h mode change 120000 => 100644 lib/readline/posixselect.h mode change 120000 => 100644 lib/readline/posixstat.h mode change 120000 => 100644 lib/readline/tilde.c mode change 120000 => 100644 lib/readline/tilde.h mode change 100644 => 100755 support/mkconffiles mode change 100644 => 100755 support/mkversion.sh mode change 100644 => 100755 support/rlvers.sh mode change 100644 => 100755 support/shobj-conf diff --git a/CHANGES b/CHANGES index 43e95971..84e1dbda 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,12 @@ +This document details the changes between this version, bash-4.2-release, +and the previous version, bash-4.2-rc2. + +1. Changes to Bash + +a. Fixed a bug that caused some variables to be clobbered by a longjmp, + resulting in stack corruption. + +------------------------------------------------------------------------------ This document details the changes between this version, bash-4.2-rc2, and the previous version, bash-4.2-rc1. diff --git a/builtins/mkbuiltins.c b/builtins/mkbuiltins.c index 10a28583..cdfdfb18 100644 --- a/builtins/mkbuiltins.c +++ b/builtins/mkbuiltins.c @@ -1127,7 +1127,7 @@ char *structfile_header[] = { }; char *structfile_footer[] = { - " { (char *)0x0, (sh_builtin_func_t *)0x0, 0, (char **)0x0, (char *)0x0 }", + " { (char *)0x0, (sh_builtin_func_t *)0x0, 0, (char **)0x0, (char *)0x0, (char *)0x0 }", "};", "", "struct builtin *shell_builtins = static_shell_builtins;", diff --git a/configure b/configure index 6ec0063b..7ec72fe6 100755 --- a/configure +++ b/configure @@ -1,7 +1,7 @@ #! /bin/sh -# From configure.in for Bash 4.2, version 4.036. +# From configure.in for Bash 4.2, version 4.037. # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.63 for bash 4.2-rc2. +# Generated by GNU Autoconf 2.63 for bash 4.2-release. # # Report bugs to . # @@ -597,8 +597,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='bash' PACKAGE_TARNAME='bash' -PACKAGE_VERSION='4.2-rc2' -PACKAGE_STRING='bash 4.2-rc2' +PACKAGE_VERSION='4.2-release' +PACKAGE_STRING='bash 4.2-release' PACKAGE_BUGREPORT='bug-bash@gnu.org' ac_unique_file="shell.h" @@ -1410,7 +1410,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures bash 4.2-rc2 to adapt to many kinds of systems. +\`configure' configures bash 4.2-release to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1475,7 +1475,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of bash 4.2-rc2:";; + short | recursive ) echo "Configuration of bash 4.2-release:";; esac cat <<\_ACEOF @@ -1650,7 +1650,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -bash configure 4.2-rc2 +bash configure 4.2-release generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1664,7 +1664,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by bash $as_me 4.2-rc2, which was +It was created by bash $as_me 4.2-release, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ @@ -2078,7 +2078,7 @@ ac_config_headers="$ac_config_headers config.h" BASHVERS=4.2 -RELSTATUS=rc2 +RELSTATUS=release case "$RELSTATUS" in alp*|bet*|dev*|rc*|maint*) DEBUG='-DDEBUG' MALLOC_DEBUG='-DMALLOC_DEBUG' ;; @@ -31862,7 +31862,7 @@ exec 6>&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by bash $as_me 4.2-rc2, which was +This file was extended by bash $as_me 4.2-release, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -31925,7 +31925,7 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -bash config.status 4.2-rc2 +bash config.status 4.2-release configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/configure.in b/configure.in index cd084f93..d7e09983 100644 --- a/configure.in +++ b/configure.in @@ -21,10 +21,10 @@ dnl Process this file with autoconf to produce a configure script. # You should have received a copy of the GNU General Public License # along with this program. If not, see . -AC_REVISION([for Bash 4.2, version 4.036])dnl +AC_REVISION([for Bash 4.2, version 4.037])dnl define(bashvers, 4.2) -define(relstatus, rc2) +define(relstatus, release) AC_INIT([bash], bashvers-relstatus, [bug-bash@gnu.org]) diff --git a/doc/FAQ b/doc/FAQ index 8b0f2dee..33ca3d32 100644 --- a/doc/FAQ +++ b/doc/FAQ @@ -144,7 +144,7 @@ of Case Western Reserve University. A2) What's the latest version? -The latest version is 4.2, first made available on NN December, 2010. +The latest version is 4.2, first made available on 14 February, 2011. A3) Where can I get it? diff --git a/doc/bashref.dvi b/doc/bashref.dvi index 0c293893b2afcdc218a5665e08d891d071d1289e..5494dbf10148ab66664502fca338cbdb59fca4bd 100644 GIT binary patch delta 62 zcmdmRSaZW+%?XNpMtX+ER)$7~=G_bo42;tizcQ;d2Db(?wgxk`1~az?v$O`Ywg$7c S2D7&YbF>C?ZVl#&O#}c}*Aj{V delta 62 zcmdmRSaZW+%?XNphI&R8Rz^k!=G_bo42;tizcQ;d2Db(?wgxk`1~az?v$O`Ywg$7c S2D7&YbF>C?ZVl#&O#}c~(GrgU diff --git a/doc/bashref.pdf b/doc/bashref.pdf index dbec106c975a6ae4f01ea670f4c1f1ebde7c92b8..ef90d3bcd43958a6d6d960b45870c52daef35185 100644 GIT binary patch delta 24695 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 LN=s|#9_9Q$l(uiS delta 24719 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 diff --git a/execute_cmd.c b/execute_cmd.c index 3e33f3f6..485b0c79 100644 --- a/execute_cmd.c +++ b/execute_cmd.c @@ -1317,7 +1317,7 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close) int user_subshell, return_code, function_value, should_redir_stdin, invert; int ois, user_coproc; int result; - COMMAND *tcom; + volatile COMMAND *tcom; USE_VAR(user_subshell); USE_VAR(user_coproc); @@ -4135,7 +4135,9 @@ execute_function (var, words, flags, fds_to_close, async, subshell) char *debug_trap, *error_trap, *return_trap; #if defined (ARRAY_VARS) SHELL_VAR *funcname_v, *nfv, *bash_source_v, *bash_lineno_v; - ARRAY *funcname_a, *bash_source_a, *bash_lineno_a; + ARRAY *funcname_a; + volatile ARRAY *bash_source_a; + volatile ARRAY *bash_lineno_a; #endif FUNCTION_DEF *shell_fn; char *sfile, *t; diff --git a/lib/readline/COPYING b/lib/readline/COPYING deleted file mode 120000 index 7d29222e..00000000 --- a/lib/readline/COPYING +++ /dev/null @@ -1 +0,0 @@ -../../COPYING \ No newline at end of file diff --git a/lib/readline/COPYING b/lib/readline/COPYING new file mode 100644 index 00000000..94a9ed02 --- /dev/null +++ b/lib/readline/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public 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. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program 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 3 of the License, or + (at your option) any later version. + + This program 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 + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/lib/readline/ansi_stdlib.h b/lib/readline/ansi_stdlib.h deleted file mode 120000 index 0bfba502..00000000 --- a/lib/readline/ansi_stdlib.h +++ /dev/null @@ -1 +0,0 @@ -../../include/ansi_stdlib.h \ No newline at end of file diff --git a/lib/readline/ansi_stdlib.h b/lib/readline/ansi_stdlib.h new file mode 100644 index 00000000..7dc2ee0c --- /dev/null +++ b/lib/readline/ansi_stdlib.h @@ -0,0 +1,54 @@ +/* ansi_stdlib.h -- An ANSI Standard stdlib.h. */ +/* A minimal stdlib.h containing extern declarations for those functions + that bash uses. */ + +/* Copyright (C) 1993 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + 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 3 of the License, 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 + along with Bash. If not, see . +*/ + +#if !defined (_STDLIB_H_) +#define _STDLIB_H_ 1 + +/* String conversion functions. */ +extern int atoi (); + +extern double atof (); +extern double strtod (); + +/* Memory allocation functions. */ +/* Generic pointer type. */ +#ifndef PTR_T + +#if defined (__STDC__) +# define PTR_T void * +#else +# define PTR_T char * +#endif + +#endif /* PTR_T */ + +extern PTR_T malloc (); +extern PTR_T realloc (); +extern void free (); + +/* Other miscellaneous functions. */ +extern void abort (); +extern void exit (); +extern char *getenv (); +extern void qsort (); + +#endif /* _STDLIB_H */ diff --git a/lib/readline/bind.c b/lib/readline/bind.c index b552abb3..59e79643 100644 --- a/lib/readline/bind.c +++ b/lib/readline/bind.c @@ -1451,7 +1451,7 @@ static const struct { #if defined (VISIBLE_STATS) { "visible-stats", &rl_visible_stats, 0 }, #endif /* VISIBLE_STATS */ - { (char *)NULL, (int *)NULL } + { (char *)NULL, (int *)NULL, 0 } }; static int @@ -1526,7 +1526,7 @@ static const struct { { "history-size", V_INT, sv_histsize }, { "isearch-terminators", V_STRING, sv_isrchterm }, { "keymap", V_STRING, sv_keymap }, - { (char *)NULL, 0 } + { (char *)NULL, 0, (_rl_sv_func_t *)0 } }; static int diff --git a/lib/readline/doc/fdl.texi b/lib/readline/doc/fdl.texi deleted file mode 120000 index 68e5eb54..00000000 --- a/lib/readline/doc/fdl.texi +++ /dev/null @@ -1 +0,0 @@ -../../../doc/fdl.texi \ No newline at end of file diff --git a/lib/readline/doc/fdl.texi b/lib/readline/doc/fdl.texi new file mode 100644 index 00000000..8805f1a4 --- /dev/null +++ b/lib/readline/doc/fdl.texi @@ -0,0 +1,506 @@ +@c The GNU Free Documentation License. +@center Version 1.3, 3 November 2008 + +@c This file is intended to be included within another document, +@c hence no sectioning command or @node. + +@display +Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. +@uref{http://fsf.org/} + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. +@end display + +@enumerate 0 +@item +PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +functional and useful document @dfn{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. + +@item +APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work, in any medium, that +contains a notice placed by the copyright holder saying it can be +distributed under the terms of this License. Such a notice grants a +world-wide, royalty-free license, unlimited in duration, to use that +work under the conditions stated herein. The ``Document'', below, +refers to any such manual or work. Any member of the public is a +licensee, and is addressed as ``you''. You accept the license if you +copy, modify or distribute the work in a way requiring permission +under copyright law. + +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. (Thus, 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. If a +section does not fit the above definition of Secondary then it is not +allowed to be designated as Invariant. The Document may contain zero +Invariant Sections. If the Document does not identify any Invariant +Sections then there are none. + +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 Front-Cover Text may +be at most 5 words, and a Back-Cover Text may be at most 25 words. + +A ``Transparent'' copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, that is suitable for revising the document +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, or absence of markup, has been arranged to thwart +or discourage subsequent modification by readers is not Transparent. +An image format is not Transparent if used for any substantial amount +of text. A copy that is not ``Transparent'' is called ``Opaque''. + +Examples of suitable formats for Transparent copies include plain +@sc{ascii} without markup, Texinfo input format, La@TeX{} input +format, @acronym{SGML} or @acronym{XML} using a publicly available +@acronym{DTD}, and standard-conforming simple @acronym{HTML}, +PostScript or @acronym{PDF} designed for human modification. Examples +of transparent image formats include @acronym{PNG}, @acronym{XCF} and +@acronym{JPG}. Opaque formats include proprietary formats that can be +read and edited only by proprietary word processors, @acronym{SGML} or +@acronym{XML} for which the @acronym{DTD} and/or processing tools are +not generally available, and the machine-generated @acronym{HTML}, +PostScript or @acronym{PDF} 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. + +The ``publisher'' means any person or entity that distributes copies +of the Document to the public. + +A section ``Entitled XYZ'' means a named subunit of the Document whose +title either is precisely XYZ or contains XYZ in parentheses following +text that translates XYZ in another language. (Here XYZ stands for a +specific section name mentioned below, such as ``Acknowledgements'', +``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' +of such a section when you modify the Document means that it remains a +section ``Entitled XYZ'' according to this definition. + +The Document may include Warranty Disclaimers next to the notice which +states that this License applies to the Document. These Warranty +Disclaimers are considered to be included by reference in this +License, but only as regards disclaiming warranties: any other +implication that these Warranty Disclaimers may have is void and has +no effect on the meaning of this License. + +@item +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. + +@item +COPYING IN QUANTITY + +If you publish printed copies (or copies in media that commonly have +printed covers) 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 computer-network location from which the general network-using +public has access to download using public-standard network protocols +a complete Transparent copy of the Document, free of added material. +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. + +@item +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: + +@enumerate A +@item +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. + +@item +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 fewer than five), +unless they release you from this requirement. + +@item +State on the Title page the name of the publisher of the +Modified Version, as the publisher. + +@item +Preserve all the copyright notices of the Document. + +@item +Add an appropriate copyright notice for your modifications +adjacent to the other copyright notices. + +@item +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. + +@item +Preserve in that license notice the full lists of Invariant Sections +and required Cover Texts given in the Document's license notice. + +@item +Include an unaltered copy of this License. + +@item +Preserve the section Entitled ``History'', Preserve 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. + +@item +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. + +@item +For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve +the Title of the section, and preserve in the section all the +substance and tone of each of the contributor acknowledgements and/or +dedications given therein. + +@item +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. + +@item +Delete any section Entitled ``Endorsements''. Such a section +may not be included in the Modified Version. + +@item +Do not retitle any existing section to be Entitled ``Endorsements'' or +to conflict in title with any Invariant Section. + +@item +Preserve any Warranty Disclaimers. +@end enumerate + +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. + +@item +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, and that you preserve all their Warranty Disclaimers. + +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.'' + +@item +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. + +@item +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, is called an ``aggregate'' if the copyright +resulting from the compilation is not used to limit the legal rights +of the compilation's users beyond what the individual works permit. +When the Document is included in an aggregate, this License does not +apply to the other works in the aggregate which 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 half of +the entire aggregate, the Document's Cover Texts may be placed on +covers that bracket the Document within the aggregate, or the +electronic equivalent of covers if the Document is in electronic form. +Otherwise they must appear on printed covers that bracket the whole +aggregate. + +@item +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, and all the license notices in the +Document, and any Warranty Disclaimers, provided that you also include +the original English version of this License and the original versions +of those notices and disclaimers. In case of a disagreement between +the translation and the original version of this License or a notice +or disclaimer, the original version will prevail. + +If a section in the Document is Entitled ``Acknowledgements'', +``Dedications'', or ``History'', the requirement (section 4) to Preserve +its Title (section 1) will typically require changing the actual +title. + +@item +TERMINATION + +You may not copy, modify, sublicense, or distribute the Document +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense, or distribute it is void, and +will automatically terminate your rights under this License. + +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, receipt of a copy of some or all of the same material does +not give you any rights to use it. + +@item +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 +@uref{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. If the Document +specifies that a proxy can decide which future versions of this +License can be used, that proxy's public statement of acceptance of a +version permanently authorizes you to choose that version for the +Document. + +@item +RELICENSING + +``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any +World Wide Web server that publishes copyrightable works and also +provides prominent facilities for anybody to edit those works. A +public wiki that anybody can edit is an example of such a server. A +``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the +site means any set of copyrightable works thus published on the MMC +site. + +``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0 +license published by Creative Commons Corporation, a not-for-profit +corporation with a principal place of business in San Francisco, +California, as well as future copyleft versions of that license +published by that same organization. + +``Incorporate'' means to publish or republish a Document, in whole or +in part, as part of another Document. + +An MMC is ``eligible for relicensing'' if it is licensed under this +License, and if all works that were first published under this License +somewhere other than this MMC, and subsequently incorporated in whole +or in part into the MMC, (1) had no cover texts or invariant sections, +and (2) were thus incorporated prior to November 1, 2008. + +The operator of an MMC Site may republish an MMC contained in the site +under CC-BY-SA on the same site at any time before August 1, 2009, +provided the MMC is eligible for relicensing. + +@end enumerate + +@page +@heading 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: + +@smallexample +@group + Copyright (C) @var{year} @var{your name}. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.3 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover + Texts. A copy of the license is included in the section entitled ``GNU + Free Documentation License''. +@end group +@end smallexample + +If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, +replace the ``with@dots{}Texts.'' line with this: + +@smallexample +@group + with the Invariant Sections being @var{list their titles}, with + the Front-Cover Texts being @var{list}, and with the Back-Cover Texts + being @var{list}. +@end group +@end smallexample + +If you have Invariant Sections without Cover Texts, or some other +combination of the three, merge those two alternatives to suit the +situation. + +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. + +@c Local Variables: +@c ispell-local-pdict: "ispell-dict" +@c End: + diff --git a/lib/readline/doc/history.texi b/lib/readline/doc/history.texi index afdb9016..64945d86 100644 --- a/lib/readline/doc/history.texi +++ b/lib/readline/doc/history.texi @@ -12,7 +12,7 @@ This document describes the GNU History library a programming tool that provides a consistent user interface for recalling lines of previously typed input. -Copyright @copyright{} 1988--2009 Free Software Foundation, Inc. +Copyright @copyright{} 1988--2011 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice diff --git a/lib/readline/doc/hstech.texi b/lib/readline/doc/hstech.texi index ad9cfa82..4fc9e8ef 100644 --- a/lib/readline/doc/hstech.texi +++ b/lib/readline/doc/hstech.texi @@ -1,7 +1,7 @@ @ignore This file documents the user interface to the GNU History library. -Copyright (C) 1988-2007 Free Software Foundation, Inc. +Copyright (C) 1988-2011 Free Software Foundation, Inc. Authored by Brian Fox and Chet Ramey. Permission is granted to make and distribute verbatim copies of this manual diff --git a/lib/readline/doc/hsuser.texi b/lib/readline/doc/hsuser.texi index c94eae8a..75df3ee4 100644 --- a/lib/readline/doc/hsuser.texi +++ b/lib/readline/doc/hsuser.texi @@ -1,7 +1,7 @@ @ignore This file documents the user interface to the GNU History library. -Copyright (C) 1988--2010 Free Software Foundation, Inc. +Copyright (C) 1988--2011 Free Software Foundation, Inc. Authored by Brian Fox and Chet Ramey. Permission is granted to make and distribute verbatim copies of this manual diff --git a/lib/readline/doc/rlman.texi b/lib/readline/doc/rlman.texi index be24709d..1c9ac133 100644 --- a/lib/readline/doc/rlman.texi +++ b/lib/readline/doc/rlman.texi @@ -13,7 +13,7 @@ This manual describes the GNU Readline Library consistency of user interface across discrete programs which provide a command line interface. -Copyright @copyright{} 1988--2009 Free Software Foundation, Inc. +Copyright @copyright{} 1988--2011 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice diff --git a/lib/readline/doc/rltech.texi b/lib/readline/doc/rltech.texi index 528e18fa..dc272a21 100644 --- a/lib/readline/doc/rltech.texi +++ b/lib/readline/doc/rltech.texi @@ -7,7 +7,7 @@ This document describes the GNU Readline Library, a utility for aiding in the consistency of user interface across discrete programs that need to provide a command line interface. -Copyright (C) 1988--2010 Free Software Foundation, Inc. +Copyright (C) 1988--2011 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice diff --git a/lib/readline/doc/rluser.texi b/lib/readline/doc/rluser.texi index d00f729b..8a69c993 100644 --- a/lib/readline/doc/rluser.texi +++ b/lib/readline/doc/rluser.texi @@ -9,7 +9,7 @@ use these features. There is a document entitled "readline.texinfo" which contains both end-user and programmer documentation for the GNU Readline Library. -Copyright (C) 1988--2010 Free Software Foundation, Inc. +Copyright (C) 1988--2011 Free Software Foundation, Inc. Authored by Brian Fox and Chet Ramey. diff --git a/lib/readline/doc/rluserman.texi b/lib/readline/doc/rluserman.texi index 3856cd53..3d545204 100644 --- a/lib/readline/doc/rluserman.texi +++ b/lib/readline/doc/rluserman.texi @@ -12,7 +12,7 @@ This manual describes the end user interface of the GNU Readline Library consistency of user interface across discrete programs which provide a command line interface. -Copyright @copyright{} 1988--2010 Free Software Foundation, Inc. +Copyright @copyright{} 1988--2011 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice diff --git a/lib/readline/doc/version.texi b/lib/readline/doc/version.texi index 033c5307..3ee1c10e 100644 --- a/lib/readline/doc/version.texi +++ b/lib/readline/doc/version.texi @@ -1,5 +1,5 @@ @ignore -Copyright (C) 1988-2010 Free Software Foundation, Inc. +Copyright (C) 1988-2011 Free Software Foundation, Inc. @end ignore @set EDITION 6.2 diff --git a/lib/readline/posixdir.h b/lib/readline/posixdir.h deleted file mode 120000 index 8b163845..00000000 --- a/lib/readline/posixdir.h +++ /dev/null @@ -1 +0,0 @@ -../../include/posixdir.h \ No newline at end of file diff --git a/lib/readline/posixdir.h b/lib/readline/posixdir.h new file mode 100644 index 00000000..bd33694d --- /dev/null +++ b/lib/readline/posixdir.h @@ -0,0 +1,61 @@ +/* posixdir.h -- Posix directory reading includes and defines. */ + +/* Copyright (C) 1987,1991 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + 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 3 of the License, 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 + along with Bash. If not, see . +*/ + +/* This file should be included instead of or . */ + +#if !defined (_POSIXDIR_H_) +#define _POSIXDIR_H_ + +#if defined (HAVE_DIRENT_H) +# include +# if defined (HAVE_STRUCT_DIRENT_D_NAMLEN) +# define D_NAMLEN(d) ((d)->d_namlen) +# else +# define D_NAMLEN(d) (strlen ((d)->d_name)) +# endif /* !HAVE_STRUCT_DIRENT_D_NAMLEN */ +#else +# if defined (HAVE_SYS_NDIR_H) +# include +# endif +# if defined (HAVE_SYS_DIR_H) +# include +# endif +# if defined (HAVE_NDIR_H) +# include +# endif +# if !defined (dirent) +# define dirent direct +# endif /* !dirent */ +# define D_NAMLEN(d) ((d)->d_namlen) +#endif /* !HAVE_DIRENT_H */ + +#if defined (HAVE_STRUCT_DIRENT_D_INO) && !defined (HAVE_STRUCT_DIRENT_D_FILENO) +# define d_fileno d_ino +#endif + +#if defined (_POSIX_SOURCE) && (!defined (HAVE_STRUCT_DIRENT_D_INO) || defined (BROKEN_DIRENT_D_INO)) +/* Posix does not require that the d_ino field be present, and some + systems do not provide it. */ +# define REAL_DIR_ENTRY(dp) 1 +#else +# define REAL_DIR_ENTRY(dp) (dp->d_ino != 0) +#endif /* _POSIX_SOURCE */ + +#endif /* !_POSIXDIR_H_ */ diff --git a/lib/readline/posixjmp.h b/lib/readline/posixjmp.h deleted file mode 120000 index b4d3ee74..00000000 --- a/lib/readline/posixjmp.h +++ /dev/null @@ -1 +0,0 @@ -../../include/posixjmp.h \ No newline at end of file diff --git a/lib/readline/posixjmp.h b/lib/readline/posixjmp.h new file mode 100644 index 00000000..49bfecf3 --- /dev/null +++ b/lib/readline/posixjmp.h @@ -0,0 +1,40 @@ +/* posixjmp.h -- wrapper for setjmp.h with changes for POSIX systems. */ + +/* Copyright (C) 1987,1991 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + 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 3 of the License, 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 + along with Bash. If not, see . +*/ + +#ifndef _POSIXJMP_H_ +#define _POSIXJMP_H_ + +#include + +/* This *must* be included *after* config.h */ + +#if defined (HAVE_POSIX_SIGSETJMP) +# define procenv_t sigjmp_buf +# if !defined (__OPENNT) +# undef setjmp +# define setjmp(x) sigsetjmp((x), 1) +# undef longjmp +# define longjmp(x, n) siglongjmp((x), (n)) +# endif /* !__OPENNT */ +#else +# define procenv_t jmp_buf +#endif + +#endif /* _POSIXJMP_H_ */ diff --git a/lib/readline/posixselect.h b/lib/readline/posixselect.h deleted file mode 120000 index 56a0a2c6..00000000 --- a/lib/readline/posixselect.h +++ /dev/null @@ -1 +0,0 @@ -../../include/posixselect.h \ No newline at end of file diff --git a/lib/readline/posixselect.h b/lib/readline/posixselect.h new file mode 100644 index 00000000..da6a1ace --- /dev/null +++ b/lib/readline/posixselect.h @@ -0,0 +1,47 @@ +/* posixselect.h -- wrapper for select(2) includes and definitions */ + +/* Copyright (C) 2009 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + 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 3 of the License, 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 + along with Bash. If not, see . +*/ + +#ifndef _POSIXSELECT_H_ +#define _POSIXSELECT_H_ + +#if defined (FD_SET) && !defined (HAVE_SELECT) +# define HAVE_SELECT 1 +#endif + +#if defined (HAVE_SELECT) +# if !defined (HAVE_SYS_SELECT_H) || !defined (M_UNIX) +# include +# endif +#endif /* HAVE_SELECT */ +#if defined (HAVE_SYS_SELECT_H) +# include +#endif + +#ifndef USEC_PER_SEC +# define USEC_PER_SEC 1000000 +#endif + +#define USEC_TO_TIMEVAL(us, tv) \ +do { \ + (tv).tv_sec = (us) / USEC_PER_SEC; \ + (tv).tv_usec = (us) % USEC_PER_SEC; \ +} while (0) + +#endif /* _POSIXSELECT_H_ */ diff --git a/lib/readline/posixstat.h b/lib/readline/posixstat.h deleted file mode 120000 index c6164b79..00000000 --- a/lib/readline/posixstat.h +++ /dev/null @@ -1 +0,0 @@ -../../include/posixstat.h \ No newline at end of file diff --git a/lib/readline/posixstat.h b/lib/readline/posixstat.h new file mode 100644 index 00000000..3eb7f290 --- /dev/null +++ b/lib/readline/posixstat.h @@ -0,0 +1,142 @@ +/* posixstat.h -- Posix stat(2) definitions for systems that + don't have them. */ + +/* Copyright (C) 1987,1991 Free Software Foundation, Inc. + + This file is part of GNU Bash, the Bourne Again SHell. + + 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 3 of the License, 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 + along with Bash. If not, see . +*/ + +/* This file should be included instead of . + It relies on the local sys/stat.h to work though. */ +#if !defined (_POSIXSTAT_H_) +#define _POSIXSTAT_H_ + +#include + +#if defined (STAT_MACROS_BROKEN) +# undef S_ISBLK +# undef S_ISCHR +# undef S_ISDIR +# undef S_ISFIFO +# undef S_ISREG +# undef S_ISLNK +#endif /* STAT_MACROS_BROKEN */ + +/* These are guaranteed to work only on isc386 */ +#if !defined (S_IFDIR) && !defined (S_ISDIR) +# define S_IFDIR 0040000 +#endif /* !S_IFDIR && !S_ISDIR */ +#if !defined (S_IFMT) +# define S_IFMT 0170000 +#endif /* !S_IFMT */ + +/* Posix 1003.1 5.6.1.1 file types */ + +/* Some Posix-wannabe systems define _S_IF* macros instead of S_IF*, but + do not provide the S_IS* macros that Posix requires. */ + +#if defined (_S_IFMT) && !defined (S_IFMT) +#define S_IFMT _S_IFMT +#endif +#if defined (_S_IFIFO) && !defined (S_IFIFO) +#define S_IFIFO _S_IFIFO +#endif +#if defined (_S_IFCHR) && !defined (S_IFCHR) +#define S_IFCHR _S_IFCHR +#endif +#if defined (_S_IFDIR) && !defined (S_IFDIR) +#define S_IFDIR _S_IFDIR +#endif +#if defined (_S_IFBLK) && !defined (S_IFBLK) +#define S_IFBLK _S_IFBLK +#endif +#if defined (_S_IFREG) && !defined (S_IFREG) +#define S_IFREG _S_IFREG +#endif +#if defined (_S_IFLNK) && !defined (S_IFLNK) +#define S_IFLNK _S_IFLNK +#endif +#if defined (_S_IFSOCK) && !defined (S_IFSOCK) +#define S_IFSOCK _S_IFSOCK +#endif + +/* Test for each symbol individually and define the ones necessary (some + systems claiming Posix compatibility define some but not all). */ + +#if defined (S_IFBLK) && !defined (S_ISBLK) +#define S_ISBLK(m) (((m)&S_IFMT) == S_IFBLK) /* block device */ +#endif + +#if defined (S_IFCHR) && !defined (S_ISCHR) +#define S_ISCHR(m) (((m)&S_IFMT) == S_IFCHR) /* character device */ +#endif + +#if defined (S_IFDIR) && !defined (S_ISDIR) +#define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR) /* directory */ +#endif + +#if defined (S_IFREG) && !defined (S_ISREG) +#define S_ISREG(m) (((m)&S_IFMT) == S_IFREG) /* file */ +#endif + +#if defined (S_IFIFO) && !defined (S_ISFIFO) +#define S_ISFIFO(m) (((m)&S_IFMT) == S_IFIFO) /* fifo - named pipe */ +#endif + +#if defined (S_IFLNK) && !defined (S_ISLNK) +#define S_ISLNK(m) (((m)&S_IFMT) == S_IFLNK) /* symbolic link */ +#endif + +#if defined (S_IFSOCK) && !defined (S_ISSOCK) +#define S_ISSOCK(m) (((m)&S_IFMT) == S_IFSOCK) /* socket */ +#endif + +/* + * POSIX 1003.1 5.6.1.2 File Modes + */ + +#if !defined (S_IRWXU) +# if !defined (S_IREAD) +# define S_IREAD 00400 +# define S_IWRITE 00200 +# define S_IEXEC 00100 +# endif /* S_IREAD */ + +# if !defined (S_IRUSR) +# define S_IRUSR S_IREAD /* read, owner */ +# define S_IWUSR S_IWRITE /* write, owner */ +# define S_IXUSR S_IEXEC /* execute, owner */ + +# define S_IRGRP (S_IREAD >> 3) /* read, group */ +# define S_IWGRP (S_IWRITE >> 3) /* write, group */ +# define S_IXGRP (S_IEXEC >> 3) /* execute, group */ + +# define S_IROTH (S_IREAD >> 6) /* read, other */ +# define S_IWOTH (S_IWRITE >> 6) /* write, other */ +# define S_IXOTH (S_IEXEC >> 6) /* execute, other */ +# endif /* !S_IRUSR */ + +# define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) +# define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) +# define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) +#endif /* !S_IRWXU */ + +/* These are non-standard, but are used in builtins.c$symbolic_umask() */ +#define S_IRUGO (S_IRUSR | S_IRGRP | S_IROTH) +#define S_IWUGO (S_IWUSR | S_IWGRP | S_IWOTH) +#define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) + +#endif /* _POSIXSTAT_H_ */ diff --git a/lib/readline/signals.c b/lib/readline/signals.c index 4fbc019e..6a68d78c 100644 --- a/lib/readline/signals.c +++ b/lib/readline/signals.c @@ -131,6 +131,7 @@ static sighandler_cxt old_winch; /* Called from RL_CHECK_SIGNALS() macro */ RETSIGTYPE _rl_signal_handler (sig) + int sig; { _rl_caught_signal = 0; /* XXX */ diff --git a/lib/readline/tilde.c b/lib/readline/tilde.c deleted file mode 120000 index 439ceede..00000000 --- a/lib/readline/tilde.c +++ /dev/null @@ -1 +0,0 @@ -../tilde/tilde.c \ No newline at end of file diff --git a/lib/readline/tilde.c b/lib/readline/tilde.c new file mode 100644 index 00000000..1c53a457 --- /dev/null +++ b/lib/readline/tilde.c @@ -0,0 +1,502 @@ +/* tilde.c -- Tilde expansion code (~/foo := $HOME/foo). */ + +/* Copyright (C) 1988-2009 Free Software Foundation, Inc. + + This file is part of the GNU Readline Library (Readline), a library + for reading lines of text with interactive input and history editing. + + Readline 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 3 of the License, or + (at your option) any later version. + + Readline 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 + along with Readline. If not, see . +*/ + +#if defined (HAVE_CONFIG_H) +# include +#endif + +#if defined (HAVE_UNISTD_H) +# ifdef _MINIX +# include +# endif +# include +#endif + +#if defined (HAVE_STRING_H) +# include +#else /* !HAVE_STRING_H */ +# include +#endif /* !HAVE_STRING_H */ + +#if defined (HAVE_STDLIB_H) +# include +#else +# include "ansi_stdlib.h" +#endif /* HAVE_STDLIB_H */ + +#include +#if defined (HAVE_PWD_H) +#include +#endif + +#include "tilde.h" + +#if defined (TEST) || defined (STATIC_MALLOC) +static void *xmalloc (), *xrealloc (); +#else +# include "xmalloc.h" +#endif /* TEST || STATIC_MALLOC */ + +#if !defined (HAVE_GETPW_DECLS) +# if defined (HAVE_GETPWUID) +extern struct passwd *getpwuid PARAMS((uid_t)); +# endif +# if defined (HAVE_GETPWNAM) +extern struct passwd *getpwnam PARAMS((const char *)); +# endif +#endif /* !HAVE_GETPW_DECLS */ + +#if !defined (savestring) +#define savestring(x) strcpy ((char *)xmalloc (1 + strlen (x)), (x)) +#endif /* !savestring */ + +#if !defined (NULL) +# if defined (__STDC__) +# define NULL ((void *) 0) +# else +# define NULL 0x0 +# endif /* !__STDC__ */ +#endif /* !NULL */ + +/* If being compiled as part of bash, these will be satisfied from + variables.o. If being compiled as part of readline, they will + be satisfied from shell.o. */ +extern char *sh_get_home_dir PARAMS((void)); +extern char *sh_get_env_value PARAMS((const char *)); + +/* The default value of tilde_additional_prefixes. This is set to + whitespace preceding a tilde so that simple programs which do not + perform any word separation get desired behaviour. */ +static const char *default_prefixes[] = + { " ~", "\t~", (const char *)NULL }; + +/* The default value of tilde_additional_suffixes. This is set to + whitespace or newline so that simple programs which do not + perform any word separation get desired behaviour. */ +static const char *default_suffixes[] = + { " ", "\n", (const char *)NULL }; + +/* If non-null, this contains the address of a function that the application + wants called before trying the standard tilde expansions. The function + is called with the text sans tilde, and returns a malloc()'ed string + which is the expansion, or a NULL pointer if the expansion fails. */ +tilde_hook_func_t *tilde_expansion_preexpansion_hook = (tilde_hook_func_t *)NULL; + +/* If non-null, this contains the address of a function to call if the + standard meaning for expanding a tilde fails. The function is called + with the text (sans tilde, as in "foo"), and returns a malloc()'ed string + which is the expansion, or a NULL pointer if there is no expansion. */ +tilde_hook_func_t *tilde_expansion_failure_hook = (tilde_hook_func_t *)NULL; + +/* When non-null, this is a NULL terminated array of strings which + are duplicates for a tilde prefix. Bash uses this to expand + `=~' and `:~'. */ +char **tilde_additional_prefixes = (char **)default_prefixes; + +/* When non-null, this is a NULL terminated array of strings which match + the end of a username, instead of just "/". Bash sets this to + `:' and `=~'. */ +char **tilde_additional_suffixes = (char **)default_suffixes; + +static int tilde_find_prefix PARAMS((const char *, int *)); +static int tilde_find_suffix PARAMS((const char *)); +static char *isolate_tilde_prefix PARAMS((const char *, int *)); +static char *glue_prefix_and_suffix PARAMS((char *, const char *, int)); + +/* Find the start of a tilde expansion in STRING, and return the index of + the tilde which starts the expansion. Place the length of the text + which identified this tilde starter in LEN, excluding the tilde itself. */ +static int +tilde_find_prefix (string, len) + const char *string; + int *len; +{ + register int i, j, string_len; + register char **prefixes; + + prefixes = tilde_additional_prefixes; + + string_len = strlen (string); + *len = 0; + + if (*string == '\0' || *string == '~') + return (0); + + if (prefixes) + { + for (i = 0; i < string_len; i++) + { + for (j = 0; prefixes[j]; j++) + { + if (strncmp (string + i, prefixes[j], strlen (prefixes[j])) == 0) + { + *len = strlen (prefixes[j]) - 1; + return (i + *len); + } + } + } + } + return (string_len); +} + +/* Find the end of a tilde expansion in STRING, and return the index of + the character which ends the tilde definition. */ +static int +tilde_find_suffix (string) + const char *string; +{ + register int i, j, string_len; + register char **suffixes; + + suffixes = tilde_additional_suffixes; + string_len = strlen (string); + + for (i = 0; i < string_len; i++) + { +#if defined (__MSDOS__) + if (string[i] == '/' || string[i] == '\\' /* || !string[i] */) +#else + if (string[i] == '/' /* || !string[i] */) +#endif + break; + + for (j = 0; suffixes && suffixes[j]; j++) + { + if (strncmp (string + i, suffixes[j], strlen (suffixes[j])) == 0) + return (i); + } + } + return (i); +} + +/* Return a new string which is the result of tilde expanding STRING. */ +char * +tilde_expand (string) + const char *string; +{ + char *result; + int result_size, result_index; + + result_index = result_size = 0; + if (result = strchr (string, '~')) + result = (char *)xmalloc (result_size = (strlen (string) + 16)); + else + result = (char *)xmalloc (result_size = (strlen (string) + 1)); + + /* Scan through STRING expanding tildes as we come to them. */ + while (1) + { + register int start, end; + char *tilde_word, *expansion; + int len; + + /* Make START point to the tilde which starts the expansion. */ + start = tilde_find_prefix (string, &len); + + /* Copy the skipped text into the result. */ + if ((result_index + start + 1) > result_size) + result = (char *)xrealloc (result, 1 + (result_size += (start + 20))); + + strncpy (result + result_index, string, start); + result_index += start; + + /* Advance STRING to the starting tilde. */ + string += start; + + /* Make END be the index of one after the last character of the + username. */ + end = tilde_find_suffix (string); + + /* If both START and END are zero, we are all done. */ + if (!start && !end) + break; + + /* Expand the entire tilde word, and copy it into RESULT. */ + tilde_word = (char *)xmalloc (1 + end); + strncpy (tilde_word, string, end); + tilde_word[end] = '\0'; + string += end; + + expansion = tilde_expand_word (tilde_word); + xfree (tilde_word); + + len = strlen (expansion); +#ifdef __CYGWIN__ + /* Fix for Cygwin to prevent ~user/xxx from expanding to //xxx when + $HOME for `user' is /. On cygwin, // denotes a network drive. */ + if (len > 1 || *expansion != '/' || *string != '/') +#endif + { + if ((result_index + len + 1) > result_size) + result = (char *)xrealloc (result, 1 + (result_size += (len + 20))); + + strcpy (result + result_index, expansion); + result_index += len; + } + xfree (expansion); + } + + result[result_index] = '\0'; + + return (result); +} + +/* Take FNAME and return the tilde prefix we want expanded. If LENP is + non-null, the index of the end of the prefix into FNAME is returned in + the location it points to. */ +static char * +isolate_tilde_prefix (fname, lenp) + const char *fname; + int *lenp; +{ + char *ret; + int i; + + ret = (char *)xmalloc (strlen (fname)); +#if defined (__MSDOS__) + for (i = 1; fname[i] && fname[i] != '/' && fname[i] != '\\'; i++) +#else + for (i = 1; fname[i] && fname[i] != '/'; i++) +#endif + ret[i - 1] = fname[i]; + ret[i - 1] = '\0'; + if (lenp) + *lenp = i; + return ret; +} + +#if 0 +/* Public function to scan a string (FNAME) beginning with a tilde and find + the portion of the string that should be passed to the tilde expansion + function. Right now, it just calls tilde_find_suffix and allocates new + memory, but it can be expanded to do different things later. */ +char * +tilde_find_word (fname, flags, lenp) + const char *fname; + int flags, *lenp; +{ + int x; + char *r; + + x = tilde_find_suffix (fname); + if (x == 0) + { + r = savestring (fname); + if (lenp) + *lenp = 0; + } + else + { + r = (char *)xmalloc (1 + x); + strncpy (r, fname, x); + r[x] = '\0'; + if (lenp) + *lenp = x; + } + + return r; +} +#endif + +/* Return a string that is PREFIX concatenated with SUFFIX starting at + SUFFIND. */ +static char * +glue_prefix_and_suffix (prefix, suffix, suffind) + char *prefix; + const char *suffix; + int suffind; +{ + char *ret; + int plen, slen; + + plen = (prefix && *prefix) ? strlen (prefix) : 0; + slen = strlen (suffix + suffind); + ret = (char *)xmalloc (plen + slen + 1); + if (plen) + strcpy (ret, prefix); + strcpy (ret + plen, suffix + suffind); + return ret; +} + +/* Do the work of tilde expansion on FILENAME. FILENAME starts with a + tilde. If there is no expansion, call tilde_expansion_failure_hook. + This always returns a newly-allocated string, never static storage. */ +char * +tilde_expand_word (filename) + const char *filename; +{ + char *dirname, *expansion, *username; + int user_len; + struct passwd *user_entry; + + if (filename == 0) + return ((char *)NULL); + + if (*filename != '~') + return (savestring (filename)); + + /* A leading `~/' or a bare `~' is *always* translated to the value of + $HOME or the home directory of the current user, regardless of any + preexpansion hook. */ + if (filename[1] == '\0' || filename[1] == '/') + { + /* Prefix $HOME to the rest of the string. */ + expansion = sh_get_env_value ("HOME"); + + /* If there is no HOME variable, look up the directory in + the password database. */ + if (expansion == 0) + expansion = sh_get_home_dir (); + + return (glue_prefix_and_suffix (expansion, filename, 1)); + } + + username = isolate_tilde_prefix (filename, &user_len); + + if (tilde_expansion_preexpansion_hook) + { + expansion = (*tilde_expansion_preexpansion_hook) (username); + if (expansion) + { + dirname = glue_prefix_and_suffix (expansion, filename, user_len); + xfree (username); + xfree (expansion); + return (dirname); + } + } + + /* No preexpansion hook, or the preexpansion hook failed. Look in the + password database. */ + dirname = (char *)NULL; +#if defined (HAVE_GETPWNAM) + user_entry = getpwnam (username); +#else + user_entry = 0; +#endif + if (user_entry == 0) + { + /* If the calling program has a special syntax for expanding tildes, + and we couldn't find a standard expansion, then let them try. */ + if (tilde_expansion_failure_hook) + { + expansion = (*tilde_expansion_failure_hook) (username); + if (expansion) + { + dirname = glue_prefix_and_suffix (expansion, filename, user_len); + xfree (expansion); + } + } + /* If we don't have a failure hook, or if the failure hook did not + expand the tilde, return a copy of what we were passed. */ + if (dirname == 0) + dirname = savestring (filename); + } +#if defined (HAVE_GETPWENT) + else + dirname = glue_prefix_and_suffix (user_entry->pw_dir, filename, user_len); +#endif + + xfree (username); +#if defined (HAVE_GETPWENT) + endpwent (); +#endif + return (dirname); +} + + +#if defined (TEST) +#undef NULL +#include + +main (argc, argv) + int argc; + char **argv; +{ + char *result, line[512]; + int done = 0; + + while (!done) + { + printf ("~expand: "); + fflush (stdout); + + if (!gets (line)) + strcpy (line, "done"); + + if ((strcmp (line, "done") == 0) || + (strcmp (line, "quit") == 0) || + (strcmp (line, "exit") == 0)) + { + done = 1; + break; + } + + result = tilde_expand (line); + printf (" --> %s\n", result); + free (result); + } + exit (0); +} + +static void memory_error_and_abort (); + +static void * +xmalloc (bytes) + size_t bytes; +{ + void *temp = (char *)malloc (bytes); + + if (!temp) + memory_error_and_abort (); + return (temp); +} + +static void * +xrealloc (pointer, bytes) + void *pointer; + int bytes; +{ + void *temp; + + if (!pointer) + temp = malloc (bytes); + else + temp = realloc (pointer, bytes); + + if (!temp) + memory_error_and_abort (); + + return (temp); +} + +static void +memory_error_and_abort () +{ + fprintf (stderr, "readline: out of virtual memory\n"); + abort (); +} + +/* + * Local variables: + * compile-command: "gcc -g -DTEST -o tilde tilde.c" + * end: + */ +#endif /* TEST */ diff --git a/lib/readline/tilde.h b/lib/readline/tilde.h deleted file mode 120000 index 6fea2aea..00000000 --- a/lib/readline/tilde.h +++ /dev/null @@ -1 +0,0 @@ -../tilde/tilde.h \ No newline at end of file diff --git a/lib/readline/tilde.h b/lib/readline/tilde.h new file mode 100644 index 00000000..e26dd047 --- /dev/null +++ b/lib/readline/tilde.h @@ -0,0 +1,80 @@ +/* tilde.h: Externally available variables and function in libtilde.a. */ + +/* Copyright (C) 1992-2009 Free Software Foundation, Inc. + + This file contains the Readline Library (Readline), a set of + routines for providing Emacs style line input to programs that ask + for it. + + Readline 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 3 of the License, or + (at your option) any later version. + + Readline 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 + along with Readline. If not, see . +*/ + +#if !defined (_TILDE_H_) +# define _TILDE_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +/* A function can be defined using prototypes and compile on both ANSI C + and traditional C compilers with something like this: + extern char *func PARAMS((char *, char *, int)); */ + +#if !defined (PARAMS) +# if defined (__STDC__) || defined (__GNUC__) || defined (__cplusplus) +# define PARAMS(protos) protos +# else +# define PARAMS(protos) () +# endif +#endif + +typedef char *tilde_hook_func_t PARAMS((char *)); + +/* If non-null, this contains the address of a function that the application + wants called before trying the standard tilde expansions. The function + is called with the text sans tilde, and returns a malloc()'ed string + which is the expansion, or a NULL pointer if the expansion fails. */ +extern tilde_hook_func_t *tilde_expansion_preexpansion_hook; + +/* If non-null, this contains the address of a function to call if the + standard meaning for expanding a tilde fails. The function is called + with the text (sans tilde, as in "foo"), and returns a malloc()'ed string + which is the expansion, or a NULL pointer if there is no expansion. */ +extern tilde_hook_func_t *tilde_expansion_failure_hook; + +/* When non-null, this is a NULL terminated array of strings which + are duplicates for a tilde prefix. Bash uses this to expand + `=~' and `:~'. */ +extern char **tilde_additional_prefixes; + +/* When non-null, this is a NULL terminated array of strings which match + the end of a username, instead of just "/". Bash sets this to + `:' and `=~'. */ +extern char **tilde_additional_suffixes; + +/* Return a new string which is the result of tilde expanding STRING. */ +extern char *tilde_expand PARAMS((const char *)); + +/* Do the work of tilde expansion on FILENAME. FILENAME starts with a + tilde. If there is no expansion, call tilde_expansion_failure_hook. */ +extern char *tilde_expand_word PARAMS((const char *)); + +/* Find the portion of the string beginning with ~ that should be expanded. */ +extern char *tilde_find_word PARAMS((const char *, int, int *)); + +#ifdef __cplusplus +} +#endif + +#endif /* _TILDE_H_ */ diff --git a/po/en@boldquot.gmo b/po/en@boldquot.gmo index bb64e1ffc7a8646176a13b224a9f99e5b8e5cf43..d8813f82503519b019a4a83d41122d1cb831bc38 100644 GIT binary patch delta 4451 zcmXZed309A8OQNwZUPbn1Y`?~grF=EmL!NkYyqV~nh*#C0wip~1S+d0SeD?6f+wsR zpa^Yg;Sj0PfM6p_<-lQ4!6j6*6+Eme$CDChtu2R^MCkXIxqp3T?wvc!GtbQXmQ=^A zsgBwAM6<{kXSOii*`sFm=?G`d@iwMl!whE+V=6YpS=a<$!20+KK7?zr1(st+Jch0C zDz?Pi7=w*RI%|flQSZBtbdkEkU>?NtAR9G-#n=JY;R9HX33wPaa1}m?|HRf9HOg5# zY=^z^anu54pcYVu1MxI!;HXS*+sufwZahfjfhI5!wUVXS9yg#SvKN!F664T~cGd;s zLx-aVo*%j$wertGzr$YCYf%yFLD)5spDX@tC`?1GU@>aI*HJ5c7d5fdVZ9ogQoo04 z*EGuy)C)C%p<%r!bTulX+i?I^gwJoH78r>d>pP6YSRN#X^)%F8=AuGejGE}LuoLb< zb?_JLjyJF^wi@SGmWUeoY1H>Qs09_GCSHPZjBh(BsKXCYA5{4lR)Y#r`)p^8F&P!1 zA*hK>LbYFt%8}Brz8&>l1!~}rQ49M9wSZdGL|cwmzY()O6f~osV%>^Sds`enFGKC+ z@z8UqQ*aa2t`-Mj=LtR{(@_&$hRUU_ct5^_+PWjC@6TXk#F|4R&Tb(ynEyvTcn<5ACS@G56LXfWkfXWUJ;rqtOk1~|W-h|uok z4bHN0#U^KbZWp)s34M*qh3mM5_jm9v^^IGd-JstMzjHR06-UaPo#6T3_HzCU8EDHs zXSaFKsDcg{F#26*KT>b8-&q;&n;-BU9XRA{C-3+F+1YN)Iqd8{X3*e>GZtx0k5lKn zl_#7PV<~=#jZZpTiPum!>74g{GA@iz_<@GLwlFz#Sol1WLqS(+K4#$T(8H)bYWRt>G*&pJl6EYu z{47^7EB(`XXT$NzSI!DFzy+UNrC30_ZAi4O{U(FSa;O3?tDgpeje#pM0b9lSOKup{g*pZE7$5`BF~B>G1N#G^S=BVKH0pg? z2i6XYV*_i%LEb{;7)iC0OwFdlg2cdv;!#xSqmlyq79T`y!ELOhf0wL*xjFj<)>P;J z90l!773#vMMIFaxj|avNoOQr{)aUdM>XPRT)P=Pdb)!{=eurvz4>$8&zX5?gMg7dc zz-}_p<|%(( zL{N9p48=awU%+I16FcGsd>Cu+5sb_5-=$(t>d&Em?zdrAJe?8oA^e^P@jQqb={rn7 z4KNjZ;d<2X_A%5IeFb#`#*QLF7>}AjU(^J$P!U^%TF5$7gnp0uZa3=Y+#jK!6;z=* zZlCEp9ETgI&qO6p4Qj9JjSlL5EgwR4I2Z?E25N$@;!ki7YQ@#4iN%ibD;|Jds82&h zG_o=*RG{|sa%ck%ze1Q4Iv(Swzlgf)w_#^I8`f{3I_^3)u*Wb1l|w5~{}VQ%CbSPb z;bk1C-+vqD_dW%6qm98hoQoRhHQa>9aVKVH2X+5+enjnI&+$IwV^KHY;;>$Vn&56! zgg-+ayXXmiOB>b6_$d?=x@S?p^Q%I)p|0Hhs1SaN3i%CGQrnAn@ z73z_wNX|xuyad(HepJN1K_zv=Nt}PZ7(hXLSAfd;b*OWF6i4AL)UipO><5^K%9XXK z>^^{6`6*1puQ3aIPVw(wMn!fbDuTOE5ji-8^FNNl_dL)9hE4S|oQn$i>!|;52e1*I zK~3ZW>cWbi=0n*U6|pX;fl^S%ITQ6=5k7`5;Yd7)I=1)aMSLMP&xf=J>bNDMwju>J zkt|g56rnDt;?NT8L45=2_#VY!_+QjLFnGGpm3*8)eK{)EE}<4y8wm?7p78@Fppxrn z7>CnQky(K{Hsz?0SK>mvj7p~Le7`jXs1+|qMW__D*JY@QevZn4yQp@NE(QKhPe!e5 zE$UZnGY-Own1JnP_#_;TIu(;p$yJ03^^VXFP@%0tCE*=ZL|e`bY#w$*P3$$y(fQv& zLFfD~_QpQH@X0k5b#7OqlItic66Y}q@1gcI=~+L)nWzP93f+$Cw;YG#CG3k`XZeWa zVt?H~YbYqG-bbzUW@y{l{xl3jW&1+ZN_L=ro_Av$9zsRnE7bq~TGWKw%<&;k3LS)6 zKsstdh1izy?Fa>Ra2~bdny}t`uAkUw)WnvcCh`_4i9Saq*}qU(-)f$pSOO}<{ZaQs zT3F9Sjq?m@q9quKrcg#fN%t0Npbt?u*S}GF9XsDAS07YJM<92%MNnD)9zKQt!6&i* zbAF4KpxVEU`mwo+I`{WK?;ZL)=U>NVDGyTc1Jp5dg?>dbs3hu$%Km|51?+T^N1yi#u9sppn^m+)>=l0+LsU{u~rznq1I@PpPrOZDMd}4kwK3t zN+*^Mm8oehGsjY$=`dpnj??B4gEOOMB(>DMKfn9@^}6@@-RCaf`@Q%1t+^YSdpB}_ zx9Xvxo>}%F&sv$;>A{}Wz=zlsD-7|h8TP`;I2EhmJgk6kV;k{VAZiE>i6bDy->K&jR&zjNJC9v5x#`0@kQK)@puF^a52`zyI2RGV*{*{>RBST zLoHwuY607@3!Xv^{5-Jsu#jhQJV+SkCNK)Mk|o#>*P8QHBGiBzP%GSzip;5?ejB5xKS8ytGQthi z3N?Y`pguQnB`Tu%_$n3z&+niX7G$0oQ3)xkMz zi6vMcYm9O$OF#|W8})uVYC&^Q6VJgI#4o3%r0j z1$R*G%CHAE&U6u(fSTx1R4#4C7w|JwWRIfWKZ{iv->y*5jBlg%=x1z-okx4-;aJq~ z<59_bOwQ3EfYxqI&AP4jtTheBto4k$$#UQKY!3rmTu(%3w`_xF z>9~B8XS{BgH@gX4N9DpT+|2Kf@Mr4l@;$ppziWTz*+^FW)(+23@cg?1&i{M{`e46j zr97x~hz=OgKKJYyME$|D9sFMHu5O}EAFBPI zF$Qm~8x>6_N5S$ix1hq#M&UrSF6^=PiJC?TV zJFa3@`uoeC^~a(so=wpJMJ~DWa0>0VAkjAe2e(Dri#diQ%}yLk`>*bKmQbGa*YLhe zz5zdSJcz_7EWxS&^K35-Q-AX80v$cYK|KH46VLLQ*h|md78H8EmE-rR<$PneY-WUS zeR!`)1?MzW4i(@H^;6NeG=49N^w}!TUt(oH9O_P(#Q+2F5(9iz)wfRw&59`B22zi& z<68sFuIF174)O<7z9y+YB2&}pFzXfHdSf9f^w04Jd@;!nZ^1)6Pyf$QIdZO}Z&5n` z7bs|NicuFv8R|Gz?c^IDHmipnsZa0hhm&VJ>cZNKy3x)AevfMR1V7}xq*r}Qp?|{NvEdN+UN20bJ{$G9--0dh)R2%1;XNM2@}T@s z*I^uLfU(#H-$Q-3zeHWpMW`DvI+X}vBh&=iq9%}vir7NbLRO<9^jp+>yHPjife;0) zpcvJ0-C?f7;kbeNWYqaBMeVgW+z)>(>!UjChCOfqYJ%@#cie+o@om(^qSM@pJK)RI z$Dtw`dM79pU`rlc4UFLMD}-$VM_>%~H&J)}7Ho>=gZcwh$4y82)&U2ga%ef~f5JM{ zg!W+*yoz1){eMb9-|0@H{P2x76l18*Kn=78H{mhdiD~J6_@B;Cs6A|%;X*zPbptL6 z>N%(h?nXuU8`QD0Ot+<#!iE@_fZI^RFK|P|)6Gp|XB8>RcCMDn39Rn_lDH z05eg!vI>>m2T?0Oi39OEj=+`^-0#a!kzI$H=uT8b4o%?vkD_po2bw_2>u!cKP$A!d z%8i3q1<#@;atU=|*+du0ny84yq6X@OI?jVp@6E*y_-h=Bhfv41Tvo^xqO)8`TcD0x z0%|Kdp(c`wN}jo>3o1J>2U}BLi#ooA*cbncx(B*Va=9`QGpUDAxpoD$urfVRA!@Q4 zFbK_LVgCb@hU2r(thc-CJVLV5Gq1>sJ-5Xn&`Kv9C(c3cCl03 zot}tV*(%gmY$Nu-%NUP!r@AD34RtCqQOPwI73!^l$5EjzMkV1RR79&!^KA|`Kuv57 zj?wwwNDCE0yc*4LQhCKiVZ zaeLG~(Ko0MMve12YN9z9ilDHKf|BlI)IcXtH`l*WdmTO3C09Hur2Ub*+ulND{b5YO z|6ng{|AyP5#i;h5qCPg)Q0KnlJZJJe&cBY!5*~ELB|I)++l3F`R1u)wu%jcT8T`inMeK@XS3OL?Gd{uDLP<)Fc1)N!f2 k(3yma)M(VP%g)J+J(3yg^=#!&O3K|n$UCxqkbgJs|0y|htN;K2 diff --git a/po/en@boldquot.po b/po/en@boldquot.po index def80300..9fd27a06 100644 --- a/po/en@boldquot.po +++ b/po/en@boldquot.po @@ -30,7 +30,7 @@ # msgid "" msgstr "" -"Project-Id-Version: GNU bash 4.2-rc2\n" +"Project-Id-Version: GNU bash 4.2-release\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-01-28 22:09-0500\n" "PO-Revision-Date: 2011-01-28 22:09-0500\n" diff --git a/po/en@quot.gmo b/po/en@quot.gmo index 0c535470d3d16fd125de762e61629002b369687e..46cb2bc64b496a441ceee1659fad76e1494e5716 100644 GIT binary patch delta 4451 zcmXZe3v|!t9mnzS^AkkKiqu>}g(%{Ft4qR>2s&8=O-Lf@nus-VDV=J|{@OCSmZD0J zTTiRgqnDuC;+W1hbtzk&Gb}siQqne~V-1y>Hr@M^=XXxddHtT><$1o(_xV20Kh+l- z+`HId_uwXxY-hG8(^(fYJ2l!_Q>?}mjLCA=0Y_pCmf+8DA=bm?_yE3y_v5?R77ydk z@iI2UYHWb9W1Ka?=BVdMV_c;6B9$AhxRHwrU_Q3N<#-=%M+LGMHE=n`;U#R2w=fd%EaO{?JRea0?dZIIj zsi^0}P}?UT)nN%kR)q86%Cjk->#t%th_f z8KJXrK@GH#6Y8QH|~9cj0R+Kp|eM6FI(j7 zG=W}uih#MlcM1D{5CcRnb#{mc!ufNMl<93Z#sL2`{T>l|0N7$yPQ=+ z=^khG8L;pJXWyy4*V!{XpZ=lm=;FuDmh=4VK4(s0T@oXzCBH_Cl+MgNn2NI`RC^=#&4zeKmcU>j02cQJ?em?pJ*8Y(0V9z2}!;b&az+JWsK}w&GA1*hs#+ z5O_P(32JMo1pmhK{ZWBs^L$0UfTd#po##TSzKR(Pa0fqUfV7yvwlU)-v4N%2-W?Yh ze|EcBV2#+w(Jca7N>MfI9M~AX-_Sj<;rJCQ^<8@eb`?`lsczdduuthf2~{IE`vlfl z`@fnCZLjFQLG6Lj8kLdWIEILaU=P}>`USN=!+$^>p~p}s+Lxg<*q?UuhXO0+yDUtn z{c-=mE)eMdFoSma;J`*<;*h{1I+12`p$z;6b=0m!9Tcx)17=)?3UL3>!1C}Ew!;Tg zeP9oxzFQc&3@Zs>9kSK!nPI-a??~gnc`s^sV1;Dj#_%9g+i~_Ug4(mX81;`v1Qpot zP)F}(Y>#^|3D2N@wrj8}b{gfs&qnJOlPw<}Rcbp2ljwI^U2>PXH&bvOw-;9^w9-at*{BUFZtqE5~;*aa^{ zxX^&n>@{`V57pruT!%|h#S=H$uXP(#>ieTQ%tQV7%tQsa4Ts<%?2h+PfhA=H)(J;p zM|>O=K;*UX;xDMw-Uw|m#;0sp=qya&`D)ZzzY7!bi?CgHtnYXLKE(aWs2W<2T9WOk zB{+eIJ#=BdC;Dpo*&swZ@Id`|moS{?SOr zZkU6b@w2E}dOK{FqcT&2sf=&26MRu*p^7CJ^^e0WR7Xot1HFTq(I;3JuV5-xq5@0G z^{F0!%480z2Iivr*@~)x&rlht!iXNU%kyiOg^KjosDoq&j>QY8?bajT50Hzhl_yXE zZ$r&|7pCJ0)EOT;(LbM#%IpGEpfBJ++&Gc_KY@$W+)!0^D)13zp;EpO^*`JOY=mW~ zKn|h~tO`^rt5F%NH^~nakJ|UWQQzgDigFt2sNRU$WnWKX|Lfu|H1kTV=KnDHnV)H2BOv|J8VZVf%YcU3=g6LsYKO8(_i@_>y6r86R;tcqEfsF zRn#wr?X{>t-$Dg?3?oroT;)PVSBV;^-eZ1k`=Zu5A5~oQPywt$Ex|t25q%9)uysl8 znQnQg=dYliA4UDxe2>a#VyQQ$l>M*mvYZ>5`KPFD_AP2gcTq)j-)#S*(FL_jGEoOq z5o$@cpw@l|YM?!+nf?n^?LVR3Z#&1oKLNGqKEM6G{Pr%bOTD7fqG=0?R&2?1`?h2T=iC1ugXm?v delta 4447 zcmXZe4Rp`f9mnx|fBB205)TVaP!oxGY9f{pl!%mNNrog65>FA53iY&wX$<{GF%P5K zFjl4R832?PPMcc3mQE;dw+6&=j5E%@BSX{{oe2W-uus^ z%V7^LhaDc?A((58sTyNVKV!_9vDSPa@8K{E9cN8Xd>S9a3T%s&7>X>S=6YPZdFbu;OtOG`(p2z3fV9UjDZgk;B0V;q6*bP@=JKT*5m0C9oC{EJ?kErE2xf4ku?zz zh00JoDzFUH`!i5Ave<90Mt!#(HSj^y#7?6o(1;53TZ~|Q)3Mk^6pJl0My+kBe}641 zrTcu}M(u+0sP`IiFt(oLGLnu8bSkQrs;~`iLS^<9)c3U*!T9DF7mE0O9Ez7Q4x=Yq zV{tg@`3ThZnSkoB0&j*Gvj_`udWp+K-3;e@sP`H$la3lu1NSa-&r>lN&W%hi^kM;O zpHBCkgNp(TfLgoj71mtgAb5n|qkXB;nq<6&Dz2zS);z;N*?1TaEheKLnOtJcG}_fw z)|?~I%S#EE`-fJr|A#U_pxT*(Kqv}O&@&(~Y?Iu;$X<~jof-nQmB+F$>b z@A* zVb(L5e0R}v#)Nn+HB^EB;CWrZGX*?f73#56?7s_KDAiXmhXL;5hYXPRm}g#P#t{*o z8Abc`NYC(R?sW1@I2$<-?U`zdszV>o?U6VX>ivHtK zHF7iAGwrqi?{T5+6-e<~4vc72MiMcXh=*c-+Uo~;EkDD5LLH&+qE57{zRj3QJ93a` zD)=r3N6~&W)ia+G=zYwg-7wrU+1NeJGeMn5bGT3jet|k_H=z!SofyW9Yf%B#rF*6r z&tMPiG13J#3iVy3Z#8~N052k2-8}cS>+e6L@hjdlqdikjCT@)Of-N2AW_c}Vbs6d( zjb*67eu+AIw__~6fqn5D>SwzdpTxLq_kAwvN2vmpq1CAG_F_Dq!Wg`XI_kr7f^MLM z9Is_NrJ*`3#sRn*mHM|(zuVVPM|8+fyp|I%4Rs`EqB<+y-*e=vWj-WDh5_NK( z!+v-%$b|+Bu-DY_091$1Vht`w6;HddZmm0`QlE_Kun_g*GZPiy4ot&in1~NhfyIyW zOmF-V_QLt70D@cni@%{#d&9S5u1nbn-*SxM`3BTke*oj~Q@?HVT*oOmi2IXKHS`i{ zNp_=_;5cdmpW##b{SV~3wM$2xXhj%Zt8C&6H9EsOZ zfyEcORHvXanTM)@xu||#LDj%%R0eKgP!GBlyS2+fMfx+;L9!R~@FHrv^_%1dC_vT9 zPf-EyK+XIBj>1!@Gd^sxdtQRd>_SwaYj6l|nauv5$i-Q1s4C;8xCnDlDX&ER4_AZX zSc?jz9(763?-Nnq<)Mml8tSOtg4$)DPi6n>qKO+yY3pfjyG5Xm z)+kgU15m}2hdQ8&ealeAwE(q!cVId;po+3%iK~^NIEi)L{*3W#A@in>C|m998Nv)DxB2!Kgq>P!rmKdM{YZ#Yisd zQ8Rmp`V|YA;bxMB3AERtitsJeuJ}8ux*Jic4xQ=ji^}L2R1ub-4zQ)T5Lcm=?jBCj z{tqp4`+O!Q@n9>exZcAQyoH*1Y`L4sa7?CMhFa5Yr~uERCh)Cq;2GC%JIv;O1`fnu zp{oA`4$=O<&4r4p&n(wbzVGv>-EaUE&?l&wgjTqp=k^#w`w3JA(op~Rm!bk*j!N-1 z-`7w}aTqi30(N11(|NW_)j-r5<@)Vq7(;s-YKHZwK(3)`qU{`4WQnNlH6GjGY*dOD zql$X1-`<1@bPp=fcQF{?;tCfkx@)L`yl36oCZX1P0;;&?p#oTsT7sjfBl-&*hS76d z&U90VdcGO;{3Pnf=D(5|`gvu^Yxj(?^?Sy6mty}9-{xLZ diff --git a/po/en@quot.po b/po/en@quot.po index 738d2a3e..ec46fb14 100644 --- a/po/en@quot.po +++ b/po/en@quot.po @@ -27,7 +27,7 @@ # msgid "" msgstr "" -"Project-Id-Version: GNU bash 4.2-rc2\n" +"Project-Id-Version: GNU bash 4.2-release\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-01-28 22:09-0500\n" "PO-Revision-Date: 2011-01-28 22:09-0500\n" diff --git a/subst.c b/subst.c index 23073708..0e83e56e 100644 --- a/subst.c +++ b/subst.c @@ -2884,33 +2884,17 @@ do_assignment_no_expand (string) WORD_LIST * list_rest_of_args () { - register WORD_LIST *list, *args, *last, *l; - WORD_DESC *w; + register WORD_LIST *list, *args; int i; /* Break out of the loop as soon as one of the dollar variables is null. */ - list = last = 0; for (i = 1, list = (WORD_LIST *)NULL; i < 10 && dollar_vars[i]; i++) - { - w = make_bare_word (dollar_vars[i]); - l = make_word_list (w, (WORD_LIST *)NULL); - if (list == 0) - list = last = l; - else - { - last->next = l; - last = l; - } - } + list = make_word_list (make_bare_word (dollar_vars[i]), list); for (args = rest_of_args; args; args = args->next) - { - w = make_bare_word (args->word->word); - last->next = make_word_list (w, (WORD_LIST *)NULL); - last = last->next; - } + list = make_word_list (make_bare_word (args->word->word), list); - return list; + return (REVERSE_LIST (list, WORD_LIST *)); } int @@ -7929,22 +7913,6 @@ expand_word_internal (word, quoted, isexp, contains_dollar_at, expanded_somethin DECLARE_MBSTATE; - /* XXX - experimental -- short-circuit "$@" */ - if (STREQ (word->word, "$@") && - ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES|Q_PATQUOTE)) || (word->flags & (W_DQUOTE|W_NOPROCSUB))) && - (word->flags & W_NOSPLIT) == 0 && - dollar_vars[1] && - ifs_value) - { - list = list_rest_of_args (); - quote_list (list); - if (expanded_something) - *expanded_something = 1; - if (contains_dollar_at) - *contains_dollar_at = 1; - return list; - } - istring = (char *)xmalloc (istring_size = DEFAULT_INITIAL_ARRAY_SIZE); istring[istring_index = 0] = '\0'; quoted_dollar_at = had_quoted_null = has_dollar_at = 0; diff --git a/support/mkconffiles b/support/mkconffiles old mode 100644 new mode 100755 diff --git a/support/mkversion.sh b/support/mkversion.sh old mode 100644 new mode 100755 diff --git a/support/rlvers.sh b/support/rlvers.sh old mode 100644 new mode 100755 diff --git a/support/shobj-conf b/support/shobj-conf old mode 100644 new mode 100755 diff --git a/trap.c b/trap.c index ef251498..86665e7a 100644 --- a/trap.c +++ b/trap.c @@ -1100,6 +1100,7 @@ signal_is_ignored (sig) int signal_is_hard_ignored (sig) + int sig; { return (sigmodes[sig] & SIG_HARD_IGNORE); }