#! /bin/sh # # This is patch #6 to gawk 3.1. cd to gawk-3.1.5 and sh this file. # Then remove all the .orig files and rename the directory gawk-3.1.6. # Changes to files that are automatically recreated have been omitted. # They will be recreated the first time you run make. # This includes all the extracted example files in awklib. # First, slight rearranging rm -f ABOUT-NLS ansi2knr.1 ansi2knr.c configure COPYING rm -f missing_d/memmove.c missing_d/strncasecmp.c cd README_d mkdir OBSOLETE mv README.FIRST README.linux README.sco README.sony README.ultrix README.yacc OBSOLETE cd .. # Update a binary file cd doc rm -f statist.pdf cat << \EOF > statist.uu begin 644 statist.pdf M)5!$1BTQ+C,*)SV%.ON**,,A.>04 MUP0(TKBQ?5VUK+!6L8G M?C]T?OJZ0%G_76#]>V&AM6I9+TM#TE@F^7IQ7\ MSOGSX;+^\F#WMK] Z\-?RW2$M=*FHO:+F\4OR\N?RH9W#_\LOSZLK]T<*G&X MNPS["+M_QBV!"#\C X"^]4RAWJ10:^E9@"&S C,\2Q#Q48,9?DX1H&V8*)/POR6@E2;A[S+\(^S^&3?_ M")_V;Z5:*T[_VR:0@C7\789_A-T_X^8?X?/^7;<6_G3; =[7#B*-*E_EY.7I MK4<4Z.0$(-FJ\MJS_^$@#QI"6+N3PY]V^-M6P=SGM M78:]Z[!W?=J^-MIZT=W^V#R*3;+I[G*ZNPQWU^'N^K0[2MG:E?NQ]^L1[X.& M\'OHO &F^YS(YT^^;F1#)]VA_, ?9!5L)"#Z5*G093#@#5#M MH)'%[U/5V! =.52L;".O5ZY-!;R]RPE#UG+ RY M%RR=-;'RU:R5E8^SAHA%LK:(7++FB'T_"[L%YQDAR7YVR!7R M3)$;_OC@?[26&$PYBE,\"T6!6Q2/9]_O5H2UEO4/N^#/@%+X@'+H6RCM('8H MIJ$#W%X.B<1;N MVVB<7??[-+O,SL#7"(ZSF_L2&"!; M," P(#4P-" W,C!="B]2;W1A=&4@,"]087)E;G0@,R P(%(*+U)E"]S979E;B]E:6=H="]N:6YE+V5Q=6%L+V$O92]L+VTO M<"]S+W8I"B]&;VYT1FEL93,@." P(%(^/@IE;F1O8FH*." P(&]B:@H\/"]3 M=6)T>7!E+U1Y<&4Q0R]&:6QT97(O1FQA=&5$96-O9&4O3&5N9W1H(#$S(# @ M4CX^M695E<(JRKU>X*K$(K( \K(%4I%94 0DF,58IK M5]ISA_YTSTZL/7OVG#G__/^=N??^]_N^>TG"WHX@27).9/3OPG^K\@S3ZO*U MAHP=:IO1C72"@KGLZJ6N PX@CM<^"/LV'?6X2( M) M*RS?FY!;F9:2E&^3N6V(3/#P]O?YG\0D,#)1O+_SUBWR35I^1EBU?+&SR MM;JIBO,3=?+U1J-5F-SBU?KM)GRD Q=1FYN3K[< M?:.'W-?;VV>IL/A&9F1MWZ.7QZFS]7*E/%:;MD>GSOL_(T$0TERM/E^GSO)S M]_<(6"%?^<[2P&7>/@I?@H@A0HC-1 *A(C80D<1<8AK!$M.)>824( DG8CXA M(9R)V<04)D+":8_I@4P#886Y3;*9*(V.N#@0Y,'=@GY+]MG,5GH-G1*[R]HL9 MA-DP^]:@A;.%[H>P'O#O)TM&1?PI.,2BP:.-!^HR1E>W>" :+UZ*[?$ZO.[I M;\ -9@[W &7D5E*&D.2T,!2/ME;G-.S]Y/U/BEOHTA[VY'A']PBB'W>'!A2A MHN(B(?P'AG[>JY\L,\-ALXB/X"5L\:O06WB6$%FR1KDD\)H&WLKB3 6W#E;E M(^W\I*1=&[9JR\[ERPZ5'RT_5D/[42?PK)X86"B4Z#1RYWM3:KWK7[G5?PG] M<_8Y5#._L?Y2S[TKV9M+94(J9.3W5I)0.P]2>*-X*87=IQ18SBN$+2BGC&() MY"'CY*9*$HV(P&LRBUWY<]8(98.@-[B/]^YW1&8H&Y8R!?SE)I;YK.CP<73, M)7M_^7D.NAR>A39C=JURCR9=IL]]+ZLH@1ZA3GY9>]&$Z(?7=Z-^O-M:U=8A^RC^O+X-5:"RTK^=%'"%4!;E M'-F79\C0;=^?A.@([:76]IH+3\HXRYFS)RZ4T9+)!T)%,7TVVD<@U_9(F:9> MWLA.&4?@L0,S]*B]J^?V/[1A,ORSS6 [=EW1A-N._$*'YUM:/(+5^=%),MU- M=74H"D8IN[)E#M RP.(\"O*@6_PF%2P< M$CW#Z>Q+D'9#! (?!+Y*B' #*;V9LF#7)KP&87^$_9*PP@^_3B5 9#;!;_EXAU#76&;'H[6B59U!RW6"^@-*9F%,YQMW_ MW')?-RB@Y/IR I: ?-EW>$'BCD-9V[D+D"2&1NJ7T%VF8>.HB2QY O5"]&," MK?N 7OL5)I "!6O5RM20O<)U6(1GG%U[35D;>UMGLK7Y^$O@P,GG&6:"-^9D[R>(8*87@BU M5-CJR/;G&0HK\-$0[!Z/#]+/J3K8^P02P!\RWI1^^0'H38[(&F&%8F&1,J]X M%WX:RXSW-51?N><,(G\3=L1S_!18%%Z==G^KC'FU2K,C6N&,Y[WP 3G(7UB! M'=C1$5@GPS2<%AP?-J:&A">EKE^?U'"OIZGA 8>;[9E7ELZX=U9&Q?D$1'TQ M/-QY4YA), KOWR>A!NZP^/!&./P&L%@3W.XGD=6&5RNL8"LP_2@$"&1"7]=> M[?[LJTHS A;!C,)'ZF[-%ZI+"F'&N"QQPQQVLBZ#N?>:JML_YXKQ^CC/Q4B% MMM4=[*%A+K^+?7P[=+E_I"I@17S'F+7SSI -+C1!H@D1Q$VPKJX3K_/W\2:3 M+7F-5007! C#453VSJ04E<$+"6K%1P8Q UZPY#$P[Y-_E*VLSGZ0ABB M%?9CUSUQ+$Y)6>JQ+/D%Q$/\];$Q[C4CD]Z",GT$(9_A2]FI4LMD8HR##I-[ M#^ %^VBET*=#(.K]=R_)7X(?V:F"8+Z >MO^E[?-W\Q?ZR=YJ:"?#\WLU#3J MXUN7:\PW7K8Y_:OM1A\RHPY]N[I679MP-@SYH+!,352>]MW4HHVTA?JP\:.+ M9ZJJZC\_WXKHP<[8M7&[?J],XY8G8/>5V\*.8._YO(Z2&*IX8R6H*I55E&GZ M\ S3'V;._.;CF;,(XK]OV=8N"F5N9'-TF4@,30@ M+U)O;W0@,2 P(%(@+TEN9F\@,B P(%(*/CX* + 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 -urN gawk-3.1.5/ChangeLog gawk-3.1.6/ChangeLog --- gawk-3.1.5/ChangeLog 2005-07-26 21:46:32.000000000 +0300 +++ gawk-3.1.6/ChangeLog 2007-10-22 08:50:42.000000000 +0200 @@ -1,3 +1,768 @@ +Mon Oct 22 08:49:05 2007 Arnold D. Robbins + + * Release 3.1.6: Release tar file made. + +Sun Oct 14 23:19:12 2007 Ralf Wildenhues + + * Makefile.am: Avoid GNU make-specific `make -C'. + +Sun Oct 14 19:37:01 2007 Arnold D. Robbins + + * configure.ac: Add check for `atexit', needed by replacement + version of `snprintf'. + +Sun Sep 30 21:50:59 2007 Arnold D. Robbins + + Rationalize locale's influence on %'g, strtonum, and input. + + * awk.h (use_lc_numeric): Add declaration. + * builtin.c (format_tree): Add check for quote_flag and set + LC_NUMERIC so that The Right Thing gets done, then reset it. + (do_strtonum): Pass use_lc_numeric as second arg to isnondecimal. + * main.c (main): Have do_posix set use_lc_numeric also. + +Thu Sep 27 21:36:23 2007 Stepan Kasal + + * configure.ac: Do not instantiate version.c; remove the hack + to keep version.c from being removed upon `make distclean'. + * Makefile.am (version.c): New rule. + (.c.i, SUFFIXES): Remove, `.i' is unused. + (MAINTAINERCLEANFILES): Remove awkgram.c; Automake takes care of that. + +Wed Sep 26 14:40:13 2007 Eli Zaretskii + + * builtin.c (format_tree): Handle non-standard snprintf that + returns a negative value when the buffer is too small. + +Tue Sep 25 23:27:41 2007 Arnold D. Robbins + + * ChangeLog: Removed all leading spaces. Fixed up formatting of + entries to have capital letter after the colon. Fixed a number of + entries to have the '*' in the right place. ASCII instead of ascii. + Capitalize Linux. (Is this anal-retentive or what? Sheesh.) + +Tue Sep 25 08:24:11 2007 KIMURA Koichi + + * awk.h: Add include of for Visual Studio. + * regex_internal.h: Do the right thing for replacing alloca. + +Sat Sep 22 23:26:27 2007 Arnold D. Robbins + + * field.c (set_FIELDWIDTHS): Restore behavior of 3.1.4 that allowed + FIELDWIDTHS to be "" without crashing, and such a value has NF = 0. + Yet Another Dark Corner. Thanks to Glenn Zazulia + for pointing out the problem. + + Unrelated: + + * builtin.c (format_free): Make `quote_flag' not sticky. Thanks to + Ulrich Drepper for pointing this out. + * main.c (main): Adjust calls to `setlocale' and `localeconv' so that + the %'d flag will work even if not using the locale's decimal point. + +Thu Sep 20 21:02:41 2007 Arnold D. Robbins + + * array.c (hash, awk_hash, gst_hash_string): Add fourth argument + pointer to retrieve code. Only assign a value if not NULL. + Fix most places to pass NULL for fourth argument. + (assoc_lookup): Save the code in the node for use in growing the + array later. + (grow_table): Use the saved code instead of recomputing each time. + * awk.h (NODE hash): Add `code' member and `ahcode' macro. + (hash): Revise declaration. + * awkgram.y: Revise calls to `hash'. + +Tue Aug 21 17:47:07 2007 Arnold D. Robbins + + * main.c (copyleft): Cite version 3 of the license. + * dfa.c: Minor edits to sync with grep 2.5.3. + +Sat Aug 11 22:48:11 2007 Arnold D. Robbins + + * COPYING: Replaced with GPL 3. + * All other relevent files: Upgraded to GPL 3. + +Fri Aug 3 15:01:38 2007 Andrew J. Schorr + + * builtin.c (format_tree): Free `obuf' before call to `fatal' + to keep valgrind happy. + +Mon Jun 4 01:12:21 2007 Arnold D. Robbins + + * All relevant files: Updated copyright year to 2007. + +Mon May 28 08:06:15 2007 Arnold D. Robbins + + * main.c (use_lc_numeric): New variable, true for new + option `--use-lc-numeric'. + (optab): Add option "use-lc-numeric". + (usage): Add to usage message. + (main): Allow the --use-lc-numeric option to also use the + local decimal point. + +Fri May 18 16:26:00 2007 Arnold D. Robbins + + * awk.h (_TANDME_SOURCE): Add test for ! _SCO_DS for + SCO systems. Thanks to John DuBois + +Tue May 15 13:14:04 2007 Arnold D. Robbins + + General capability suggested by Michael May . + + * configure.ac: New option --disable-directories-fatal. Makes gawk + silently skip directories on the command line. + * io.c (iop_open): Add fourth parameter, pointer to flag which is set + to true if the file is a directory. In this case, close the fd and + return NULL. + (nextfile): Modify call to iop_open. Add logic to check for directory + and skip if --disable-directories-fatal was used. If the configure flag + was not used, then if do_traditional also skip. + (redirect): Modify call to iop_open and call fatal if isdir is true. + +Mon May 7 14:51:54 2007 Arnold D. Robbins + + * POSIX.STD: Updated. + +Wed May 2 19:29:56 2007 Stepan Kasal + + Revert precedence of concatenation and | getline. + From mail dated 2005-10-31. + + * awkgram.y (common_exp): Move the two rules for naked regexp and + the rule for "(...) in arr" to ... + (non_post_simp_exp): ... here ... + (simp_exp): ... and here, respectively. Fixes test/parsefld.awk/. + (simp_exp_nc): New nonterminal, needed to fix the + precedence of concatenation over "|getline". + (common_exp): Can also start with simp_exp_nc. + +Tue May 1 19:53:11 2007 Arnold D. Robbins + + Work around problem with /ab{0}c/. + * dfa.h (struct dfa): Add member `broken'. + * dfa.c (dfainit): Initialize it to false. + (lex): Set it if `minrep == maxrep && minrep == 0'. + * re.c (avoid_dfa): Check flag and return TRUE if set. + +Tue May 1 05:34:53 2007 Arnold D. Robbins + + * configure.ac: Add calls to AM_LANGINFO_CODESET, and gt_LC_MESSAGES. + Thanks to Matthew Burgess . + +Sun Apr 29 22:55:12 2007 Arnold D. Robbins + + * regcomp.c (utf8_sb_map): Remove const if not __GNUC__ >= 3. + * regex_internal.h (re_dfa_t): Bracket bizarre macro call with + check for _LIBC. + Thanks to Nelson Beebe for finding both problems. + +Sun Apr 29 13:10:31 2007 Arnold D. Robbins + + * builtin.c (do_strftime): Add optional third argument to strftime() + which if non-zero or non-null means to use UTC. + * awkgram.y (tokentab): Allow three arguments to strftime. + +Fri Apr 27 11:44:27 2007 Arnold D. Robbins + + * README.cvs, bootstrap.sh: Added to CVS archive, not for + inclusion in tarballs. + +Fri Apr 20 16:48:30 2007 Pat Rankin + + * awk.h: Move inclusion of redirect.h before HAVE_func blocks. + +Tue Apr 24 21:55:36 2007 Arnold D. Robbins + + * re.c (research): In the multibyte case, fall back to the full + matcher if need_start, since there are bugs in the dfa matcher + in some obscure cases. Sigh. + * builtin.c (format_tree): When using %.0f instead of %d, assert + that we're not malloc-ing zero. + +Tue Apr 17 21:51:40 2007 Arnold D. Robbins + + Portability fixes for lsbcc from Nelson Beebe. + + * configure.ac: Check for stddef.h header. + * regex.h: Use check and include header to get size_t definition. + * main.c: Update UPDATE_YEAR, add #ifdef for HAVE_MTRACE. + +Tue Apr 17 13:49:13 2007 Arnold D. Robbins + + * configure.ac: Add test for struct sockaddr_storage. + * io.c: Add macro to redefine sockaddr_storage as sockaddr. + +Tue Apr 17 05:45:19 2007 Arnold D. Robbins + + * io.c (get_a_record): Make it static, to match declaration at the + top of the file. (Thank you GCC for not reporting this. Grr.) + +Fri Apr 13 00:29:24 2007 Arnold D. Robbins + + * replace.c: Only include missing/getaddrinfo.c if HAVE_SOCKETS + is defined. Avoids problems on VMS. Thanks to Pat Rankin. + +Tue Apr 10 18:53:04 2007 Arnold D. Robbins + + * awkgram.y, builtin.c, eval.c, ext.c, field.c, io.c, + node.c: Added some sanity to the lint warnings, to only + print them once if they are syntactic or of the type where + they don't need to be repeated. Switch to `short' instead + of `int', and in general use a variable named `warned', for + consistency. + +Sun Apr 8 16:49:28 2007 Arnold D. Robbins + + * awkgram.y: Add guard code to ifdef out "signed" for VMS. Thanks for + the heads-up to Pat Rankin. + * regcomp.c (utf8_sb_map, init_dfa): Move non-GCC code to initialize + this array into code, to preserve word-size independance. + * configure.ac: Add check for . + * io.c: Include if we have it, instead of keyed off + Tandem, needed on some Unix systems. + * awk.h, main.c, msg.c, awkgram.y: Move to use of CAN_USE_STDARG_H + instead of continuously repeating check for header and defined STDC + and STDC. Thanks to Pat Rankin. + +Fri Apr 6 15:28:09 2007 Arnold D. Robbins + + * builtin.c (do_length): Only print `length(array)' lint warning once. + * node.c (dump_wstr): Restore from being ifdef'ed out. Useful in case + it needs to be called from a debugger. + * regcomp.c (utf8_sb_map): Fix gcc-specific code. + * awk.h (snprintf): Add declaration in case not available on the system. + (Ceil, Floor): Add macros changing the name for VMS, in an attempt to + fix linkage problems. + * io.c: Simplify includes for internet headers and for getaddrinfo + defines. + +Wed Apr 4 23:38:24 2007 Arnold D. Robbins + + * io.c [AI_ADDRCONFIG]: Add a definition in case it's not available. + * main.c (usage): Add comment for translators to add translation + bug report address. + +Wed Apr 4 18:26:45 2007 Pat Rankin + + * regexec.c (build_trtrable): Add missing #if HAVE_ALLOCA. + +Thu Mar 29 19:30:20 2007 Pat Rankin + + * re.c (make_regexp): Cast casetable to RE_TRANSLATE_TYPE. + +Mon Mar 19 12:35:00 2007 Arnold D. Robbins + + Finish removing references to STRTOD_NOT_C89. + + * awk.h (gawk_strtod): Use now if there is no strtod. + * replace.c (strtod.c): Include if there is no strtod. + * configure.ac [GAWK_AC_FUNC_STRTOD_C89]: Removed. + +Mon Mar 19 12:17:16 2007 Kimura Koichi + + * dfa.c (dfaexec): Add check for half-width katakana characters in + character classes in ShiftJIS locale. + From mail originally sent Mon, 01 Aug 2005 09:07:55 +0900 + +Fri Mar 9 11:53:25 2007 Arnold D. Robbins + + * field.c (rebuild_record): Assert that wide string is off when + creating new fields. Inspired by Karel Zak. + +Fri Mar 9 11:26:01 2007 Matthew Woehlke + + * io.c (get_a_record): Limit the max amount read to SSIZE_MAX. Needed + on Tandem systems where this amount is incredibly small. + +Tue Mar 6 08:17:49 2007 Paul Eggert + + * node.c (is_ieee_magic_val): Don't rely on strncasecmp; it mishandles + ASCII bytes in some locales. + (get_ieee_magic_val): Use strtod if it works, relying on our handbuilt + code only if it doesn't work. This is more likely to do the right + thing with strings like "-nan". + +Tue Feb 27 20:51:29 2007 Arnold D. Robbins + + * configure.ac (AM_PROG_CC_STDC): Removed, per email suggestion + from Stepan Kasal some time ago. + +Tue Feb 27 20:44:07 2007 Aleksey Cheusov + + * awk.h: Revise checks for MEMCPY_ULONG and MEMSET_ULONG + for MS Interix using MSVC. + * configure.ac (AC_CHECK_FUNCS): Add checks for memcopy_ulong + and memset_ulong. + From mail dated Tue Aug 30 12:38:39 2005. + +Mon Feb 26 12:47:10 2007 Tony Leneis + + * dfa.c (dfacomp): Check that regexp is non-zero in length + also. Avoids problems with empty regex and IGNORECASE on + systems where `malloc(0)' returns a non-NULL pointer. + From mail dated Wed, 26 Oct 2005 15:42:07 -0700. + +Wed Feb 21 10:23:12 2007 Arnold D. Robbins + + * floatcomp.c (Floor, Ceil): Restore correct expression for Cray. + Then ifdef out the whole business, since it's likely to be obsolete. + Thanks to Paul Eggert. + +Mon Feb 19 12:28:47 2007 Arnold D. Robbins + + * node.c (format_val): Simplify code: always format the value + ourselves. Use %.0f if the value is integral. + * floatcomp.c (dval_out_of_range): Remove function, not needed. + (awknum_fraction_bits): Removed. + (adjust_uint): New function, defined IFF have uintmax_t. + * builtin.c (tmp_integer): Use adjust_uint. + Move include of and ... + * awk.h: to here. + (awknum_fraction_bits): Removed. + (adjust_uint): Declare, or define as do-nothing macro. + +Sun Feb 18 17:43:33 2007 Arnold D. Robbins + + * node.c, floatcomp.c: Add include of to get + correct declarations of math functions. + * configure.ac: If doing development, add -DYYDEBUG and also + -fno-builtin for GCC. + +Wed Feb 14 19:42:08 2007 Arnold D. Robbins + + Add support for special infinity and NaN values in non-POSIX + mode, and in POSIX mode, just call system `strtod'. + + * configure.ac [GAWK_AC_FUNC_STRTOD_C89]: Comment out. + * node.c (is_ieee_magic_val, get_ieee_magic_val): New functions. + (r_force_number): Adapt logic and use new functions. + +Tue Feb 13 13:02:32 2007 Arnold D. Robbins + + Move Paul's numeric stuff to a separate file to make code cleaner. + + * floatcomp.c (awknum_fraction_bits): New variable. + (Floor, Ceil): Functions, moved here from macros in builtin.c. + (dval_out_of_range): New function for checking if double is in range + of long. + (FLT_RADIX, FLT_MANT_DIG, DBL_MANT_DIG, AWKSMALL_MANT_DIG, + AWKNUM_MANT_DIG, AWKNUM_FRACTION_BITS): Moved here from awk.h. + * awk.h: Add decls of stuff now in floatcomp.c. + * Makefile.am[base_sources]: Add floatcomp.c. + * builtin.c (tmp_integer): Refer to `awknum_fraction_bits' + instead of AWKNUM_FRACTION_BITS. + * node.c (format_val): Call `dval_out_of_range' instead of + inline coding the test. + +2007-02-06 Paul Eggert + + * node.c (format_val): Fix bug when handling numbers close to + LONG_MIN and LONG_MAX. + * awk.h (FLT_RADIX, FLT_MANT_DIG, DBL_MANT_DIG, AWKSMALL_MANT_DIG, + AWKNUM_MANT_DIG, AWKNUM_FRACTION_BITS): Moved here from builtin.c. + * builtin.c: Move those macros to awk.h. + * awk.h (DBL_FRACTION_BITS): New macro. + +Fri Feb 9 13:40:10 2007 Matthew Woehlke + + More Tandem fixes. + + * configure.ac: Check in Tandem's zrldsrl library for dlopen. + * regex_internal.h: Move include into ifdef. + * regexec.c: Bracket alloca uses. Fix GCC use of `?:'. + +Fri Feb 9 13:30:15 2007 Arnold D. Robbins + + * replace.c: Add include of snprintf.c. Ooops! + * configure.ac: Add check for mkstemp and tmpfile for replacement + snprintf.c. + +Tue Feb 6 14:33:51 2007 Arnold D. Robbins + + * node.c (format_val): Restructure a bit to remove need for and + use of goto. + +Sun Feb 4 16:35:21 2007 Arnold D. Robbins + + * awkgram.y (field_spec, opt_incdec): New terminals. + (variable): Change definition of field reference to use field_spec. + See test/parse1.awk. + +Thu Feb 1 17:38:38 2007 Arnold D. Robbins + + * main.c: Allow YYDEBUG to enable the `-D' option, not just + GAWKDEBUG. + +Wed Jan 31 19:30:26 2007 Arnold D. Robbins + + * node.c (format_val): Restore my test for numeric values + being representable, as it includes more conditions than + Andrew's, pending a thorough review of undealt-with emails on + the topic. + * regexec.c (proceed_next_node): Move check for NULL to after + variable declarations inside initial `if'. + +Wed Jan 31 19:25:21 2007 Andrew J. Schorr + + * configure.ac (getaddrinfo): Improve test, since this function + can be in libsocket on some systems. + +Mon Jan 29 15:33:10 2007 Andrew J. Schorr + + * Makefile.am (valgrind): Also call new valgrind-scan target. + +Mon Jan 29 12:44:54 2007 Andreas Schwab + + * dfa.c (copytoks): Adjust index into multibyte csets when + copying an MBCSET token. + +Fri Jan 26 20:01:38 2007 Andrew J. Schorr + + * node.c (format_val): Test whether a numeric value is integral + simply by converting it to long and then back again, and checking + if the value matches. That's more robust than trying to test + whether the floating-point value is representable as a long. + * builtin.c (format_tree): Fix buffer overflow bug, off-by-one errors + in checking snprintf return codes, and use "%.0f" to implement "%d" + formatting. For octal or hex formatting, test whether the value + is integral by trying to convert back to floating point and seeing + if the value matches. This is more robust than trying to test + whether the floating-point value is representable as an integer. + +Tue Jan 23 17:49:28 2007 Arnold D. Robbins + + * io.c (socketopen): Initialize socketfd to avoid "may be used + uninitialized" warning. + * regexec.c (regexec, re_search_stub): Removed unused variable `dfa'. + * builtin.c (wide_tolower_toupper): Fix signedness of pointer in + allocation calls and in call to make_str_node. + +Mon Jan 22 12:57:19 2007 Kimura Koichi + + Deal with halfwidth katakana in SJIS locale inside character ranges. + Based on http://sources.redhat.com/bugzilla/show_bug.cgi?id=1149. + Changes affect non-__LIBC code only. + + * regcomp.c (re_compile_fastmap_iter): Handle half-size characters. + * regexec.c (check_node_accept_bytes): Same. + +Thu Jan 18 22:19:01 2007 Karel Zak + + * node.c (free_wstr): Assert that type is Node_val. + +Thu Jan 18 12:18:47 2007 Arnold D. Robbins + + * regcomp.c (re_compile_fastmap_iter): Declare `dfa' to be + be volatile. Fixes valgrind problem with the ignrcase test. + Sheesh. Gawk should now be valgrind-clean. We hope. + +Mon Jan 15 14:28:04 2007 Arnold D. Robbins + + Use getaddrinfo instead of gethostbyname, to handle IPV6 + format addresses. Based on patch submitted by + Jan Pazdziora . + + * configure.ac: Add getaddrinfo to list of checked functions. + * configh.in, configure: Regenerated. + * io.c: Rework includes based on HAVE_GETADDRINFO. + (socketopen): Reworked for getaddrinfo. + (devopen): Modified for new socketopen. + * replace.c: Include getaddrinfo.c if necessary. + +Sun Jan 14 12:19:53 2007 Arnold D. Robbins + + * awkgram.y: For bad name in array subscripting, build a + valid node anyway to avoid invalid reads reported by valgrind. + * dfa.c (parse_bracket_exp_mb): Remove assignment of NULL + to work_mbc->chars, was losing data malloc'ed earlier. Thanks + to valgrind. + (state_index): Alway initialize d->states[i].mbps elements to zero. + (dfafree): Free allocated d->states[i].mbps.elems if needed. + * regex.c: Try harder to undef alloca. + * regex_internal.h (__mempcpy): Undef before redefinining for + more recent versions of GLIBC. + +Sat Jan 13 22:10:43 2007 Arnold D. Robbins + + * node.c (str2wstr): For count of zero from mbrtowc, set count to 1 + and fall through to code that copies. Originally from Paul Eggert. + + Unrelated: + * configure.ac: Add call to AC_USE_SYSTEM_EXTENSIONS, should help + on Tandem. This lets us remove AC_AIX and AC_MINIX. + + From Matthew Woehlke for Tandem: + + * awk.h (_TANDEM_SOURCE): Also define _XOPEN_SOURCE_EXTENDED. + * io.c: (_TANDEM_SOURCE): Include more headers. + +Sat Jan 13 21:53:48 2007 Ralf Wildenhues + + * field.c (set_FIELDWIDTHS): Avoid writing one past the end of + the array. + * node.c (r_force_number): Avoid reading uninitialized variable. + +Sat Jan 13 21:37:15 2007 Arnold D. Robbins + + * Makefile.am (valgrind): New target based on idea from + Ralf Wildenhues for running valgrind on test suite. + +Sat Jan 13 21:24:54 2007 Ralf Wildenhues + + Enable more `--lint-old' warnings. + * awkgram.y: Warning about multiple BEGIN or END rules, + `index in array' outside of for loops, multidimensional arrays. + * field.c (set_FS): Warn about regex FS. + * node.c (parse_escape): Warn about `\b', `\f', `\r'. + +Sat Jan 13 20:56:56 2007 Arnold D. Robbins + + * node.c (wcasestrstr): Revert use of continue, reinstate goto. + Thanks to Andrew Schorr. + (free_wstr): Move zeroing of wsptr and wslen and clearing of flag + back outside the if. + * field.c (rebuild_record): In loop that copies fields to new record, + add call to `free_wstr'. This ensures that flag values are correct + and avoids double free later. Thanks to Karel Zak for pointing out + the problem. + +Fri Jan 12 14:01:51 2007 Dmitry V. Levin + + * builtin.c (do_match): In addition to "gawk_mb_cur_max > 1" check, + check for positive string length. + +Fri Jan 12 13:57:20 2007 Arnold D. Robbins + + Sync with GLIBC. Bi-annual this time. + + * regexec.c, regex.h, regex_internal.c, regcomp.c: + Reapply any portability patches specific to gawk. + * regex_internal.h (build_wcs_upper_buffer): Fix return type + in declaration. Reapply any portability patches specific to gawk. + * regex.c: Add definitions for `bool', `true' and `false'. + Define `alloca' to something invalid to keep it from linking + in case a usage of `alloca' slipped through. Reapply any portability + patches specific to gawk. + + Base versions: + getopt1.c 1.10 Tue Mar 9 10:35:37 2004 + getopt.c 1.55 Fri Mar 24 10:59:56 2006 + getopt.h 1.21 Fri Mar 19 00:19:32 2004 + getopt_int.h 1.1 Tue Mar 9 10:31:19 2004 + regex.c 1.129 Fri Mar 24 10:59:57 2006 + regexec.c 1.97 Fri Mar 24 10:59:57 2006 + regex.h 1.40 Mon Sep 25 20:03:05 2006 + regex_internal.c 1.67 Mon Sep 25 20:03:05 2006 + regex_internal.h 1.73 Fri Mar 24 10:59:57 2006 + regcomp.c 1.112 Fri Mar 24 10:59:57 2006 + +Fri Jan 12 12:28:51 2007 Arnold D. Robbins + + * ABOUT-NLS, INSTALL, Makefile.in, aclocal.m4, config.guess, + config.rpath, config.sub, configh.in, configure, configure.ac, + depcomp, gettext.h, install-sh, missing, mkinstalldirs, ylwrap: + Updated to current autotools, Autoconf 2.61, Automake 1.10, + gettext 0.16.1. + +Thu Jan 4 18:23:50 2007 Dmitry V. Levin + + * node.c (free_wstr): Zero wstptr and wstlen only if WSTRCUR + flag is set. + (str2wstr): Replace invalid `free` call with `free_wstr' call. + +Thu Jan 4 16:49:21 2007 Arnold D. Robbins + + * builtin.c (do_match): Move freeing of wc_indices to outside if. + Thanks to Sven Wegener for the report. + +Thu Dec 21 14:32:13 2006 Arnold D. Robbins + + * main.c (arg_assign): Reassign the '=' only if not initing. + * profile.c (varname): Deleted. + (pp_concat): New function to print concatenations. + (tree_eval): Don't use `varname' anymore. Use `pp_concat'. + +Mon Dec 11 12:43:04 2006 Arnold D. Robbins + + * builtin.c (sub_common): Clear numeric flags on result + unconditionally. + * node.c (wcasestr): Replace `goto' with `continue'. + +Thu Nov 30 15:54:07 2006 Bruno Haible . + + * builtin.c: Change use of HAVE_LC_MESSAGES to defined(LC_MESSAGES). + Bruno suggested only for dcngettext, I did it everywhere (ADR). + +Wed Sep 6 02:04:32 2006 Andrew J. Schorr + + * awkgram.y (get_src_buf): Adjust `source' and `sourceline' to + correctly handle mixed -f and --source options. + +Mon Aug 28 21:17:20 2006 Arnold D. Robbins + + * AUTHORS, FUTURES, LIMITATIONS, NEWS, POSIX.STD, PROBLEMS, README: + Added FSF copyright for no other reason than to satisfy the flunkies + running Savannah. + * Makefile.am: Removed `ansi2knr' from AUTOMAKE_OPTIONS also. + +Fri Aug 11 15:07:45 2006 Arnold D. Robbins + + * field.c (set_field, rebuild_record, set_record): Remove calls to + `free_wstr' since they're not needed. + +Sat Aug 5 22:04:24 2006 Arnold D. Robbins + + * node.c (unref): Call `free_wstr' for fields also. Thanks to + Andrew Schorr. + +Tue Jul 4 22:43:05 2006 Arnold D. Robbins + + * eval.c (interpret): Node_assign_concat case: Turn off NUMBER and + NUMCUR flags in result. Sheesh. Thanks to + for finding the problem. + +Mon Jul 3 22:49:44 2006 Pat Rankin + + * main.c (load_environ): When AWKPATH is missing from ENVIRON[], + try to find it with getenv("AWKPATH") before resorting to DEFPATH. + Suggested by Galen Tackett. + +Mon Jul 3 00:27:59 2006 Arnold D. Robbins + + * io.c (INTERNAL_HANDLE): New constant for use by `iop_alloc' + when allocating an internal IOBUF. + (pidopen, useropen): Use it. + (iop_alloc): Add check for it and just return iop. + +Fri Jun 23 15:48:34 2006 Arnold D. Robbins + + * awkgram.y (subn): At end for `do_sprintf' check, verify + that lnode is not NULL before using it assign through. + +Sun Jun 18 22:27:25 2006 Arnold D. Robbins + + Repair internal names like /dev/user, /dev/pid, as well as /dev/fd/N, + which have been broken for a long time but noone noticed. + + * io.c (is_internal): New macro to check for internal file like + `/dev/user'. + (spec_setup): Reduce to two parameters, allocate logic is always true. + Add IOP_NO_FREE to flag. + (pidopen, useropen): Return `IOBUF *' instead of int. Fix + logic to test if `iop' parameter is NULL and if so to allocate it. + (specfdopen,): Return `IOBUF *' instead of int. Fix + logic to test if `iop' parameter is NULL and if so to allocate it. + Don't set IOP_NO_FREE in flag. + (iop_open): Remove `IOBUF iob' field from `struct internal' and its use + and the use of `spec_setup' from the code here. Change the check in the + call to the open function to look for NULL. + (get_a_record): Use `is_internal' in initial check for filling the + buffer to not try to call `read' on internal files. If true, set + the IOP_AT_EOF in the flag and return EOF. + +Fri Mar 24 13:05:56 2006 Arnold D. Robbins + + * awkgram.y (get_src_buf): Remove function argument types from + declaration of `readfunc' to avoid bugaboos with VMS declaration + of `read' system call. + +Fri Mar 10 06:28:23 2006 Arnold D. Robbins + + * awk.h (free_wstr): New declaration if MBS_SUPPORT, empty macro + otherwise. + * node.c (free_wstr): New function, inside MBS_SUPPORT. Frees the wide + string part of a node. Provided so that it can be used consistently + everywhere. + (format_val, r_dupnode, mk_number, make_str_node, unref): Use it. + * builtin.c (sub_common): Call `free_wstr' instead of doing it manually. + * eval.c (r_tree_eval): Same in Node_assign_concat case. + * field.c (set_field, rebuild_record, set_record): Add calls to + `free_wstr'. + +Mon Feb 13 22:45:34 2006 Arnold D. Robbins + + * eval.c (r_tree_eval): Node_assign_concat. Release any + wide string value and reset the WSTRCUR flag. Based on + bug report by Karel Zak. + +2006-01-03 Paul Eggert + + * Makefile.am (awkgram.c): Use $(AWK), not awk, so that the rule + works on Solaris too (e.g., Solaris 10). Problem reported by + Andrew J. Schorr. + +Mon Dec 19 05:39:46 2005 Arnold D. Robbins + + * node.c (format_val): Account for overlow of conversion + from double to long. Shows up worse on 64-bit systems. + +Wed Dec 14 18:57:34 2005 Arnold D. Robbins + + * eval.c (set_BINMODE): Fix logic of test for no numeric value. + Makes `gawk -v BINMODE=1 ...' work again. Thanks to Eli Zaretskii + for pointing out the problem. + +Wed Oct 19 10:58:27 2005 Arnold D. Robbins + + * main.c (main, arg_init): Only use the locale's decimal + point if do_posix is set. Too many people the world over + have complained about this. + +Fri Oct 7 13:54:09 2005 Arnold D. Robbins + + Enhancement to fix from 23 Sept 2005, suggested by Pat Rankin. + + * awkgram.y (one_line_close): New function, closes open FILE * used + by `read_one_line'. + (fp): Static FILE * used by `read_one_line' and `one_line_close'. + * awkgram.y (read_one_line): Simplify check for call to `fdopen'. + (get_src_buf): New variable `closefunc' which is a pointer to a + function implementing the `close' system call interface. + +Fri Oct 7 13:23:29 2005 Arnold D. Robbins + + * field.c (set_FIELDWIDTHS): Fix off-by-one error in assignment + of sentinel value at end of FIELDWIDTHS array. + +Fri Sep 23 16:05:13 2005 Arnold D. Robbins + + * awkgram.y (read_one_line): New function, mainly for debugging, + that reads one line of data at a time to pass back as a buffer. + Emulates the variable-length record filesystem of VMS, where + we first saw the problem fixed here. + (get_src_buf): New variable `readfunc' which is a pointer to a + function implementing the `read' system call interface. Based on + an environment variable, use `read_one_line' instead of `read' + for testing. Make the test for expanding the buffer smarter, + so that it doesn't grow unnecessarily. + + Thanks to Galen Tackett (tackett_galen@bah.com) for reporting + the problem and to Anders Wallin and Pat Rankin for help + tracing and reproducing the problem and testing the fix. + +Fri Sep 9 15:06:07 2005 Arnold D. Robbins + + * hard-locale.h (xmalloc): Move declaration to file scope + for non-glibc systems and gcc 4. Thanks to Kito Danya Dietrich + . + +Thu Aug 25 22:40:40 2005 Arnold D. Robbins + + * regcomp.c (build_range_exp): Avoid `btowc' for single-byte + characters. Fedora Core 2, maybe others, have a broken version + that can't handle values > 127. + +Fri Aug 19 16:13:28 2005 Arnold D. Robbins + + * regexec.c (proceed_next_node): Added a band-aid check at the + top of the first `if' to make sure that `mctx->state_log[*pidx]' + isn't NULL. + +Fri Aug 12 13:10:33 2005 Arnold D. Robbins + + * io.c (iop_alloc): Only free `iop' if it was malloc'ed in + the first place. + Tue Jul 26 21:46:16 2005 Arnold D. Robbins * Release 3.1.5: Release tar file made. @@ -13,8 +778,9 @@ * io.c (do_index): Remove unused variables `mbclen', `mbs1' and `mbs2'. * node.c (wstrstr): Remove unsed variable `j'. (dump_wstr): `#ifdef' out, not currently needed. - * eval.c (op_assign): Move decl of `t1' and `t2' into a separate block for - the `! HAVE_FMOD' case. Keeps the compiler quiet. Similar for `ltemp'. + * eval.c (op_assign): Move decl of `t1' and `t2' into a separate block + for the `! HAVE_FMOD' case. Keeps the compiler quiet. Similar for + `ltemp'. Wed Jul 6 16:51:31 2005 Arnold D. Robbins @@ -44,10 +810,10 @@ More multibyte fixes from Kimura Koichi, . * node.c (format_val, r_dupnode): Spell `wstptr' correctly. - * regex_internal.c (build_wcs_upper_buffer): Label `offsets_needed' should not - be inside `#ifdef _LIBC'. - * regcomp.c (build_charclass): Fix declaration of `class_name' in prototype to - not be unsigned. + * regex_internal.c (build_wcs_upper_buffer): Label `offsets_needed' + should not be inside `#ifdef _LIBC'. + * regcomp.c (build_charclass): Fix declaration of `class_name' in + prototype to not be unsigned. Thu Jun 30 11:52:34 2005 Arnold D. Robbins @@ -75,9 +841,9 @@ Wed Jun 15 21:59:54 2005 Arnold D. Robbins * node.c (make_str_node): If working with multibyte characters, while - parsing string constants, keep multibyte characters together. This avoids - problems in cases where one of the bytes is backslash. Initial patch - supplied by Kimura Koichi, . + parsing string constants, keep multibyte characters together. This + avoids problems in cases where one of the bytes is backslash. Initial + patch supplied by Kimura Koichi, . Tue Jun 14 21:50:37 2005 Andrew J. Schorr @@ -101,7 +867,8 @@ From: Benno Schulenberg - * eval.c (func_call): Take message out of gettext call since it's for debugging. + * eval.c (func_call): Take message out of gettext call since it's for + debugging. * ext.c (get_actual_argument): Fix formatting of message. Wed May 25 09:19:37 2005 Arnold D. Robbins @@ -147,8 +914,8 @@ Straighten out mess with `isblank' which is C99 function. * configure.ac: Remove check for `isblank' in call to AC_CHECK_FUNCS. - * regex_internal.h: #ifdef out definition of `isblank' and provide `is_blank' - function a la dfa.c. + * regex_internal.h: #ifdef out definition of `isblank' and provide + `is_blank' function a la dfa.c. * field.c: Ditto. * regcomp.c: #ifdef use of `isblank' and add `is_blank' use instead. @@ -197,7 +964,7 @@ * configure.ac (PRINTF_HAS_F_FORMAT): Some cosmetic changes. (custom.h): Don't cat custom.h at the end of config.h; instead, use - AH_BOTTOM([#include "custom.h"]) + AH_BOTTOM([#include "custom.h"]) * awklib/Makefile.am (AM_CPPFLAGS): Add $(top_srcdir) so that custom.h can be found. @@ -231,9 +998,9 @@ Thu Apr 28 18:16:09 2005 Andrew J. Schorr - * awk.h (IOBUF): Add new fields `opaque', `get_record', and `close_func', - to support insertion of an alternate input processor. This is used - by the XML extension. + * awk.h (IOBUF): Add new fields `opaque', `get_record', and + *close_func', to support insertion of an alternate input processor. + This is used by the XML extension. (register_deferred_variable, register_open_hook, update_ERRNO_saved): Declare new functions. (load_environ, load_procinfo): Remove declarations -- these functions @@ -348,7 +1115,7 @@ * awk.h "mbsupport.h": Suppress inclusion if NO_MBSUPPORT is defined. * regex.h : Guard inclusion with HAVE_SYS_TYPES_H. * regex.c : Likewise. - * random.c "random.h": include this first to get config.h setup. + * random.c "random.h": Include this first to get config.h setup. : Guard inclusion with HAVE_FCNTL_H. : Guard inclusion with HAVE_UNISTD_H. * io.c [#if defined(MSDOS) ||... defined(__CYGWIN__)]: Splice the @@ -847,14 +1614,14 @@ Thu Jul 8 16:59:51 2004 Stepan Kasal * awkgram.y (output_redir): Make sure not to dereference NULL - pointer. The bug was triggered by the following code: + pointer. The bug was triggered by the following code: - gawk 'BEGIN{print "date" |& getline}' + gawk 'BEGIN{print "date" |& getline}' - No test case created, beacuse of the following: - Correct interpretation involves executing "1" or "0" -- as the user - may have defined this, we would have to override this in the test - script. It's not worth the hassle. + No test case created, beacuse of the following: + Correct interpretation involves executing "1" or "0" -- as the user + may have defined this, we would have to override this in the test + script. It's not worth the hassle. Thu Jul 8 12:59:49 2004 Arnold D. Robbins @@ -890,8 +1657,8 @@ * awk.h (check_special, get_curfunc_parm_count, get_actual_argument): new function declarations. - (get_scalar_argument, get_array_argument): new macros. - * awkgram.y (check_special): new function. + (get_scalar_argument, get_array_argument): New macros. + * awkgram.y (check_special): New function. (yylex): Use `check_special' to search `tokentab'. (dump_funcs): Always count functions, in order to get dynamic ones. Removed bogus use of `static' on `tab' variable. @@ -974,9 +1741,9 @@ * Makefile.am (base_sources): Don't mention version.c, so that it doesn't get distributed. - * po/POTFILES.in: remove version.c + * po/POTFILES.in: Remove version.c * configure.ac: Create version.i from version.in. - * main.c: include version.i. + * main.c: Include version.i. Tue Jun 1 18:33:32 2004 Arnold D. Robbins @@ -1197,7 +1964,7 @@ so that it applies to the current source. * posix/gawkmisc.c: Change a tab to a space (needed for the above). - Make version control more in the style of current autotools: + Make version control more in the style of current autotools: * configure.ac: Remove obsolete versions of macros: AM_INIT_AUTOMAKE doesn't need any parameters. @@ -1335,7 +2102,7 @@ (parse_bracket_exp): Use NON_MATCH variable in addition to "mbcset->non_match", not as an alternative. - (build_charclass_op): rename NOT parameter to + (build_charclass_op): Rename NOT parameter to NON_MATCH, use it instead of declaring a variable. (parse_bracket_exp) [!_LIBC]: Pass NULL for MBCSET if the character set is single-byte. @@ -1574,7 +2341,7 @@ 2003-07-10 Paul Eggert * io.c (two_way_open): If /bin/sh cannot be executed, exit - with status 126 consistently. + with status 126 consistently. Mon Jul 7 11:01:43 2003 Arnold D. Robbins @@ -1626,15 +2393,15 @@ 2003-06-20 Stepan Kasal - * eval.c (comp_func): if memcmp returns 0, we have to compare + * eval.c (comp_func): If memcmp returns 0, we have to compare the lengths. 2003-06-19 Stepan Kasal - * eval.c (interpret) : use NULL, not 0, to - initialize the variable list. - (comp_func): array indices no longer are string values, - you have to use ahname_str, ahname_len. + * eval.c (interpret) : Use NULL, not 0, to + initialize the variable list. + (comp_func): Array indices no longer are string values, + you have to use ahname_str, ahname_len. Tue Jun 17 11:53:46 2003 Arnold D. Robbins @@ -1643,8 +2410,8 @@ 2003-06-17 Stepan Kasal - * array.c (get_actual): even if canfatal is FALSE, don't - tolerate existence of things which can't happen. + * array.c (get_actual): Even if canfatal is FALSE, don't + tolerate existence of things which can't happen. Mon Jun 16 16:21:44 2003 Arnold D. Robbins @@ -1665,14 +2432,14 @@ 2003-06-10 Stepan Kasal - * awkgram.y (release_all_vars): do not try to release a value of + * awkgram.y (release_all_vars): Do not try to release a value of Node_var_new; after get_lhs, use the lhs directly, do not try to do (*lhs)->var_value; the Node_var case doesn't need special treatment. * builtin.c (do_match): `get_param' is successful iff it returns Node_var_array---if the variable was new, get_param has already changed the type. - * field.c (do_split): likewise. + * field.c (do_split): Likewise. Sun Jun 15 19:36:35 2003 Arnold D. Robbins @@ -1732,29 +2499,29 @@ Wed May 28 08:31:23 CEST 2003 Stepan Kasal * eval.c (forloops_active, in_function): Nuked. - (pop_all_forloops, pop_fcall_stack): are now inline. + (pop_all_forloops, pop_fcall_stack): Are now inline. Wed May 28 07:58:35 2003 Stepan Kasal - * field.c, awk.h (Null_field): no longer static. - * field.c (init_fields): initial value of $0 can be Nnull_string, + * field.c, awk.h (Null_field): No longer static. + * field.c (init_fields): Initial value of $0 can be Nnull_string, no need to copy it. - * eval.c (r_get_lhs) : test for uninitialized field, + * eval.c (r_get_lhs) : Test for uninitialized field, which is Nnull_string for $0 and Null_field for $(>0). - * builtin.c (do_print_rec): test for uninitialized $0. + * builtin.c (do_print_rec): Test for uninitialized $0. Tue May 27 17:03:02 2003 Stepan Kasal * awk.h (Node_var_new): New node type for variables which can be either scalar or array. From now on, Node_var is always scalar. (Node_gvar_ref): Nuked, its role can be taken by Node_array_ref. - (orig_var): removed, orig_array is enough. + (orig_var): Removed, orig_array is enough. (SCALAR, UNINITIALIZED): Flags nuked. - (var_uninitialized): new macro to distinguish uninitialized vars; + (var_uninitialized): New macro to distinguish uninitialized vars; used in several other macros. - * array.c (r_get_array, array_vname, do_adump): adapt to the + * array.c (r_get_array, array_vname, do_adump): Adapt to the above changes. - * awkgram.y, eval.c, field.c, main.c, node.c, profile.c: ditto. + * awkgram.y, eval.c, field.c, main.c, node.c, profile.c: Ditto. Tue May 27 14:27:50 2003 Stepan Kasal @@ -1767,9 +2534,9 @@ * awk.h (get_array, r_get_array): Declare the new function and define a macro to speed it up. * builtin.c (do_match): Use get_array. - * eval.c (interpret) : ditto. - (r_get_lhs) : ditto. - * field.c (do_split): ditto. + * eval.c (interpret) : Ditto. + (r_get_lhs) : Ditto. + * field.c (do_split): Ditto. Tue May 27 08:23:51 2003 Stepan Kasal @@ -1786,7 +2553,7 @@ Sun Jun 8 11:25:36 2003 Stepan Kasal - * awkgram.y (append_right): when using savetail, remember that it + * awkgram.y (append_right): When using savetail, remember that it is not necessarily the tail of the list---it's just a pointer to the last chunk appended. @@ -1816,7 +2583,7 @@ Wed May 28 11:38:59 2003 Stepan Kasal - * awkgram.y (switch_body): remove rule ``switch_body:/*empty/'' + * awkgram.y (switch_body): Remove rule ``switch_body:/*empty/'' as ``switch_body:case_statements'' covers it---this disambiguation fixes a reduce/reduce conflict. @@ -1832,7 +2599,7 @@ bit was set or not. We were silly slowing down most of the assignements. - * (get_a_record): after grow_iop_buffer, move recm.rt_start even + * (get_a_record): After grow_iop_buffer, move recm.rt_start even if recm.len == 0. Mon May 19 16:55:59 2003 Arnold D. Robbins @@ -1868,11 +2635,11 @@ Misc patches: - * builtin.c (do_match): if third parameter to `match' is supplied, + * builtin.c (do_match): If third parameter to `match' is supplied, store all subexpressions which are applicable, even though there are some unused between them. - * awkgram.y (yylex): when returning from unterminated REGEXP + * awkgram.y (yylex): When returning from unterminated REGEXP (which is /* kludge */), take care to fake a yylval, to prevent ``internal error'' later. @@ -1880,7 +2647,7 @@ * io.c (rsnullscan, get_a_record): Boundary condition bug fixes. -Sun May 11 15:15:20 IDT 2003 Scott Deifik +Sun May 11 15:15:20 2003 Scott Deifik * awk.h: Add decls for `memcpy_ulong', `memset_ulong', and MSC defines. @@ -1965,10 +2732,10 @@ * m4/uintmax_t.m4, m4/ulonglong.m4: Remove; superseded by the above new m4 files. - * builtin.c (BITS_PER_BYTE): Remove; use CHAR_BIT instead, since - it's the standard name. - (do_lshift, do_rshift): Complain if the shift width is exactly equal - to the word size, too. + * builtin.c (BITS_PER_BYTE): Remove; use CHAR_BIT instead, since + it's the standard name. + (do_lshift, do_rshift): Complain if the shift width is exactly equal + to the word size, too. Thu Mar 27 10:44:11 2003 Arnold D. Robbins @@ -2018,7 +2785,7 @@ Wed Mar 19 13:45:50 2003 Corinna Vinschen - * regex.c [RE_ENBABLE_I18N]: remove definition; the one in + * regex.c [RE_ENBABLE_I18N]: Remove definition; the one in regex_internal.h is better and makes things work with Cygwin. Tue Mar 11 11:54:20 2003 Arnold D. Robbins @@ -2193,21 +2960,21 @@ ADR: More grammar rationalization/repair from Stepan. - * awkgram.y (common_exp, simp_exp): the rule from getline (without + * awkgram.y (common_exp, simp_exp): The rule from getline (without pipe) has been moved from common_exp to simp_exp. The redirection of print statements reworked. The idea comes from mawk-1.3.3; much thanks to Michael Brennan! - * awkgram.y (IO_OUT, IO_IN): new tokens. - (APPEND_OP, TWOWAYIO): swallowed by the above ones. - (in_print, in_parens): new static variables, to trace whether + * awkgram.y (IO_OUT, IO_IN): New tokens. + (APPEND_OP, TWOWAYIO): Swallowed by the above ones. + (in_print, in_parens): New static variables, to trace whether IO_OUT is expected. - (yylex): emit the new tokens, update in_parens on '(' and ')'. - (exp): the print command(s) reworked. - (oputput_redir): reworked. - (print_expression_list): new non-terminal. - (rexp, rexpression_list opt_rexpression_list): nuked. + (yylex): Emit the new tokens, update in_parens on '(' and ')'. + (exp): The print command(s) reworked. + (oputput_redir): Reworked. + (print_expression_list): New non-terminal. + (rexp, rexpression_list opt_rexpression_list): Nuked. (exp, simp_exp): ``cmd|getline'' rule changed to ``cmd IO_IN getline'' and moved from exp to simp_exp. @@ -2234,16 +3001,16 @@ (shadow_funcs): ... which will enable us to end the program if lintfunc is fatal. (program): Cleanup of the rules defining the ``program'' non-terminal. - (start, program, rule): no value associated, + (start, program, rule): No value associated, expression_value is now treated similarily as begin_block and end_block. - (pattern, rule): bison actions for non-terminal `pattern' now + (pattern, rule): Bison actions for non-terminal `pattern' now add a new rule to the appropriate Node_rule_list, action for non-terminal `rule' now only adds the associated code block to the rnode of Node_rule_node. - (io_allowed): renamed to !begin_or_end_rule. + (io_allowed): Renamed to !begin_or_end_rule. (append_pattern): New function, adds new Node_rule_node to a rule_list. (mkrangenode): Deleted, this tiny function was called only once. - (function_body): non-terminal replaced by `action'. + (function_body): Non-terminal replaced by `action'. (statements, action, statement): `statements' can now be empty; both callers had to accomodate to this. (statements): Don't call isnoeffect($2->type) if @@ -2276,7 +3043,7 @@ * awk.h [NUMSUBPATS]: New macro. * builtin.c (do_match): Use it in loop that fills in subpattern info. - * eval.c (r_tree_eval): for Node_assign, don't call free_temp(), + * eval.c (r_tree_eval): For Node_assign, don't call free_temp(), as assign_val() contains dupnode(), which would clear the TEMP flag. From Stepan Kasal . * config.sub: Updated from prep. @@ -2375,21 +3142,21 @@ Wed Nov 27 06:04:20 2002 Pat Rankin - * ext.c [#if !DYNAMIC] (do_ext): Cast string value for error node. + * ext.c [#if !DYNAMIC] (do_ext): Cast string value for error node. Sun Nov 24 18:23:29 2002 Arnold D. Robbins From Paul Eggert, with some edits by me. - * builtin.c (do_substr): Consistently use floating point - values for lint messages, so they should be printed pretty - much as the user saw them. Check for overflow before - converting floating point to integer. Do the right thing with - NaNs. - - Check for index out-of-range before checking for length - out-of-range, to avoid some nasty effects if address - arithmetic overflows (e.g., indx + length < index). + * builtin.c (do_substr): Consistently use floating point + values for lint messages, so they should be printed pretty + much as the user saw them. Check for overflow before + converting floating point to integer. Do the right thing with + NaNs. + + Check for index out-of-range before checking for length + out-of-range, to avoid some nasty effects if address + arithmetic overflows (e.g., indx + length < index). Allow zero-length substrings when checking for lint if do_lint == LINT_INVALID. @@ -2538,13 +3305,13 @@ from FALSE to 0, it's not Boolean. (free_temp): Evaluate the argument only once, so that we can call free_temp(tree_eval(n)) for achieving side effects. - (load_environ, load_procinfo): Changed return type to NODE *. - * main.c (load_environ): The ENVIRON_node should be created with type + (load_environ, load_procinfo): Changed return type to NODE *. + * main.c (load_environ): The ENVIRON_node should be created with type Node_var_array and lnode set to NULL. Return pointer to the created node and create an empty hash even on TANDEM. (load_procinfo): Same mods for PROCINFO_node. (init_args): ARGV_node should also have lnode set to NULL. - * eval.c (r_tree_eval): case Node_assign moved just above the other + * eval.c (r_tree_eval): case Node_assign moved just above the other assignment cases. (op_assign): ++ and -- cases merged with += and -=, respectively. (push_args): Evaluate all args, even in cases where more args are @@ -2554,11 +3321,11 @@ can be trusted when linting code. (r_get_lhs): Case Node_param_list was unreachable (unless something breaks really badly), remove it; - (r_tree_eval): case Node_var_array removed from the last switch, + (r_tree_eval): Case Node_var_array removed from the last switch, it was caught in the first switch above. * profile.c (tree_eval): Again, case Node_var_array was caught above. - * awkgram.y (variable): Code simplified, making use of the above - changes. + * awkgram.y (variable): Code simplified, making use of the above + changes. * field.c (sc_parse_field): IGNORECASE only applies to regex based field-splitting, so remove code that pays attention to it. (do_split): Don't use parse_field if RS_is_null. @@ -2686,12 +3453,12 @@ to two NODE's per element from three. * awk.h (ahash): Union is gone. - (hash.ref): new union member. - (ahnext): new definition into hash union. - (ahvalue): new definition into hash union. - (ahname_str): new member, points into hash union. - (ahname_len): new member, points into hash union. - (ahname_ref): new member, points into hash union. + (hash.ref): New union member. + (ahnext): New definition into hash union. + (ahvalue): New definition into hash union. + (ahname_str): New member, points into hash union. + (ahname_len): New member, points into hash union. + (ahname_ref): New member, points into hash union. * array.c: Replaces uses of ahname member with string and length. Set the reference count correctly to 1 on new nodes. * eval.c (interpret): Case for Node_K_arrayfor. dupnode() the @@ -2710,11 +3477,11 @@ * profile.c (pprint): #undef the temporary defines at the end of the case. * eval.c (interpret): Likewise. - (assign_val): we can unref() before doing dupnode(). + (assign_val): We can unref() before doing dupnode(). Also, move the check for NF < 0 from here ... * field.c (set_NF): ... to here. - * main.c (varinit): no need to call set_NF(). - * awkgram.y (statements): don't be so generous when concatenating + * main.c (varinit): No need to call set_NF(). + * awkgram.y (statements): Don't be so generous when concatenating `statements' with a `statement'. @@ -2727,10 +3494,10 @@ Sun Oct 13 21:35:35 2002 Arnold D. Robbins - * awk.h (NODE): reflags is now unsigned long for: - (exec_count): defined to be sub.nodep.reflags. Using `number' + * awk.h (NODE): Reflags is now unsigned long for: + (exec_count): Defined to be sub.nodep.reflags. Using `number' broke pgawk. - * profile.c (Node_K_delete_loop): print out as a for loop + * profile.c (Node_K_delete_loop): Print out as a for loop with a comment that it's internally the same as `delete array'. * eval.c (Node_K_delete_loop): Increment the exec_count. Ooops. * configure.in (AM_GNU_GETTEXT_VERSION): New macro call. @@ -2833,7 +3600,7 @@ (regexp): ... to here. (common_exp): New non-terminal; contains common parts of exp and rexp. (a_relop, relop_or_less): New non-terminals. - (rexp): some rules updated to be analogous to exp. + (rexp): Some rules updated to be analogous to exp. (output_redir): Can contain only common_exp, not exp in general. Mon Sep 16 22:51:51 2002 Arnold D. Robbins @@ -2985,11 +3752,11 @@ * array.c (in_array): Use FALSE not zero for return value. (assoc_exists): New routine to find and return value for an index in an array. - * configure.in: test for termios.h and stropts.h, and grantpt function. - * io.c: include termios.h and stropts.h if available. + * configure.in: Test for termios.h and stropts.h, and grantpt function. + * io.c: Include termios.h and stropts.h if available. (redflags2str): Add RED_PTY to table. (redirect): Add RED_PTY to flags turned off when searching. - (close_redir): close write channel for two-way pipes + (close_redir): Close write channel for two-way pipes that use ptys by sending an EOF. (two_way_open): If pty_vs_pipe(), use pty's to open two-way pipes as they are line-buffered by default --> alleviates deadlock problems. @@ -2999,9 +3766,9 @@ Sun Aug 4 00:37:38 2002 Stepan Kasal - * re.c (make_regexp): don't pass the error message returned by - re_compile_pattern() to gettext(); it's already gettextized. - (make_regexp): minor reformat of code. + * re.c (make_regexp): Don't pass the error message returned by + re_compile_pattern() to gettext(); it's already gettextized. + (make_regexp): Minor reformat of code. Wed Jul 31 23:50:31 2002 Arnold D. Robbins @@ -3049,12 +3816,12 @@ * m4/jm-mktime.m4: Removed. * m4/largefile.m4: Removed. * m4/ssize_t.m4: Removed. - * ansi2knr.c: updated. - * depcomp: updated. - * install-sh: updated. - * missing: updated. - * mkinstalldirs: updated. - * ylwrap: updated. + * ansi2knr.c: Updated. + * depcomp: Updated. + * install-sh: Updated. + * missing: Updated. + * mkinstalldirs: Updated. + * ylwrap: Updated. * configure.in: Improved quoting. * acinclude.m4: Use `m4_sinclude', not antiquated `sinclude'. @@ -3171,10 +3938,10 @@ * eval.c (forloops_active, pop_forloop, pop_all_forloops, push_forloop): new functions. (interpret): Case Node_K_arrayfor, call push and pop functions. - Case Node_rule_list: pop loops and pop fcalls after longjmp. + Case Node_rule_list: Pop loops and pop fcalls after longjmp. Cases Node_K_next, Node_K_nextfile, Node_K_break and Node_K_continue, removed check before longjmp. - Case Node_K_exit: add loop check. + Case Node_K_exit: Add loop check. (loop_stack, nloops, nloops_active): New variables that implement the stack. @@ -3324,9 +4091,9 @@ Upgraded to automake 1.5 and gettext-0.11. Also bug fix to multibyte code. - * ABOUT-NLS: upgraded. - * config.guess, config.sub, config.rpath, gettext.h, ylwrap: new files. - * Makefile.am: added above to appropriate places. + * ABOUT-NLS: Upgraded. + * config.guess, config.sub, config.rpath, gettext.h, ylwrap: New files. + * Makefile.am: Added above to appropriate places. * awk.h: Replace libintl.h and macros with include of gettext.h. (emalloc, erealloc): Add num bytes to error message, put string inside _(). (index_multibyte_buffer): Removed decl. @@ -3336,16 +4103,16 @@ that we don't try to malloc(0): this fails on some systems. * configure.in (AM_GNU_GETTEXT): Update macro for gettext 0.11. (ALL_LINGUAS): Removed. - * m4/codeset.m4: new file. - * m4/gettext.m4: updated. - * m4/glibc21.m4: new file. - * m4/iconv.m4: new file. - * m4/isc-posix.m4: new file. - * m4/lcmessage.m4: updated. - * m4/lib-ld.m4: new file. - * m4/lib-link.m4: new file. - * m4/lib-prefix.m4: new file. - * m4/progtest.m4: updated. + * m4/codeset.m4: New file. + * m4/gettext.m4: Updated. + * m4/glibc21.m4: New file. + * m4/iconv.m4: New file. + * m4/isc-posix.m4: New file. + * m4/lcmessage.m4: Updated. + * m4/lib-ld.m4: New file. + * m4/lib-link.m4: New file. + * m4/lib-prefix.m4: New file. + * m4/progtest.m4: Updated. * intl/*: Replaced with version from gettext 0.11. * po/*: Revised for gettext 0.11. @@ -3392,7 +4159,7 @@ * builtin.c (do_bindtextdomain): Don't free the same variable twice. * main.c (main): Call setlocale for LC_MESSAGE, to make dcgettext - function work on glibc systems. + function work on glibc systems. Wed Jan 23 15:03:36 2002 Andreas Buening @@ -3449,30 +4216,30 @@ Thu Apr 26 08:03:17 2001 Isamu Hasegawa - * builtin.c (index_multibyte_buffer) : inspect the buffer and write + * builtin.c (index_multibyte_buffer): Inspect the buffer and write the index. - (sub_common) : in multibyte environment, skip multibyte characters + (sub_common): In multibyte environment, skip multibyte characters when we check special characters. - * awk.h (index_multibyte_buffer) : add prototype. - * eval.c (cmp_nodes) : in multibyte environment, compare per character. - * field.c (re_parse_field) : in multibyte environment, avoid to + * awk.h (index_multibyte_buffer): Add prototype. + * eval.c (cmp_nodes): In multibyte environment, compare per character. + * field.c (re_parse_field): In multibyte environment, avoid to call research() on invalid boundary. - (sc_parse_field) : in multibyte environment, avoid to compare on + (sc_parse_field): In multibyte environment, avoid to compare on invalid boundary. - (null_parse_field) : in multibyte environment, split per + (null_parse_field): In multibyte environment, split per character, not per byte. - * io.c (get_a_record) : in multibyte environment, avoid to compare + * io.c (get_a_record): In multibyte environment, avoid to compare on invalid boundary. Wed Apr 25 08:29:47 2001 Isamu Hasegawa - * awk.h (strncasecmpmbs) : add prototype. - * builtin.c (strncasecmpmbs) : new function like strncasecmp but for + * awk.h (strncasecmpmbs): Add prototype. + * builtin.c (strncasecmpmbs): New function like strncasecmp but for multibyte strings. - (do_index) : in multibyte environment, compare per character. - * builtin.c (do_tolower) : in multibyte environment, user towlower + (do_index): In multibyte environment, compare per character. + * builtin.c (do_tolower): In multibyte environment, user towlower instead of TOLOWER. - (do_toupper) : in multibyte environment, user towupper instead + (do_toupper): In multibyte environment, user towupper instead of TOUPPER. Tue Apr 24 10:38:06 2001 Isamu Hasegawa @@ -3480,62 +4247,62 @@ In multibyte environments, handle multibyte characters as single characters in bracket expressions. - * dfa.h (mb_char_classes) : new structure. - (mbcsets) : new variable. - (nmbcsets) : new variable. - (mbcsets_alloc) : new variable. - * dfa.c (prtok) : handle MBCSET. - (fetch_wc) : new function to fetch a wide character. - (parse_bracket_exp_mb) : new function to handle multibyte character + * dfa.h (mb_char_classes): New structure. + (mbcsets): New variable. + (nmbcsets): New variable. + (mbcsets_alloc): New variable. + * dfa.c (prtok): Handle MBCSET. + (fetch_wc): New function to fetch a wide character. + (parse_bracket_exp_mb): New function to handle multibyte character in lex(). - (lex) : invoke parse_bracket_exp_mb() for multibyte bracket expression. - (atom) : handle MBCSET. - (epsclosure) : likewise. - (dfaanalyze) : likewise. - (dfastate) : likewise. - (match_mb_charset) : new function to judge whether a bracket match + (lex): Invoke parse_bracket_exp_mb() for multibyte bracket expression. + (atom): Handle MBCSET. + (epsclosure): Likewise. + (dfaanalyze): Likewise. + (dfastate): Likewise. + (match_mb_charset): New function to judge whether a bracket match with a multibyte character. - (check_matching_with_multibyte_ops) : handle MBCSET. - (dfainit) : initialize new variables. - (dfafree) : free new variables. + (check_matching_with_multibyte_ops): Handle MBCSET. + (dfainit): Initialize new variables. + (dfafree): Free new variables. Mon Apr 23 01:40:09 2001 Isamu Hasegawa Implement the mechanism to match with multibyte characters, and use it for `period' in multibyte environments. - * dfa.h (mbps) : new variable. - * dfa.c (prtok) : handle ANYCHAR. - (lex) : use ANYCHAR for `period' in multibyte environments. - (atom) : handle ANYCHAR. - (state_index) : initialize mbps in multibyte environments. - (epsclosure) : handle ANYCHAR. - (dfaanalyze) : handle ANYCHAR. - (dfastate) : handle ANYCHAR. - (realloc_trans_if_necessary) : new function. - (transit_state_singlebyte) : new function. - (match_anychar) : new function. - (check_matching_with_multibyte_ops) : new function. - (transit_state_consume_1char) : new function. - (transit_state) : new function. - (dfaexec) : invoke transit_state if expression can match with + * dfa.h (mbps): New variable. + * dfa.c (prtok): Handle ANYCHAR. + (lex): Use ANYCHAR for `period' in multibyte environments. + (atom): Handle ANYCHAR. + (state_index): Initialize mbps in multibyte environments. + (epsclosure): Handle ANYCHAR. + (dfaanalyze): Handle ANYCHAR. + (dfastate): Handle ANYCHAR. + (realloc_trans_if_necessary): New function. + (transit_state_singlebyte): New function. + (match_anychar): New function. + (check_matching_with_multibyte_ops): New function. + (transit_state_consume_1char): New function. + (transit_state): New function. + (dfaexec): Invoke transit_state if expression can match with a multibyte character in multibyte environments. - (dfamust) : handle ANYCHAR. + (dfamust): Handle ANYCHAR. Fri Apr 20 11:31:24 2001 Isamu Hasegawa Avoid incorrect state transition in multibyte environments. - * dfa.h (nmultibyte_prop) : new variable. - (multibyte_prop) : new variable. - * dfa.c (addtok) : set inputwcs. - (dfastate) : avoid incorrect state transition in multibyte + * dfa.h (nmultibyte_prop): New variable. + (multibyte_prop): New variable. + * dfa.c (addtok): Set inputwcs. + (dfastate): Avoid incorrect state transition in multibyte environments. - (dfaexec) : likewise. - (dfainit) : init multibyte_prop. - (dfafree) : free multibyte_prop. - (inputwcs): new variable. - (mblen_buf) : new variable contains the amount of remain byte + (dfaexec): Likewise. + (dfainit): Init multibyte_prop. + (dfafree): Free multibyte_prop. + (inputwcs): New variable. + (mblen_buf): New variable contains the amount of remain byte of corresponding multibyte character in the input string. Fri Apr 20 06:28:59 2001 Isamu Hasegawa @@ -3543,38 +4310,38 @@ Handle a multibyte character followed by '*', '+', and '{n,m}' correctly. - * dfa.c (update_mb_len_index): new function. + * dfa.c (update_mb_len_index): New function. Support for multibyte string. - (FETCH) : call update_mb_len_index. - (lex) : check cur_mb_index not to misunderstand multibyte characters. - (atom) : make a tree from a multibyte character. - (dfaparse) : initialize new variables. - (mbs) : new variable. - (cur_mb_len) : new variable. - (cur_mb_index) : new variable. + (FETCH): Call update_mb_len_index. + (lex): Check cur_mb_index not to misunderstand multibyte characters. + (atom): Make a tree from a multibyte character. + (dfaparse): Initialize new variables. + (mbs): New variable. + (cur_mb_len): New variable. + (cur_mb_index): New variable. Thu Apr 19 09:32:47 2001 Isamu Hasegawa - * awkgram.y (cur_mbstate) : new varialble containing means current + * awkgram.y (cur_mbstate): New varialble containing means current shift state. - (cur_char_ring) : new varialbe reffering the buffer which contains + (cur_char_ring): New varialbe reffering the buffer which contains last some character from the buffer. - (cur_ring_idx) : new variable containing the current index on + (cur_ring_idx): New variable containing the current index on cur_char_ring. - (nextc_is_1stbyte) : new macro, means that last nextc() return a + (nextc_is_1stbyte): New macro, means that last nextc() return a singlebyte character or 1st byte of a multibyte character. - (nextc) : check the buffer and update cur_ring_char in multibyte + (nextc): Check the buffer and update cur_ring_char in multibyte environments. - (pushback) : adjust cur_ring_idx in multibyte environments. - (yylex) : add check whether nextc() returned 1st-byte in multibyte + (pushback): Adjust cur_ring_idx in multibyte environments. + (yylex): Add check whether nextc() returned 1st-byte in multibyte environments. - * re.c (make_regexp) : in multibyte environment, skip multibyte + * re.c (make_regexp): In multibyte environment, skip multibyte characters when we check special characters. Wed Apr 18 07:58:20 2001 Isamu Hasegawa - * awk.h (MBS_SUPPORT) : New flag, means supporting multibyte strings. - * configure.in : add check for wchar.h, wctype.h, mbrtowc, and mbrlen. + * awk.h (MBS_SUPPORT): New flag, means supporting multibyte strings. + * configure.in : Add check for wchar.h, wctype.h, mbrtowc, and mbrlen. Wed Jan 16 16:32:40 2002 Arnold D. Robbins @@ -3584,20 +4351,20 @@ Mon Jan 7 22:12:15 2002 Arnold D. Robbins - * awkgram.y (statement): moved delete, print, and expressions into + * awkgram.y (statement): Moved delete, print, and expressions into new non-terminal `simple_stmt'. Allow opt_simple_stmt in the first and third part of a for loop, per latest POSIX, which documents an otherwise undocumented historical oddity in Unix awk. This has the pleasant side effect of making line numbers more accurate for messages involving delete statements. - (opt_simple_stmt, simple_stmt): new non-terminals. + (opt_simple_stmt, simple_stmt): New non-terminals. Based on bug report from drj@pobox.com. Mon Dec 24 14:04:02 2001 Arnold D. Robbins * configure.in: Changes for VMS with new strftime: - (AC_HEADER_TIME): added + (AC_HEADER_TIME): Added. (AC_CHECK_HEADERS): Check for sys/time.h. (TIME_T_IN_SYS_TYPES_H): Add header check. * acconfig.h (TIME_T_IN_SYS_TYPES_H): Added. @@ -3625,8 +4392,8 @@ New configure time option, --with-whiny-user-strftime. * configure.in (AC_ARG_WITH): Add appropriate code for autoconf. - * accondig.h (USE_INCLUDED_STRFTIME): add #undef for it. - * custom.h (USE_INCLUDED_STRFTIME): set things up write. + * accondig.h (USE_INCLUDED_STRFTIME): Add #undef for it. + * custom.h (USE_INCLUDED_STRFTIME): Set things up write. Tue Dec 4 16:44:07 2001 Andreas Buening @@ -3634,10 +4401,10 @@ * awk.h (TOUPPER, TOLOWER): Define only if not already defined. * awkgram.y (extproc feature): Add ifdef for __EMX__. - * gawkmisc.c (__EMX__): include pc/gawkmisc.c directly. + * gawkmisc.c (__EMX__): Include pc/gawkmisc.c directly. * io.c (__EMX__): Added for a number of places in addition to OS2 def. (two_way_open): Added OS/2 specific code added that uses spawn. - (gawk_popen): ditto. + (gawk_popen): Ditto. Mon Dec 3 14:07:56 2001 Arnold D. Robbins @@ -3712,9 +4479,9 @@ 2001-09-07 Paul Eggert - * io.c (redirect): When deciding to use the fdopen bug hack, - use "__sun" rather than "solaris". No compilers predefine - "solaris", but both GCC and Sun C predefine "__sun". + * io.c (redirect): When deciding to use the fdopen bug hack, + use "__sun" rather than "solaris". No compilers predefine + "solaris", but both GCC and Sun C predefine "__sun". Thu Aug 30 15:17:12 2001 Arnold D. Robbins @@ -3765,7 +4532,7 @@ Undid BECAMEARRAY changes of 25 June 2001 in favor of correct code: * eval.c (pop_fcall): Change test and comment for freeing n->vname. - (flags2str): removed BECAMEARRAY entry. + (flags2str): Removed BECAMEARRAY entry. * awk.h (BECAMEARRAY): Removed define. * array.c (assoc_lookup): Removed setting of BECAMEARRAY flag. @@ -3789,6 +4556,7 @@ Further rationalization of treatment of dynamic regexes, so that profiling code works correctly. + * awk.h (NODETYPE): New type, Node_dynregex. * awkgram.y (mk_rexp): Use Node_dynregex. * eval.c (nodetypes): Add Node_dynregex. @@ -3799,20 +4567,23 @@ indicate CONST. New lint warning. + * awkgram.y (yylex): Added lint warning that constant with leading zero is treated as octal or hex. Generalized code for those who are Strong In The Ways of the Source. + * awk.h: New boolean variable. - * main.c (main): set it. + * main.c (main): Set it. * eval.c (interpret): For arrays, check it. Remove variable 'first', not needed anymore. - * profile.c (pp_string_fp): Enable printing of non-ascii characters + * profile.c (pp_string_fp): Enable printing of non-ASCII characters verbatim if variable set. Fix memory corruption on SCO for array vars as params changed globally. - * awk.h (BECAMEARRAY): new flag. - * array.c (assoc_lookup): set the flag as appropriate. + + * awk.h (BECAMEARRAY): New flag. + * array.c (assoc_lookup): Set the flag as appropriate. * eval.c (flags2str): Add the flag. (pop_fcall): Check the flag, don't free memory if set. @@ -3881,15 +4652,15 @@ Thu Apr 5 20:12:05 2001 Pat Rankin - * dfa.c: for VMS, #include instead of . - * missing_d/mktime.c: likewise. + * dfa.c: For VMS, #include instead of . + * missing_d/mktime.c: Likewise. - * random.c: reorder include directives to get gawk config info + * random.c: Reorder include directives to get gawk config info from random.h sooner. - [fcntl.h]: guard #include with HAVE_FCNTL_H test. - [unistd.h]: guard #include with HAVE_UNISTD_H test. + [fcntl.h]: Guard #include with HAVE_FCNTL_H test. + [unistd.h]: Guard #include with HAVE_UNISTD_H test. - * random.c (srandomdev): skip /dev/urandom usage if O_RDONLY + * random.c (srandomdev): Skip /dev/urandom usage if O_RDONLY is not defined. Tue Mar 20 11:07:11 2001 Arnold D. Robbins @@ -3916,11 +4687,11 @@ * COPYING: Incorporate latest version from FSF, which fixes a Y2k bug. * builtin.c (do_mktime): Allow the user to specify the - tm_isdst member as an optional trailing integer, and to - specify "out-of-range" members. Check for overflow when - subtracting 1 from month or 1900 from year. Allow years just - past INT_MAX, as they work on some hosts when INT_MAX - 1900 - is representable as an int. + tm_isdst member as an optional trailing integer, and to + specify "out-of-range" members. Check for overflow when + subtracting 1 from month or 1900 from year. Allow years just + past INT_MAX, as they work on some hosts when INT_MAX - 1900 + is representable as an int. * doc/gawk.1, doc/gawk.texi: Document the above changes. Also, document that the origin-zero Gregorian calendar is used. @@ -3952,8 +4723,8 @@ Tue Feb 6 18:17:13 2001 Michal Jaegermann * regex.c (re_match_2_internal): Case maybe_pop_jump, for - charset and not_charset: change cast from (unsigned char) - to (unsigned). Catches last 8 chars with high bit set + charset and not_charset: Change cast from (unsigned char) + to (unsigned). Catches last 8 chars with high bit set if backtracking. See test/rebt8b1.awk, test/rebt8b2.awk. Tue Feb 6 11:20:21 2001 Arnold D. Robbins @@ -3962,21 +4733,21 @@ Make sorted for loops a dynamic test instead of a compile time test. Still requires being Strong In The Ways Of The Source. - * awk.h: (struct search): removed. - (assoc_scan, assoc_next): removed declarations. - * array.c (assoc_scan, assoc_next): removed functions. - * eval.c (interpret): remove Node_K_array_sorted_for. Change code + * awk.h: (struct search): Removed. + (assoc_scan, assoc_next): Removed declarations. + * array.c (assoc_scan, assoc_next): Removed functions. + * eval.c (interpret): Remove Node_K_array_sorted_for. Change code at Node_K_arrayfor. - (nodetypes): remove Node_K_array_sorted_for. - * configure.in: removed array sorting test. - * awkgram.y: removed sorted_in keyword and associated code. + (nodetypes): Remove Node_K_array_sorted_for. + * configure.in: Removed array sorting test. + * awkgram.y: Removed sorted_in keyword and associated code. Sun Feb 4 14:57:49 2001 Arnold D. Robbins - * eval.c (interpret): use tree->rnode->exec_count to hold count of + * eval.c (interpret): Use tree->rnode->exec_count to hold count of times if was true. - profile.c (interpret): ditto. - * main.c (pre_assign): gross hack. malloc fresh copy of assign so can + profile.c (interpret): Ditto. + * main.c (pre_assign): Gross hack. malloc fresh copy of assign so can clear the '=', otherwise screws up profiling print out. Sun Jan 28 16:16:02 2001 Arnold D. Robbins @@ -3990,7 +4761,7 @@ * awk.h (dump_fcall_stack): Add declaration. (init_profiling_signals): Ditto. * main.c (main): Call init_profiling_signals. - * profile.c (init_profiling_signals, dump_and_exit, just_dump): new + * profile.c (init_profiling_signals, dump_and_exit, just_dump): New functions. Sun Jan 28 15:50:02 2001 Eli Zaretskii @@ -4016,8 +4787,8 @@ Wed Jan 17 11:03:40 2001 Eli Zaretskii - * io.c (redirect) [F_GETFL && O_APPEND]: Use binmode in the call - to fdopen. + * io.c (redirect) [F_GETFL && O_APPEND]: Use binmode in the call + to fdopen. Mon Jan 15 16:29:52 2001 Arnold D. Robbins @@ -4058,7 +4829,7 @@ Add a minor memory cleanup facility (undocumented): * awk.h (do_tidy_mem, release_all_vars): Add declarations. * main.c (do_tidy_mem): Add declaration. - (main): if $TIDYMEM exists, do_tidy_mem is true, and call mtrace(). + (main): If $TIDYMEM exists, do_tidy_mem is true, and call mtrace(). * awkgram.y (release_all_vars): New function. Sun Dec 31 10:47:37 2000 Arnold D. Robbins @@ -4082,13 +4853,13 @@ Fri Dec 8 11:47:26 2000 Arnold D. Robbins * ext.c (dummy): Make gcc specific via ifdef. - * builtin.c (do_dcgettext): make conditional compilation smarter. + * builtin.c (do_dcgettext): Make conditional compilation smarter. * msg.c (warning, error, r_fatal): Finish switching back to multi-version function header. Wed Dec 6 13:28:58 2000 Arnold D. Robbins - * random.h: include to get ssize_t definition. + * random.h: Include to get ssize_t definition. * awkgram.y (yyerror): Restore multi-version function header, it seems that what ansi2knr produces doesn't quite do the job on old compilers. @@ -4113,25 +4884,25 @@ * builtin.c (do_dcgettext, do_bindtextdomain): Add calls to free_temp the various arguments. Sigh. - * io.c (yylex): nuked bstart variable, put all uses of mend variable + * io.c (yylex): Nuked bstart variable, put all uses of mend variable into TANDEM ifdef. - * main.c (load_environ): removed cp variable, value never used. + * main.c (load_environ): Removed cp variable, value never used. * random.c: Remvoed uses of `inline' keyword. - * Makefile.am (install-exec-hook, uninstall-local): new targets. + * Makefile.am (install-exec-hook, uninstall-local): New targets. Adds creation of gawk-X.Y.Z and awk links, as in 3.0.x. * configure.in (GAWK_AC_TYPE_SSIZE_T): Added. - m4/ssize_t.m4: new file. + m4/ssize_t.m4: New file. Wed Nov 22 14:47:18 2000 Arnold D. Robbins After consultation with Brian Kernighan and Michael Brennan, nuked the abort keyword. - * awk.h (Node_K_abort): removed. - * eval.c (aborting): removed decl. + * awk.h (Node_K_abort): Removed. + * eval.c (aborting): Removed decl. (interpret): Removed Node_K_abort case. * io.c (do_input): Removed checks for aborting. - * main.c (aborting): removed. + * main.c (aborting): Removed. (main): Removed checks for aborting. * profile.c (pprint): Removed Node_K_abort case. * awk.y (LEX_ABORT): All stuff removed. @@ -4149,7 +4920,7 @@ Tue Nov 21 16:25:41 2000 Arnold D. Robbins - * awk.y: for (iggy in foo) loops: add test that index + * awk.y: for (iggy in foo) loops: Add test that index in delete statement is a simple variable. Tue Nov 14 16:11:39 2000 Arnold D. Robbins @@ -4164,8 +4935,8 @@ compilation work on PCs. * builtin.c (do_dcgettext): Compile out cat_tab and code if not ENABLE_NLS. - * ext.c: for MSC, no long long variable. - * random.c: use clock() instead of gettimeofday(). + * ext.c: For MSC, no long long variable. + * random.c: Use clock() instead of gettimeofday(). * builtin.c: Fixed prototypes for new random functions (ADR). Sun Nov 12 17:45:44 2000 Arnold D. Robbins @@ -4181,8 +4952,8 @@ Wed Nov 8 14:39:20 2000 Arnold D. Robbins - * configure.in: Only add -rdynamic for linux. - * dfa.h, dfa.c: upgraded to versions in grep 2.4.2. + * configure.in: Only add -rdynamic for Linux. + * dfa.h, dfa.c: Upgraded to versions in grep 2.4.2. Tue Nov 7 18:17:17 2000 Arnold D. Robbins @@ -4197,12 +4968,12 @@ Tue Nov 7 14:09:14 2000 Arnold D. Robbins - * awk.h (os_is_setuid): declare function. - * main.c (main): call it if do_lint and warn if true. + * awk.h (os_is_setuid): Declare function. + * main.c (main): Call it if do_lint and warn if true. * awkgram.y (tokentab): - Made sure all extensions are actually marked as such. Ouch. - Changed "sort" to "asort". Potential to break too much old code. - * getopt.h, getopt.c, getopt1.c: replaced with current versions + * getopt.h, getopt.c, getopt1.c: Replaced with current versions from glibc CVS archive. Mon Nov 6 18:14:33 2000 Arnold D. Robbins @@ -4227,7 +4998,7 @@ * awkgram.y (valinfo, var_comp, dump_vars): New functions to dump the list of global variables. * awk.h: Declare dump_vars. - * main.c (optab): new option "dump-variables". + * main.c (optab): New option "dump-variables". (main): Code to handle it, set the output file and then call dump_vars() at the end. (usage): New option added to usage message. @@ -4239,8 +5010,8 @@ (shadow_funcs): Go through all functions and call parms_shadow(). (isnoeffect, isassignable): Add Node_LINT and NODE_BINMODE. * main.c (main): If do_lint, call shadow_funcs(). - * awk.h: add declaration of shadow_funcs(). - * configure.in: added m4/Makefile and awklib/eg/network/Makefile + * awk.h: Add declaration of shadow_funcs(). + * configure.in: Added m4/Makefile and awklib/eg/network/Makefile to list of generated makefiles. Tue Oct 17 10:47:35 2000 Arnold D. Robbins @@ -4273,7 +5044,7 @@ fails. Rationalize return value to either 0 or -1. * builtin.c (do_gensub): 3rd arg of zero generates a warning. - (do_fflush): rationalize return value: -1 for unopen or read-only + (do_fflush): Rationalize return value: -1 for unopen or read-only redirection, status of fflush otherwise. Wed Oct 11 22:11:19 2000 Arnold D. Robbins @@ -4283,13 +5054,13 @@ Thu Oct 5 11:56:42 2000 Arnold D. Robbins - * awk.h, awkgram.y, configure.in, eval.c: enabled + * awk.h, awkgram.y, configure.in, eval.c: Enabled `for (i in_sorted array)' loops for those who are Strong In The Way Of The Source. So there. Mon Oct 2 10:09:32 2000 Arnold D. Robbins - * io.c (do_close): make close(x) for non-open x return -1 + * io.c (do_close): Make close(x) for non-open x return -1 and update ERRNO. close(FILENAME) no longer does anything magic; this is all for better consistency with other awks and is more logical, anyway. @@ -4308,7 +5079,7 @@ Sun Sep 24 16:38:04 2000 Arnold D. Robbins - * awk.h (freenode): set the flags straight to UNINITIALIZED. + * awk.h (freenode): Set the flags straight to UNINITIALIZED. * node.c (unref): Fix test for MALLOC|TEMP to test the actual flags, not zero. * builtin.c (format_tree): ala print and concat, dupnode @@ -4373,15 +5144,15 @@ `do_bindtextdomain', `set_TEXTDOMAIN' and variables `TEXTDOMAIN', `TEXTDOMAIN_node'. New NODETYPE enum `Node_TEXTDOMAIN'. - * eval.c (nodetypes): add Node_TEXTDOMAIN at end. - (set_TEXTDOMAIN): new function. - (r_get_lhs): add case for Node_TEXTDOMAIN. - * main.c (varinit): add entry for TEXTDOMAIN. + * eval.c (nodetypes): Add Node_TEXTDOMAIN at end. + (set_TEXTDOMAIN): New function. + (r_get_lhs): Add case for Node_TEXTDOMAIN. + * main.c (varinit): Add entry for TEXTDOMAIN. * node.c (format_val): If INTLSTR use dcgettext of string and TEXTDOMAIN. * awkgram.y (tokentab): Add entries for "dcgettext" and "bindtextdomain". - * builtin.c (do_dcgettext, do_bindtextdomain): new functions. + * builtin.c (do_dcgettext, do_bindtextdomain): New functions. Tue Sep 5 17:01:34 2000 Arnold D. Robbins @@ -4391,20 +5162,20 @@ chars or after embedded newline, for --gen-po. Fix the calls to it everywhere for new boolean option to yes/no break lines. - * m4/strtod.m4: new file, defines GAWK_AC_FUNC_STRTOD_C89. + * m4/strtod.m4: New file, defines GAWK_AC_FUNC_STRTOD_C89. * configure.in: GAWK_AC_FUNC_STRTOD_C89 call added - * acinclude.m4: include strtod.m4. - * acconfig.h: add entry for STRTOD_NOT_C89. + * acinclude.m4: Include strtod.m4. + * acconfig.h: Add entry for STRTOD_NOT_C89. Remove entries for BITOPS and NON_DEC_DATA. - * missing/missing.c: add check for STRTOD_NOT_C89, use ours + * missing/missing.c: Add check for STRTOD_NOT_C89, use ours if set. - * missing/strtod.c: make smarter for input like 0x345. - * awk.h: [STRTOD_NOT_C89]: define strtod gawk_strtod to get + * missing/strtod.c: Make smarter for input like 0x345. + * awk.h: [STRTOD_NOT_C89]: Define strtod gawk_strtod to get our version. Avoids linker weirdness. Mon Sep 4 09:16:43 2000 Arnold D. Robbins - * field.c (set_record): fix from Utz-Uwe Haus + * field.c (set_record): Fix from Utz-Uwe Haus to make sure there's always enough room in the record. * builtin.c (nondec2awknum): Fix octal conversions to exit @@ -4425,20 +5196,20 @@ In .developing check, remove the AC_DEFINEs. * awk.h: Decls for bitwise functions now there by default. Add decl of `do_non_decimal_data'. - * main.c (do_non_decimal_data): new variable - (optlist): add new entry for `--non-decimal-data'. - (main): turn off `do_non_decimal_data' if `do_traditional'. - (usage): add the new option. - * node.c (r_force_number): make check for non-decimal data a + * main.c (do_non_decimal_data): New variable + (optlist): Add new entry for `--non-decimal-data'. + (main): Turn off `do_non_decimal_data' if `do_traditional'. + (usage): Add the new option. + * node.c (r_force_number): Make check for non-decimal data a runtime check based on do_non_decimal_data. - * awkgram.y (yylex): make non-decimal constants a runtime check. - * builtin.c: remove the ifdefs around the bit functions and + * awkgram.y (yylex): Make non-decimal constants a runtime check. + * builtin.c: Remove the ifdefs around the bit functions and nondec2awknum. Tue Aug 29 18:45:56 2000 Arnold D. Robbins - * configure.in: go back to ARRAYDEBUG if .developing set. - * awkgram.y: use ARRAYDEBUG for adump(), use multiple tests + * configure.in: Go back to ARRAYDEBUG if .developing set. + * awkgram.y: Use ARRAYDEBUG for adump(), use multiple tests for stopme(). Mon Aug 28 17:09:06 2000 Arnold D. Robbins @@ -4448,31 +5219,35 @@ Mon Aug 14 23:01:55 2000 Arnold D. Robbins - * Add %COUNT$... handling to printf. - awk.h (printf_count): new define in NODE structure. - (format_tree): added decl. - awkgram.y (count_args): new function to set printf_count in + Add %COUNT$... handling to printf. + + * awk.h (printf_count): New define in NODE structure. + (format_tree): Added decl. + * awkgram.y (count_args): New function to set printf_count in a node. - [print productions]: call the function. - (snode): for do_sprintf, call count_args, set the count + [print productions]: Call the function. + * (snode): For do_sprintf, call count_args, set the count in the lnode. - builtin.c (format_tree): new fourth arg is argument count. + * builtin.c (format_tree): New fourth arg is argument count. Add smarts to handle the `$' in a format. - (do_sprintf): use new argument to format_tree. - node.c (format_val): ditto. + * (do_sprintf): Use new argument to format_tree. + node.c (format_val): Ditto. Sun Aug 13 11:10:41 2000 Arnold D. Robbins Changes from Alan J. Broder (ajb@woti.com): - Array third arg to match puts subtexts into the array: + * awk.y (tokentab): "match" gets third arg, and lint warning - * builtin.c (do_match): if third arg there, fill it with subtexts + * builtin.c (do_match): If third arg there, fill it with subtexts + - New builtin sort function: - * awk.h (do_sort): declared. + + * awk.h (do_sort): Declared. * array.c (do_sort, dup_table, merge, merge_sort, assoc_from_list, - assoc_sort_inplace): new functions. + assoc_sort_inplace): New functions. - * eval.c (tree_eval): in debug code, make uninitialized var + * eval.c (tree_eval): In debug code, make uninitialized var a warning, not a fatal error. Breaks too many things. Wed Aug 9 10:51:41 2000 Arnold D. Robbins @@ -4480,11 +5255,11 @@ * eval.c (func_call): Increment the exec_count on the function's node; this allows printing a call count for functions. - profile.c (pp_func): print the count for functions. + profile.c (pp_func): Print the count for functions. * ALL: Changed DEBUG to GAWKDEBUG in all gawk files, so that I don't get regex/dfa debugging. In some cases, changed memory-related stuff to MEMDEBUG. Still have work to do. - * awk.h, node.c, profile.c: removed exec_count_init variable; + * awk.h, node.c, profile.c: Removed exec_count_init variable; code has been cleaned up to not need different values for profiling/not profiling. @@ -4492,7 +5267,7 @@ * eval.c (casetable): Removed the USE_PURE_ASCII stuff; it was never documented. Latin 1 forever. - * main.c (main): only call `init_profiling' after arg parsing + * main.c (main): Only call `init_profiling' after arg parsing if `do_profiling' is still false. Avoids resetting `prof_fp' back to stderr. @@ -4516,46 +5291,46 @@ Sun Jan 2 14:48:23 2000 Arnold D. Robbins First edit of the new millenium! - * awk.y (yylex): if lint checking, be obnoxious about gotos. + * awk.y (yylex): If lint checking, be obnoxious about gotos. Mon Oct 25 19:12:02 1999 Arnold D. Robbins - * awk.h: remove C_ALLOCA ifdef. - * main.c (main): remove C_ALLOCA code. - * io.c (do_input): ditto. + * awk.h: Remove C_ALLOCA ifdef. + * main.c (main): Remove C_ALLOCA code. + * io.c (do_input): Ditto. Mon Aug 9 17:36:24 1999 Arnold D. Robbins - * bisonfix.sed: unconditionally #undef YYSTACK_USE_ALLOCA. - * configure.in: remove all alloca and ALLOCA related stuff. - * Makefile.in: ditto + * bisonfix.sed: Unconditionally #undef YYSTACK_USE_ALLOCA. + * configure.in: Remove all alloca and ALLOCA related stuff. + * Makefile.in: Ditto. Thu Jul 29 18:32:05 1999 Arnold D. Robbins * awk.h (NODE): exec_count now in #ifndef NO_PROFILING. - * Makefile.in: changes to only recompile eval.c and profile.c to a + * Makefile.in: Changes to only recompile eval.c and profile.c to a special version for profiling. - * custom.h [MSC_VER]: turn on NO_PROFILING to omit the exec_count + * custom.h [MSC_VER]: Turn on NO_PROFILING to omit the exec_count and save space. - * node.c (more_nodes): move setting of exec_count to + * node.c (more_nodes): Move setting of exec_count to #ifndef NO_PROFILING. Thu Jul 1 12:12:05 1999 Arnold D. Robbins - * configure.in (AC_PREREQ): update to 2.13. + * configure.in (AC_PREREQ): Update to 2.13. GAWK_AC_C_STRINGIZE: convert to AC_C_STRINGIZE. - * aclocal.m4 (GAWK_AC_C_STRINGIZE): remove definition, now + * aclocal.m4 (GAWK_AC_C_STRINGIZE): Remove definition, now part of autoconf. - * acconfig.h (HAVE_STRINGIZE): ditto. + * acconfig.h (HAVE_STRINGIZE): Ditto. Wed Apr 28 11:08:05 1999 Arnold D. Robbins - * array.c (assoc_lookup): fix call to free_temp(subs) to after + * array.c (assoc_lookup): Fix call to free_temp(subs) to after last use of subs. Sun Apr 25 16:48:06 1999 Arnold D. Robbins - * io.c (redirect): add lint warning when same file is used for + * io.c (redirect): Add lint warning when same file is used for > and >>. Thu Apr 22 15:05:30 1999 Arnold D. Robbins @@ -4567,45 +5342,46 @@ Thu Apr 8 14:27:58 1999 Arnold D. Robbins New features for profiling: - * awk.h (NODE): add `exec_count' member. - (freenode): clear `exec_count' upon free. - * awk.y (func_count): new variable, counts total number of functions. - (func_install): increment func_count. - (struct finfo): information for use in sorting functions when + + * awk.h (NODE): Add `exec_count' member. + (freenode): Clear `exec_count' upon free. + * awk.y (func_count): New variable, counts total number of functions. + (func_install): Increment func_count. + (struct finfo): Information for use in sorting functions when pretty printing. - (fcompare): compare two finfo structures. - (dump_funcs): print the functions in sorted order for profiling. - (getfname): return the name of a builtin function. - * eval.c (INCREMENT): new macro for counting execution of nodes. - (interpret): call INCREMENT() appropriately. - * main.c (do_profiling): new flag if doing profiling. - `--profiling': new option added to getopt_long machinery. + (fcompare): Compare two finfo structures. + (dump_funcs): Print the functions in sorted order for profiling. + (getfname): Return the name of a builtin function. + * eval.c (INCREMENT): New macro for counting execution of nodes. + (interpret): Call INCREMENT() appropriately. + * main.c (do_profiling): New flag if doing profiling. + `--profiling': New option added to getopt_long machinery. (main): For profiled version, set do_profile and output file. Call `dump_prog' and `dump_funcs' if do_profiling at end. - (usage): add new argument. - * node.c (more_nodes, freenode): set exec_count to zero. - * profile.c: new file, does pretty printing and prints counts. - * Makefile.in: update to create two versions of gawk, regular + (usage): Add new argument. + * node.c (more_nodes, freenode): Set exec_count to zero. + * profile.c: New file, does pretty printing and prints counts. + * Makefile.in: Update to create two versions of gawk, regular and `pgawk' which does profiling. Wed Mar 10 21:38:14 1999 Arnold D. Robbins - * io.c (close_redir): use update_ERRNO() instead of manually + * io.c (close_redir): Use update_ERRNO() instead of manually doing it. Mon Dec 21 15:58:21 1998 Arnold D. Robbins - * configure.in: add BeOS to list of cases where we hardwire + * configure.in: Add BeOS to list of cases where we hardwire GETPGRP_VOID. - custom.h: remove the #define from __be_os case. Cleaner to + custom.h: Remove the #define from __be_os case. Cleaner to do it all in configure. Based on email from Martin C. Brown, mc@whoever.com. Mon Nov 30 20:52:52 1998 Arnold D. Robbins - * eval.c (update_ERRNO): new function, mainly for use by + * eval.c (update_ERRNO): New function, mainly for use by extension functions. - * awk.h: add decl. + * awk.h: Add decl. Tue Nov 24 18:13:29 1998 Arnold D. Robbins @@ -4619,52 +5395,52 @@ - --lint=fatal makes lint errors become fatal - LINT="fatal" has the same effect, any other positive value makes lint errors be just warnings - * Makefile.in (includedir): new variable for gawk header files - (ext.c, ext.o): new source and object files - (OTHERS, extension): new directory for macro with example extension - (install): install header files - * acconfig.h (DYNAMIC): new macro, true if can do dynamic loading - * array.c (assoc_lookup): new parameter `reference' is true if we + * Makefile.in (includedir): New variable for gawk header files + (ext.c, ext.o): New source and object files + (OTHERS, extension): New directory for macro with example extension + (install): Install header files + * acconfig.h (DYNAMIC): New macro, true if can do dynamic loading + * array.c (assoc_lookup): New parameter `reference' is true if we want to do reference checking. Add appropriate reference checking code. - * awk.h (UNITITIALIZED): new flag - (lintfunc): function pointer for correct function to use - (lintwarn): new macro to produce warnings - (result): new macro for func call result, used in commented out + * awk.h (UNITITIALIZED): New flag + (lintfunc): Function pointer for correct function to use + (lintwarn): New macro to produce warnings + (result): New macro for func call result, used in commented out code in eval.c. - (getnode, freenode): revised to set UNINITIALIZED. - (get_lhs): third arg for reference checking, change all calls + (getnode, freenode): Revised to set UNINITIALIZED. + (get_lhs): Third arg for reference checking, change all calls -- Add appropriate decls of new/changed functions - * awk.y (tokentab): new builtin "extension" for adding extensions - (node_common): set flags to UNINITIALIZED for Node_var. - * configure.in (dynamic linking): new check. Probably should + * awk.y (tokentab): New builtin "extension" for adding extensions + (node_common): Set flags to UNINITIALIZED for Node_var. + * configure.in (dynamic linking): New check. Probably should be a separate macro. - * eval.c (flag2str): add UNINITIALIZED to the table. - (r_tree_eval): add checks for UNINITIALIZED. - (push_args): appropriate changes for UNINITIALIZED to work. - (r_get_lhs): new third argument for reference checking. - (set_LINT): add code to handle setting `lintfunc' appropriately. - * ext.c: new file, for doing dynamic library extensions. - * extension/*: new directory with simple example code. - * main.c (VERSION_node, EXTENSION_node): new nodes for new vars. - (optab): change for "lint" to allow optional argument. - (lintfunc): definition. - (main): add case in option processing for --lint. - (varinit): add entries for VERSION and EXTENSION. - * node.c (r_force_number): checks that string really is a number. - (morenodes): set UNITIALIZED in the flags. - * re.c (all): change `result' to `res' globally to avoid conflict + * eval.c (flag2str): Add UNINITIALIZED to the table. + (r_tree_eval): Add checks for UNINITIALIZED. + (push_args): Appropriate changes for UNINITIALIZED to work. + (r_get_lhs): New third argument for reference checking. + (set_LINT): Add code to handle setting `lintfunc' appropriately. + * ext.c: New file, for doing dynamic library extensions. + * extension/*: New directory with simple example code. + * main.c (VERSION_node, EXTENSION_node): New nodes for new vars. + (optab): Change for "lint" to allow optional argument. + (lintfunc): Definition. + (main): Add case in option processing for --lint. + (varinit): Add entries for VERSION and EXTENSION. + * node.c (r_force_number): Checks that string really is a number. + (morenodes): Set UNITIALIZED in the flags. + * re.c (all): Change `result' to `res' globally to avoid conflict with new macro. - * GLOBAL: change lint calls to warning() to lintwarn(). - * GLOBAL: change all calls to get_lhs() to have 3rd arg. - * GLOBAL: change all calls to assoc_lookup() to have 3rd arg. + * GLOBAL: Change lint calls to warning() to lintwarn(). + * GLOBAL: Change all calls to get_lhs() to have 3rd arg. + * GLOBAL: Change all calls to assoc_lookup() to have 3rd arg. Sun Nov 22 17:07:39 1998 Arnold D. Robbins - * patchlev.h: renamed from patchlevel.h to make life + * patchlev.h: Renamed from patchlevel.h to make life easier for the PC guys. - (main.c): changed to include patchlev.h. - (Makefile.in): changed to ref patchlev.h where needed. + (main.c): Changed to include patchlev.h. + (Makefile.in): Changed to ref patchlev.h where needed. Sat Nov 7 21:29:52 1998 Arnold D. Robbins @@ -4674,53 +5450,54 @@ Thu Nov 5 16:58:38 1998 Arnold D. Robbins - * main.c (init_fds): new function to pre-open 0, 1, and 2 on + * main.c (init_fds): New function to pre-open 0, 1, and 2 on /dev/null if they're not open. Robustness, more or less. - (main): call init_fds. - * io.c (str2mode): add smarts for two-letter strings + (main): Call init_fds. + * io.c (str2mode): Add smarts for two-letter strings such as "rw", "r+", "wr", "w+" and "a+". Mon Nov 2 16:55:46 1998 Arnold D. Robbins - * builtin.c (do_*): added lint checks for non-numeric + * builtin.c (do_*): Added lint checks for non-numeric and/or non-string arguments, as appropriate. This should have been done long ago. Tue Oct 20 21:56:06 1998 Arnold D. Robbins - * awk.h (LINT_node): new variable for LINT special var - (Node_LINT): new node type. - (set_LINT): declare function. - * main.c (varinit): add LINT variable. - (usage): print an emphatic pointer to the manual for bug reports. - * eval.c (nodetypes): new entry for Node_LINT. - (r_get_lhs): case added for Node_LINT. - (set_LINT): set do_lint from LINT variable. + * awk.h (LINT_node): New variable for LINT special var + (Node_LINT): New node type. + (set_LINT): Declare function. + * main.c (varinit): Add LINT variable. + (usage): Print an emphatic pointer to the manual for bug reports. + * eval.c (nodetypes): New entry for Node_LINT. + (r_get_lhs): Case added for Node_LINT. + (set_LINT): Set do_lint from LINT variable. Mon Oct 19 22:35:46 1998 Arnold D. Robbins - * configure.in: for GCC, add -Wall to get warnings for development. - * Makefile.in (awktab.c): move sed stuff to separate script. - * bisonfix.sed: new script, with old fix and Solaris x86 fix. - * awk.h (nodetype2str): add declaration. - (load_procinfo): add declaration. + * configure.in: For GCC, add -Wall to get warnings for development. + * Makefile.in (awktab.c): Move sed stuff to separate script. + * bisonfix.sed: New script, with old fix and Solaris x86 fix. + * awk.h (nodetype2str): Add declaration. + (load_procinfo): Add declaration. Tue Oct 13 22:28:56 1998 Arnold D. Robbins - * Changes to make PROCINFO["FS"] reflect the use of FIELDWIDTHS or FS. - eval.c (assign_val): new function that does the mechanics of + Changes to make PROCINFO["FS"] reflect the use of FIELDWIDTHS or FS. + + * eval.c (assign_val): New function that does the mechanics of assignment - main.c (load_procinfo): add setting of PROCINFO["FS"] to "FS". - field.c (update_PROCINFO): new function to update the array. - (set_FS): call update_PROCINFO. - (set_FIELDWIDTHS): ditto. + * main.c (load_procinfo): Add setting of PROCINFO["FS"] to "FS". + * field.c (update_PROCINFO): New function to update the array. + (set_FS): Call update_PROCINFO. + (set_FIELDWIDTHS): Ditto. Sun Sep 27 10:18:05 1998 Arnold D. Robbins - * awk.h (reisstring): new prototype. - * re.c (reisstring): new function, returns true if the re did + * awk.h (reisstring): New prototype. + * re.c (reisstring): New function, returns true if the re did a simple string match. This is rather simplistic in its logic. - * io.c (get_a_record): in the case that RS is a regexp, AND + * io.c (get_a_record): In the case that RS is a regexp, AND the re matched at the exact end of the buffer, add a call to `reisstring' in case it's a simple string match. If so, we don't need to read more into the buffer because we don't @@ -4730,32 +5507,32 @@ Thu Aug 13 22:07:40 1998 Arnold D. Robbins - * io.c (socketopen): fixes from Juergen Kahrs to socket + * io.c (socketopen): Fixes from Juergen Kahrs to socket opening code for "any host". Tue Jul 14 19:02:33 1998 Arnold D. Robbins - * aclocal.m4 (GAWK_AC_LIB_SOCKETS): removed the caching; + * aclocal.m4 (GAWK_AC_LIB_SOCKETS): Removed the caching; configure gave different results the second time it was run! Fri Jul 10 09:11:06 1998 Arnold D. Robbins - * eval.c (interpret): minor cleanups: add variable name to + * eval.c (interpret): Minor cleanups: add variable name to fatal error Node_K_array_for and other minor changes. Mon Jun 22 16:53:34 1998 Arnold D. Robbins - * Makefile.in (tags, TAGS): add $(LIBSRC). + * Makefile.in (tags, TAGS): Add $(LIBSRC). Tue Jun 2 15:23:05 1998 Arnold D. Robbins - * io.c (devopen): relax previous change, don't require "any", + * io.c (devopen): Relax previous change, don't require "any", just that a port be there. The user can put 0 if they don't care. Wed May 27 21:33:45 1998 Arnold D. Robbins - * io.c (devopen): for /inet, require that local and remote + * io.c (devopen): For /inet, require that local and remote ports and the remote hostname be there, and that `any' be used for a port if they don't care. @@ -4770,102 +5547,102 @@ * awk.h (NODETYPE): Sorted the Node_xxx entries for the builtin variables. Gotta look nice, don't we? - * eval.c (nodetypes): ditto. - (genflags2str): added code to check that we don't + * eval.c (nodetypes): Ditto. + (genflags2str): Added code to check that we don't overflow the static buffer. This is just a debugging routine, not worth the hassle of dynamic allocation. Mon Mar 2 16:06:16 1998 Arnold D. Robbins - * Makefile.in (dist): remove any embedded copied RCS or CVS + * Makefile.in (dist): Remove any embedded copied RCS or CVS directories. Mon Feb 23 00:09:52 1998 Arnold D. Robbins - * awk.h (genflags2str): add declaration. - * eval.c (genflags2str): new function. - (flags2str): use new general purpose function. - * io.c (redflags2str): same. + * awk.h (genflags2str): Add declaration. + * eval.c (genflags2str): New function. + (flags2str): Use new general purpose function. + * io.c (redflags2str): Same. Sun Feb 22 23:57:29 1998 Arnold D. Robbins Significant changes to add two-way i/o and sockets!!! - * Makefile.in: add @SOCKET_LIBS@ to LIBS variable. - * acconfig.h: add HAVE_SOCKETS and HAVE_PORTALS defs. - * aclocal.m4: new macro GAWK_AC_LIB_SOCKETS. - * awk.h: new node type, Node_redirect_twoway, and new redirection + * Makefile.in: Add @SOCKET_LIBS@ to LIBS variable. + * acconfig.h: Add HAVE_SOCKETS and HAVE_PORTALS defs. + * aclocal.m4: New macro GAWK_AC_LIB_SOCKETS. + * awk.h: New node type, Node_redirect_twoway, and new redirection flags: RED_TWOWAY, and RED_SOCKET. - * awk.y (parser): add TWOWAYIO token and appropriate productions. - (yylex): recognize `|&' token if not traditional. - * builtin.c (do_print, do_printf): flush buffer if TWOWAYIO. - * configure.in: add header checks for networking header files, + * awk.y (parser): Add TWOWAYIO token and appropriate productions. + (yylex): Recognize `|&' token if not traditional. + * builtin.c (do_print, do_printf): Flush buffer if TWOWAYIO. + * configure.in: Add header checks for networking header files, add --enable-portals switch, call GAWK_AC_LIB_SOCKETS - * eval.c (nodetypes): add string constant for Node_redirect_twoway. - * io.c (redflags2str): new function. - (redirect): better error message in default case, add code for + * eval.c (nodetypes): Add string constant for Node_redirect_twoway. + * io.c (redflags2str): New function. + (redirect): Better error message in default case, add code for Node_redirect_twoway. - (socketopen): new function. - (iop_open, devopen): add recognition of `/inet/...'. - (two_way_open): new function. + (socketopen): New function. + (iop_open, devopen): Add recognition of `/inet/...'. + (two_way_open): New function. Sat Dec 13 21:15:07 1997 Arnold D. Robbins - * awk.h (struct node): new member, `param_list' in union `x', becomes + * awk.h (struct node): New member, `param_list' in union `x', becomes `node->parmlist' in the code. - * awk.y (func_install): rearranged a bit, to build up a list of + * awk.y (func_install): Rearranged a bit, to build up a list of the function parameter names and to save it in the `parmlist' field. - * eval.c (push_args): new parameter, `varnames', which is the list + * eval.c (push_args): New parameter, `varnames', which is the list of variable names. Use this to set the vname field of each parameter's value as it's created. Special case arrays to include where they came from, mainly for array vs. scalar diagnostics. - (r_tree_eval): don't set the `vname' field for parameters. - (pop_fcall): free the `vname' field if it's an array. - (func_call): pass in the `parmlist' field to call of push_args(). - (r_get_lhs): for Node_subscript, change error message to use + (r_tree_eval): Don't set the `vname' field for parameters. + (pop_fcall): Free the `vname' field if it's an array. + (func_call): Pass in the `parmlist' field to call of push_args(). + (r_get_lhs): For Node_subscript, change error message to use the `vname' field. - (stopme): new do-nothing function for use with debugging code + (stopme): New do-nothing function for use with debugging code and setting breakpoints. Thu Dec 4 15:18:17 1997 Arnold D. Robbins - * awk.y: fixed several lint checks and moved some into + * awk.y: Fixed several lint checks and moved some into test for do_lint_old. - * eval.c (fmt_index): add value of bad format spec to + * eval.c (fmt_index): Add value of bad format spec to error message. Tue Nov 18 22:19:02 1997 Arnold D. Robbins - * Makefile.in (install): strip the installed binary. + * Makefile.in (install): Strip the installed binary. From Anatoly A. Orehovsky (tolik@mpeks.tomsk.su). Sun Nov 16 22:12:39 1997 Arnold D. Robbins - * array.c (in_array, assoc_lookup): add symbol->vname to + * array.c (in_array, assoc_lookup): Add symbol->vname to fatal calls for scalar in array context. Wed Nov 12 22:18:33 1997 Arnold D. Robbins - * awk.h [ISASCII]: on all IS* macros, add cast to unsigned char. - [TOUPPER, TOLOWER]: new macros using unsigned char. - * awk.y: change to use of IS* vs. is* macros. - * builtin.c (nondec2awknum): change to use of IS* vs. is* macros, + * awk.h [ISASCII]: On all IS* macros, add cast to unsigned char. + [TOUPPER, TOLOWER]: New macros using unsigned char. + * awk.y: Change to use of IS* vs. is* macros. + * builtin.c (nondec2awknum): Change to use of IS* vs. is* macros, change casts for casetable[] from int to unsigned char. use new TOLOWER, TOUPPER macros - * dfa.c [ISASCII]: on all IS* macros, add cast to unsigned char. - (lex): change isdigit to ISDIGIT. - [TOUPPER, TOLOWER]: new macros using unsigned char, now used. - * eval.c (fmt_ok): change to use of IS* vs. is* macros. - * field.c (sc_parse_field): change to use of IS* vs. is* macros, + * dfa.c [ISASCII]: On all IS* macros, add cast to unsigned char. + (lex): Change isdigit to ISDIGIT. + [TOUPPER, TOLOWER]: New macros using unsigned char, now used. + * eval.c (fmt_ok): Change to use of IS* vs. is* macros. + * field.c (sc_parse_field): Change to use of IS* vs. is* macros, change casts for casetable[] from int to unsigned char. - (set_FS): change to use of IS* vs. is* macros. - * io.c (get_a_record): change to use of IS* vs. is* macros, + (set_FS): Change to use of IS* vs. is* macros. + * io.c (get_a_record): Change to use of IS* vs. is* macros, change casts for casetable[] from int to unsigned char. - * main.c (main): change to use of IS* vs. is* macros. - * node.c (r_force_number, parse_escape): change to use of IS* vs. + * main.c (main): Change to use of IS* vs. is* macros. + * node.c (r_force_number, parse_escape): Change to use of IS* vs. is* macros. - * re.c (make_regexp): change to use of IS* vs. is* macros. - * regex.c [ISASCII]: on all IS* macros, add cast to unsigned char. + * re.c (make_regexp): Change to use of IS* vs. is* macros. + * regex.c [ISASCII]: On all IS* macros, add cast to unsigned char. Sun Oct 19 12:36:47 1997 Arnold D. Robbins @@ -4877,17 +5654,17 @@ Thu Oct 9 19:28:39 1997 Arnold D. Robbins - * custom.h [SEQUENT]: removed; not needed any more since the + * custom.h [SEQUENT]: Removed; not needed any more since the mmap code was ripped out. Wed Oct 8 17:22:03 1997 Arnold D. Robbins - * configure.in: remove check for madvise; don't need it any more + * configure.in: Remove check for madvise; don't need it any more after nuking use of mmap. Tue Oct 7 11:14:21 1997 Arnold D. Robbins - * eval.c (flags2str): made the code table driven. Shortened a lot. + * eval.c (flags2str): Made the code table driven. Shortened a lot. Tue Sep 30 20:59:17 1997 Arnold D. Robbins @@ -4897,59 +5674,62 @@ Wed Sep 24 20:47:59 1997 Arnold D. Robbins - * custom.h [TANDEM]: new changes. Finishes up Tandem + * custom.h [TANDEM]: New changes. Finishes up Tandem integration. Mon Sep 22 00:42:34 1997 Arnold D. Robbins - * custom.h [__be_os]: remove BROKEN_TOKEN definition. - dfa.c, dfa.h: change `token' to `dfa_token' to avoid BeOS + * custom.h [__be_os]: Remove BROKEN_TOKEN definition. + * dfa.c, dfa.h: Change `token' to `dfa_token' to avoid BeOS compile problems. Thu Aug 7 22:35:17 1997 Arnold D. Robbins - * Changes for BeOS from mc@whoever.com - awk.h (strncasecmp): bracket prototype. - custom.h [__be_os]: new stuff. - dfa.h, dfa.c [BROKEN_TOK]: new ifdefs to use dfa_token, not token. + Changes for BeOS from mc@whoever.com + + * awk.h (strncasecmp): Bracket prototype. + custom.h [__be_os]: New stuff. + dfa.h, dfa.c [BROKEN_TOK]: New ifdefs to use dfa_token, not token. Fri Aug 1 13:32:49 1997 Arnold D. Robbins - * Tandem changes: - awk.h [TANDEM]: misc additions, as needed. - io.c (get_a_record): changes for fixed length records; not used + Tandem changes: + + * awk.h [TANDEM]: Misc additions, as needed. + * io.c (get_a_record): Changes for fixed length records; not used on other systems. - main.c (MRL): new variable, TANDEM specific. - (main): update handling -mr option for TANDEM. - (load_environ): comment out whole routine if TANDEM. - missing.c [TANDEM]: new includes. - gawkmisc.c [TANDEM]: include `tmiscc'. + * main.c (MRL): New variable, TANDEM specific. + (main): Update handling -mr option for TANDEM. + (load_environ): Comment out whole routine if TANDEM. + missing.c [TANDEM]: New includes. + gawkmisc.c [TANDEM]: Include `tmiscc'. Wed Jul 30 19:53:52 1997 Arnold D. Robbins - * Close-on-exec changes: - awk.h: (os_close_on_exec, os_isdir): new functions. - gawkmisc.c: add include fcntl.h. - configure.in [AC_CHECK_HEADERS]: add fcntl.h. - io.c (devopen, iop_open): change to use os_isdir(), not S_IFDIR(). - (redirect, devopen, iop_open, gawk_popen): change all calls to + Close-on-exec changes: + + * awk.h: (os_close_on_exec, os_isdir): New functions. + * gawkmisc.c: Add include fcntl.h. + * configure.in [AC_CHECK_HEADERS]: Add fcntl.h. + * io.c (devopen, iop_open): Change to use os_isdir(), not S_IFDIR(). + (redirect, devopen, iop_open, gawk_popen): Change all calls to fcntl() to os_close_on_exec(). Tue Jul 29 11:09:45 1997 Arnold D. Robbins - * eval.c (set_BINMODE): fixed check for digits to use isdigit() + * eval.c (set_BINMODE): Fixed check for digits to use isdigit() instead of looping over digits and using strchr(). Duh. Sat Jul 26 22:52:08 1997 Arnold D. Robbins - * eval.c (set_BINMODE): fix so that `-v BINMODE=w' works. - * node.c (r_force_number): add decl of strtod(); makes things + * eval.c (set_BINMODE): Fix so that `-v BINMODE=w' works. + * node.c (r_force_number): Add decl of strtod(); makes things work on MIPS. - * Makefile.in (install-strip): new target. + * Makefile.in (install-strip): New target. Fri Jul 18 13:28:05 1997 Arnold D. Robbins - * io.c (redirect, devopen, iop_open, gawk_popen): set the + * io.c (redirect, devopen, iop_open, gawk_popen): Set the close-on-exec flag on all files and pipes opened for I/O. Keeps children run via system() or other pipes from running out of file descriptors. @@ -4962,7 +5742,7 @@ Tue Jul 8 06:46:32 1997 Arnold D. Robbins - * dfa.c: changes from pjr@jet.UK (Paul J Rippin) from an old + * dfa.c: Changes from pjr@jet.UK (Paul J Rippin) from an old bug report against 2.14.0 that speed up initialization and rewrite the inner loop into readable code. @@ -4973,83 +5753,86 @@ Sun Jun 29 14:17:37 1997 Arnold D. Robbins - * awk.y (exp): fixed warning about `x = /foo/'. + * awk.y (exp): Fixed warning about `x = /foo/'. Wed Jun 25 09:07:57 1997 Arnold D. Robbins - * PORTS: removed from distribution. - * Makefile.in (MISC): removed PORTS. + * PORTS: Removed from distribution. + * Makefile.in (MISC): Removed PORTS. Sun Jun 22 11:52:57 1997 Arnold D. Robbins - * BINMODE changes - awk.h (Node_BINMODE): added. - (struct redirect): added mode field to save for io.c:close_one(). - (BINMODE, BINMODE_node, set_BINMODE): add declarations. - awk.y (isnoeffect): add Node_BINMODE. - eval.c (nodetypes): add Node_BINMODE string. - (r_tree_eval, r_get_lhs): add cases for Node_BINMODE. - (set_BINMODE): new function. - io.c (binmode): new function. - (nextfile, redirect, gawk_popen): add calls to binmode(). - main.c (BINMODE, BINMODE_node): add decls. - (main): add call to setmode() if BINMODE is set. - (varinit): add entry for BINMODE. + BINMODE changes. + + * awk.h (Node_BINMODE): Added. + (struct redirect): Added mode field to save for io.c:close_one(). + (BINMODE, BINMODE_node, set_BINMODE): Add declarations. + * awk.y (isnoeffect): Add Node_BINMODE. + * eval.c (nodetypes): Add Node_BINMODE string. + (r_tree_eval, r_get_lhs): Add cases for Node_BINMODE. + (set_BINMODE): New function. + * io.c (binmode): New function. + (nextfile, redirect, gawk_popen): Add calls to binmode(). + * main.c (BINMODE, BINMODE_node): Add decls. + (main): Add call to setmode() if BINMODE is set. + (varinit): Add entry for BINMODE. Wed Jun 4 21:52:25 1997 Arnold D. Robbins - * configure.in [AC_FUNC_MMAP]: removed call. - * awk.h [struct iobuf]: removed IOP_MMAPED flag and `getrec' member. - * io.c: removed all mmap related code. + * configure.in [AC_FUNC_MMAP]: Removed call. + * awk.h [struct iobuf]: Removed IOP_MMAPED flag and `getrec' member. + * io.c: Removed all mmap related code. Sun Apr 27 16:23:56 1997 Arnold D. Robbins - * aclocal.m4 [GAWK_AC_FUNC_MKTIME]: new macro. - * configure.in (GAWK_AC_FUNC_MKTIME): call it. + * aclocal.m4 [GAWK_AC_FUNC_MKTIME]: New macro. + * configure.in (GAWK_AC_FUNC_MKTIME): Call it. Thu Apr 24 23:25:06 1997 Arnold D. Robbins - * io.c (devopen): remove stat test for /dev/foo files. Finally. + * io.c (devopen): Remove stat test for /dev/foo files. Finally. Fri Jul 26 09:23:15 1996 Arnold D. Robbins - * Changes to add an abort statement, a la tawk - awk.h (Node_K_abort): new enum value for NODETYPE. - main.c (aborting): new flag variable. - (main): add logic to handle aborting. - eval.c (interpret): add case for Node_K_abort. - io.c (do_input): if aborting, break loop. - awk.y (tokentab): add entry for "abort" keyword - (PRODUCTIONS): add production for LEX_ABORT. + Changes to add an abort statement, a la tawk. + + * awk.h (Node_K_abort): New enum value for NODETYPE. + * main.c (aborting): New flag variable. + (main): Add logic to handle aborting. + * eval.c (interpret): Add case for Node_K_abort. + * io.c (do_input): If aborting, break loop. + * awk.y (tokentab): Add entry for "abort" keyword + (PRODUCTIONS): Add production for LEX_ABORT. Wed Jul 24 12:49:52 1996 Arnold D. Robbins - * First cut at changes for i18n. - awk.h (do_intl): declare new flag variable. - [INTLSTR]: new flag def. - (m_tree_eval): fix definitions for INTLSTR. - (force_string): fix definitions for INTLSTR. - awk.y (yylex): add _"..." for international strings. - (dumpintlstr): new function. - main.c (do_intl): define new flag variable. - (optab): add "gen-po" entry. - (main): if do_intl, exit, don't run the program. - (gawkoption): add "gen-po" entry. - node.c (r_force_string): call gettext if flags indicate INTLSTR. + First cut at changes for i18n. + + * awk.h (do_intl): Declare new flag variable. + [INTLSTR]: New flag def. + (m_tree_eval): Fix definitions for INTLSTR. + (force_string): Fix definitions for INTLSTR. + * awk.y (yylex): Add _"..." for international strings. + (dumpintlstr): New function. + * main.c (do_intl): Define new flag variable. + (optab): Add "gen-po" entry. + (main): If do_intl, exit, don't run the program. + (gawkoption): Add "gen-po" entry. + * node.c (r_force_string): Call gettext if flags indicate INTLSTR. Thu Mar 14 06:29:42 1996 Arnold D. Robbins - * awk.h (do_mktime): added declaration of new function. - * builtin.c (do_mktime): new function. - * awk.y (tokentab): added "mktime" to list of gawk extensions. - * missing.c [HAVE_MKTIME]: added include of mktime.c if needed. + * awk.h (do_mktime): Added declaration of new function. + * builtin.c (do_mktime): New function. + * awk.y (tokentab): Added "mktime" to list of gawk extensions. + * missing.c [HAVE_MKTIME]: Added include of mktime.c if needed. Mon Feb 26 22:32:19 1996 Arnold D. Robbins - * io.c (pidopen, useropen): added warnings to use PROCINFO[], + * io.c (pidopen, useropen): Added warnings to use PROCINFO[], not special files. - * main.c (load_procinfo): new function. - * awk.y (variable): added call to load_procinfo() function. + * main.c (load_procinfo): New function. + * awk.y (variable): Added call to load_procinfo() function. Mon Aug 7 15:23:00 2000 Arnold D. Robbins @@ -5057,11 +5840,11 @@ Thu Aug 3 17:47:53 2000 Greg McGary - * regex.c: patches for gcc bounded pointer handling. + * regex.c: Patches for gcc bounded pointer handling. Thu Aug 3 13:09:09 2000 Arnold D. Robbins - * array.c (in_array, do_delete): fix tests for index equality + * array.c (in_array, do_delete): Fix tests for index equality when searching through the array to work correctly when index is "". @@ -5073,7 +5856,7 @@ instead of char *; reputedly fixed in V6.1). * eval.c (C): New macro. - [casetable]: Use it to add explicit casts for the character + [casetable]: Use it to add explicit casts for the character values outside the range of 0 to 127. * missing/strncasecmp.c [C, charmap]: Likewise. @@ -5083,13 +5866,14 @@ Efficiency hack: turn `for (iggy in foo) delete foo[iggy]' into moral equivalent of `delete foo'. - * array.c (do_delete_loop): new routine. - * awk.h [NODETYPE]: new Node_K_delete_loop value. + + * array.c (do_delete_loop): New routine. + * awk.h [NODETYPE]: New Node_K_delete_loop value. Add declaration of do_delete_loop. * awk.y [LEX_FOR]: Fix code to recognize special case. - * eval.c (nodetypes): new entry for Node_K_delete_loop. - (interpret): add case for Node_K_delete_loop, add more - diagnostic info in default (cant_happen) case. + * eval.c (nodetypes): New entry for Node_K_delete_loop. + (interpret): Add case for Node_K_delete_loop, add more + diagnostic info in default (cant_happen) case. Tue Jul 11 22:15:10 2000 Pat Rankin @@ -5098,9 +5882,9 @@ Tue Jul 11 14:08:23 2000 Arnold D. Robbins - * array.c (do_delete): switch to string comparison, not + * array.c (do_delete): Switch to string comparison, not cmp_nodes. - (assoc_find): add call to force_string on subscript. + (assoc_find): Add call to force_string on subscript. * eval.c (interpret): Case Node_K_arrayfor: check for Node_array_ref and fetch original_array. Yowser. @@ -5116,7 +5900,7 @@ Wed Jun 14 13:03:45 2000 Arnold D. Robbins - * field.c (set_record): manage a private buffer for $0. + * field.c (set_record): Manage a private buffer for $0. Keeps things safe in case `getline var' rearranges the IOBUF's contents that $0 is still pointing into. @@ -5160,7 +5944,7 @@ Mon May 22 17:29:43 2000 Arnold D. Robbins - * Makefile.in (clean): get `*/core' too. + * Makefile.in (clean): Get `*/core' too. Sun May 7 16:33:05 2000 Arnold D. Robbins @@ -5170,17 +5954,17 @@ Tue May 2 09:54:29 2000 Arnold D. Robbins Fix referencing freed memory as shown by test/arynocls.* tests. - * awk.h [Node_array_ref]: new node type. - [orig_array]: new macro element in NODE structure. - * field.c (do_split): handle case for Node_array_ref, fetch + * awk.h [Node_array_ref]: New node type. + [orig_array]: New macro element in NODE structure. + * field.c (do_split): Handle case for Node_array_ref, fetch the original array. - * array.c (in_array, do_delete): ditto. - * eval.c (nodetypes[]): add Node_array_ref string. - (r_tree_eval): handle case for Node_array_ref. - (push_args): push arrays as Node_array_ref, and pass them on. - (pop_fcall): don't unref lnode if it's an array when releasing + * array.c (in_array, do_delete): Ditto. + * eval.c (nodetypes[]): Add Node_array_ref string. + (r_tree_eval): Handle case for Node_array_ref. + (push_args): Push arrays as Node_array_ref, and pass them on. + (pop_fcall): Don't unref lnode if it's an array when releasing local arguments. Check for both Node_array and Node_array_ref. - (r_get_lhs): choke on Node_array_ref as for Node_array. + (r_get_lhs): Choke on Node_array_ref as for Node_array. For Node_subscript, handle Node_array_ref. Tue May 2 09:52:12 2000 Bruno Haible @@ -5212,7 +5996,7 @@ Tue Feb 1 18:41:40 2000 Arnold D. Robbins - * eval.c (op_assign): reget the rval after regetting + * eval.c (op_assign): Reget the rval after regetting the left hand side. See test/opasnslf.awk for why. Thu Jan 27 18:06:31 2000 Arnold D. Robbins @@ -5241,7 +6025,7 @@ Thu Dec 2 13:08:18 1999 Arnold D. Robbins - * builtin.c (do_compl): test `d' for negative inside the do_lint + * builtin.c (do_compl): Test `d' for negative inside the do_lint test, not uval. Ooops. Fri Nov 26 10:58:36 1999 Arnold D. Robbins @@ -5252,7 +6036,7 @@ Tue Nov 23 11:58:53 1999 Arnold D. Robbins - * regex.c (SYNTAX): cast argument to `unsigned char' instead of + * regex.c (SYNTAX): Cast argument to `unsigned char' instead of &-ing with 0xFF. Hopefully somewhat more portable, ala 21 Nov 99 changes to awk.y. @@ -5264,22 +6048,22 @@ Sun Nov 21 20:33:35 1999 Arnold D. Robbins - * awk.h (nextc): remove declaration, don't need it here. + * awk.h (nextc): Remove declaration, don't need it here. awk.y (nextc): Cast values to unsigned char so that latin-1 characters in strings don't turn themselves into EOF. Most notably y-umlaut, which is decimal 255. Mon Nov 1 20:00:25 1999 Arnold D. Robbins - * regex.c (init_syntax_once): move below definition of + * regex.c (init_syntax_once): Move below definition of ISALNUM etc., then use ISALNUM to init the table, so that the word ops will work if i18n'ed. (SYNTAX): And subscript with 0xFF for Latin-1 characters. Mon Oct 25 18:37:13 1999 Arnold D. Robbins - * awk.h, main.c, io.c: undo previous changes (22 Oct 1999). - * main.c (main): move call to `init_fields()' to before + * awk.h, main.c, io.c: Undo previous changes (22 Oct 1999). + * main.c (main): Move call to `init_fields()' to before arg parsing. This allows `-v NF=blah' to work ok. Fri Oct 22 17:43:40 1999 Arnold D. Robbins @@ -5287,8 +6071,8 @@ * main.c (arg_assign): Add new arg, `initing' for icky special casing of -v of special variables. Use it to check for NF. May need to add other cases later. - (pre_assign): change call arg_assign, passing initing=TRUE; - io.c (nextfile): change call arg_assign, passing initing=FALSE; + (pre_assign): Change call arg_assign, passing initing=TRUE; + io.c (nextfile): Change call arg_assign, passing initing=FALSE; awk.h: Change prototype for arg_assign. Tue Oct 19 16:06:48 1999 Paul Eggert @@ -5298,7 +6082,7 @@ Wed Oct 6 17:47:47 1999 Arnold D. Robbins - * main.c (arg_assign): return NULL on bad variable. Allows + * main.c (arg_assign): Return NULL on bad variable. Allows things like `./3x=stuff' to work as a filename. Thu Sep 23 21:35:46 1999 Paul Eggert @@ -5317,31 +6101,31 @@ a private copy of each index. Balloons memory usage for no good reason that I can see. Just use dupnode in all cases. - * configure.in: check for $srcdir/.developing adds extra + * configure.in: Check for $srcdir/.developing adds extra defines for my testing/debugging use. Yes, hack alert. Sun Aug 1 11:02:02 1999 Arnold D. Robbins - * node.c (dupnode): turn off FIELD when copying nodes. - * array.c (do_adump, assoc_dump): new functions for array debugging. - * awk.y (tokentab): conditionally add "adump" function for debugging. - * awk.h: delcare new functions. + * node.c (dupnode): Turn off FIELD when copying nodes. + * array.c (do_adump, assoc_dump): New functions for array debugging. + * awk.y (tokentab): Conditionally add "adump" function for debugging. + * awk.h: Delcare new functions. Thu Jul 29 23:26:40 1999 Arnold D. Robbins From wsanchez@apple.com: - * Makefile.in (install-strip): new target, coding stds. compatibility. + * Makefile.in (install-strip): New target, coding stds. compatibility. * config.guess, config.sub: Add MacOS X recognition. Thu Jul 29 19:09:19 1999 Arnold D. Robbins - * awk.y (func_install): make `function foo(foo)' a fatal error. - eval.c (r_tree_eval): diagnose use of a function name as a + * awk.y (func_install): Make `function foo(foo)' a fatal error. + eval.c (r_tree_eval): Diagnose use of a function name as a variable inside the function. Sun Jul 4 16:53:14 1999 Arnold D. Robbins - * eval.c (eval_condition): add extra braces to avoid + * eval.c (eval_condition): Add extra braces to avoid gcc warning. I'm not going to bother for the library code like dfa and regex. @@ -5351,11 +6135,11 @@ Wed Jun 30 16:10:11 1999 Arnold D. Robbins - * awk.h: add include of , and comment about config.h + * awk.h: Add include of , and comment about config.h having to be included before any system headers. Otherwise, with egcs-2.91.66 and later on Linux systems, and possibly others, things break badly, due to the LFS macros. - * awk.y, builtin.c, eval.c, field.c, io.c: removed include + * awk.y, builtin.c, eval.c, field.c, io.c: Removed include of assert.h Wed Jun 9 11:39:19 1999 Paul Eggert @@ -5377,7 +6161,7 @@ * acconfig.h (_FILE_OFFSET_BITS, _LARGEFILE_SOURCE, _LARGE_FILES): New macros. - * Makefile.in (MISC): add config.guess and config.sub so they get + * Makefile.in (MISC): Add config.guess and config.sub so they get included in the distribution. Wed Jun 9 11:29:29 1999 Paul Eggert @@ -5401,35 +6185,35 @@ Tue May 25 16:32:37 1999 Arnold D. Robbins - * builtin.c (format_tree): more smarts for weird cases, such as + * builtin.c (format_tree): More smarts for weird cases, such as zero precisions and zero values used with the `#' flag. Thanks to Andreas Schwab (schwab@gnu.org) for pointing these out. Wed May 19 14:02:54 1999 Arnold D. Robbins - * io.c (do_close): move test for `close(FILENAME)' to after + * io.c (do_close): Move test for `close(FILENAME)' to after loop through all open redirections. Fixes problems in obscure cases with redirections in END rules. Sun May 16 14:08:39 1999 Arnold D. Robbins - * awk.y (yylex): fix group of characters including ',' to + * awk.y (yylex): Fix group of characters including ',' to set want_assign = FALSE. Fixes bizarre parsing problems in function call lists, for example. - * io.c (get_a_record): repair logic for single-leading-newline + * io.c (get_a_record): Repair logic for single-leading-newline case. Tue May 11 16:48:11 1999 Arnold D. Robbins - * aclocal.m4 (GAWK_AC_AIX_TWEAK): new macro. - * configure.in: call it - * Makefile.in: (awklib/all): pass CFLAGS on to sub-make so + * aclocal.m4 (GAWK_AC_AIX_TWEAK): New macro. + * configure.in: Call it + * Makefile.in: (awklib/all): Pass CFLAGS on to sub-make so that password programs will get AIX magic defines. Avoids having to tweak program code for those in doc/gawk.texi. Mon May 3 16:56:23 1999 Arnold D. Robbins - * array.c (do_delete): don't free_temp(subs) until after all + * array.c (do_delete): Don't free_temp(subs) until after all references to it are finished. Mon May 3 13:41:16 1999 Arnold D. Robbins @@ -5444,13 +6228,13 @@ Wed Apr 28 12:27:49 1999 Arnold D. Robbins - * configure.in: more HP stuff: fix the manual alloca code so that + * configure.in: More HP stuff: fix the manual alloca code so that gawk will compile and link on HP systems. See the comments. Sun Apr 25 13:39:16 1999 Arnold D. Robbins - * Makefile.in (gawk): add $(CFLAGS) to linking step. - * configure.in: correctly do AC_FUNC_GETPGRP on HP systems too. + * Makefile.in (gawk): Add $(CFLAGS) to linking step. + * configure.in: Correctly do AC_FUNC_GETPGRP on HP systems too. Tue Apr 13 20:21:00 1999 Arnold D. Robbins @@ -5458,14 +6242,14 @@ Tue Apr 13 19:02:20 1999 Arnold D. Robbins - * io.c (useropen, pidopen): add casts to int on arguments to + * io.c (useropen, pidopen): Add casts to int on arguments to silence gcc warnings. - * regex.c (regcomp,regexec,regfree): add ifdef for APPLE. + * regex.c (regcomp,regexec,regfree): Add ifdef for APPLE. Thu Feb 4 10:38:02 1999 Arnold D. Robbins - * custom.h: hacks for BeOS. Not documented in the manual right now. - * configure.in: hacks for BeOS. Check for HP-UX and define C_ALLOCA + * custom.h: Hacks for BeOS. Not documented in the manual right now. + * configure.in: Hacks for BeOS. Check for HP-UX and define C_ALLOCA if not using gcc. I wish they'd just fix bison already. Sun Dec 20 16:57:38 1998 Arnold D. Robbins @@ -5491,7 +6275,7 @@ Sun Nov 1 15:24:52 1998 Arnold D. Robbins - * builtin.c (format_tree): improve handling of zero-fill + * builtin.c (format_tree): Improve handling of zero-fill when a precision is present. See test/zeroflag.awk. Wed Oct 28 20:40:17 1998 Arnold D. Robbins @@ -5503,9 +6287,9 @@ Sun Oct 18 21:27:24 1998 Arnold D. Robbins - * awk.y (append_right): bug fix, if `list' or `new' are NULL, + * awk.y (append_right): Bug fix, if `list' or `new' are NULL, return `list', so that things don't break too badly. - * regex.c (re_compile_fastmap): remove unused variable `num_regs'. + * regex.c (re_compile_fastmap): Remove unused variable `num_regs'. Thu Oct 8 19:36:57 1998 Arnold D. Robbins @@ -5519,36 +6303,36 @@ Mon Apr 27 11:31:32 1998 Arnold D. Robbins - * main.c (usage): fix the email address for the bug list. - (copyleft): update the copyright year. + * main.c (usage): Fix the email address for the bug list. + (copyleft): Update the copyright year. Mon Mar 23 21:22:32 1998 Arnold D. Robbins - * eval.c (r_get_lhs): make sure that values of type + * eval.c (r_get_lhs): Make sure that values of type Node_param_list don't have the FUNC flag set. This means we don't allow the use of a function name as a variable or array from within the function. Sun Mar 22 19:12:32 1998 Paul Eggert - * aclocal.m4 (GAWK_AC_LARGE_FILES): new macro that checks for + * aclocal.m4 (GAWK_AC_LARGE_FILES): New macro that checks for large file support, and updates CPPFLAGS, LDFLAGS, LIBS as needed. - * configure.in: call GAWK_AC_LARGE_FILES. + * configure.in: Call GAWK_AC_LARGE_FILES. * Makefile.in (CPPFLAGS, LDFLAGS): Let autoconf configure. (COMPFLAGS): Add $(CPPFLAGS). Mon Mar 16 14:06:41 1998 Arnold D. Robbins - * field.c (using_FIELDWIDTHS): new macro. - (using_fieldwidths): use new macro. - (do_split): in case for FS_DFLT, also check that + * field.c (using_FIELDWIDTHS): New macro. + (using_fieldwidths): Use new macro. + (do_split): In case for FS_DFLT, also check that we're not using FIELDWIDTHS. Otherwise, split() would use FIELDWIDTHS, not current value of FS. Oops. Sun Nov 16 20:08:59 1997 Arnold D. Robbins - * builtin.c (sub_common): fix for count of matches in gsub + * builtin.c (sub_common): Fix for count of matches in gsub from Geert.Debyser@esat.kuleuven.ac.be. Wed Oct 15 03:38:12 1997 Arnold D. Robbins @@ -5561,35 +6345,35 @@ Sun Oct 5 11:56:52 1997 Arnold D. Robbins - * configure.in: if ISC add -D_SYSV3 to CFLAGS, per email from + * configure.in: If ISC add -D_SYSV3 to CFLAGS, per email from Mario Vanoni (vanonim@dial.eunet.ch). Fri Sep 26 00:57:49 1997 Arnold D. Robbins - * awk.y (append_right): return if either list is NULL. Prevents + * awk.y (append_right): Return if either list is NULL. Prevents syntax errors from causing core dumps. Wed Sep 17 15:34:15 1997 Arnold D. Robbins - * field.c (rebuild_record): set things up so that all fields point + * field.c (rebuild_record): Set things up so that all fields point into the new record and release any changed fields without causing memory leaks. Avoids problems when fields are extended with the value of $0 or other fields and then $0 is assigned to. Mon Sep 15 16:12:55 1997 Arnold D. Robbins - * builtin.c (do_print): when testing for NUMBER, make sure + * builtin.c (do_print): When testing for NUMBER, make sure it's not a string too. Thanks to Michael Brennan for clarifying the semantics. Sun Sep 14 19:55:12 1997 Arnold D. Robbins - * node.c (format_val): always format values ourselves: avoids + * node.c (format_val): Always format values ourselves: avoids problems if OFMT is bizarre, like %s. Sun Sep 14 00:08:53 1997 Arnold D. Robbins - * io.c (get_a_record): replace all occurrences of the test + * io.c (get_a_record): Replace all occurrences of the test `grRS == FALSE' with `RS_is_null' which makes ` RS = "\0" ' actually work, is clearer code, and actually makes use of the `RS_is_null' variable! @@ -5601,21 +6385,21 @@ Wed Aug 6 21:04:37 1997 Arnold D. Robbins - * io.c (VMS et al gawk_popen): use pclose, not fclose, if + * io.c (VMS et al gawk_popen): Use pclose, not fclose, if iop_alloc fails. Wed Jul 30 19:53:52 1997 Arnold D. Robbins - * awk.y [variable]: fix case for subscript if $3 == NULL. + * awk.y [variable]: Fix case for subscript if $3 == NULL. Sun Jul 27 22:47:30 1997 Arnold D. Robbins - * awk.y (get_src_buf): don't close file if it's stdin. + * awk.y (get_src_buf): Don't close file if it's stdin. Sun Jul 27 22:47:15 1997 Pat Rankin - * io.c (#if VMS: vmsrtl_fileno): new routine. - (#if VMS: fileno): new macro substituted for stdio one. + * io.c (#if VMS: vmsrtl_fileno): New routine. + (#if VMS: fileno): New macro substituted for stdio one. Thu Jul 17 20:05:59 1997 Arnold D. Robbins @@ -5629,8 +6413,8 @@ CHAR_SET_SIZE is not defined, though used in regcomp. It should be taken out of #ifdef SYNTAX_TABLE. Fix from bug group, from Akim Demaille, demaille@inf.enst.fr. - * awk.h (isnondecimal): make test a little smarter. - builtin.c (nondec2awknum): add bailout for decimal numbers, e.g. + * awk.h (isnondecimal): Make test a little smarter. + * builtin.c (nondec2awknum): Add bailout for decimal numbers, e.g. `00.1'. Fix from Larry Schwimmer . Thu Jun 19 19:00:40 1997 Arnold D. Robbins @@ -5652,79 +6436,79 @@ Wed May 14 08:06:08 1997 Arnold D. Robbins - * io.c (do_close): add lint warning if closing something that + * io.c (do_close): Add lint warning if closing something that isn't open. Tue May 13 12:14:12 1997 Arnold D. Robbins - * random.c, builtin.c: remove __GLIBC__ tests, since it breaks + * random.c, builtin.c: Remove __GLIBC__ tests, since it breaks `make test'. I prefer consistency across platforms. - * Makefile.in (gawk): undid April 25 changes and added comment. + * Makefile.in (gawk): Undid April 25 changes and added comment. Putting COMPLAGS in breaks with -g on VMS POSIX. Sun May 11 14:48:04 1997 Darrell Hankerson - * io.c [MSC_VER]: add cases for WIN32. - * regex.c [MSC_VER]: add cases for WIN32. + * io.c [MSC_VER]: Add cases for WIN32. + * regex.c [MSC_VER]: Add cases for WIN32. Sun May 11 07:04:01 1997 Arnold D. Robbins - * builtin.c (do_print): in the loop that evaluates each expression + * builtin.c (do_print): In the loop that evaluates each expression to be printed, do a dupnode to avoid bizarre output. Thanks to Michal for finding this problem. - * awk.y (yylex): fix scanning of hexadecimal constants. + * awk.y (yylex): Fix scanning of hexadecimal constants. Wed May 7 15:09:25 1997 Arnold D. Robbins - * io.c (get_a_record): fix casetable indexing with cast to int. + * io.c (get_a_record): Fix casetable indexing with cast to int. Keeps Michal happy. Tue May 6 16:40:19 1997 Arnold D. Robbins - * eval.c (func_call): removed unneeded variables. + * eval.c (func_call): Removed unneeded variables. Mon May 5 21:17:37 1997 Pat Rankin - * missing/strftime.c [case 'v', VMS_EXT]: for VMS date format, two + * missing/strftime.c [case 'v', VMS_EXT]: For VMS date format, two digit day of month should not be zero padded on the 1st through the 9th. Mon May 5 06:33:47 1997 Arnold D. Robbins - * regex.h, regex.c: merge with current GLIBC version. + * regex.h, regex.c: Merge with current GLIBC version. Mon May 5 06:33:47 1997 Pat Rankin - * io.c (nextfile): move the check for null return from iop_open + * io.c (nextfile): Move the check for null return from iop_open in the normal case and add one for the "no args" case. Fri Apr 25 16:52:33 1997 Arnold D. Robbins - * array.c (grow_table): add a bunch more large primes so arrays + * array.c (grow_table): Add a bunch more large primes so arrays can get really big. Thanks to christos@deshaw.com. - * all files: remove ifdef'ed out code and update copyrights. - * Makefile.in (gawk): add $(COMPFLAGS) to command line. - * eval.c (flags2str): added case for FIELD. + * all files: Remove ifdef'ed out code and update copyrights. + * Makefile.in (gawk): Add $(COMPFLAGS) to command line. + * eval.c (flags2str): Added case for FIELD. Thu Apr 24 22:39:23 1997 Arnold D. Robbins - * COPYING: changed to current official version from FSF. - * regex.c: merge with GLIBC version. - * awk.h [_GNU_SOURCE]: bracket definition inside ifdef. - (NODE.source_line): move name member out of `x' union and + * COPYING: Changed to current official version from FSF. + * regex.c: Merge with GLIBC version. + * awk.h [_GNU_SOURCE]: Bracket definition inside ifdef. + (NODE.source_line): Move name member out of `x' union and into `nodep'; avoids problems doing diagnostics. - (nondec2num): put decl into #if BITOPS || NONDECDATA + (nondec2num): Put decl into #if BITOPS || NONDECDATA * posix/gawkmisc.c, missing/system.c, missing/strtod.c, - missing/strerror.c: move to generic GPL statement at top. - * builtin.c (nondec2num): put into #if BITOPS || NONDECDATA + missing/strerror.c: Move to generic GPL statement at top. + * builtin.c (nondec2num): Put into #if BITOPS || NONDECDATA Wed Apr 23 22:14:14 1997 Arnold D. Robbins - * dfa.c: misc changes for really pedantic SGI compilers. - * builtin.c: bracket defs of random() etc for GLIBC. - * random.c: bracket whole file for GLIBC. - * configure.in: extra goop for GETPGRP test for VMS POSIX. - * custom.h [VMS]: remove hard definition of GETPGRP_VOID. + * dfa.c: Misc changes for really pedantic SGI compilers. + * builtin.c: Bracket defs of random() etc for GLIBC. + * random.c: Bracket whole file for GLIBC. + * configure.in: Extra goop for GETPGRP test for VMS POSIX. + * custom.h [VMS]: Remove hard definition of GETPGRP_VOID. Fri Apr 18 07:55:47 1997 Arnold D. Robbins @@ -5733,26 +6517,26 @@ Tue Apr 15 21:35:45 1997 Arnold D. Robbins NEW UNDOCUMENTED FEATURE. USE THE SOURCE LUKE! - * acconfig.h [NONDECDATA]: new macro. - * awk.h: add decl of do_strtonum. - * awk.y (tokentab): add entry for strtonum function. - * builtin.c (do_strtonum): new function. - * configure.in (non-decimal-data): new --enable-* option. - * node.c (r_force_number): change to allow non-decimal data inside + * acconfig.h [NONDECDATA]: New macro. + * awk.h: Add decl of do_strtonum. + * awk.y (tokentab): Add entry for strtonum function. + * builtin.c (do_strtonum): New function. + * configure.in (non-decimal-data): New --enable-* option. + * node.c (r_force_number): Change to allow non-decimal data inside ifdef NONDECDATA. Tue Apr 15 06:32:50 1997 Pat Rankin - * missing/strftime.c (malloc, realloc, getenv, strchr): only + * missing/strftime.c (malloc, realloc, getenv, strchr): Only declare these when STDC_HEADERS is not defined. - : include these when STDC_HEADERS is defined. - * awk.h (freenode, tree_eval, m_tree_eval): reorganize definitions. - * alloca.c (malloc): if malloc is already defined as a macro, + : Include these when STDC_HEADERS is defined. + * awk.h (freenode, tree_eval, m_tree_eval): Reorganize definitions. + * alloca.c (malloc): If malloc is already defined as a macro, presumeably by config.h, don't define or declare it. Wed Apr 9 22:45:27 1997 Arnold D. Robbins - * Makefile.in [COMPFLAGS]: per suggestion from Karl Berry, put + * Makefile.in [COMPFLAGS]: Per suggestion from Karl Berry, put $(CFLAGS) last. Tue Apr 8 23:54:46 1997 Arnold D. Robbins @@ -5764,14 +6548,14 @@ Mon Apr 7 18:22:37 1997 Arnold D. Robbins * awk.h: Add decls of new routines do_compl() and set_loc(). - * awk.y (tokentab): add entry for "compl" function. - * builtin.c (do_compl): new function to do ones complement. - (do_substr): rationalized yet again, now notices negative start + * awk.y (tokentab): Add entry for "compl" function. + * builtin.c (do_compl): New function to do ones complement. + (do_substr): Rationalized yet again, now notices negative start and length parameters. - * eval.c (push_args): fix if call_list gets realloc'ed in the + * eval.c (push_args): Fix if call_list gets realloc'ed in the middle of things. Avoids crash for deeply nested function calls. - * main.c (catch_sig): add call to set_loc(). - * msg.c (set_loc, srcfile, srcline): new function and private + * main.c (catch_sig): Add call to set_loc(). + * msg.c (set_loc, srcfile, srcline): New function and private variables to help out in tracing down source of error messages. Fri Mar 28 08:42:27 1997 Arnold D. Robbins @@ -5783,68 +6567,68 @@ Thu Mar 27 08:48:57 1997 Arnold D. Robbins - * custom.h [_SEQUENT_]: undef HAVE_MMAP. + * custom.h [_SEQUENT_]: Undef HAVE_MMAP. Wed Mar 26 09:08:16 1997 Arnold D. Robbins - * io.c (iop_alloc): fix definition to make it static. + * io.c (iop_alloc): Fix definition to make it static. Mon Mar 24 23:09:07 1997 Arnold D. Robbins - * field.c (init_fields, etc..): more clean up use of Null_field + * field.c (init_fields, etc..): More clean up use of Null_field and the various flags. - * node.c (unref): if a field, free the node itself. Fixes + * node.c (unref): If a field, free the node itself. Fixes memory leak problems. Sun Mar 23 22:51:09 1997 Arnold D. Robbins - * awk.h [FIELD]: new flag for node->flags field. - * builtin.c (sub_common): if FIELD is set, dup the string. - * field.c (init_fields): set up a new Null_field global var. + * awk.h [FIELD]: New flag for node->flags field. + * builtin.c (sub_common): If FIELD is set, dup the string. + * field.c (init_fields): Set up a new Null_field global var. (init_fields, set_field, set_record) use the FIELD flag. - (getfield): use Null_field instead of private variable. - * io.c (wait_any): comment out calls to pclose and iop_close, + (getfield): Use Null_field instead of private variable. + * io.c (wait_any): Comment out calls to pclose and iop_close, caused weird race conditions. See test/pipeio1.awk. Thanks to Darrell Hankerson for tracing this one down. Tue Mar 18 20:57:18 1997 Arnold D. Robbins - * dfa.c (inboth): free templist; plugs memory leak. + * dfa.c (inboth): Free templist; plugs memory leak. * field.c (init_fields, grow_fields_arr, set_field, rebuild_record, - set_record): remove PERM flag from entries in fields_arr[]. Fixes + set_record): Remove PERM flag from entries in fields_arr[]. Fixes nasty memory leak. Tue Mar 18 06:33:00 1997 Arnold D. Robbins - * awk.y (dup_parms): robustified against parameter errors. + * awk.y (dup_parms): Robustified against parameter errors. Sun Mar 16 21:31:40 1997 Arnold D. Robbins NEW UNDOCUMENTED FEATURE. USE THE SOURCE LUKE! - * acconfig.h [BITOPS]: new macro. If set, do octal & hex and bit ops. - * awk.h [isnondecimal]: new macro, and decl of new functions. - * awk.y (yylex): add recognition of octal and hex constants. - * builtin.c (do_and, do_or, do_xor, do_lshift, do_rshift): new + * acconfig.h [BITOPS]: New macro. If set, do octal & hex and bit ops. + * awk.h [isnondecimal]: New macro, and decl of new functions. + * awk.y (yylex): Add recognition of octal and hex constants. + * builtin.c (do_and, do_or, do_xor, do_lshift, do_rshift): New functions that do bit operations. - (nondec2awknum): new function to convert octal or hex to double. + (nondec2awknum): New function to convert octal or hex to double. * configure.in: Add AC_ARG_ENABLE for bit operations. - * node.c (r_force_number): add octal and hex conversion. + * node.c (r_force_number): Add octal and hex conversion. Sun Mar 16 21:28:56 1997 Arnold D. Robbins - * awk.h [IOP_NOFREE_OBJ]: new macro. - * io.c (iop_open, iop_alloc): add new third parameter, which is + * awk.h [IOP_NOFREE_OBJ]: New macro. + * io.c (iop_open, iop_alloc): Add new third parameter, which is either NULL, meaning allocate a new IOP, or the address of one already allocated. Have a static one in the `nextfile' routine, and use the IOP_NOFREE_OBJ flag for it. All of this keeps us from reading freed memory. The `swaplns' test fails otherwise. - (iop_close): if IOP_NOFREE_OBJ is set, don't free the IOBUF. + (iop_close): If IOP_NOFREE_OBJ is set, don't free the IOBUF. Wed Feb 26 06:21:02 1997 Arnold D. Robbins * eval.c (in_function, pop_fcall_stack, pop_fcall, push_args): - new functions. These manage "frames" of awk function call arguments. + New functions. These manage "frames" of awk function call arguments. The problem is that a `next' or a `nextfile' from a function leaks memory. These changes allow us to free up that memory. (interpret): for Node_K_next and Node_K_nextfile, check if in @@ -5852,29 +6636,30 @@ Fri Feb 21 06:23:19 1997 Arnold D. Robbins - * Misc changes from Katsuyuki Okabe : - * builtin.c (do_substr): change a %d to %ld in warning message. - * eval.c (op_assign): fix format string for warning about %=. + Misc changes from Katsuyuki Okabe : + + * builtin.c (do_substr): Change a %d to %ld in warning message. + * eval.c (op_assign): Fix format string for warning about %=. Wed Feb 19 23:29:02 1997 Arnold D. Robbins - * main.c (main): add do_intervals to condition that causes + * main.c (main): Add do_intervals to condition that causes resetup() to be called again. Makes the --re-interval option actually work. What a concept. Fri Feb 14 09:47:31 1997 Arnold D. Robbins - * io.c [#include "awk.h"]: undef HAVE_MMAP to just use the old code. + * io.c [#include "awk.h"]: Undef HAVE_MMAP to just use the old code. Something is causing a file descriptor leak, and this is getting to be just too much hair. I reserve the right to rip out the mmap code entirely at a future date. Tue Feb 11 06:28:29 1997 Arnold D. Robbins - * io.c (iop_alloc): for an mmap'ed file, close the file descriptor, + * io.c (iop_alloc): For an mmap'ed file, close the file descriptor, and then touch each page to get a private copy. Fixes nasty case of truncating our input file. - (iop_close): don't call close on mmap'ed file. + (iop_close): Don't call close on mmap'ed file. Wed Feb 5 17:59:04 1997 Arnold D. Robbins @@ -5886,34 +6671,34 @@ Sun Jan 26 22:58:29 1997 Arnold D. Robbins - * getopt.h, getopt.c, getopt1.c: replaced with new versions from + * getopt.h, getopt.c, getopt1.c: Replaced with new versions from GLIBC 2. Sun Jan 19 23:37:03 1997 Arnold D. Robbins - * eval.c (nodetype2str): not static, for debugging. - (flags2str) new function: for debugging. - * field.c (get_field): add new var that is like Nnull_string but + * eval.c (nodetype2str): Not static, for debugging. + (flags2str): New function for debugging. + * field.c (get_field): Add new var that is like Nnull_string but does not have numeric attributes, so that new fields are strings. - (set_record): turn off PERM flag before unrefing fields and field 0. - * array.c (in_array): always evaluate subscript, could have + (set_record): Turn off PERM flag before unrefing fields and field 0. + * array.c (in_array): Always evaluate subscript, could have side effects. - * builtin.c (do_strftime): way increase size of buffer to make sure + * builtin.c (do_strftime): Way increase size of buffer to make sure we don't have overflow problem. Keeps Paul Eggert happy. - * custom.h [__amigaos__]: define fork to vfork. From Fred Fish. - * dfa.c: move include of config.h to top, for RSXNT. From Kai + * custom.h [__amigaos__]: Define fork to vfork. From Fred Fish. + * dfa.c: Move include of config.h to top, for RSXNT. From Kai Uwe Rommel. - (ISALPHA, etc): change from Jacob Engelbrecht (jaen@novo.dk) - to better handle non-ascii environments. - * gawkmisc.c: remove amigados case, posix should now work fine. - * amiga/*: nuked per previous entry. - * Makefile.in: removed all references to amiga + (ISALPHA, etc): Change from Jacob Engelbrecht (jaen@novo.dk) + to better handle non-ASCII environments. + * gawkmisc.c: Remove amigados case, posix should now work fine. + * amiga/*: Nuked per previous entry. + * Makefile.in: Removed all references to amiga * io.c [HAVE_SYS_PARAM_H]: Add #undef RE_DUP_MAX to avoid spurious conflict with regex.h. - (flush_io): remove amiga ifdefs, not needed anymore. - (spec_setup): set getrec field for special files. Fix from + (flush_io): Remove amiga ifdefs, not needed anymore. + (spec_setup): Set getrec field for special files. Fix from Mark Gray (markgray@pdt.net). - * node.c (more_nodes): fix to get the last entry in the array. + * node.c (more_nodes): Fix to get the last entry in the array. Wed Jan 8 17:42:37 1997 Andreas Schwab @@ -5932,9 +6717,9 @@ Wed Dec 25 11:17:32 1996 Arnold D. Robbins - * Makefile.in (install, uninstall): use $(srcdir)/patchlevel.h. + * Makefile.in (install, uninstall): Use $(srcdir)/patchlevel.h. Thanks to Richard Levitte, LeViMS@stacken.kth.se. - (install): remove chmod command; let $(INSTALL_PROGRAM) use -m. + (install): Remove chmod command; let $(INSTALL_PROGRAM) use -m. Mon Dec 23 20:36:59 1996 Pat Rankin @@ -5942,9 +6727,9 @@ Fri Dec 20 08:59:55 1996 Arnold D. Robbins - * getopt.c, getopt1.c: comment out the `#if defined (_LIBC) || + * getopt.c, getopt1.c: Comment out the `#if defined (_LIBC) || !defined (__GNU_LIBRARY__)' and `#endif' to force use of this - getopt, even on systems like linux. This will be handled + getopt, even on systems like Linux. This will be handled better in 3.1 / glibc 2. Thu Dec 19 22:52:39 1996 Arnold D. Robbins @@ -5955,7 +6740,7 @@ Wed Dec 18 22:42:10 1996 Darrel Hankerson - * getopt.c (_getopt_internal): if 'W' and ';', if optind == argc, + * getopt.c (_getopt_internal): If 'W' and ';', if optind == argc, return c, don't fall through. Wed Dec 18 10:09:44 1996 Arnold D. Robbins @@ -5967,7 +6752,7 @@ Tue Dec 17 22:23:16 1996 Arnold D. Robbins - * builtin.c (do_strftime): fix case if format string is "". + * builtin.c (do_strftime): Fix case if format string is "". Also fix it if format is not "" but result of strftime is "". See comments in code. @@ -5977,13 +6762,13 @@ Tue Dec 10 22:39:41 1996 Arnold D. Robbins - * Makefile.in (dist): add dependency on `info'. Remove line that + * Makefile.in (dist): Add dependency on `info'. Remove line that does makeinfo. - (install): use $(LN) not $(LN_S) to link gawk gawk-version. + (install): Use $(LN) not $(LN_S) to link gawk gawk-version. Sun Dec 8 07:53:44 1996 Arnold D. Robbins - * Makefile.in (gawk): took COMPFLAGS out of link line for help + * Makefile.in (gawk): Took COMPFLAGS out of link line for help on VMS posix. Shouldn't (I hope) affect anything else. Thu Nov 28 11:52:24 1996 Arnold D. Robbins @@ -5998,22 +6783,22 @@ Sun Nov 24 22:16:26 1996 Arnold D. Robbins - * builtin.c (do_printf): if no args, fatal error. Return silently + * builtin.c (do_printf): If no args, fatal error. Return silently if --traditional. Thu Nov 7 20:54:43 1996 Arnold D. Robbins - * io.c (inrec): make sure EOF hasn't already happened before + * io.c (inrec): Make sure EOF hasn't already happened before trying to read; prevents accessing freed buffer. Thanks to Michal Jaegermann. - * Makefile.in [AWKSRC]: add random.h. - random.h: new file, redefines names of the `random' functions. - random.c, builtin.c: add include of random.h. + * Makefile.in [AWKSRC]: Add random.h. + * random.h: New file, redefines names of the `random' functions. + * random.c, builtin.c: Add include of random.h. Thu Nov 7 09:06:21 1996 Arnold D. Robbins - * awk.y (snode): undo 4 Oct change, put do_split code back. - field.c (do_split): restore old code; add test for CONST, so + * awk.y (snode): Undo 4 Oct change, put do_split code back. + * field.c (do_split): Restore old code; add test for CONST, so that re_parse_field is used if third arg to split is a regexp constant. @@ -6025,20 +6810,20 @@ Sun Nov 3 11:23:21 1996 Arnold D. Robbins - * field.c (def_parse_field): add \n to list of acceptable white space. - (posix_def_parse_field): new routine, just like def_parse_field(), + * field.c (def_parse_field): Add \n to list of acceptable white space. + (posix_def_parse_field): New routine, just like def_parse_field(), but only allows space and tab as separators. - (do_split, set_FS): make appropriate choice between the two + (do_split, set_FS): Make appropriate choice between the two *def_parse_field() routines. Fri Oct 25 10:13:06 1996 Arnold D. Robbins - * configure.in: remove test for random. - * Makefile.in: add random.c to list of files always compiled. - * missing.c: remove HAVE_RANDOM test. - * builtin.c: remove ifdef's for HAVE_RANDOM. - [GAWK_RAND_MAX]: use constant we know works with our random(). - * random.c: new file - moved from missing/ directory. + * configure.in: Remove test for random. + * Makefile.in: Add random.c to list of files always compiled. + * missing.c: Remove HAVE_RANDOM test. + * builtin.c: Remove ifdef's for HAVE_RANDOM. + [GAWK_RAND_MAX]: Use constant we know works with our random(). + * random.c: New file - moved from missing/ directory. Wed Oct 23 19:46:01 1996 Pat Rankin @@ -6052,41 +6837,41 @@ Tue Oct 22 08:49:20 1996 Arnold D. Robbins - * main.c (copyleft): update copyright date to 1996. - too many files to list: update copyright date to 1996. + * main.c (copyleft): Update copyright date to 1996. + * Too many files to list: Update copyright date to 1996. Sun Oct 20 12:21:09 1996 Arnold D. Robbins - * awk.y, dfa.c, eval.c, io.c, re.c: added various FIXME comments. + * awk.y, dfa.c, eval.c, io.c, re.c: Added various FIXME comments. Sat Oct 19 22:06:42 1996 Arnold D. Robbins - * eval.c (nodetype2str): make static, add prototype. - * field.c (sc_parse_field): cast array subscripts to int to + * eval.c (nodetype2str): Make static, add prototype. + * field.c (sc_parse_field): Cast array subscripts to int to shut up gcc warnings. - * gawkmisc.c: add prototype for xmalloc. - * awk.h: add prototype for getredirect. - * builtin.c (do_fflush): remove extern decl of getredirect. - * io.c (get_a_record, mmap_get_record): change decl of rs to int, + * gawkmisc.c: Add prototype for xmalloc. + * awk.h: Add prototype for getredirect. + * builtin.c (do_fflush): Remove extern decl of getredirect. + * io.c (get_a_record, mmap_get_record): Change decl of rs to int, to shut up gcc warnings. - * awk.y (isassignable): add a default to switch to quiet gcc. - * getopt.c (_getopt_internal): give default value to `indfound'. + * awk.y (isassignable): Add a default to switch to quiet gcc. + * getopt.c (_getopt_internal): Give default value to `indfound'. Fri Oct 18 09:00:49 1996 Arnold D. Robbins - * regex.h [RE_SYNTAX_AWK]: add RE_CONTEXT_INDEP_ANCHORS. + * regex.h [RE_SYNTAX_AWK]: Add RE_CONTEXT_INDEP_ANCHORS. Thu Oct 17 22:32:55 1996 Arnold D. Robbins - * aclocal.m4 [AM_SANITY_CHECK_CC]: added. - * configure.in: use it. + * aclocal.m4 [AM_SANITY_CHECK_CC]: Added. + * configure.in: Use it. Thu Oct 17 21:43:25 1996 Arnold D. Robbins - * configure.in: add checks for locale.h and setlocale(). - awk.h: include locale.h and define out setlocale() if not available. - main.c (main): call setlocale(). - builtin.c (do_tolower, do_toupper): use unsigned char pointers, + * configure.in: Add checks for locale.h and setlocale(). + * awk.h: Include locale.h and define out setlocale() if not available. + * main.c (main): Call setlocale(). + * builtin.c (do_tolower, do_toupper): Use unsigned char pointers, to get other charsets right in different locales. Wed Oct 16 21:32:53 1996 Arnold D. Robbins @@ -6097,9 +6882,9 @@ Wed Oct 16 21:22:08 1996 Arnold D. Robbins - * Makefile.in [MISC]: removed TAGS and tags - (local-distclean): added TAGS and tags - (maintainer-clean): removed TAGS and tags + * Makefile.in [MISC]: Removed TAGS and tags. + (local-distclean): Added TAGS and tags. + (maintainer-clean): Removed TAGS and tags. Wed Oct 16 12:28:43 1996 Arnold D. Robbins @@ -6108,28 +6893,27 @@ Sun Oct 6 22:19:45 1996 Arnold D. Robbins - * regex.c: updated to Emacs 19.34b base. + * regex.c: Updated to Emacs 19.34b base. Sun Oct 6 21:57:34 1996 Arnold D. Robbins - * re.c (make_regexp): fixed to handle \8 and \9 in the middle + * re.c (make_regexp): Fixed to handle \8 and \9 in the middle of a regexp. Fri Oct 4 10:26:16 1996 Arnold D. Robbins - * awk.y (snode): remove case for do_split; always making the + * awk.y (snode): Remove case for do_split; always making the third arg a Node_regex is wrong. - field.c (do_split): rationalized to distinguish `/ /' from `" "'. + * field.c (do_split): Rationalized to distinguish `/ /' from `" "'. Generally fixed up. * node.c (parse_escape): Allow single digit \x escapes. 1996-10-02 Paul Eggert - * builtin.c (format_tree): - Fix bug in %d and %i format: NaNs, and values - in the range LONG_MAX+1 .. ULONG_MAX, were mishandled. - Don't assume that double values <= -1 are converted to unsigned - long in the expected way; the C Standard doesn't guarantee this. + * builtin.c (format_tree): Fix bug in %d and %i format: NaNs, and + values in the range LONG_MAX+1 .. ULONG_MAX, were mishandled. + Don't assume that double values <= -1 are converted to unsigned + long in the expected way; the C Standard doesn't guarantee this. 1996-10-02 Paul Eggert @@ -6141,37 +6925,37 @@ by a ';' then search through the long opts table. This makes `-W foo=bar' same as `--foo=bar'. * main.c (main): 'W' now prints an error message. - (gawk_option): deleted the routine. + (gawk_option): Deleted the routine. Sun Sep 29 23:04:54 1996 Arnold D. Robbins - * builtin.c (sub_common): fix several bugs with gsub when + * builtin.c (sub_common): Fix several bugs with gsub when matching null strings. See test/gsubtest.awk. Fri Sep 20 17:35:54 1996 Pat Rankin - * alloca.c (NULL): don't define if has already done so. + * alloca.c (NULL): Don't define if has already done so. Fri Sep 20 11:54:31 1996 Arnold D. Robbins - * builtin.c (do_print): evaluate all the expressions first and + * builtin.c (do_print): Evaluate all the expressions first and then print them. Avoids surprising behavior. See test/prtoeval.awk for an example. Tue Sep 10 06:21:40 1996 Arnold D. Robbins - * awk.h [FUNC]: new flag, marks a Node_parameter_list as really + * awk.h [FUNC]: New flag, marks a Node_parameter_list as really being the function name; allows more checking in awk.y. - * awk.y (isassignable): now takes a NODE * instead of a type, to + * awk.y (isassignable): Now takes a NODE * instead of a type, to check if a function parameter is marked FUNC, then it's the function name, which is not assignable. Fix call from snode(). - (function_prologue): mark function name as FUNC. - (yyerror): don't call exit() anymore; gawk will now report + (function_prologue): Mark function name as FUNC. + (yyerror): Don't call exit() anymore; gawk will now report all syntax errors. Sun Sep 1 19:36:30 1996 Arnold D. Robbins - * field.c (rebuild_record): after building new field 0, go through + * field.c (rebuild_record): After building new field 0, go through all old fields, and if they used to point into the old one, have them point into the new one. Then turn off PERM flag before unref-ing field 0. @@ -6183,62 +6967,62 @@ Wed Aug 28 22:06:33 1996 Arnold D. Robbins - * main.c (usage): add email addresses for bug reporting, per + * main.c (usage): Add email addresses for bug reporting, per change in GNU Coding Standards from RMS. Sun Aug 11 23:13:22 1996 Arnold D. Robbins - * Makefile.in (install): correct use of $(INSTALL_PROGRAM). + * Makefile.in (install): Correct use of $(INSTALL_PROGRAM). Thu Aug 8 23:29:43 1996 Arnold D. Robbins - * parse.y (isassignable): new function, checks in type can + * parse.y (isassignable): New function, checks in type can be assigned to. - (snode): changed checking for 3rd arg of gsub to be more + (snode): Changed checking for 3rd arg of gsub to be more general, supersedes earlier change. Thu Aug 8 13:58:26 1996 Arnold D. Robbins * parse.y (snode): If third arg to sub or gsub is builtin function, complain, since can't substitute into result. - * eval.c (r_get_lhs): diagnose Node_builtin as an error, instead + * eval.c (r_get_lhs): Diagnose Node_builtin as an error, instead of falling through into default case and using cant_happen(). Thu Aug 1 07:13:14 1996 Arnold D. Robbins - * regex.h [RE_DEBUG]: new macro. - [RE_SYNTAX_GNU_AWK]: add RE_DEBUG. - [RE_SYNTAX_POSIX_AWK]: add RE_INTERVALS. - * regex.c (re_set_syntax): add #ifdef DEBUG code to turn on `debug' + * regex.h [RE_DEBUG]: New macro. + [RE_SYNTAX_GNU_AWK]: Add RE_DEBUG. + [RE_SYNTAX_POSIX_AWK]: Add RE_INTERVALS. + * regex.c (re_set_syntax): Add #ifdef DEBUG code to turn on `debug' flag if RE_DEBUG set, and turn off debug if not set and debug was on. - * main.c (main): remove `do_intervals = TRUE' from `if (do_posix)', + * main.c (main): Remove `do_intervals = TRUE' from `if (do_posix)', it's now handled in the definition of RE_SYNTAX_POSIX_AWK. Mon Jul 29 17:49:07 1996 Pat Rankin - * io.c (O_ACCMODE): define it if doesn't. + * io.c (O_ACCMODE): Define it if doesn't. Mon Jul 29 12:02:48 1996 Arnold D. Robbins - * eval.c (set_IGNORECASE): made somewhat smarter. gawk -v IGNORECASE=0 + * eval.c (set_IGNORECASE): Made somewhat smarter. gawk -v IGNORECASE=0 was acting the same as -v IGNORECASE=1. Thanks to Darrell Hankerson for the bug report. Fri Jul 26 12:04:43 1996 Arnold D. Robbins - * awk.h (format_val): add declaration of new routine. - * node.c (format_val): new routine, abstracts old guts of + * awk.h (format_val): Add declaration of new routine. + * node.c (format_val): New routine, abstracts old guts of r_forcestring; accepts format string and index as additional params. - (r_force_string): changed to call format_val. - * builtin.c (do_print): don't tree_eval the tree twice in case + (r_force_string): Changed to call format_val. + * builtin.c (do_print): Don't tree_eval the tree twice in case OFMTidx != CONVFMTidx; doing so could cause side effects (from bug report by Tobias Rettstadt, xassp@ipds.uni-kiel.de). Instead, call format_val. Mon Jul 22 21:59:15 1996 Arnold D. Robbins - * io.c (iop_close): change check for "is $0 in the input buffer" + * io.c (iop_close): Change check for "is $0 in the input buffer" to use `< (iop->buf + iop->secsiz + iop->size)' instead of `< iop->end'. The latter is bogus if EOF has been hit on the file. Fix from Darrel Hankerson based on bug report by @@ -6246,14 +7030,14 @@ Thu Jul 18 19:43:20 1996 Arnold D. Robbins - * builtin.c (sub_common): backed out change of Feb 14 in favor of: + * builtin.c (sub_common): Backed out change of Feb 14 in favor of: (do_gensub): Changed to use make_string and then to |= TEMP flag, based on bug report and patch from Katsuyuki Okabe, hgc02147@niftyserve.or.jp. Thu Jul 18 19:23:53 1996 Arnold D. Robbins - * custom.h: added ifdef for QNX, based on bug report from + * custom.h: Added ifdef for QNX, based on bug report from Michael Hunter, mphunter@qnx.com. Mon Jul 15 09:31:01 1996 Arnold D. Robbins @@ -6265,69 +7049,69 @@ Sun Jul 14 18:40:26 1996 Arnold D. Robbins - * configure.in: added call to AC_CHECK_LIB(m, fmod), since + * configure.in: Added call to AC_CHECK_LIB(m, fmod), since apparently some systems have fmod in the math library. - Portability: the Holy Grail. Sigh. + Portability: The Holy Grail. Sigh. Sun Jul 14 18:08:01 1996 Arnold D. Robbins - * awk.h: add Jim Meyerings ISASCII etc hacks for ctype macros. - * builtin.c (do_toupper, do_tolower, sub_common): changed to use + * awk.h: Add Jim Meyerings ISASCII etc hacks for ctype macros. + * builtin.c (do_toupper, do_tolower, sub_common): Changed to use upper-case versions of ctype macros. - * main.c (main): ditto. - * node.c (r_force_number, parse_escape): ditto. + * main.c (main): Ditto. + * node.c (r_force_number, parse_escape): Ditto. Sun Jul 14 06:34:18 1996 Arnold D. Robbins - * field.c (set_record): made it always do the PERM flag. + * field.c (set_record): Made it always do the PERM flag. Fixes cases where $0 is assigned to, e.g. by gsub, keeps the fields valid. - (get_field): removed the call to reset_record in + (get_field): Removed the call to reset_record in case where ! field0_valid. We want to leave the fields alone if they've been changed. Thu Jul 11 23:04:20 1996 Arnold D. Robbins - * io.c (devopen): change tests of (flag & O_fooONLY) to + * io.c (devopen): Change tests of (flag & O_fooONLY) to (flag & O_ACCMODE) == O_fooONLY. Per (long standing) bug report from Chapman Flack. - (close_redir): change final conditional to just (status != 0) + (close_redir): Change final conditional to just (status != 0) so that ERRNO always set; the warning had its own `if (do_lint)' anyway. - * eval.c (do_split): force type of array to be Node_var_array + * eval.c (do_split): Force type of array to be Node_var_array instead of Node_var. Per (long standing) bug report from Chapman Flack. Thu Jul 11 22:17:14 1996 Arnold D. Robbins - * Makefile.in (install): added symlink of gawk to awk if + * Makefile.in (install): Added symlink of gawk to awk if no awk in $(bindir). - (LN_S): new variable for symlinking. - (uninstall): remove awk if it's the same gawk. + (LN_S): New variable for symlinking. + (uninstall): Remove awk if it's the same gawk. * Configure.in: Added call to AC_PROG_LN_S for Makefile.in. Sun Jul 7 15:47:13 1996 Arnold D. Robbins - * main.c (main): made `--posix' turn on interval expressions. + * main.c (main): Made `--posix' turn on interval expressions. Gawk now matches its documentation. (What a concept!) Wed Jul 3 15:02:48 1996 Arnold D. Robbins - * regex.h, regex.c: upgraded to changes from Emacs 19.31. + * regex.h, regex.c: Upgraded to changes from Emacs 19.31. Fri May 17 08:46:07 1996 Arnold D. Robbins - * io.c (get_a_record): added `continued' flag. Fix from + * io.c (get_a_record): Added `continued' flag. Fix from Darrell Hankerson for when RS = "\n|something". Wed May 15 02:34:55 1996 Arnold D. Robbins - * Makefile.in (awklib/all): now depends on gawk, fixes problem + * Makefile.in (awklib/all): Now depends on gawk, fixes problem with parallel make. Tue May 14 15:02:52 1996 Arnold D. Robbins - * builtin.c (format_tree): fix handling of '*' to deal with + * builtin.c (format_tree): Fix handling of '*' to deal with negative value for fieldwidth -- make positive and turn on left justify. Per bug report from Michael Brennan. @@ -6338,27 +7122,27 @@ Sun May 5 10:11:52 1996 Arnold D. Robbins - * io.c (redirect): call flush_io() before creating a new output pipe, + * io.c (redirect): Call flush_io() before creating a new output pipe, per bug report from Brian Kernighan (bwk@research.bell-labs.com). Fri Mar 15 06:38:33 1996 Arnold D. Robbins - * Makefile.in (install): use $(INSTALL_PROGRAM), not $(INSTALL). - (local-distclean): add `*~' to list of files to be removed. - (CFLAGS): now contains just @CFLAGS@. - (COMPFLAGS): replaces use of CFLAGS, has CFLAGS plus all the + * Makefile.in (install): Use $(INSTALL_PROGRAM), not $(INSTALL). + (local-distclean): Add `*~' to list of files to be removed. + (CFLAGS): Now contains just @CFLAGS@. + (COMPFLAGS): Replaces use of CFLAGS, has CFLAGS plus all the other stuff. Wed Mar 13 14:19:38 1996 Arnold D. Robbins - * io.c (mmap_get_record): fixed to not place sentinel at end + * io.c (mmap_get_record): Fixed to not place sentinel at end of mmap'ed object. Won't work if file is exact multiple of disk block size. See comments in code for more info. Thanks to Rick Adams (rick@uunet.uu.net) for help in testing. Sun Mar 10 22:50:23 1996 Arnold D. Robbins - * io.c (do_close): notice if we were called as `close(FILENAME)' + * io.c (do_close): Notice if we were called as `close(FILENAME)' and arrange to close the current input file. This turns out to be easy to do, just call `nextfile(TRUE)'. Based on bug report from Pascal A. Dupuis, . @@ -6374,58 +7158,58 @@ * field.c (set_NF): If NF is decremented, clear fields between NF and parse_high_water, otherwise if NF incremented, clear fields between parse_high_water and NF. - * eval.c (nodetype2str): new function, used for diagnostics. - eval.c (interpret): use nodetype2str when finding invalid node. + * eval.c (nodetype2str): New function, used for diagnostics. + (interpret): Use nodetype2str when finding invalid node. Mon Mar 4 09:02:28 1996 Arnold D. Robbins - * builtin.c (do_toupper, do_tolower): use isascii along with + * builtin.c (do_toupper, do_tolower): Use isascii along with isupper/islower before changing case, in case characters have the high bit set. This is a hack. Mon Feb 26 22:24:44 1996 Arnold D. Robbins - * builtin.c (sub_common): if no match, and called from gensub, + * builtin.c (sub_common): If no match, and called from gensub, don't free the temporary string, since the tmp_number then writes over it. Sun Feb 25 23:13:01 1996 Arnold D. Robbins - * builtin.c (format_tree): fixed %c to treat user input as + * builtin.c (format_tree): Fixed %c to treat user input as numeric also by adding test for MAYBE_NUM. Tue Feb 20 12:25:50 1996 Arnold D. Robbins * configure.in: Added AC_FUNC_MMAP call and add madvise to list of functions to look for. - * awk.h [IOP_ISMAPPED]: new flag value for mmap support and new + * awk.h [IOP_ISMAPPED]: New flag value for mmap support and new `getrec' structure member in struct iobuf. - * io.c (iop_alloc, iop_close): changed to map/unmap input file + * io.c (iop_alloc, iop_close): Changed to map/unmap input file into memory if possible. - (mmap_get_record): new function to actually retrieve the + (mmap_get_record): New function to actually retrieve the record from mmaped file. Thu Feb 1 08:56:46 1996 Arnold D. Robbins - * builtin.c (do_substr): fixed lint message to use indx+1 when + * builtin.c (do_substr): Fixed lint message to use indx+1 when start position is past end of string. Sun Jan 28 07:00:56 1996 Arnold D. Robbins - * builtin.c (do_substr): rationalized handling of missing length + * builtin.c (do_substr): Rationalized handling of missing length argument, as well as various accompanying lint warnings. Previous code was slightly bogus. Talk about your Day 1 bugs. Thu Jan 25 14:09:11 1996 Arnold D. Robbins - * builtin.c (do_substr): if length exceeds length of actual + * builtin.c (do_substr): If length exceeds length of actual string, do computation of needed substring length *after* the lint warning. Wed Jan 24 10:06:16 1996 Arnold D. Robbins * Makefile.in (gawk): Add $(CFLAGS) to link line. - (Makefile): target depends on the Makefile.in files. + (Makefile): Target depends on the Makefile.in files. (OTHERS): Added TAGS and tags to the distribution. (local-distclean): New rule. (distclean): Use it. @@ -6436,15 +7220,15 @@ Mon Jan 22 13:16:37 1996 Arnold D. Robbins - * main.c (usage): takes new fp parameter which is either + * main.c (usage): Takes new fp parameter which is either stdout for `--help' (per the GNU Coding Standards) or stderr if an error occurs. Fix all calls. - (version): prints to stdout per the coding stds. - (copyleft): prints to stdout now, not stderr, and exits. + (version): Prints to stdout per the coding stds. + (copyleft): Prints to stdout now, not stderr, and exits. Fri Jan 19 08:10:29 1996 Arnold D. Robbins - * regex.h [RE_GNU_AWK]: added RE_CONTEXT_INDEP_OPS to set of + * regex.h [RE_GNU_AWK]: Added RE_CONTEXT_INDEP_OPS to set of bits we turn off for regular operation. Breaks things like /^+[0-9]+/ to match a literal `+' at the beginning of, say, a phone number. @@ -6461,8 +7245,8 @@ Mon Aug 28 23:04:30 1995 Arnold D. Robbins * awk.h updated for NeXT - bracket TRUE/FALSE - * io.c (get_a_record): removed shadowing of 'start' in - * Makefile.in and doc/Makefile.in: fixed to use gawk.1 and gawk.texi, + * io.c (get_a_record): Removed shadowing of 'start' in + * Makefile.in and doc/Makefile.in: Fixed to use gawk.1 and gawk.texi, instead of gawk.1.in and gawk.texi.in. Mon Aug 25 11:04:30 1995 Arnold D. Robbins diff -urN gawk-3.1.5/FUTURES gawk-3.1.6/FUTURES --- gawk-3.1.5/FUTURES 2005-05-11 18:28:11.000000000 +0300 +++ gawk-3.1.6/FUTURES 2007-01-23 20:30:21.000000000 +0200 @@ -1,3 +1,9 @@ + Copyright (C) 2005, 2006 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. + This file lists future projects and enhancements for gawk. Items are listed in roughly the order they will be done for a given release. This file is mainly for use by the developers to help keep themselves on track, please @@ -40,13 +46,15 @@ Make POSIX 2001 behavior the default for sub/gsub. + Add IPv6 support. + + Add an optional base to strtonum, allowing 2-36. + Simplify awk.h. Consider moving var_value info into Node_var itself to reduce memory usage. - Add IPv6 support. - Look at ISO C 99 printf features. Consider integrating Fred Fish's DBUG library into gawk. diff -urN gawk-3.1.5/INSTALL gawk-3.1.6/INSTALL --- gawk-3.1.5/INSTALL 2005-05-11 18:28:11.000000000 +0300 +++ gawk-3.1.6/INSTALL 2007-01-12 12:20:37.000000000 +0200 @@ -1,8 +1,8 @@ Installation Instructions ************************* -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free -Software Foundation, Inc. +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, +2006 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. @@ -10,7 +10,10 @@ Basic Installation ================== -These are generic installation instructions. +Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses @@ -23,9 +26,9 @@ It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is +the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale -cache files.) +cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail @@ -35,20 +38,17 @@ may remove or edit it. The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. + `./configure' to configure the package for your system. - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. 2. Type `make' to compile the package. @@ -78,7 +78,7 @@ by setting variables in the command line or in the environment. Here is an example: - ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix + ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. @@ -87,31 +87,29 @@ You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the +own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. - If you have to use a `make' that does not support the `VPATH' -variable, you have to compile the package for one architecture at a -time in the source code directory. After you have installed the -package for one architecture, use `make distclean' before reconfiguring -for another architecture. + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. Installation Names ================== -By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PREFIX'. +By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PREFIX', the package will -use PREFIX as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular @@ -159,7 +157,7 @@ need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should -use the `--target=TYPE' option to select the type of system they will +use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a @@ -190,12 +188,12 @@ ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is -overridden in the site shell script). Here is a another example: +overridden in the site shell script). - /bin/bash ./configure CONFIG_SHELL=/bin/bash +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: -Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent -configuration-related scripts to be executed by `/bin/bash'. + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== diff -urN gawk-3.1.5/LIMITATIONS gawk-3.1.6/LIMITATIONS --- gawk-3.1.5/LIMITATIONS 2005-05-11 18:28:11.000000000 +0300 +++ gawk-3.1.6/LIMITATIONS 2006-08-28 21:16:36.000000000 +0300 @@ -1,3 +1,9 @@ + Copyright (C) 2005, 2006 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. + This file describes limits of gawk on a Unix system (although it is variable even then). Non-Unix systems may have other limits. diff -urN gawk-3.1.5/Makefile.am gawk-3.1.6/Makefile.am --- gawk-3.1.5/Makefile.am 2005-05-11 18:28:11.000000000 +0300 +++ gawk-3.1.6/Makefile.am 2007-10-14 23:19:49.000000000 +0200 @@ -1,14 +1,14 @@ # # Makefile.am --- automake input file for gawk # -# Copyright (C) 2000-2005 the Free Software Foundation, Inc. +# Copyright (C) 2000-2007 the Free Software Foundation, Inc. # # This file is part of GAWK, the GNU implementation of the # AWK Programming Language. # # GAWK is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # GAWK is distributed in the hope that it will be useful, @@ -24,7 +24,7 @@ ## process this file with automake to produce Makefile.in # Automatic de-ANSI-fication if needed, make .bz2 files also. -AUTOMAKE_OPTIONS = ansi2knr dist-bzip2 +AUTOMAKE_OPTIONS = dist-bzip2 # This undocumented variable insures that aclocal runs # correctly after changing configure.ac @@ -88,6 +88,7 @@ dfa.h \ ext.c \ field.c \ + floatcomp.c \ gawkmisc.c \ getopt.c \ getopt.h \ @@ -128,15 +129,11 @@ # Get rid of core files when cleaning CLEANFILES = core core.* -MAINTAINERCLEANFILES = version.c awkgram.c +MAINTAINERCLEANFILES = version.c # We want hard links for install-exec-hook, below LN= ln -SUFFIXES = .i -.c.i: - $(COMPILE) -E $< > $@ - # First, add a link from gawk to gawk-X.Y.Z. # Same for pgawk. # @@ -166,18 +163,27 @@ # FIXME: most of this rule should go away upon switching to libtool. dist-hook: cd $(distdir)/extension ; rm -f *.o *.so + cd $(distdir) ; find . -type d -name CVS | xargs rm -fr # Special rules for individual files awkgram.c: awkgram.y $(YACC) $(AM_YFLAGS) $(YFLAGS) $< - awk -f $(srcdir)/bisonfix.awk y.tab.c > $*.c && rm y.tab.c + $(AWK) -f $(srcdir)/bisonfix.awk y.tab.c > $*.c && rm y.tab.c if test -f y.tab.h; then \ if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \ else :; fi +version.c: config.status version.in + $(SHELL) ./config.status --file=version.c:version.in + # This is for my development & testing. efence: gawk $(CC) $(LDFLAGS) -o gawk $$(ls *.o | grep -v '_p.o$$') $(LIBS) -lefence -diffout: - @$(MAKE) -C test $@ +diffout valgrind-scan: + @cd test && $(MAKE) $(AM_MAKEFLAGS) $@ + +valgrind: + cd test; rm -f log.[0-9]*; \ + make check AWK="valgrind --log-file=log ../gawk"; \ + make valgrind-scan diff -urN gawk-3.1.5/Makefile.in gawk-3.1.6/Makefile.in --- gawk-3.1.5/Makefile.in 2005-07-26 21:44:03.000000000 +0300 +++ gawk-3.1.6/Makefile.in 2007-10-22 08:52:01.000000000 +0200 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.5 from Makefile.am. +# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,14 +17,14 @@ # # Makefile.am --- automake input file for gawk # -# Copyright (C) 2000-2005 the Free Software Foundation, Inc. +# Copyright (C) 2000-2007 the Free Software Foundation, Inc. # # This file is part of GAWK, the GNU implementation of the # AWK Programming Language. # # GAWK is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # GAWK is distributed in the hope that it will be useful, @@ -37,16 +37,10 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # -SOURCES = $(gawk_SOURCES) $(pgawk_SOURCES) - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c @@ -60,55 +54,52 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -ANSI2KNR = @ANSI2KNR@ bin_PROGRAMS = gawk$(EXEEXT) pgawk$(EXEEXT) +subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/configh.in \ - $(srcdir)/version.in $(top_srcdir)/configure ABOUT-NLS AUTHORS \ - COPYING ChangeLog INSTALL NEWS ansi2knr.1 ansi2knr.c awkgram.c \ - config.guess config.rpath config.sub depcomp install-sh \ - missing mkinstalldirs ylwrap -subdir = . + $(top_srcdir)/configure ABOUT-NLS AUTHORS COPYING ChangeLog \ + INSTALL NEWS awkgram.c config.guess config.rpath config.sub \ + depcomp install-sh missing mkinstalldirs ylwrap ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/arch.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intmax_t.m4 $(top_srcdir)/m4/inttypes_h.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/longlong.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/socket.m4 \ - $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strtod.m4 \ + $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intmax_t.m4 \ + $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ + $(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/socket.m4 $(top_srcdir)/m4/stdint_h.m4 \ $(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno configure.status.lineno + configure.lineno config.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = version.c +CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(bindir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) -am__objects_1 = array$U.$(OBJEXT) awkgram$U.$(OBJEXT) \ - builtin$U.$(OBJEXT) dfa$U.$(OBJEXT) ext$U.$(OBJEXT) \ - field$U.$(OBJEXT) gawkmisc$U.$(OBJEXT) getopt$U.$(OBJEXT) \ - getopt1$U.$(OBJEXT) io$U.$(OBJEXT) main$U.$(OBJEXT) \ - msg$U.$(OBJEXT) node$U.$(OBJEXT) random$U.$(OBJEXT) \ - re$U.$(OBJEXT) regex$U.$(OBJEXT) replace$U.$(OBJEXT) \ - version$U.$(OBJEXT) -am_gawk_OBJECTS = $(am__objects_1) eval$U.$(OBJEXT) \ - profile$U.$(OBJEXT) +am__objects_1 = array.$(OBJEXT) awkgram.$(OBJEXT) builtin.$(OBJEXT) \ + dfa.$(OBJEXT) ext.$(OBJEXT) field.$(OBJEXT) \ + floatcomp.$(OBJEXT) gawkmisc.$(OBJEXT) getopt.$(OBJEXT) \ + getopt1.$(OBJEXT) io.$(OBJEXT) main.$(OBJEXT) msg.$(OBJEXT) \ + node.$(OBJEXT) random.$(OBJEXT) re.$(OBJEXT) regex.$(OBJEXT) \ + replace.$(OBJEXT) version.$(OBJEXT) +am_gawk_OBJECTS = $(am__objects_1) eval.$(OBJEXT) profile.$(OBJEXT) gawk_OBJECTS = $(am_gawk_OBJECTS) gawk_LDADD = $(LDADD) am__DEPENDENCIES_1 = gawk_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -am_pgawk_OBJECTS = $(am__objects_1) eval_p$U.$(OBJEXT) \ - profile_p$U.$(OBJEXT) +am_pgawk_OBJECTS = $(am__objects_1) eval_p.$(OBJEXT) \ + profile_p.$(OBJEXT) pgawk_OBJECTS = $(am_pgawk_OBJECTS) pgawk_LDADD = $(LDADD) pgawk_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -DEFAULT_INCLUDES = -I. -I$(srcdir) -I. +DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ @@ -121,10 +112,13 @@ DIST_SOURCES = $(gawk_SOURCES) $(pgawk_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ - install-exec-recursive install-info-recursive \ - install-recursive installcheck-recursive installdirs-recursive \ - pdf-recursive ps-recursive uninstall-info-recursive \ - uninstall-recursive + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) @@ -143,8 +137,6 @@ # Directory for gawk's data files. Automake supplies datadir. pkgdatadir = $(datadir)/awk ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -164,6 +156,9 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -180,8 +175,9 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ -MKINSTALLDIRS = @MKINSTALLDIRS@ +MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ @@ -201,12 +197,14 @@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ YACC = @YACC@ +YFLAGS = @YFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -218,31 +216,42 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ +builddir = @builddir@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ # Automatic de-ANSI-fication if needed, make .bz2 files also. -AUTOMAKE_OPTIONS = ansi2knr dist-bzip2 +AUTOMAKE_OPTIONS = dist-bzip2 # This undocumented variable insures that aclocal runs # correctly after changing configure.ac @@ -305,6 +314,7 @@ dfa.h \ ext.c \ field.c \ + floatcomp.c \ gawkmisc.c \ getopt.c \ getopt.h \ @@ -338,16 +348,15 @@ # Get rid of core files when cleaning CLEANFILES = core core.* -MAINTAINERCLEANFILES = version.c awkgram.c +MAINTAINERCLEANFILES = version.c # We want hard links for install-exec-hook, below LN = ln -SUFFIXES = .i all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: -.SUFFIXES: .i .c .o .obj .y +.SUFFIXES: .c .o .obj .y am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @@ -385,7 +394,7 @@ config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ - $(MAKE) stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/configh.in $(top_builddir)/config.status @@ -398,11 +407,9 @@ distclean-hdr: -rm -f config.h stamp-h1 -version.c: $(top_builddir)/config.status $(srcdir)/version.in - cd $(top_builddir) && $(SHELL) ./config.status $@ install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ @@ -425,116 +432,57 @@ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) gawk$(EXEEXT): $(gawk_OBJECTS) $(gawk_DEPENDENCIES) @rm -f gawk$(EXEEXT) - $(LINK) $(gawk_LDFLAGS) $(gawk_OBJECTS) $(gawk_LDADD) $(LIBS) + $(LINK) $(gawk_OBJECTS) $(gawk_LDADD) $(LIBS) pgawk$(EXEEXT): $(pgawk_OBJECTS) $(pgawk_DEPENDENCIES) @rm -f pgawk$(EXEEXT) - $(LINK) $(pgawk_LDFLAGS) $(pgawk_OBJECTS) $(pgawk_LDADD) $(LIBS) + $(LINK) $(pgawk_OBJECTS) $(pgawk_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c -ansi2knr: ansi2knr.$(OBJEXT) - $(LINK) ansi2knr.$(OBJEXT) $(LIBS) -ansi2knr.$(OBJEXT): $(CONFIG_HEADER) - -clean-krextra: - -rm -f ansi2knr - -mostlyclean-kr: - -test "$U" = "" || rm -f *_.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/array$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/awkgram$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/builtin$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dfa$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eval$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eval_p$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ext$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/field$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gawkmisc$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msg$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/node$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/profile$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/profile_p$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/random$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/re$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/replace$U.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version$U.Po@am__quote@ + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/array.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/awkgram.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/builtin.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dfa.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eval.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eval_p.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ext.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/field.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/floatcomp.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gawkmisc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msg.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/node.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/profile.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/profile_p.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/random.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/re.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/replace.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Po@am__quote@ .c.o: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` -array_.c: array.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/array.c; then echo $(srcdir)/array.c; else echo array.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -awkgram_.c: awkgram.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/awkgram.c; then echo $(srcdir)/awkgram.c; else echo awkgram.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -builtin_.c: builtin.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/builtin.c; then echo $(srcdir)/builtin.c; else echo builtin.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -dfa_.c: dfa.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/dfa.c; then echo $(srcdir)/dfa.c; else echo dfa.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -eval_.c: eval.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/eval.c; then echo $(srcdir)/eval.c; else echo eval.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -eval_p_.c: eval_p.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/eval_p.c; then echo $(srcdir)/eval_p.c; else echo eval_p.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -ext_.c: ext.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/ext.c; then echo $(srcdir)/ext.c; else echo ext.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -field_.c: field.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/field.c; then echo $(srcdir)/field.c; else echo field.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -gawkmisc_.c: gawkmisc.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/gawkmisc.c; then echo $(srcdir)/gawkmisc.c; else echo gawkmisc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -getopt_.c: getopt.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt.c; then echo $(srcdir)/getopt.c; else echo getopt.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -getopt1_.c: getopt1.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt1.c; then echo $(srcdir)/getopt1.c; else echo getopt1.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -io_.c: io.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/io.c; then echo $(srcdir)/io.c; else echo io.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -main_.c: main.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/main.c; then echo $(srcdir)/main.c; else echo main.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -msg_.c: msg.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/msg.c; then echo $(srcdir)/msg.c; else echo msg.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -node_.c: node.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/node.c; then echo $(srcdir)/node.c; else echo node.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -profile_.c: profile.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/profile.c; then echo $(srcdir)/profile.c; else echo profile.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -profile_p_.c: profile_p.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/profile_p.c; then echo $(srcdir)/profile_p.c; else echo profile_p.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -random_.c: random.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/random.c; then echo $(srcdir)/random.c; else echo random.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -re_.c: re.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/re.c; then echo $(srcdir)/re.c; else echo re.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -regex_.c: regex.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/regex.c; then echo $(srcdir)/regex.c; else echo regex.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -replace_.c: replace.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/replace.c; then echo $(srcdir)/replace.c; else echo replace.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -version_.c: version.c $(ANSI2KNR) - $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/version.c; then echo $(srcdir)/version.c; else echo version.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ -array_.$(OBJEXT) awkgram_.$(OBJEXT) builtin_.$(OBJEXT) dfa_.$(OBJEXT) \ -eval_.$(OBJEXT) eval_p_.$(OBJEXT) ext_.$(OBJEXT) field_.$(OBJEXT) \ -gawkmisc_.$(OBJEXT) getopt_.$(OBJEXT) getopt1_.$(OBJEXT) io_.$(OBJEXT) \ -main_.$(OBJEXT) msg_.$(OBJEXT) node_.$(OBJEXT) profile_.$(OBJEXT) \ -profile_p_.$(OBJEXT) random_.$(OBJEXT) re_.$(OBJEXT) regex_.$(OBJEXT) \ -replace_.$(OBJEXT) version_.$(OBJEXT) : $(ANSI2KNR) .y.c: - $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE) -uninstall-info-am: + $(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. @@ -567,8 +515,7 @@ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: +$(RECURSIVE_CLEAN_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ @@ -670,24 +617,22 @@ distdir: $(DISTFILES) $(am__remove_distdir) - mkdir $(distdir) - $(mkdir_p) $(distdir)/. $(distdir)/m4 $(distdir)/po - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ + test -d $(distdir) || mkdir $(distdir) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ @@ -701,7 +646,7 @@ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ - || $(mkdir_p) "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ @@ -709,6 +654,8 @@ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ distdir) \ || exit 1; \ fi; \ @@ -719,7 +666,7 @@ -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz @@ -794,7 +741,7 @@ $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ @@ -816,11 +763,11 @@ check-am: all-am $(MAKE) $(AM_MAKEFLAGS) check-local check: check-recursive -all-am: Makefile $(ANSI2KNR) $(PROGRAMS) config.h +all-am: Makefile $(PROGRAMS) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive @@ -851,7 +798,7 @@ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive -clean-am: clean-binPROGRAMS clean-generic clean-krextra mostlyclean-am +clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) @@ -872,14 +819,22 @@ install-data-am: +install-dvi: install-dvi-recursive + install-exec-am: install-binPROGRAMS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-exec-hook +install-html: install-html-recursive + install-info: install-info-recursive install-man: +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + installcheck-am: maintainer-clean: maintainer-clean-recursive @@ -891,7 +846,7 @@ mostlyclean: mostlyclean-recursive -mostlyclean-am: mostlyclean-compile mostlyclean-generic mostlyclean-kr +mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-recursive @@ -901,30 +856,29 @@ ps-am: -uninstall-am: uninstall-binPROGRAMS uninstall-info-am +uninstall-am: uninstall-binPROGRAMS -uninstall-info: uninstall-info-recursive +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-exec-am install-strip -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ - check-am check-local clean clean-binPROGRAMS clean-generic \ - clean-krextra clean-recursive ctags ctags-recursive dist \ +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am am--refresh check check-am check-local clean \ + clean-binPROGRAMS clean-generic ctags ctags-recursive dist \ dist-all dist-bzip2 dist-gzip dist-hook dist-shar dist-tarZ \ dist-zip distcheck distclean distclean-compile \ - distclean-generic distclean-hdr distclean-recursive \ - distclean-tags distcleancheck distdir distuninstallcheck dvi \ - dvi-am html html-am info info-am install install-am \ - install-binPROGRAMS install-data install-data-am install-exec \ - install-exec-am install-exec-hook install-info install-info-am \ - install-man install-strip installcheck installcheck-am \ - installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic maintainer-clean-recursive \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-kr mostlyclean-recursive pdf pdf-am ps ps-am tags \ - tags-recursive uninstall uninstall-am uninstall-binPROGRAMS \ - uninstall-info-am + distclean-generic distclean-hdr distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-binPROGRAMS install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-exec-hook install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am \ + uninstall-binPROGRAMS -.c.i: - $(COMPILE) -E $< > $@ # First, add a link from gawk to gawk-X.Y.Z. # Same for pgawk. @@ -955,21 +909,30 @@ # FIXME: most of this rule should go away upon switching to libtool. dist-hook: cd $(distdir)/extension ; rm -f *.o *.so + cd $(distdir) ; find . -type d -name CVS | xargs rm -fr # Special rules for individual files awkgram.c: awkgram.y $(YACC) $(AM_YFLAGS) $(YFLAGS) $< - awk -f $(srcdir)/bisonfix.awk y.tab.c > $*.c && rm y.tab.c + $(AWK) -f $(srcdir)/bisonfix.awk y.tab.c > $*.c && rm y.tab.c if test -f y.tab.h; then \ if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \ else :; fi +version.c: config.status version.in + $(SHELL) ./config.status --file=version.c:version.in + # This is for my development & testing. efence: gawk $(CC) $(LDFLAGS) -o gawk $$(ls *.o | grep -v '_p.o$$') $(LIBS) -lefence -diffout: - @$(MAKE) -C test $@ +diffout valgrind-scan: + @cd test && $(MAKE) $(AM_MAKEFLAGS) $@ + +valgrind: + cd test; rm -f log.[0-9]*; \ + make check AWK="valgrind --log-file=log ../gawk"; \ + make valgrind-scan # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff -urN gawk-3.1.5/NEWS gawk-3.1.6/NEWS --- gawk-3.1.5/NEWS 2005-07-26 21:32:22.000000000 +0300 +++ gawk-3.1.6/NEWS 2007-09-25 07:58:23.000000000 +0200 @@ -1,3 +1,87 @@ + Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005, 2006, 2007 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. + +Changes from 3.1.5 to 3.1.6 +--------------------------- + +1. `gawk 'program' /non/existant/file' no longer core dumps. + +2. Too many people the world over have complained about gawk's use of the + locale's decimal point for parsing input data instead of the traditional + period. So, even though gawk was being nicely standards-compliant, in + a Triumph For The Users, gawk now only uses the locale's decimal point + if --posix is supplied or if POSIXLY_CORRECT is set. It is the sincere + hope that this change will eliminate this FAQ from being asked. + +3. `gawk -v BINMODE=1 ...' works again. + +4. Internal file names like `/dev/user' now work again. (Note that these + file names are obsolete and will go away eventually.) + +5. Problems with wide strings in non "C" locales have been straightened + out everywhere. (At least, we think so.) + +6. Use of `ansi2knr' is no longer supported. Please use an ANSI C compiler. + +7. Updated to Autoconf 2.61, Automake 1.10, and Gettext 0.16.1. + +8. The getopt* and regex* files were synchronized with current GLIBC CVS. + See the ChangeLog for the versions and minor edits made. + +9. There are additional --lint-old warnings. + +10. Gawk now uses getaddrinfo(3) to look up names and IP addresses. This + allows the use of an IPv6 format address and paves the way for + eventual addition of `/inet6/...' and `/inet4/...' hostnames. + +11. We believe gawk to now be valgrind clean. At least when run against + the test suite. + +12. A number of issues dealing with the formatting and printing of very + large numbers in integer formats have been dealt with and fixed. + +13. Gawk now converts "+inf", "-inf", "+nan" and "-nan" into the corresponding + magic IEEE floating point values. Only those strings (case independent) + work. With --posix, gawk calls the system strtod directly. You asked + for it, you got it, you deal with it. + +14. Defining YYDEBUG enables the -D command line option. + +15. Gawk should now work out of the box on Tandem NSK/OSS systems. + +16. Lint messages rationalized: many more of the messages are now printed + only once, instead of every time they are encountered. + +17. The strftime() function now accepts an optional third argument, which + if non-zero or non-null, indicates that the time should be formatted + as UTC instead of as local time. + +18. The precedence of concatenation and `| getline' (in something like + "echo " "date" | getline stuff) has been reverted to the earlier + behavior and now once again matches Unix awk. + +19. New configure time flag --disable-directories-fatal which causes + gawk to silently skip directories on the command line. This behavior + is also enabled for --traditional, since it's what Unix awk does. + +20. A new option, --use-lc-numeric, forces use of the locale's decimal + point without the rest of the draconian restrictions imposed by + --posix. This softens somewhat the stance taken in item #2. + +21. Everything relevant has been updated to the GPL 3. + +22. Array growth should be faster now, at no cost in space. + +23. Lots more tests. + +24. One new translation. + +25. Various bugs fixed, see the ChangeLog for details. + Changes from 3.1.4 to 3.1.5 --------------------------- diff -urN gawk-3.1.5/POSIX.STD gawk-3.1.6/POSIX.STD --- gawk-3.1.5/POSIX.STD 2005-05-11 18:28:11.000000000 +0300 +++ gawk-3.1.6/POSIX.STD 2007-10-22 09:05:31.000000000 +0200 @@ -1,3 +1,66 @@ + Copyright (C) 1992, 1995, 1998, 2001, 2006, 2007 + Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. +-------------------------------------------------------------------------- +Mon May 7 14:38:32 IDT 2007 +============================ + +Thanks to Andrew Schorr for some of the wording here. + + +The Open Group awk specification says that a string value shall +be converted to a numeric value using the ISO C standard atof() +function. The awk spec is here: + + http://www.opengroup.org/onlinepubs/009695399/utilities/awk.html + +And the ISO C standard says that atof() shall work the same way +as strtod(), and strtod() must recognize the IEEE special values +for NaN (not-a-number) and Infinity. + + +As a result, more than one gawk user has come to the conclusion that +gawk is not standard compliant since it does not support converting +these special values. + +Similar reasoning has led other users to conclude that gawk must also +support input data in the format of C99-style hexadecimal floating point +numbers. + +I, Arnold Robbins, the gawk maintainer, feel that while these interpretations +of the standard can be made, they are _unintended_ side effects of the +change in the POSIX standard to refer to the ISO C99 standard everywhere. + +With resepct to hexadecimal floating point, historically, AWK has always +supported the input of only decimal numbers. Adding such a facility is +likely to break many programs, very badly, and is a very big departure +from historical practice. + +With respect to "NaN" and "Inf" values, many people point out that Unix +awk and mawk "support the standard" and print such values in their output. +This is _accidental_ support, since these programs are relying on the +system library version of strtod/atof to do the work. If compiled on a +system without such library support, those programs do NOT support the +special IEEE values. + +These special interpretations introduce a large departure from existing +practice: + + # Thanks to Brian Kernighan for this great example + $ nawk 'BEGIN { print "Nancy Reagan" + 0 }' + nan + +This is just plain wrong. String values with no leading digits must +continue to convert to numeric zero. + +The POSIX people have been asked to clarify these issues, and not recently, +but have not, to my knowledge, done so. Further discussion is provided +in the node "POSIX Floating Point Problems" in the gawk manual. + +---------- Stuff below this line is of historical interest only ---------- March 2001: It looks like the revised 1003.2 standard will actually follow the diff -urN gawk-3.1.5/PROBLEMS gawk-3.1.6/PROBLEMS --- gawk-3.1.5/PROBLEMS 2005-05-11 18:28:11.000000000 +0300 +++ gawk-3.1.6/PROBLEMS 2006-08-28 21:16:36.000000000 +0300 @@ -1,3 +1,9 @@ + Copyright (C) 2005, 2006 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. + This is a list of known problems in gawk 3.1. I don't know when this will be fixed, if ever. See also FUTURES and the gawk.texi doc for other things that need doing. diff -urN gawk-3.1.5/README gawk-3.1.6/README --- gawk-3.1.5/README 2005-07-26 21:39:08.000000000 +0300 +++ gawk-3.1.6/README 2007-06-04 01:10:57.000000000 +0300 @@ -1,17 +1,22 @@ + Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. + README: -This is GNU Awk 3.1.5. It is upwardly compatible with the Bell Labs +This is GNU Awk 3.1.6. It is upwardly compatible with the Bell Labs research version of awk. It is almost completely compliant with the -1993 POSIX 1003.2 standard for awk. (See the note below about POSIX.) +2004 POSIX 1003.1 standard for awk. (See the note below about POSIX.) This is a bug fix release. See NEWS and ChangeLog for details. Work to be done is described briefly in the FUTURES file. Changes in this version are summarized in the NEWS file. Please read the LIMITATIONS file. -Read the file POSIX.STD for a discussion of how the standard says -comparisons should be done vs. how they really should be done and how -gawk does them. +Read the file POSIX.STD for a discussion of issues where the standard +says one thing but gawk does something different. To format the documentation with TeX, use at least version 2000-10-27.17 of texinfo.tex. There is a usable copy of texinfo.tex in the doc directory. @@ -32,8 +37,8 @@ If you have a Windows32, MS-DOS or OS/2 system, use the stuff in the `pc' directory. Similarly, there is a separate directory for VMS. -Ports for the Atari and Tandem are supplied, but they are unsupported. -Thus, their code appears in the `unsupported' directory. +Ports for the Atari and old Tandem systems are supplied, but they are +unsupported. Thus, their code appears in the `unsupported' directory. Appendix B of ``GAWK: Effective Awk Programming'' discusses configuration in detail. The configuration process is based on GNU Autoconf and @@ -82,7 +87,7 @@ MS-DOS: Scott Deifik - scottd@amgen.com + scottd.mail@sbcglobal.net Darrel Hankerson hankedr@mail.auburn.edu @@ -97,6 +102,11 @@ Tandem: Stephen Davies scldad@sdc.com.au + (Original Tandem port) + + Ralf Wildenhues + + POSIX-compliant Tandem systems VMS: Pat Rankin diff -urN gawk-3.1.5/README_d/OBSOLETE/README.FIRST gawk-3.1.6/README_d/OBSOLETE/README.FIRST --- gawk-3.1.5/README_d/OBSOLETE/README.FIRST 2005-05-11 18:28:11.000000000 +0300 +++ gawk-3.1.6/README_d/OBSOLETE/README.FIRST 2007-06-11 05:37:48.000000000 +0300 @@ -18,4 +18,4 @@ file, I will yell at you. Arnold Robbins -arnold@gnu.org +arnold@skeeve.com diff -urN gawk-3.1.5/README_d/OBSOLETE/README.linux gawk-3.1.6/README_d/OBSOLETE/README.linux --- gawk-3.1.5/README_d/OBSOLETE/README.linux 2005-05-11 18:28:11.000000000 +0300 +++ gawk-3.1.6/README_d/OBSOLETE/README.linux 2007-06-11 05:38:42.000000000 +0300 @@ -10,7 +10,7 @@ post-4.1 RedHat Linux. Arnold Robbins -arnold@gnu.org +arnold@skeeve.com Sun Aug 3 15:07:06 EDT 1997 @@ -18,4 +18,4 @@ completely interprets the special file names internally. Arnold Robbins -arnold@gnu.org +arnold@skeeve.com diff -urN gawk-3.1.5/README_d/OBSOLETE/README.sco gawk-3.1.6/README_d/OBSOLETE/README.sco --- gawk-3.1.5/README_d/OBSOLETE/README.sco 2005-05-11 18:28:11.000000000 +0300 +++ gawk-3.1.6/README_d/OBSOLETE/README.sco 2007-06-11 05:39:08.000000000 +0300 @@ -19,13 +19,12 @@ done your homework. Arnold Robbins -arnold@gnu.org +arnold@skeeve.com --------------------------- Date: 14 Oct 1997 12:17 +0000 From: Leigh Hebblethwaite To: bug-gnu-utils@prep.ai.mit.edu -To: arnold@gnu.org I've just built gawk 3.0.3 on my system and have experienced a problem with the routine pipeio2.awk in the test suite. However the problem diff -urN gawk-3.1.5/README_d/OBSOLETE/README.sony gawk-3.1.6/README_d/OBSOLETE/README.sony --- gawk-3.1.5/README_d/OBSOLETE/README.sony 2005-05-11 18:28:11.000000000 +0300 +++ gawk-3.1.6/README_d/OBSOLETE/README.sony 2007-06-11 05:39:31.000000000 +0300 @@ -9,4 +9,4 @@ has. See the README.ultrix file for details. Arnold Robbins -arnold@gnu.org +arnold@skeeve.com diff -urN gawk-3.1.5/README_d/OBSOLETE/README.yacc gawk-3.1.6/README_d/OBSOLETE/README.yacc --- gawk-3.1.5/README_d/OBSOLETE/README.yacc 2005-05-11 18:28:11.000000000 +0300 +++ gawk-3.1.6/README_d/OBSOLETE/README.yacc 2007-06-11 05:40:13.000000000 +0300 @@ -7,4 +7,4 @@ The problem goes away if you use either bison or Berkeley yacc. Arnold Robbins -arnold@gnu.org +arnold@skeeve.com diff -urN gawk-3.1.5/README_d/README.macos gawk-3.1.6/README_d/README.macos --- gawk-3.1.5/README_d/README.macos 2005-07-04 09:56:57.000000000 +0300 +++ gawk-3.1.6/README_d/README.macos 2007-06-11 05:37:32.000000000 +0300 @@ -1,3 +1,8 @@ +Mon Jun 11 05:37:03 IDT 2007 +============================ + +The notes below no longer seem to apply. + Mon Jul 4 09:55:22 IDT 2005 ============================ @@ -10,7 +15,6 @@ Happily, the default is for the multibyte support to be enabled, so all the tests pass by defualt. -The notes below no longer seem to apply. Sun Dec 3 18:11:09 IST 2000 ============================ @@ -25,4 +29,4 @@ done your homework. Arnold Robbins -arnold@gnu.org +arnold@skeeve.com diff -urN gawk-3.1.5/README_d/README.pc gawk-3.1.6/README_d/README.pc --- gawk-3.1.5/README_d/README.pc 2005-05-11 18:28:11.000000000 +0300 +++ gawk-3.1.6/README_d/README.pc 2006-08-24 19:22:40.000000000 +0300 @@ -364,7 +364,7 @@ If you have any problems with the DOS or OS/2 versions of Gawk, please send bug reports (along with the version and compiler used) to - Scott Deifik, scottd@amgen.com (DOS versions) + Scott Deifik, scottd.mail@sbcglobal.net (DOS versions) or gawk-maintainer@unixos2.org (OS/2 version) Darrel Hankerson, hankedr@mail.auburn.edu diff -urN gawk-3.1.5/README_d/README.sgi gawk-3.1.6/README_d/README.sgi --- gawk-3.1.5/README_d/README.sgi 2005-05-11 18:28:11.000000000 +0300 +++ gawk-3.1.6/README_d/README.sgi 2007-06-11 05:39:16.000000000 +0300 @@ -17,4 +17,4 @@ your homework! Arnold Robbins -arnold@gnu.org +arnold@skeeve.com diff -urN gawk-3.1.5/README_d/README.solaris gawk-3.1.6/README_d/README.solaris --- gawk-3.1.5/README_d/README.solaris 2005-05-11 18:28:11.000000000 +0300 +++ gawk-3.1.6/README_d/README.solaris 2007-06-11 05:39:28.000000000 +0300 @@ -37,7 +37,7 @@ This has been fixed in 3.1.0 with the bisonfix.sed script. Arnold Robbins -arnold@gnu.org +arnold@skeeve.com Solaris Problem #2: =================== @@ -51,7 +51,7 @@ IMHO this is Sun's problem, not mine. Arnold Robbins -arnold@gnu.org +arnold@skeeve.com Solution (a) to Problem #2: =========================== @@ -92,7 +92,7 @@ # IMHO this is Sun's problem, not mine. # # Arnold Robbins -# arnold@gnu.org +# arnold@skeeve.com # # Double check your settings with ulimit; I suspect that this is # your problem. diff -urN gawk-3.1.5/README_d/README.sunos4 gawk-3.1.6/README_d/README.sunos4 --- gawk-3.1.5/README_d/README.sunos4 2005-05-11 18:28:11.000000000 +0300 +++ gawk-3.1.6/README_d/README.sunos4 2007-06-11 05:39:49.000000000 +0300 @@ -8,7 +8,7 @@ fuss at you! Arnold Robbins -arnold@gnu.org +arnold@skeeve.com Tue Jan 30 07:01:39 EST 1996 diff -urN gawk-3.1.5/README_d/README.tests gawk-3.1.6/README_d/README.tests --- gawk-3.1.5/README_d/README.tests 2005-05-11 18:28:11.000000000 +0300 +++ gawk-3.1.6/README_d/README.tests 2007-06-11 05:39:59.000000000 +0300 @@ -1,6 +1,5 @@ Date: Sat, 22 Apr 2000 06:07:06 -0600 (MDT) From: "Nelson H. F. Beebe" -To: arnold@gnu.org Cc: beebe@math.utah.edu, sysstaff@math.utah.edu, othmer@math.utah.edu Subject: gawk-3.0.4 and a GNU/Linux gotcha diff -urN gawk-3.1.5/aclocal.m4 gawk-3.1.6/aclocal.m4 --- gawk-3.1.5/aclocal.m4 2005-07-26 21:43:58.000000000 +0300 +++ gawk-3.1.6/aclocal.m4 2007-10-22 08:51:54.000000000 +0200 @@ -1,7 +1,7 @@ -# generated automatically by aclocal 1.9.5 -*- Autoconf -*- +# generated automatically by aclocal 1.10 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005 Free Software Foundation, Inc. +# 2005, 2006 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -11,7 +11,12 @@ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. -# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. +m4_if(m4_PACKAGE_VERSION, [2.61],, +[m4_fatal([this file was generated for autoconf 2.61. +You have another version of autoconf. If you want to use that, +you should regenerate the build system entirely.], [63])]) + +# Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -21,14 +26,29 @@ # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. -AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.10' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.10], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- -# Call AM_AUTOMAKE_VERSION so it can be traced. +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.9.5])]) +[AM_AUTOMAKE_VERSION([1.10])dnl +_AM_AUTOCONF_VERSION(m4_PACKAGE_VERSION)]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- @@ -83,39 +103,16 @@ am_aux_dir=`cd $ac_aux_dir && pwd` ]) - -# Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -# This was merged into AC_PROG_CC in Autoconf. - -AU_DEFUN([AM_PROG_CC_STDC], -[AC_PROG_CC -AC_DIAGNOSE([obsolete], [$0: - your code should no longer depend upon `am_cv_prog_cc_stdc', but upon - `ac_cv_prog_cc_stdc'. Remove this warning and the assignment when - you adjust the code. You can also remove the above call to - AC_PROG_CC if you already called it elsewhere.]) -am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc -]) -AU_DEFUN([fp_PROG_CC_STDC]) - # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 7 +# serial 8 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- @@ -124,8 +121,10 @@ [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE]) -AC_SUBST([$1_FALSE]) +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl if $2; then $1_TRUE= $1_FALSE='#' @@ -139,15 +138,14 @@ Usually this means the macro was only invoked conditionally.]]) fi])]) - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 8 +# serial 9 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, @@ -175,6 +173,7 @@ ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) @@ -240,6 +239,7 @@ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then @@ -292,7 +292,8 @@ AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- @@ -317,8 +318,9 @@ # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue @@ -365,8 +367,8 @@ # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -389,16 +391,20 @@ # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.58])dnl +[AC_PREREQ([2.60])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl -# test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi fi # test whether we have cygpath @@ -418,6 +424,9 @@ AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl @@ -453,6 +462,10 @@ [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) ]) @@ -488,7 +501,7 @@ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -install_sh=${install_sh-"$am_aux_dir/install-sh"} +install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. @@ -566,14 +579,14 @@ # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 4 +# serial 5 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ @@ -589,6 +602,7 @@ # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then @@ -599,7 +613,7 @@ fi ]) -# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -607,60 +621,23 @@ # AM_PROG_MKDIR_P # --------------- -# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. -# -# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories -# created by `make install' are always world readable, even if the -# installer happens to have an overly restrictive umask (e.g. 077). -# This was a mistake. There are at least two reasons why we must not -# use `-m 0755': -# - it causes special bits like SGID to be ignored, -# - it may be too restrictive (some setups expect 775 directories). -# -# Do not use -m 0755 and let people choose whatever they expect by -# setting umask. -# -# We cannot accept any implementation of `mkdir' that recognizes `-p'. -# Some implementations (such as Solaris 8's) are not thread-safe: if a -# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' -# concurrently, both version can detect that a/ is missing, but only -# one can create it and the other will error out. Consequently we -# restrict ourselves to GNU make (using the --version option ensures -# this.) +# Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], -[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # We used to keeping the `.' as first argument, in order to - # allow $(mkdir_p) to be used without argument. As in - # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. However this is wrong - # for two reasons: - # 1. if the package is installed by a user who cannot write `.' - # make install will fail, - # 2. the above comment should most certainly read - # $(mkdir_p) $(DESTDIR)$(somedir) - # so it does not work when $(somedir) is undefined and - # $(DESTDIR) is not. - # To support the latter case, we have to write - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), - # so the `.' trick is pointless. - mkdir_p='mkdir -p --' -else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - for d in ./-p ./--version; - do - test -d $d && rmdir $d - done - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. - if test -f "$ac_aux_dir/mkinstalldirs"; then - mkdir_p='$(mkinstalldirs)' - else - mkdir_p='$(install_sh) -d' - fi -fi -AC_SUBST([mkdir_p])]) +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) # Helper functions for option handling. -*- Autoconf -*- @@ -695,14 +672,14 @@ AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2005 +# Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2005, 2006 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 4 +# serial 5 AC_DEFUN([AM_C_PROTOTYPES], [AC_REQUIRE([AC_C_PROTOTYPES]) @@ -713,9 +690,10 @@ fi # Ensure some checks needed by ansi2knr itself. AC_REQUIRE([AC_HEADER_STDC]) -AC_CHECK_HEADERS(string.h) -AC_SUBST(U)dnl -AC_SUBST(ANSI2KNR)dnl +AC_CHECK_HEADERS([string.h]) +AC_SUBST([U])dnl +AC_SUBST([ANSI2KNR])dnl +_AM_SUBST_NOTMAKE([ANSI2KNR])dnl ]) AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) @@ -797,9 +775,21 @@ if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) +# Copyright (C) 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputing VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. @@ -897,10 +887,13 @@ ]) # _AM_PROG_TAR m4_include([m4/arch.m4]) +m4_include([m4/codeset.m4]) m4_include([m4/gettext.m4]) m4_include([m4/iconv.m4]) m4_include([m4/intmax_t.m4]) m4_include([m4/inttypes_h.m4]) +m4_include([m4/isc-posix.m4]) +m4_include([m4/lcmessage.m4]) m4_include([m4/lib-ld.m4]) m4_include([m4/lib-link.m4]) m4_include([m4/lib-prefix.m4]) @@ -910,6 +903,5 @@ m4_include([m4/progtest.m4]) m4_include([m4/socket.m4]) m4_include([m4/stdint_h.m4]) -m4_include([m4/strtod.m4]) m4_include([m4/uintmax_t.m4]) m4_include([m4/ulonglong.m4]) diff -urN gawk-3.1.5/array.c gawk-3.1.6/array.c --- gawk-3.1.5/array.c 2005-07-26 21:07:43.000000000 +0300 +++ gawk-3.1.6/array.c 2007-09-22 22:08:36.000000000 +0200 @@ -3,14 +3,14 @@ */ /* - * Copyright (C) 1986, 1988, 1989, 1991-2005 the Free Software Foundation, Inc. + * Copyright (C) 1986, 1988, 1989, 1991-2007 the Free Software Foundation, Inc. * * This file is part of GAWK, the GNU implementation of the * AWK Programming Language. * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, @@ -45,11 +45,11 @@ static NODE *assoc_find P((NODE *symbol, NODE *subs, unsigned long hash1)); static void grow_table P((NODE *symbol)); -static unsigned long gst_hash_string P((const char *str, size_t len, unsigned long hsize)); +static unsigned long gst_hash_string P((const char *str, size_t len, unsigned long hsize, size_t *code)); static unsigned long scramble P((unsigned long x)); -static unsigned long awk_hash P((const char *s, size_t len, unsigned long hsize)); +static unsigned long awk_hash P((const char *s, size_t len, unsigned long hsize, size_t *code)); -unsigned long (*hash)P((const char *s, size_t len, unsigned long hsize)) = awk_hash; +unsigned long (*hash)P((const char *s, size_t len, unsigned long hsize, size_t *code)) = awk_hash; /* array_init --- possibly temporary function for experimentation purposes */ @@ -326,10 +326,10 @@ symbol->flags &= ~ARRAYMAXED; } -/* hash --- calculate the hash function of the string in subs */ +/* awk_hash --- calculate the hash function of the string in subs */ static unsigned long -awk_hash(register const char *s, register size_t len, unsigned long hsize) +awk_hash(register const char *s, register size_t len, unsigned long hsize, size_t *code) { register unsigned long h = 0; @@ -407,6 +407,8 @@ } } #endif /* ! VAXC */ + if (code != NULL) + *code = h; if (h >= hsize) h %= hsize; @@ -462,7 +464,7 @@ free_temp(subs); return NULL; } - hash1 = hash(subs->stptr, subs->stlen, (unsigned long) symbol->array_size); + hash1 = hash(subs->stptr, subs->stlen, (unsigned long) symbol->array_size, NULL); ret = assoc_find(symbol, subs, hash1); free_temp(subs); if (ret) @@ -485,6 +487,7 @@ { register unsigned long hash1; register NODE *bucket; + size_t code; assert(symbol->type == Node_var_array); @@ -495,10 +498,10 @@ symbol->flags &= ~ARRAYMAXED; grow_table(symbol); hash1 = hash(subs->stptr, subs->stlen, - (unsigned long) symbol->array_size); + (unsigned long) symbol->array_size, & code); } else { hash1 = hash(subs->stptr, subs->stlen, - (unsigned long) symbol->array_size); + (unsigned long) symbol->array_size, & code); bucket = assoc_find(symbol, subs, hash1); if (bucket != NULL) { free_temp(subs); @@ -523,8 +526,7 @@ && (symbol->table_size / symbol->array_size) > AVG_CHAIN_MAX) { grow_table(symbol); /* have to recompute hash value for new size */ - hash1 = hash(subs->stptr, subs->stlen, - (unsigned long) symbol->array_size); + hash1 = code % (unsigned long) symbol->array_size; } getnode(bucket); @@ -557,6 +559,7 @@ bucket->ahvalue = Nnull_string; bucket->ahnext = symbol->var_array[hash1]; + bucket->ahcode = code; symbol->var_array[hash1] = bucket; return &(bucket->ahvalue); } @@ -591,7 +594,7 @@ if (symbol->var_array != NULL) { hash1 = hash(subs->stptr, subs->stlen, - (unsigned long) symbol->array_size); + (unsigned long) symbol->array_size, NULL); last = NULL; for (bucket = symbol->var_array[hash1]; bucket != NULL; last = bucket, bucket = bucket->ahnext) { @@ -739,8 +742,7 @@ for (chain = old[k]; chain != NULL; chain = next) { next = chain->ahnext; - hash1 = hash(chain->ahname_str, - chain->ahname_len, newsize); + hash1 = chain->ahcode % newsize; /* remove from old list, add to new */ chain->ahnext = new[hash1]; @@ -992,6 +994,8 @@ char buf[100]; for (; list != NULL; list = next) { + size_t code; + next = list->ahnext; /* make an int out of i++ */ @@ -1005,7 +1009,8 @@ /* find the bucket where it belongs */ hash1 = hash(list->ahname_str, list->ahname_len, - symbol->array_size); + symbol->array_size, & code); + list->ahcode = code; /* link the node into the chain at that bucket */ list->ahnext = symbol->var_array[hash1]; @@ -1173,7 +1178,7 @@ */ static unsigned long -gst_hash_string(const char *str, size_t len, unsigned long hsize) +gst_hash_string(const char *str, size_t len, unsigned long hsize, size_t *code) { unsigned long hashVal = 1497032417; /* arbitrary value */ unsigned long ret; @@ -1185,6 +1190,10 @@ } ret = scramble(hashVal); + + if (code != NULL) + *code = ret; + if (ret >= hsize) ret %= hsize; diff -urN gawk-3.1.5/awk.h gawk-3.1.6/awk.h --- gawk-3.1.5/awk.h 2005-07-26 21:07:43.000000000 +0300 +++ gawk-3.1.6/awk.h 2007-09-30 21:50:43.000000000 +0200 @@ -3,14 +3,14 @@ */ /* - * Copyright (C) 1986, 1988, 1989, 1991-2005 the Free Software Foundation, Inc. + * Copyright (C) 1986, 1988, 1989, 1991-2007 the Free Software Foundation, Inc. * * This file is part of GAWK, the GNU implementation of the * AWK Programming Language. * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, @@ -41,6 +41,10 @@ #define _GNU_SOURCE 1 /* enable GNU extensions */ #endif /* _GNU_SOURCE */ +#if defined(_TANDEM_SOURCE) && ! defined(_SCO_DS) +#define _XOPEN_SOURCE_EXTENDED 1 +#endif + #include #include #ifdef HAVE_LIMITS_H @@ -60,6 +64,7 @@ #endif #if defined(HAVE_STDARG_H) && defined(__STDC__) && __STDC__ +#define CAN_USE_STDARG_H 1 #include #else #include @@ -88,6 +93,20 @@ #include #endif +#undef CHARBITS +#undef INTBITS +#if HAVE_INTTYPES_H +# include +#endif +#if HAVE_STDINT_H +# include +#endif + +#if defined(_MSC_VER) +/* for read()/close() in use replace.c */ +#include +#endif + /* ----------------- System dependencies (with more includes) -----------*/ /* This section is the messiest one in the file, not a lot that can be done */ @@ -193,6 +212,14 @@ #include #endif /* HAVE_UNISTD_H */ +#ifdef VMS +#include "vms/redirect.h" +#endif /*VMS*/ + +#ifdef atarist +#include "unsupported/atari/redirect.h" +#endif + #ifndef HAVE_VPRINTF /* if you don't have vprintf, try this and cross your fingers. */ #ifdef HAVE_DOPRNT @@ -203,6 +230,11 @@ #endif /* not HAVE_DOPRNT */ #endif /* HAVE_VPRINTF */ +#ifndef HAVE_SNPRINTF +/* will use replacement version */ +extern int snprintf P((char *restrict buf, size_t len, const char *restrict fmt, ...)); +#endif + #ifndef HAVE_SETLOCALE #define setlocale(locale, val) /* nothing */ #endif /* HAVE_SETLOCALE */ @@ -211,14 +243,6 @@ this is a hack but it gives us the right semantics */ #define lintwarn (*(set_loc(__FILE__, __LINE__),lintfunc)) -#ifdef VMS -#include "vms/redirect.h" -#endif /*VMS*/ - -#ifdef atarist -#include "unsupported/atari/redirect.h" -#endif - #define GNU_REGEX #ifdef GNU_REGEX #include "regex.h" @@ -241,7 +265,7 @@ #define RE_NO_BOL 2 /* for RS, not allowed to match ^ in regexp */ /* Stuff for losing systems. */ -#ifdef STRTOD_NOT_C89 +#if !defined(HAVE_STRTOD) extern double gawk_strtod(); #define strtod gawk_strtod #endif @@ -509,6 +533,7 @@ size_t length; struct exp_node *value; long ref; + size_t code; } hash; #define hnext sub.hash.next #define hname sub.hash.name @@ -520,6 +545,7 @@ #define ahname_len sub.hash.length #define ahvalue sub.hash.value #define ahname_ref sub.hash.ref +#define ahcode sub.hash.code } sub; NODETYPE type; unsigned short flags; @@ -741,6 +767,7 @@ extern int do_non_decimal_data; extern int do_dump_vars; extern int do_tidy_mem; +extern int use_lc_numeric; extern int in_begin_rule; extern int in_end_rule; extern int whiny_users; @@ -962,7 +989,7 @@ extern NODE *do_adump P((NODE *tree)); extern NODE *do_asort P((NODE *tree)); extern NODE *do_asorti P((NODE *tree)); -extern unsigned long (*hash)P((const char *s, size_t len, unsigned long hsize)); +extern unsigned long (*hash)P((const char *s, size_t len, unsigned long hsize, size_t *code)); /* awkgram.c */ extern char *tokexpand P((void)); extern NODE *node P((NODE *left, NODETYPE op, NODE *right)); @@ -1084,12 +1111,16 @@ extern size_t optimal_bufsize P((int fd, struct stat *sbuf)); extern int ispath P((const char *file)); extern int isdirpunct P((int c)); -#if defined(_MSC_VER) && !defined(_WIN32) + +#if HAVE_MEMCPY_ULONG extern char *memcpy_ulong P((char *dest, const char *src, unsigned long l)); -extern void *memset_ulong P((void *dest, int val, unsigned long l)); #define memcpy memcpy_ulong +#endif +#if HAVE_MEMSET_ULONG +extern void *memset_ulong P((void *dest, int val, unsigned long l)); #define memset memset_ulong #endif + /* io.c */ extern void register_open_hook P((void *(*open_func)(IOBUF *))); extern void set_FNR P((void)); @@ -1166,6 +1197,9 @@ #define force_wstring(n) str2wstr(n, NULL) extern const wchar_t *wstrstr P((const wchar_t *haystack, size_t hs_len, const wchar_t *needle, size_t needle_len)); extern const wchar_t *wcasestrstr P((const wchar_t *haystack, size_t hs_len, const wchar_t *needle, size_t needle_len)); +extern void free_wstr P((NODE *n)); +#else +#define free_wstr(NODE) /* empty */ #endif /* re.c */ extern Regexp *make_regexp P((const char *s, size_t len, int ignorecase, int dfa)); @@ -1181,6 +1215,20 @@ extern int remaybelong P((const char *text, size_t len)); extern int isnondecimal P((const char *str, int use_locale)); +/* floatcomp.c */ +#ifdef VMS /* VMS linker weirdness? */ +#define Ceil gawk_ceil +#define Floor gawk_floor +#endif + +extern AWKNUM Floor P((AWKNUM n)); +extern AWKNUM Ceil P((AWKNUM n)); +#ifdef HAVE_UINTMAX_T +extern uintmax_t adjust_uint P((uintmax_t n)); +#else +#define adjust_uint(n) (n) +#endif + /* strncasecmp.c */ #ifndef BROKEN_STRNCASECMP extern int strcasecmp P((const char *s1, const char *s2)); diff -urN gawk-3.1.5/awkgram.y gawk-3.1.6/awkgram.y --- gawk-3.1.5/awkgram.y 2005-07-26 21:07:43.000000000 +0300 +++ gawk-3.1.6/awkgram.y 2007-09-22 22:08:36.000000000 +0200 @@ -3,14 +3,14 @@ */ /* - * Copyright (C) 1986, 1988, 1989, 1991-2005 the Free Software Foundation, Inc. + * Copyright (C) 1986, 1988, 1989, 1991-2007 the Free Software Foundation, Inc. * * This file is part of GAWK, the GNU implementation of the * AWK Programming Language. * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, @@ -30,10 +30,14 @@ #include "awk.h" +#if defined(__STDC__) && __STDC__ < 1 /* VMS weirdness, maybe elsewhere */ +#define signed /**/ +#endif + #define CAN_FREE TRUE #define DONT_FREE FALSE -#if defined(HAVE_STDARG_H) && defined(__STDC__) && __STDC__ +#ifdef CAN_USE_STDARG_H static void yyerror(const char *m, ...) ATTRIBUTE_PRINTF_1; #else static void yyerror(); /* va_alist */ @@ -64,6 +68,9 @@ static void func_use P((const char *name, enum defref how)); static void check_funcs P((void)); +static ssize_t read_one_line P((int fd, void *buffer, size_t count)); +static int one_line_close P((int fd)); + static int want_regexp; /* lexical scanning kludge */ static int can_return; /* parsing kludge */ static int begin_or_end_rule = FALSE; /* parsing kludge */ @@ -118,15 +125,15 @@ %type function_prologue pattern action variable param_list %type exp common_exp -%type simp_exp non_post_simp_exp +%type simp_exp simp_exp_nc non_post_simp_exp %type expression_list opt_expression_list print_expression_list %type statements statement if_statement switch_body case_statements case_statement case_value opt_param_list %type simple_stmt opt_simple_stmt %type opt_exp opt_variable regexp -%type input_redir output_redir +%type input_redir output_redir field_spec %type print %type assign_operator a_relop relop_or_less -%type func_name +%type func_name opt_incdec %type lex_builtin %token FUNC_CALL NAME REGEXP @@ -242,11 +249,19 @@ } | LEX_BEGIN { + static int begin_seen = 0; + if (do_lint_old && ++begin_seen == 2) + warning(_("old awk does not support multiple `BEGIN' or `END' rules")); + begin_or_end_rule = TRUE; $$ = append_pattern(&begin_block, (NODE *) NULL); } | LEX_END { + static int end_seen = 0; + if (do_lint_old && ++end_seen == 2) + warning(_("old awk does not support multiple `BEGIN' or `END' rules")); + begin_or_end_rule = parsing_end_rule = TRUE; $$ = append_pattern(&end_block, (NODE *) NULL); } @@ -444,6 +459,8 @@ } | LEX_NEXTFILE statement_term { + static short warned = FALSE; + if (do_traditional) { /* * can't use yyerror, since may have overshot @@ -452,8 +469,10 @@ errcount++; error(_("`nextfile' is a gawk extension")); } - if (do_lint) + if (do_lint && ! warned) { + warned = TRUE; lintwarn(_("`nextfile' is a gawk extension")); + } if (begin_or_end_rule) { /* same thing */ errcount++; @@ -502,7 +521,7 @@ && $3->lnode->lnode->type == Node_val && $3->lnode->lnode->numbr == 0.0)) ) { - static int warned = FALSE; + static short warned = FALSE; $$ = node(NULL, Node_K_print_rec, $4); @@ -521,8 +540,12 @@ { $$ = node(variable($2, CAN_FREE, Node_var_array), Node_K_delete, $4); } | LEX_DELETE NAME { - if (do_lint) + static short warned = FALSE; + + if (do_lint && ! warned) { + warned = TRUE; lintwarn(_("`delete array' is a gawk extension")); + } if (do_traditional) { /* * can't use yyerror, since may have overshot @@ -535,9 +558,16 @@ } | LEX_DELETE '(' NAME ')' { - /* this is for tawk compatibility. maybe the warnings should always be done. */ - if (do_lint) + /* + * this is for tawk compatibility. maybe the warnings + * should always be done. + */ + static short warned = FALSE; + + if (do_lint && ! warned) { + warned = TRUE; lintwarn(_("`delete(array)' is a non-portable tawk extension")); + } if (do_traditional) { /* * can't use yyerror, since may have overshot @@ -805,7 +835,11 @@ $$ = node($1, $2, mk_rexp($3)); } | exp LEX_IN NAME - { $$ = node(variable($3, CAN_FREE, Node_var_array), Node_in_array, $1); } + { + if (do_lint_old) + warning(_("old awk does not support the keyword `in' except after `for'")); + $$ = node(variable($3, CAN_FREE, Node_var_array), Node_in_array, $1); + } | exp a_relop exp %prec RELOP { if (do_lint && $3->type == Node_regex) @@ -840,19 +874,9 @@ ; common_exp - : regexp + : simp_exp { $$ = $1; } - | '!' regexp %prec UNARY - { - $$ = node(node(make_number(0.0), - Node_field_spec, - (NODE *) NULL), - Node_nomatch, - $2); - } - | '(' expression_list r_paren LEX_IN NAME - { $$ = node(variable($5, CAN_FREE, Node_var_array), Node_in_array, $2); } - | simp_exp + | simp_exp_nc { $$ = $1; } | common_exp simp_exp %prec CONCAT_OP { $$ = node($1, Node_concat, $2); } @@ -879,19 +903,46 @@ lintwarn(_("non-redirected `getline' undefined inside END action")); $$ = node($2, Node_K_getline, $3); } - | simp_exp IO_IN LEX_GETLINE opt_variable - { - $$ = node($4, Node_K_getline, - node($1, $2, (NODE *) NULL)); - } | variable INCREMENT { $$ = node($1, Node_postincrement, (NODE *) NULL); } | variable DECREMENT { $$ = node($1, Node_postdecrement, (NODE *) NULL); } + | '(' expression_list r_paren LEX_IN NAME + { + if (do_lint_old) { + warning(_("old awk does not support the keyword `in' except after `for'")); + warning(_("old awk does not support multidimensional arrays")); + } + $$ = node(variable($5, CAN_FREE, Node_var_array), Node_in_array, $2); + } + ; + +/* Expressions containing "| getline" lose the ability to be on the + right-hand side of a concatenation. */ +simp_exp_nc + : common_exp IO_IN LEX_GETLINE opt_variable + { + $$ = node($4, Node_K_getline, + node($1, $2, (NODE *) NULL)); + } + | simp_exp_nc '^' simp_exp + { $$ = node($1, Node_exp, $3); } + | simp_exp_nc '*' simp_exp + { $$ = node($1, Node_times, $3); } + | simp_exp_nc '/' simp_exp + { $$ = node($1, Node_quotient, $3); } + | simp_exp_nc '%' simp_exp + { $$ = node($1, Node_mod, $3); } + | simp_exp_nc '+' simp_exp + { $$ = node($1, Node_plus, $3); } + | simp_exp_nc '-' simp_exp + { $$ = node($1, Node_minus, $3); } ; non_post_simp_exp - : '!' simp_exp %prec UNARY + : regexp + { $$ = $1; } + | '!' simp_exp %prec UNARY { $$ = node($2, Node_not, (NODE *) NULL); } | '(' exp r_paren { $$ = $2; } @@ -902,11 +953,17 @@ { $$ = snode($3, Node_builtin, (int) $1); } | LEX_LENGTH { - if (do_lint) + static short warned1 = FALSE, warned2 = FALSE; + + if (do_lint && ! warned1) { + warned1 = TRUE; lintwarn(_("call of `length' without parentheses is not portable")); + } $$ = snode((NODE *) NULL, Node_builtin, (int) $1); - if (do_posix) + if (do_posix && ! warned2) { + warned2 = TRUE; warning(_("call of `length' without parentheses is deprecated by POSIX")); + } } | FUNC_CALL '(' opt_expression_list r_paren { @@ -958,9 +1015,10 @@ { NODE *n; - if ((n = lookup($1)) != NULL && ! isarray(n)) + if ((n = lookup($1)) != NULL && ! isarray(n)) { yyerror(_("use of non-array as array")); - else if ($3 == NULL) { + $$ = node(variable($1, CAN_FREE, Node_var_array), Node_subscript, $3); + } else if ($3 == NULL) { fatal(_("invalid subscript expression")); } else if ($3->rnode == NULL) { $$ = node(variable($1, CAN_FREE, Node_var_array), Node_subscript, $3->lnode); @@ -968,8 +1026,7 @@ } else $$ = node(variable($1, CAN_FREE, Node_var_array), Node_subscript, $3); } - | '$' non_post_simp_exp - { $$ = node($2, Node_field_spec, (NODE *) NULL); } + | field_spec { $$ = $1; } /* #if 0 | lex_builtin @@ -978,6 +1035,27 @@ */ ; +field_spec + : '$' non_post_simp_exp opt_incdec + { + NODE *n = node($2, Node_field_spec, (NODE *) NULL); + if ($3 != NULL) { + if ($3[0] == '+') + $$ = node(n, Node_postincrement, (NODE *) NULL); + else + $$ = node(n, Node_postdecrement, (NODE *) NULL); + } else { + $$ = n; + } + } + ; + +opt_incdec + : INCREMENT { $$ = "+"; } + | DECREMENT { $$ = "-"; } + | /* empty */ { $$ = NULL; } + ; + l_brace : '{' opt_nls ; @@ -1088,7 +1166,7 @@ #if defined(GAWKDEBUG) || defined(ARRAYDEBUG) /* || ... */ {"stopme", Node_builtin, LEX_BUILTIN, GAWKX|A(0), stopme}, #endif -{"strftime", Node_builtin, LEX_BUILTIN, GAWKX|A(0)|A(1)|A(2), do_strftime}, +{"strftime", Node_builtin, LEX_BUILTIN, GAWKX|A(0)|A(1)|A(2)|A(3), do_strftime}, {"strtonum", Node_builtin, LEX_BUILTIN, GAWKX|A(1), do_strtonum}, {"sub", Node_builtin, LEX_BUILTIN, NOT_OLD|A(2)|A(3), do_sub}, {"substr", Node_builtin, LEX_BUILTIN, A(2)|A(3), do_substr}, @@ -1144,7 +1222,7 @@ */ static void -#if defined(HAVE_STDARG_H) && defined(__STDC__) && __STDC__ +#ifdef CAN_USE_STDARG_H yyerror(const char *m, ...) #else /* VARARGS0 */ @@ -1199,7 +1277,7 @@ *bp = save; -#if defined(HAVE_STDARG_H) && defined(__STDC__) && __STDC__ +#ifdef CAN_USE_STDARG_H va_start(args, m); if (mesg == NULL) mesg = m; @@ -1240,6 +1318,14 @@ static size_t buflen = 0; static int fd; + /* + * No argument prototype on readfunc on purpose, + * avoids problems with some ancient systems where + * the types of arguments to read() aren't up to date. + */ + static ssize_t (*readfunc)() = 0; + static int (*closefunc)P((int fd)) = NULL; + int n; register char *scan; int newfile; @@ -1248,6 +1334,19 @@ int l; char *readloc; + if (readfunc == NULL) { + char *cp = getenv("AWKREADFUNC"); + + /* If necessary, one day, test value for different functions. */ + if (cp == NULL) { + readfunc = read; + closefunc = close; + } else { + readfunc = read_one_line; + closefunc = one_line_close; + } + } + again: newfile = FALSE; if (nextfile > numfiles) @@ -1260,7 +1359,7 @@ * gawk '' /path/name * Sigh. */ - static int warned = FALSE; + static short warned = FALSE; if (do_lint && ! warned) { warned = TRUE; @@ -1272,6 +1371,7 @@ if (srcfiles[nextfile].val[l-1] == '\n') { /* has terminating newline, can use it directly */ sourceline = 1; + source = NULL; lexptr = lexptr_begin = srcfiles[nextfile].val; /* fall through to pointer adjustment and return, below */ } else { @@ -1293,6 +1393,8 @@ buf[++l] = '\0'; /* set vars and return */ + sourceline = 0; + source = NULL; lexptr = lexptr_begin = buf; } lexend = lexptr + l; @@ -1366,12 +1468,33 @@ } } - if (scan <= buf) { + /* + * This condition can be read as follows: IF + * 1. The beginning of the line is at the beginning of the + * buffer (no newline was found: scan <= buf) + * AND: + * 2. The start of valid lexical data is into the buffer + * (lexptr_begin > buf) + * OR: + * 3. We have scanned past the end of the last data read + * (lexptr == lexend) + * AND: + * 4. There's no room left in the buffer + * (lexptr_offset >= buflen - 2) + * + * If all that's true, grow the buffer to add more to + * the current line. + */ + + if (scan <= buf + && (lexptr_begin > buf + || (lexptr == lexend + && lexptr_offset >= buflen - 2))) { /* have to grow the buffer */ buflen *= 2; erealloc(buf, char *, buflen, "get_src_buf"); - } else { - /* shift things down */ + } else if (scan > buf) { + /* Line starts in middle of the buffer, shift things down. */ memmove(buf, scan, lexend - scan); /* * make offsets relative to start of line, @@ -1392,13 +1515,13 @@ } /* add more data to buffer */ - n = read(fd, readloc, readcount); + n = (*readfunc)(fd, readloc, readcount); if (n == -1) fatal(_("can't read sourcefile `%s' (%s)"), source, strerror(errno)); if (n == 0) { if (newfile) { - static int warned = FALSE; + static short warned = FALSE; if (do_lint && ! warned) { warned = TRUE; @@ -1406,7 +1529,7 @@ } } if (fd != fileno(stdin)) /* safety */ - close(fd); + (*closefunc)(fd); samefile = FALSE; nextfile++; goto again; @@ -1585,7 +1708,8 @@ int mid; static int did_newline = FALSE; char *tokkey; - static int lasttok = 0, eof_warned = FALSE; + static int lasttok = 0; + static short eof_warned = FALSE; int inhex = FALSE; int intlstr = FALSE; @@ -1757,9 +1881,13 @@ while ((c = nextc()) == ' ' || c == '\t' || c == '\r') continue; if (c == '#') { - if (do_lint) + static short warned = FALSE; + + if (do_lint && ! warned) { + warned = TRUE; lintwarn( _("use of `\\ #...' line continuation is not portable")); + } while ((c = nextc()) != '\n') if (c == EOF) break; @@ -2399,7 +2527,8 @@ r->subnode = subn; if (r->builtin == do_sprintf) { count_args(r); - r->lnode->printf_count = r->printf_count; /* hack */ + if (r->lnode != NULL) /* r->lnode set from subn. guard against syntax errors & check it's valid */ + r->lnode->printf_count = r->printf_count; /* hack */ } return r; } @@ -2519,7 +2648,7 @@ var_count++; len = strlen(name); - bucket = hash(name, len, (unsigned long) HASHSIZE); + bucket = hash(name, len, (unsigned long) HASHSIZE, NULL); getnode(hp); hp->type = Node_hashnode; hp->hnext = variables[bucket]; @@ -2540,7 +2669,7 @@ register size_t len; len = strlen(name); - for (bucket = variables[hash(name, len, (unsigned long) HASHSIZE)]; + for (bucket = variables[hash(name, len, (unsigned long) HASHSIZE, NULL)]; bucket != NULL; bucket = bucket->hnext) if (bucket->hlength == len && STREQN(bucket->hname, name, len)) return bucket->hvalue; @@ -2921,7 +3050,7 @@ name = np->param; len = strlen(name); - save = &(variables[hash(name, len, (unsigned long) HASHSIZE)]); + save = &(variables[hash(name, len, (unsigned long) HASHSIZE, NULL)]); for (bucket = *save; bucket != NULL; bucket = bucket->hnext) { if (len == bucket->hlength && STREQN(bucket->hname, name, len)) { var_count--; @@ -2982,7 +3111,7 @@ int ind; len = strlen(name); - ind = hash(name, len, HASHSIZE); + ind = hash(name, len, HASHSIZE, NULL); for (fp = ftable[ind]; fp != NULL; fp = fp->next) { if (strcmp(fp->name, name) == 0) { @@ -3371,3 +3500,49 @@ } return -1; } + +/* + * This provides a private version of functions that act like VMS's + * variable-length record filesystem, where there was a bug on + * certain source files. + */ + +static FILE *fp = NULL; + +/* read_one_line --- return one input line at a time. mainly for debugging. */ + +static ssize_t +read_one_line(int fd, void *buffer, size_t count) +{ + char buf[BUFSIZ]; + + /* Minor potential memory leak here. Too bad. */ + if (fp == NULL) { + fp = fdopen(fd, "r"); + if (fp == NULL) { + fprintf(stderr, "ugh. fdopen: %s\n", strerror(errno)); + exit(1); + } + } + + if (fgets(buf, sizeof buf, fp) == NULL) + return 0; + + memcpy(buffer, buf, strlen(buf)); + return strlen(buf); +} + +/* one_line_close --- close the open file being read with read_one_line() */ + +static int +one_line_close(int fd) +{ + int ret; + + if (fp == NULL || fd != fileno(fp)) + fatal("debugging read/close screwed up!"); + + ret = fclose(fp); + fp = NULL; + return ret; +} diff -urN gawk-3.1.5/awklib/ChangeLog gawk-3.1.6/awklib/ChangeLog --- gawk-3.1.5/awklib/ChangeLog 2005-07-26 21:46:39.000000000 +0300 +++ gawk-3.1.6/awklib/ChangeLog 2007-10-22 08:50:39.000000000 +0200 @@ -1,3 +1,24 @@ +Mon Oct 22 08:49:05 2007 Arnold D. Robbins + + * Release 3.1.6: Release tar file made. + +2007-05-25 Andreas Schwab + + * Makefile.am: Add missing dependencies on stamp-eg. + +Wed Mar 14 13:22:52 2007 Andrew J. Schorr + + * Makefile.am (AWKPROG): New macro to set locale sanely. + (stamp-eg): Use it instead of $AWK to do the extractions. + +Wed Mar 14 13:16:28 2007 Arnold D. Robbins + + * Makefile.am (clean-local): Remove `eg.old' also. + +Sat Jan 13 21:17:33 2007 Ralf Wildenhues + + * Makefile.am (stamp-eg): Allow rebuilding from a VPATH build. + Tue Jul 26 21:46:16 2005 Arnold D. Robbins * Release 3.1.5: Release tar file made. diff -urN gawk-3.1.5/awklib/Makefile.am gawk-3.1.6/awklib/Makefile.am --- gawk-3.1.5/awklib/Makefile.am 2005-06-20 23:20:02.000000000 +0300 +++ gawk-3.1.6/awklib/Makefile.am 2007-08-11 22:39:49.000000000 +0300 @@ -1,14 +1,14 @@ # # awklib/Makefile.am --- automake input file for gawk # -# Copyright (C) 1995-2005 the Free Software Foundation, Inc. +# Copyright (C) 1995-2006 the Free Software Foundation, Inc. # # This file is part of GAWK, the GNU implementation of the # AWK Programming Language. # # GAWK is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # GAWK is distributed in the hope that it will be useful, @@ -23,7 +23,10 @@ ## process this file with automake to produce Makefile.in -EXTRA_DIST = ChangeLog extract.awk eg stamp-eg +EXTRA_DIST = ChangeLog extract.awk eg $(srcdir)/stamp-eg +# With some locales, the script extract.awk fails. +# So we fix the locale to some sensible value. +AWKPROG = LC_ALL=C LANG=C ../gawk$(EXEEXT) # Get config.h from the build directory and custom.h from the source directory. AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) @@ -37,7 +40,7 @@ nodist_grcat_SOURCES = grcat.c nodist_pwcat_SOURCES = pwcat.c -all: stamp-eg $(AUXPROGS) igawk $(AUXAWK) +all: $(srcdir)/stamp-eg $(AUXPROGS) igawk $(AUXAWK) install-exec-hook: $(AUXAWK) $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) @@ -53,12 +56,27 @@ clean-local: rm -f $(AUXAWK) igawk *.exe + rm -fr eg.old -stamp-eg: $(srcdir)/../doc/gawk.texi $(srcdir)/../doc/gawkinet.texi - rm -fr eg stamp-eg - $(AWK) -f $(srcdir)/extract.awk $(srcdir)/../doc/gawk.texi $(srcdir)/../doc/gawkinet.texi - @echo 'some makes are stupid and will not check a directory' > stamp-eg - @echo 'against a file, so this file is a place holder. gack.' >> stamp-eg +$(srcdir)/stamp-eg: $(srcdir)/../doc/gawk.texi $(srcdir)/../doc/gawkinet.texi + cd $(srcdir) && \ + mv eg eg.old && \ + rm -fr stamp-eg && \ + $(AWKPROG) -f extract.awk ../doc/gawk.texi ../doc/gawkinet.texi + @echo 'some makes are stupid and will not check a directory' > $(srcdir)/stamp-eg + @echo 'against a file, so this file is a place holder. gack.' >> $(srcdir)/stamp-eg + cd $(srcdir) && \ + if [ -d eg.old ] && [ -d eg.old/CVS ] ; then \ + mv eg.old/CVS eg ; \ + mv eg.old/data/CVS eg/data ; \ + mv eg.old/lib/CVS eg/lib ; \ + mv eg.old/misc/CVS eg/misc ; \ + mv eg.old/network/CVS eg/network ; \ + mv eg.old/prog/CVS eg/prog ; \ + rm -fr eg.old ; fi + +$(srcdir)/eg/lib/pwcat.c $(srcdir)/eg/lib/grcat.c $(srcdir)/eg/prog/igawk.sh \ +$(srcdir)/eg/lib/passwdawk.in $(srcdir)/eg/lib/groupawk.in: stamp-eg; @: pwcat$(EXEEXT): $(srcdir)/eg/lib/pwcat.c $(COMPILE) $(srcdir)/eg/lib/pwcat.c $(LDFLAGS) -o $@ diff -urN gawk-3.1.5/awklib/Makefile.in gawk-3.1.6/awklib/Makefile.in --- gawk-3.1.5/awklib/Makefile.in 2005-07-26 21:44:01.000000000 +0300 +++ gawk-3.1.6/awklib/Makefile.in 2007-10-22 08:52:00.000000000 +0200 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.5 from Makefile.am. +# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,14 +17,14 @@ # # awklib/Makefile.am --- automake input file for gawk # -# Copyright (C) 1995-2005 the Free Software Foundation, Inc. +# Copyright (C) 1995-2006 the Free Software Foundation, Inc. # # This file is part of GAWK, the GNU implementation of the # AWK Programming Language. # # GAWK is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # GAWK is distributed in the hope that it will be useful, @@ -38,16 +38,10 @@ # -SOURCES = $(nodist_grcat_SOURCES) $(nodist_pwcat_SOURCES) - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c @@ -66,13 +60,14 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/arch.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intmax_t.m4 $(top_srcdir)/m4/inttypes_h.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/longlong.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/socket.m4 \ - $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strtod.m4 \ + $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intmax_t.m4 \ + $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ + $(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/socket.m4 $(top_srcdir)/m4/stdint_h.m4 \ $(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -91,7 +86,7 @@ pwcat_LDADD = $(LDADD) binSCRIPT_INSTALL = $(INSTALL_SCRIPT) SCRIPTS = $(bin_SCRIPTS) -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) +DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ @@ -105,8 +100,6 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) pkgdatadir = $(datadir)/awk ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -126,6 +119,9 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -142,8 +138,9 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ -MKINSTALLDIRS = @MKINSTALLDIRS@ +MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ @@ -163,12 +160,14 @@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ YACC = @YACC@ +YFLAGS = @YFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -180,29 +179,43 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ +builddir = @builddir@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ -EXTRA_DIST = ChangeLog extract.awk eg stamp-eg +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = ChangeLog extract.awk eg $(srcdir)/stamp-eg +# With some locales, the script extract.awk fails. +# So we fix the locale to some sensible value. +AWKPROG = LC_ALL=C LANG=C ../gawk$(EXEEXT) # Get config.h from the build directory and custom.h from the source directory. AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir) @@ -246,7 +259,7 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh install-pkglibexecPROGRAMS: $(pkglibexec_PROGRAMS) @$(NORMAL_INSTALL) - test -z "$(pkglibexecdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibexecdir)" + test -z "$(pkglibexecdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibexecdir)" @list='$(pkglibexec_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ @@ -269,7 +282,7 @@ -test -z "$(pkglibexec_PROGRAMS)" || rm -f $(pkglibexec_PROGRAMS) install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_SCRIPTS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f $$d$$p; then \ @@ -297,19 +310,18 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pwcat.Po@am__quote@ .c.o: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` -uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ @@ -360,22 +372,21 @@ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ @@ -391,7 +402,7 @@ all-am: Makefile $(PROGRAMS) $(SCRIPTS) installdirs: for dir in "$(DESTDIR)$(pkglibexecdir)" "$(DESTDIR)$(bindir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am @@ -440,14 +451,22 @@ install-data-am: +install-dvi: install-dvi-am + install-exec-am: install-binSCRIPTS install-pkglibexecPROGRAMS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-exec-hook +install-html: install-html-am + install-info: install-info-am install-man: +install-pdf: install-pdf-am + +install-ps: install-ps-am + installcheck-am: maintainer-clean: maintainer-clean-am @@ -467,24 +486,28 @@ ps-am: -uninstall-am: uninstall-binSCRIPTS uninstall-info-am uninstall-local \ +uninstall-am: uninstall-binSCRIPTS uninstall-local \ uninstall-pkglibexecPROGRAMS +.MAKE: install-am install-exec-am install-strip + .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-local clean-pkglibexecPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ - install-binSCRIPTS install-data install-data-am install-exec \ - install-exec-am install-exec-hook install-info install-info-am \ - install-man install-pkglibexecPROGRAMS install-strip \ - installcheck installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-binSCRIPTS uninstall-info-am \ + install-binSCRIPTS install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-exec-hook \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am \ + install-pkglibexecPROGRAMS install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-binSCRIPTS \ uninstall-local uninstall-pkglibexecPROGRAMS -all: stamp-eg $(AUXPROGS) igawk $(AUXAWK) +all: $(srcdir)/stamp-eg $(AUXPROGS) igawk $(AUXAWK) install-exec-hook: $(AUXAWK) $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) @@ -500,12 +523,27 @@ clean-local: rm -f $(AUXAWK) igawk *.exe + rm -fr eg.old + +$(srcdir)/stamp-eg: $(srcdir)/../doc/gawk.texi $(srcdir)/../doc/gawkinet.texi + cd $(srcdir) && \ + mv eg eg.old && \ + rm -fr stamp-eg && \ + $(AWKPROG) -f extract.awk ../doc/gawk.texi ../doc/gawkinet.texi + @echo 'some makes are stupid and will not check a directory' > $(srcdir)/stamp-eg + @echo 'against a file, so this file is a place holder. gack.' >> $(srcdir)/stamp-eg + cd $(srcdir) && \ + if [ -d eg.old ] && [ -d eg.old/CVS ] ; then \ + mv eg.old/CVS eg ; \ + mv eg.old/data/CVS eg/data ; \ + mv eg.old/lib/CVS eg/lib ; \ + mv eg.old/misc/CVS eg/misc ; \ + mv eg.old/network/CVS eg/network ; \ + mv eg.old/prog/CVS eg/prog ; \ + rm -fr eg.old ; fi -stamp-eg: $(srcdir)/../doc/gawk.texi $(srcdir)/../doc/gawkinet.texi - rm -fr eg stamp-eg - $(AWK) -f $(srcdir)/extract.awk $(srcdir)/../doc/gawk.texi $(srcdir)/../doc/gawkinet.texi - @echo 'some makes are stupid and will not check a directory' > stamp-eg - @echo 'against a file, so this file is a place holder. gack.' >> stamp-eg +$(srcdir)/eg/lib/pwcat.c $(srcdir)/eg/lib/grcat.c $(srcdir)/eg/prog/igawk.sh \ +$(srcdir)/eg/lib/passwdawk.in $(srcdir)/eg/lib/groupawk.in: stamp-eg; @: pwcat$(EXEEXT): $(srcdir)/eg/lib/pwcat.c $(COMPILE) $(srcdir)/eg/lib/pwcat.c $(LDFLAGS) -o $@ diff -urN gawk-3.1.5/bisonfix.awk gawk-3.1.6/bisonfix.awk --- gawk-3.1.5/bisonfix.awk 2005-05-11 18:28:14.000000000 +0300 +++ gawk-3.1.6/bisonfix.awk 2007-08-11 22:39:48.000000000 +0300 @@ -7,7 +7,7 @@ # # GAWK is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/builtin.c gawk-3.1.6/builtin.c --- gawk-3.1.5/builtin.c 2005-07-26 21:07:43.000000000 +0300 +++ gawk-3.1.6/builtin.c 2007-09-30 21:57:05.000000000 +0200 @@ -3,14 +3,14 @@ */ /* - * Copyright (C) 1986, 1988, 1989, 1991-2005 the Free Software Foundation, Inc. + * Copyright (C) 1986, 1988, 1989, 1991-2007 the Free Software Foundation, Inc. * * This file is part of GAWK, the GNU implementation of the * AWK Programming Language. * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, @@ -28,14 +28,6 @@ #if defined(HAVE_FCNTL_H) #include #endif -#undef CHARBITS -#undef INTBITS -#if HAVE_INTTYPES_H -# include -#endif -#if HAVE_STDINT_H -# include -#endif #include #include "random.h" @@ -73,22 +65,7 @@ static NODE *sub_common P((NODE *tree, long how_many, int backdigs)); -/* Assume IEEE-754 arithmetic on pre-C89 hosts. */ -#ifndef FLT_RADIX -#define FLT_RADIX 2 -#endif -#ifndef FLT_MANT_DIG -#define FLT_MANT_DIG 24 -#endif -#ifndef DBL_MANT_DIG -#define DBL_MANT_DIG 53 -#endif - #ifdef _CRAY -/* Work around a problem in conversion of doubles to exact integers. */ -#define Floor(n) floor((n) * (1.0 + DBL_EPSILON)) -#define Ceil(n) ceil((n) * (1.0 + DBL_EPSILON)) - /* Force the standard C compiler to use the library math functions. */ extern double exp(double); double (*Exp)() = exp; @@ -96,9 +73,6 @@ extern double log(double); double (*Log)() = log; #define log(x) (*Log)(x) -#else -#define Floor(n) floor(n) -#define Ceil(n) ceil(n) #endif #define DEFAULT_G_PRECISION 6 @@ -464,12 +438,15 @@ if (tree->lnode->type == Node_var_array || tree->lnode->type == Node_array_ref) { NODE *array_var = tree->lnode; + static short warned = FALSE; if (array_var->type == Node_array_ref) array_var = array_var->orig_array; - if (do_lint) + if (do_lint && ! warned) { + warned = TRUE; lintwarn(_("`length(array)' is a gawk extension")); + } if (do_posix) goto normal; /* will die as fatal error */ @@ -558,12 +535,13 @@ } /* Is there space for something L big in the buffer? */ -#define chksize(l) if ((l) > ofre) { \ +#define chksize(l) if ((l) >= ofre) { \ size_t olen = obufout - obuf; \ - erealloc(obuf, char *, osiz * 2, "format_tree"); \ + size_t delta = osiz+l-ofre; \ + erealloc(obuf, char *, osiz + delta, "format_tree"); \ obufout = obuf + olen; \ - ofre += osiz; \ - osiz *= 2; \ + ofre += delta; \ + osiz += delta; \ } static NODE **the_args = 0; @@ -593,8 +571,21 @@ uintmax_t uval; int sgn; int base = 0; - char cpbuf[30]; /* if we have numbers bigger than 30 */ - char *cend = &cpbuf[30];/* chars, we lose, but seems unlikely */ + /* + * Although this is an array, the elements serve two different + * purposes. The first element is the general buffer meant + * to hold the entire result string. The second one is a + * temporary buffer for large floating point values. They + * could just as easily be separate variables, and the + * code might arguably be clearer. + */ + struct { + char *buf; + size_t bufsize; + char stackbuf[30]; + } cpbufs[2]; +#define cpbuf cpbufs[0].buf + char *cend = &cpbufs[0].stackbuf[sizeof(cpbufs[0].stackbuf)]; char *cp; const char *fill; AWKNUM tmpval; @@ -603,6 +594,7 @@ int zero_flag = FALSE; int quote_flag = FALSE; int ii, jj; + char *chp; static const char sp[] = " "; static const char zero_string[] = "0"; static const char lchbuf[] = "0123456789abcdef"; @@ -614,6 +606,34 @@ osiz = INITIAL_OUT_SIZE; ofre = osiz - 2; + { + size_t k; + for (k = 0; k < sizeof(cpbufs)/sizeof(cpbufs[0]); k++) { + cpbufs[k].bufsize = sizeof(cpbufs[k].stackbuf); + cpbufs[k].buf = cpbufs[k].stackbuf; + } + } + + /* + * The point of this goop is to grow the buffer + * holding the converted number, so that large + * values don't overflow a fixed length buffer. + */ +#define PREPEND(CH) do { \ + if (cp == cpbufs[0].buf) { \ + char *prev = cpbufs[0].buf; \ + emalloc(cpbufs[0].buf, char *, 2*cpbufs[0].bufsize, \ + "format_tree"); \ + memcpy((cp = cpbufs[0].buf+cpbufs[0].bufsize), prev, \ + cpbufs[0].bufsize); \ + cpbufs[0].bufsize *= 2; \ + if (prev != cpbufs[0].stackbuf) \ + free(prev); \ + cend = cpbufs[0].buf+cpbufs[0].bufsize; \ + } \ + *--cp = (CH); \ +} while(0) + /* * Icky problem. If the args make a nested call to printf/sprintf, * we end up clobbering the static variable `the_args'. Not good. @@ -704,6 +724,7 @@ have_prec = FALSE; signchar = FALSE; zero_flag = FALSE; + quote_flag = FALSE; lj = alt = big = bigbig = small = FALSE; fill = sp; cp = cend; @@ -861,7 +882,7 @@ if (big) break; else { - static int warned = FALSE; + static short warned = FALSE; if (do_lint && ! warned) { lintwarn(_("`l' is meaningless in awk formats; ignored")); @@ -876,7 +897,7 @@ if (bigbig) break; else { - static int warned = FALSE; + static short warned = FALSE; if (do_lint && ! warned) { lintwarn(_("`L' is meaningless in awk formats; ignored")); @@ -891,7 +912,7 @@ if (small) break; else { - static int warned = FALSE; + static short warned = FALSE; if (do_lint && ! warned) { lintwarn(_("`h' is meaningless in awk formats; ignored")); @@ -946,6 +967,15 @@ need_format = FALSE; parse_next_arg(); tmpval = force_number(arg); + /* + * Check for Nan or Inf (without using isfinite(), + * since that may not be available on all platforms) + */ + if ((tmpval != tmpval) || + ((2*tmpval == tmpval) && (tmpval != 0))) + goto out_of_range; + else + tmpval = double_to_int(tmpval); /* * ``The result of converting a zero value with a @@ -955,25 +985,45 @@ goto pr_tail; if (tmpval < 0) { - if (tmpval < INTMAX_MIN) - goto out_of_range; + tmpval = -tmpval; sgn = TRUE; - uval = - (uintmax_t) (intmax_t) tmpval; } else { - /* Use !, so that NaNs are out of range. */ - if (! (tmpval <= UINTMAX_MAX)) - goto out_of_range; + if (tmpval == -0.0) + /* avoid printing -0 */ + tmpval = 0.0; sgn = FALSE; - uval = (uintmax_t) tmpval; } + /* + * Use snprintf return value to tell if there + * is enough room in the buffer or not. + */ + while ((i = snprintf(cpbufs[1].buf, + cpbufs[1].bufsize, "%.0f", + tmpval)) >= + cpbufs[1].bufsize) { + if (cpbufs[1].buf == cpbufs[1].stackbuf) + cpbufs[1].buf = NULL; + if (i > 0) { + cpbufs[1].bufsize += ((i > cpbufs[1].bufsize) ? + i : cpbufs[1].bufsize); + } + else + cpbufs[1].bufsize *= 2; + assert(cpbufs[1].bufsize > 0); + erealloc(cpbufs[1].buf, char *, + cpbufs[1].bufsize, "format_tree"); + } + if (i < 1) + goto out_of_range; + chp = &cpbufs[1].buf[i-1]; ii = jj = 0; do { - *--cp = (char) ('0' + uval % 10); - uval /= 10; + PREPEND(*chp); + chp--; i--; #if defined(HAVE_LOCALE_H) if (quote_flag && loc.grouping[ii] && ++jj == loc.grouping[ii]) { - if (uval) /* only add if more digits coming */ - *--cp = loc.thousands_sep[0]; /* XXX - assumption it's one char */ + if (i) /* only add if more digits coming */ + PREPEND(loc.thousands_sep[0]); /* XXX - assumption it's one char */ if (loc.grouping[ii+1] == 0) jj = 0; /* keep using current val in loc.grouping[ii] */ else if (loc.grouping[ii+1] == CHAR_MAX) @@ -984,18 +1034,18 @@ } } #endif - } while (uval > 0); + } while (i > 0); /* add more output digits to match the precision */ if (have_prec) { while (cend - cp < prec) - *--cp = '0'; + PREPEND('0'); } if (sgn) - *--cp = '-'; + PREPEND('-'); else if (signchar) - *--cp = signchar; + PREPEND(signchar); /* * When to fill with zeroes is of course not simple. * First: No zero fill if left-justifying. @@ -1047,14 +1097,14 @@ goto pr_tail; if (tmpval < 0) { - if (tmpval < INTMAX_MIN) - goto out_of_range; uval = (uintmax_t) (intmax_t) tmpval; - } else { - /* Use !, so that NaNs are out of range. */ - if (! (tmpval <= UINTMAX_MAX)) + if ((AWKNUM)(intmax_t)uval != + double_to_int(tmpval)) goto out_of_range; + } else { uval = (uintmax_t) tmpval; + if ((AWKNUM)uval != double_to_int(tmpval)) + goto out_of_range; } /* * When to fill with zeroes is of course not simple. @@ -1071,12 +1121,12 @@ ii = jj = 0; do { - *--cp = chbuf[uval % base]; + PREPEND(chbuf[uval % base]); uval /= base; #if defined(HAVE_LOCALE_H) if (base == 10 && quote_flag && loc.grouping[ii] && ++jj == loc.grouping[ii]) { if (uval) /* only add if more digits coming */ - *--cp = loc.thousands_sep[0]; /* XXX --- assumption it's one char */ + PREPEND(loc.thousands_sep[0]); /* XXX --- assumption it's one char */ if (loc.grouping[ii+1] == 0) jj = 0; /* keep using current val in loc.grouping[ii] */ else if (loc.grouping[ii+1] == CHAR_MAX) @@ -1092,20 +1142,20 @@ /* add more output digits to match the precision */ if (have_prec) { while (cend - cp < prec) - *--cp = '0'; + PREPEND('0'); } if (alt && tmpval != 0) { if (base == 16) { - *--cp = cs1; - *--cp = '0'; + PREPEND(cs1); + PREPEND('0'); if (fill != sp) { bchunk(cp, 2); cp += 2; fw -= 2; } } else if (base == 8) - *--cp = '0'; + PREPEND('0'); } base = 0; if (prec > fw) @@ -1130,7 +1180,7 @@ /* out of range - emergency use of %g format */ if (do_lint) lintwarn(_("[s]printf: value %g is out of range for `%%%c' format"), - tmpval, cs1); + (double) tmpval, cs1); cs1 = 'g'; goto format_float; @@ -1175,15 +1225,32 @@ *cp++ = cs1; *cp = '\0'; #ifndef GFMT_WORKAROUND - (void) sprintf(obufout, cpbuf, - (int) fw, (int) prec, (double) tmpval); +#if defined(LC_NUMERIC) + if (quote_flag && ! use_lc_numeric) + setlocale(LC_NUMERIC, ""); +#endif + { + int n; + while ((n = snprintf(obufout, ofre, cpbuf, + (int) fw, (int) prec, + (double) tmpval)) >= ofre) + chksize(n) + } +#if defined(LC_NUMERIC) + if (quote_flag && ! use_lc_numeric) + setlocale(LC_NUMERIC, "C"); +#endif #else /* GFMT_WORKAROUND */ if (cs1 == 'g' || cs1 == 'G') sgfmt(obufout, cpbuf, (int) alt, (int) fw, (int) prec, (double) tmpval); - else - (void) sprintf(obufout, cpbuf, - (int) fw, (int) prec, (double) tmpval); + else { + int n; + while ((n = snprintf(obufout, ofre, cpbuf, + (int) fw, (int) prec, + (double) tmpval)) >= ofre) + chksize(n) + } #endif /* GFMT_WORKAROUND */ len = strlen(obufout); ofre -= len; @@ -1193,11 +1260,13 @@ default: break; } - if (toofew) + if (toofew) { + free(obuf); /* silence valgrind */ fatal("%s\n\t`%s'\n\t%*s%s", _("not enough arguments to satisfy format string"), fmt_string, (int) (s1 - fmt_string - 1), "", _("^ ran out for this one")); + } } if (do_lint) { if (need_format) @@ -1221,6 +1290,15 @@ args_size = save_args_size; } + { + size_t k; + size_t count = sizeof(cpbufs)/sizeof(cpbufs[0]); + for (k = 0; k < count; k++) { + if (cpbufs[k].buf != cpbufs[k].stackbuf) + free(cpbufs[k].buf); + } + } + return r; } @@ -1454,7 +1532,7 @@ NODE * do_strftime(NODE *tree) { - NODE *t1, *t2, *ret; + NODE *t1, *t2, *t3, *ret; struct tm *tm; time_t fclock; char *bufp; @@ -1464,13 +1542,15 @@ static const char def_format[] = "%a %b %d %H:%M:%S %Z %Y"; const char *format; int formatlen; + int do_gmt; /* set defaults first */ format = def_format; /* traditional date format */ formatlen = strlen(format); (void) time(&fclock); /* current time of day */ + do_gmt = FALSE; - t1 = t2 = NULL; + t1 = t2 = t3 = NULL; if (tree != NULL) { /* have args */ if (tree->lnode != NULL) { NODE *tmp = tree_eval(tree->lnode); @@ -1493,10 +1573,24 @@ lintwarn(_("strftime: received non-numeric second argument")); fclock = (time_t) force_number(t2); free_temp(t2); + + if (tree->rnode->rnode != NULL) { + tree = tree->rnode->rnode; + t3 = tree_eval(tree->lnode); + if ((t3->flags & (NUMCUR|NUMBER)) != 0) + do_gmt = (t3->numbr != 0); + else + do_gmt = (t3->stlen > 0); + + free_temp(t3); + } } } - tm = localtime(&fclock); + if (do_gmt) + tm = gmtime(&fclock); + else + tm = localtime(&fclock); bufp = buf; bufsize = sizeof(buf); @@ -1731,7 +1825,7 @@ } #ifdef MBS_SUPPORT -/* wide_tolower_toupper --- lower- or uppercase a multibute string */ +/* wide_tolower_toupper --- lower- or uppercase a multibyte string */ typedef int (*isw_func)(wint_t); typedef wint_t (*tow_func)(wint_t); @@ -1761,7 +1855,7 @@ */ osiz = t1->stlen + 2 + (gawk_mb_cur_max - 1); ofre = osiz - 2; - emalloc(obuf, char *, osiz, "wide_tolower_toupper"); + emalloc(obuf, unsigned char *, osiz, "wide_tolower_toupper"); memset(&mbs, 0, sizeof(mbstate_t)); cp = (unsigned char *)t1->stptr; @@ -1772,7 +1866,7 @@ size_t olen = cp2 - obuf; ofre += osiz; osiz *= 2; - erealloc(obuf, char *, osiz, "wide_tolower_toupper"); + erealloc(obuf, unsigned char *, osiz, "wide_tolower_toupper"); cp2 = obuf + olen; } prev_mbs = mbs; @@ -1809,7 +1903,7 @@ ofre--; } } - t2 = make_str_node(obuf, cp2 - obuf, ALREADY_MALLOCED); + t2 = make_str_node((char *) obuf, cp2 - obuf, ALREADY_MALLOCED); t2->flags |= TEMP; return t2; } @@ -2020,7 +2114,7 @@ rlength = REEND(rp, t1->stptr) - RESTART(rp, t1->stptr); /* byte length */ #ifdef MBS_SUPPORT - if (gawk_mb_cur_max > 1) { + if (rlength > 0 && gawk_mb_cur_max > 1) { t1 = str2wstr(t1, & wc_indices); rlength = wc_indices[rstart + rlength - 1] - wc_indices[rstart] + 1; rstart = wc_indices[rstart]; @@ -2046,7 +2140,7 @@ subpat_start = s; subpat_len = len = SUBPATEND(rp, t1->stptr, ii) - s; #ifdef MBS_SUPPORT - if (gawk_mb_cur_max > 1) { + if (len > 0 && gawk_mb_cur_max > 1) { subpat_start = wc_indices[s]; subpat_len = wc_indices[s + len - 1] - subpat_start + 1; } @@ -2089,9 +2183,9 @@ } free(buf); - if (wc_indices != NULL) - free(wc_indices); } + if (wc_indices != NULL) + free(wc_indices); } else { /* match failed */ rstart = 0; rlength = -1; @@ -2462,6 +2556,8 @@ free(t->stptr); t->stptr = buf; t->stlen = textlen; + free_wstr(t); + t->flags &= ~(NUMCUR|NUMBER); free_temp(s); if (matches > 0 && lhs) { @@ -2471,7 +2567,6 @@ } if (after_assign != NULL) (*after_assign)(); - t->flags &= ~(NUMCUR|NUMBER); } if (mb_indices != NULL) free(mb_indices); @@ -2645,56 +2740,12 @@ } #endif /* GFMT_WORKAROUND */ -/* - * The number of base-FLT_RADIX digits in an AWKNUM fraction, assuming - * that AWKNUM is not long double. - */ -#define AWKSMALL_MANT_DIG \ - (sizeof (AWKNUM) == sizeof (double) ? DBL_MANT_DIG : FLT_MANT_DIG) - -/* - * The number of base-FLT_DIGIT digits in an AWKNUM fraction, even if - * AWKNUM is long double. Don't mention 'long double' unless - * LDBL_MANT_DIG is defined, for the sake of ancient compilers that - * lack 'long double'. - */ -#ifdef LDBL_MANT_DIG -#define AWKNUM_MANT_DIG \ - (sizeof (AWKNUM) == sizeof (long double) ? LDBL_MANT_DIG : AWKSMALL_MANT_DIG) -#else -#define AWKNUM_MANT_DIG AWKSMALL_MANT_DIG -#endif - -/* - * The number of bits in an AWKNUM fraction, assuming FLT_RADIX is - * either 2 or 16. IEEE and VAX formats use radix 2, and IBM - * mainframe format uses radix 16; we know of no other radices in - * practical use. - */ -#if FLT_RADIX != 2 && FLT_RADIX != 16 -Please port the following code to your weird host; -#endif -#define AWKNUM_FRACTION_BITS (AWKNUM_MANT_DIG * (FLT_RADIX == 2 ? 1 : 4)) - /* tmp_integer - Convert an integer to a temporary number node. */ static NODE * tmp_integer(uintmax_t n) { -#ifdef HAVE_UINTMAX_T -/* #ifndef LDBL_MANT_DIG */ - /* - * If uintmax_t is so wide that AWKNUM cannot represent all its - * values, strip leading nonzero bits of integers that are so large - * that they cannot be represented exactly as AWKNUMs, so that their - * low order bits are represented exactly, without rounding errors. - * This is more desirable in practice, since it means the user sees - * integers that are the same width as the AWKNUM fractions. - */ - if (AWKNUM_FRACTION_BITS < CHAR_BIT * sizeof n) - n &= ((uintmax_t) 1 << AWKNUM_FRACTION_BITS) - 1; -/* #endif */ /* LDBL_MANT_DIG */ -#endif /* HAVE_UINTMAX_T */ + n = adjust_uint(n); return tmp_number((AWKNUM) n); } @@ -2922,7 +2973,7 @@ if ((tmp->flags & (NUMBER|NUMCUR)) != 0) d = (AWKNUM) force_number(tmp); - else if (isnondecimal(tmp->stptr, TRUE)) + else if (isnondecimal(tmp->stptr, use_lc_numeric)) d = nondec2awknum(tmp->stptr, tmp->stlen); else d = (AWKNUM) force_number(tmp); @@ -3013,7 +3064,7 @@ /* do_dcgettext, do_dcngettext --- handle i18n translations */ -#if ENABLE_NLS && HAVE_LC_MESSAGES && HAVE_DCGETTEXT +#if ENABLE_NLS && defined(LC_MESSAGES) && HAVE_DCGETTEXT static int localecategory_from_argument(NODE *tree) @@ -3100,7 +3151,7 @@ NODE *tmp, *t1, *t2; char *string; char *the_result; -#if ENABLE_NLS && HAVE_LC_MESSAGES && HAVE_DCGETTEXT +#if ENABLE_NLS && defined(LC_MESSAGES) && HAVE_DCGETTEXT int lc_cat; char *domain; #endif /* ENABLE_NLS */ @@ -3110,7 +3161,7 @@ string = t1->stptr; t2 = NULL; -#if ENABLE_NLS && HAVE_LC_MESSAGES && HAVE_DCGETTEXT +#if ENABLE_NLS && defined(LC_MESSAGES) && HAVE_DCGETTEXT tree = tree->rnode; /* second argument */ if (tree != NULL) { tmp = tree->lnode; @@ -3142,7 +3193,7 @@ char *string1, *string2; unsigned long number; char *the_result; -#if ENABLE_NLS && HAVE_LC_MESSAGES && HAVE_DCGETTEXT +#if ENABLE_NLS && defined(LC_MESSAGES) && HAVE_DCGETTEXT int lc_cat; char *domain; #endif /* ENABLE_NLS */ @@ -3159,7 +3210,7 @@ number = (unsigned long) double_to_int(force_number(tree_eval(tmp))); t3 = NULL; -#if ENABLE_NLS && HAVE_LC_MESSAGES && HAVE_DCGETTEXT +#if ENABLE_NLS && defined(LC_MESSAGES) && HAVE_DCGETTEXT tree = tree->rnode->rnode->rnode; /* fourth argument */ if (tree != NULL) { tmp = tree->lnode; diff -urN gawk-3.1.5/config.guess gawk-3.1.6/config.guess --- gawk-3.1.5/config.guess 2005-05-11 18:28:14.000000000 +0300 +++ gawk-3.1.6/config.guess 2007-08-11 22:39:49.000000000 +0300 @@ -1,13 +1,14 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +# Inc. -timestamp='2005-02-10' +timestamp='2006-07-02' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# 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 @@ -17,13 +18,15 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. + # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. @@ -66,11 +69,11 @@ while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; + echo "$timestamp" ; exit ;; --version | -v ) - echo "$version" ; exit 0 ;; + echo "$version" ; exit ;; --help | --h* | -h ) - echo "$usage"; exit 0 ;; + echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -104,7 +107,7 @@ trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; @@ -123,7 +126,7 @@ ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ;' +esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) @@ -196,55 +199,23 @@ # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" - exit 0 ;; - amd64:OpenBSD:*:*) - echo x86_64-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - cats:OpenBSD:*:*) - echo arm-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - luna88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mips64-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + exit ;; *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit 0 ;; + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; macppc:MirBSD:*:*) - echo powerppc-unknown-mirbsd${UNAME_RELEASE} - exit 0 ;; + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit 0 ;; + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -297,40 +268,43 @@ # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; + exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix - exit 0 ;; + exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 - exit 0 ;; + exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 - exit 0;; + exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; + exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos - exit 0 ;; + exit ;; *:OS/390:*:*) echo i370-ibm-openedition - exit 0 ;; + exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe - exit 0 ;; + exit ;; *:OS400:*:*) echo powerpc-ibm-os400 - exit 0 ;; + exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp - exit 0;; + exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then @@ -338,32 +312,32 @@ else echo pyramid-pyramid-bsd fi - exit 0 ;; + exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 - exit 0 ;; + exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 - exit 0 ;; + exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7 && exit 0 ;; + sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) @@ -372,10 +346,10 @@ esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; + exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; + exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 @@ -387,10 +361,10 @@ echo sparc-sun-sunos${UNAME_RELEASE} ;; esac - exit 0 ;; + exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; + exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor @@ -401,40 +375,40 @@ # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; + exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} - exit 0 ;; + exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; + exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 - exit 0 ;; + exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; + exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; + exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -458,32 +432,33 @@ exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c \ - && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && exit 0 + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; + exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax - exit 0 ;; + exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax - exit 0 ;; + exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax - exit 0 ;; + exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix - exit 0 ;; + exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 - exit 0 ;; + exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 - exit 0 ;; + exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` @@ -499,29 +474,29 @@ else echo i586-dg-dgux${UNAME_RELEASE} fi - exit 0 ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 - exit 0 ;; + exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 - exit 0 ;; + exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 - exit 0 ;; + exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd - exit 0 ;; + exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; + exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix - exit 0 ;; + exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` @@ -529,7 +504,7 @@ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build @@ -544,14 +519,18 @@ exit(0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 - echo rs6000-ibm-aix3.2.5 + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi - exit 0 ;; + exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then @@ -565,28 +544,28 @@ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; + exit ;; *:AIX:*:*) echo rs6000-ibm-aix - exit 0 ;; + exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 - exit 0 ;; + exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 + exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx - exit 0 ;; + exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 - exit 0 ;; + exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd - exit 0 ;; + exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 - exit 0 ;; + exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in @@ -648,9 +627,19 @@ esac if [ ${HP_ARCH} = "hppa2.0w" ] then - # avoid double evaluation of $set_cc_for_build - test -n "$CC_FOR_BUILD" || eval $set_cc_for_build - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else @@ -658,11 +647,11 @@ fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; + exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; + exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -690,161 +679,179 @@ exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 - exit 0 ;; + exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd - exit 0 ;; + exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd - exit 0 ;; + exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix - exit 0 ;; + exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf - exit 0 ;; + exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf - exit 0 ;; + exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi - exit 0 ;; + exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites - exit 0 ;; + exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit 0 ;; + exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit 0 ;; + exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit 0 ;; + exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit 0 ;; + exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; + exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; + exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; + exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; + exit ;; *:FreeBSD:*:*) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; + case ${UNAME_MACHINE} in + pc98) + echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; + exit ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; - x86:Interix*:[34]*) - echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' - exit 0 ;; + exit ;; + x86:Interix*:[3456]*) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + EM64T:Interix*:[3456]*) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks - exit 0 ;; + exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix - exit 0 ;; + exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; - amd64:CYGWIN*:*:*) + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin - exit 0 ;; + exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin - exit 0 ;; + exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; + exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; + exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit 0 ;; + exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; + exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu - exit 0 ;; + exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu - exit 0 ;; + exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu - exit 0 ;; + exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c @@ -861,8 +868,12 @@ #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build @@ -880,15 +891,22 @@ #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^CPU/{ + s: ::g + p + }'`" + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu - exit 0 ;; + exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu - exit 0 ;; + exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; @@ -902,7 +920,7 @@ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -910,25 +928,28 @@ PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac - exit 0 ;; + exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu - exit 0 ;; + exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; + exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu - exit 0 ;; + exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent @@ -946,15 +967,15 @@ ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; + exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 ;; + exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit 0 ;; + exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build @@ -971,7 +992,7 @@ LIBC=gnulibc1 # endif #else - #ifdef __INTEL_COMPILER + #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout @@ -981,16 +1002,23 @@ LIBC=dietlibc #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 + eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' + /^LIBC/{ + s: ::g + p + }'`" + test x"${LIBC}" != x && { + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + exit + } + test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 - exit 0 ;; + exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... @@ -998,27 +1026,27 @@ # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; + exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; + exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; + exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; - i*86:syllable:*:*) + exit ;; + i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable - exit 0 ;; + exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; + exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then @@ -1026,15 +1054,16 @@ else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi - exit 0 ;; - i*86:*:5:[78]*) + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit 0 ;; + exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi - exit 0 ;; + exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv - exit 0 ;; + exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv - exit 0 ;; + exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix - exit 0 ;; + exit ;; M68*:*:R3V[5678]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; + && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 - exit 0 ;; + exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; + exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; + exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 - exit 0 ;; + exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` @@ -1126,69 +1155,72 @@ else echo ns32k-sni-sysv fi - exit 0 ;; + exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 - exit 0 ;; + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 - exit 0 ;; + exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 - exit 0 ;; + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos - exit 0 ;; + exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; + exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 - exit 0 ;; + exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi - exit 0 ;; + exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos - exit 0 ;; + exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos - exit 0 ;; + exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos - exit 0 ;; + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} - exit 0 ;; + exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in - *86) UNAME_PROCESSOR=i686 ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit 0 ;; + exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then @@ -1196,25 +1228,25 @@ UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit 0 ;; + exit ;; *:QNX:*:4*) echo i386-pc-qnx - exit 0 ;; + exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} - exit 0 ;; + exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; + exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux - exit 0 ;; + exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv - exit 0 ;; + exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; + exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 @@ -1225,41 +1257,47 @@ UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; + exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 - exit 0 ;; + exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex - exit 0 ;; + exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 - exit 0 ;; + exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 - exit 0 ;; + exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 - exit 0 ;; + exit ;; *:ITS:*:*) echo pdp10-unknown-its - exit 0 ;; + exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} - exit 0 ;; + exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; + exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms && exit 0 ;; - I*) echo ia64-dec-vms && exit 0 ;; - V*) echo vax-dec-vms && exit 0 ;; + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix - exit 0 ;; + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 @@ -1291,7 +1329,7 @@ #endif #if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); + printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) @@ -1380,11 +1418,12 @@ } EOF -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) @@ -1393,22 +1432,22 @@ case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd - exit 0 ;; + exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit 0 ;; + exit ;; c34*) echo c34-convex-bsd - exit 0 ;; + exit ;; c38*) echo c38-convex-bsd - exit 0 ;; + exit ;; c4*) echo c4-convex-bsd - exit 0 ;; + exit ;; esac fi @@ -1419,7 +1458,9 @@ the operating system you are using. It is advised that you download the most up to date version of the config scripts from - ftp://ftp.gnu.org/pub/gnu/config/ + http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess +and + http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub If the version you run ($0) is already up to date, please send the following data and any information you think might be diff -urN gawk-3.1.5/config.rpath gawk-3.1.6/config.rpath --- gawk-3.1.5/config.rpath 2005-05-11 18:28:14.000000000 +0300 +++ gawk-3.1.6/config.rpath 2007-01-12 12:20:46.000000000 +0200 @@ -2,7 +2,7 @@ # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # -# Copyright 1996-2005 Free Software Foundation, Inc. +# Copyright 1996-2006 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # @@ -25,7 +25,7 @@ # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. -# All known linkers require a `.a' archive for static linking (except M$VC, +# All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so @@ -35,7 +35,17 @@ host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -cc_basename=`echo "$CC" | sed -e 's%^.*/%%'` +# Code taken from libtool.m4's _LT_CC_BASENAME. + +for cc_temp in $CC""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. @@ -48,7 +58,7 @@ wl='-Wl,' ;; darwin*) - case "$cc_basename" in + case $cc_basename in xlc*) wl='-Wl,' ;; @@ -78,6 +88,13 @@ como) wl='-lopt=' ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + wl='-Wl,' + ;; + esac + ;; esac ;; osf3* | osf4* | osf5*) @@ -120,6 +137,10 @@ with_gnu_ld=no fi ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; openbsd*) with_gnu_ld=no ;; @@ -127,6 +148,12 @@ ld_shlibs=yes if test "$with_gnu_ld" = yes; then + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + # Unlike libtool, we use -rpath here, not --rpath, since the documented + # option of GNU ld is called -rpath, not --rpath. + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken @@ -162,9 +189,20 @@ ld_shlibs=no fi ;; + interix3*) + hardcode_direct=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + linux*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; netbsd*) ;; - solaris* | sysv5*) + solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then @@ -173,16 +211,23 @@ ld_shlibs=no fi ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + else + ld_shlibs=no + fi + ;; + esac + ;; sunos4*) hardcode_direct=yes ;; - linux*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : @@ -191,10 +236,8 @@ fi ;; esac - if test "$ld_shlibs" = yes; then - # Unlike libtool, we use -rpath here, not --rpath, since the documented - # option of GNU ld is called -rpath, not --rpath. - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + if test "$ld_shlibs" = no; then + hardcode_libdir_flag_spec= fi else case "$host_os" in @@ -225,6 +268,7 @@ break fi done + ;; esac fi hardcode_direct=yes @@ -244,6 +288,7 @@ hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi + ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. @@ -291,7 +336,7 @@ if test "$GCC" = yes ; then : else - case "$cc_basename" in + case $cc_basename in xlc*) ;; *) @@ -326,24 +371,25 @@ # but as the default location of the library. hardcode_minus_L=yes ;; - hpux10* | hpux11*) + hpux10*) if test "$with_gnu_ld" = no; then - case "$host_cpu" in - hppa*64*) - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=no - ;; - ia64*) - hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + hpux11*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + case $host_cpu in + hppa*64*|ia64*) hardcode_direct=no - # hardcode_minus_L: Not really in the search PATH, - # but as the default location of the library. - hardcode_minus_L=yes ;; *) - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. @@ -397,8 +443,6 @@ fi hardcode_libdir_separator=: ;; - sco3.2v5*) - ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; @@ -427,14 +471,11 @@ ld_shlibs=yes fi ;; - sysv4.2uw2*) - hardcode_direct=yes - hardcode_minus_L=no - ;; - sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) ;; - sysv5*) - hardcode_libdir_flag_spec= + sysv5* | sco3.2v5* | sco5v6*) + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' @@ -471,12 +512,12 @@ ;; kfreebsd*-gnu) ;; - freebsd*) + freebsd* | dragonfly*) ;; gnu*) ;; hpux9* | hpux10* | hpux11*) - case "$host_cpu" in + case $host_cpu in ia64*) shrext=.so ;; @@ -488,6 +529,8 @@ ;; esac ;; + interix3*) + ;; irix5* | irix6* | nonstopux*) case "$host_os" in irix5* | nonstopux*) @@ -523,16 +566,16 @@ ;; osf3* | osf4* | osf5*) ;; - sco3.2v5*) - ;; solaris*) ;; sunos4*) ;; - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + sysv4 | sysv4.3*) ;; sysv4*MP*) ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + ;; uts4*) ;; esac diff -urN gawk-3.1.5/config.sub gawk-3.1.6/config.sub --- gawk-3.1.5/config.sub 2005-05-11 18:28:14.000000000 +0300 +++ gawk-3.1.6/config.sub 2007-08-11 22:39:49.000000000 +0300 @@ -1,9 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, +# Inc. -timestamp='2005-02-10' +timestamp='2006-09-20' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -11,7 +12,7 @@ # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# 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, @@ -21,14 +22,15 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. - +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. +# # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. + # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # @@ -83,11 +85,11 @@ while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; + echo "$timestamp" ; exit ;; --version | -v ) - echo "$version" ; exit 0 ;; + echo "$version" ; exit ;; --help | --h* | -h ) - echo "$usage"; exit 0 ;; + echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -99,7 +101,7 @@ *local*) # First pass through any local machine types. echo $1 - exit 0;; + exit ;; * ) break ;; @@ -118,8 +120,9 @@ # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \ - kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ + uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; @@ -170,6 +173,10 @@ -hiux*) os=-hiuxwe2 ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -186,6 +193,10 @@ # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` @@ -230,14 +241,16 @@ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ + | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ - | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ @@ -246,6 +259,7 @@ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ @@ -254,20 +268,24 @@ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | mt \ | msp430 \ + | nios | nios2 \ | ns16k | ns32k \ - | openrisc | or32 \ + | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ - | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ + | score \ + | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \ - | strongarm \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ - | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ + | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; @@ -278,6 +296,9 @@ ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; + ms1) + basic_machine=mt-unknown + ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and @@ -297,8 +318,8 @@ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* \ - | bs2000-* \ + | avr-* | avr32-* \ + | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ @@ -308,7 +329,7 @@ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ - | m32r-* | m32rle-* \ + | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ @@ -319,6 +340,7 @@ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ @@ -327,23 +349,26 @@ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ + | mt-* \ | msp430-* \ + | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) @@ -683,6 +708,9 @@ basic_machine=i386-pc os=-msdos ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; mvs) basic_machine=i370-ibm os=-mvs @@ -758,9 +786,8 @@ basic_machine=hppa1.1-oki os=-proelf ;; - or32 | or32-*) + openrisc | openrisc-*) basic_machine=or32-unknown - os=-coff ;; os400) basic_machine=powerpc-ibm @@ -791,6 +818,12 @@ pc532 | pc532-*) basic_machine=ns32k-pc532 ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; @@ -847,6 +880,10 @@ basic_machine=i586-unknown os=-pw32 ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; rom68k) basic_machine=m68k-rom68k os=-coff @@ -873,6 +910,10 @@ sb1el) basic_machine=mipsisa64sb1el-unknown ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; sei) basic_machine=mips-sei os=-seiux @@ -1086,13 +1127,10 @@ we32k) basic_machine=we32k-att ;; - sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) + sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; - sh64) - basic_machine=sh64-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b) + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) @@ -1165,20 +1203,23 @@ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \ + | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*) + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1196,7 +1237,7 @@ os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) @@ -1330,6 +1371,12 @@ # system, and we'll never get to this point. case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; *-acorn) os=-riscix1.2 ;; @@ -1339,9 +1386,9 @@ arm*-semi) os=-aout ;; - c4x-* | tic4x-*) - os=-coff - ;; + c4x-* | tic4x-*) + os=-coff + ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 @@ -1385,6 +1432,9 @@ *-be) os=-beos ;; + *-haiku) + os=-haiku + ;; *-ibm) os=-aix ;; @@ -1556,7 +1606,7 @@ esac echo $basic_machine$os -exit 0 +exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff -urN gawk-3.1.5/configh.in gawk-3.1.6/configh.in --- gawk-3.1.5/configh.in 2005-07-26 21:44:16.000000000 +0300 +++ gawk-3.1.6/configh.in 2007-10-22 08:52:38.000000000 +0200 @@ -20,6 +20,12 @@ /* Define to 1 if you have the `alarm' function. */ #undef HAVE_ALARM +/* Define to 1 if you have the header file. */ +#undef HAVE_ARPA_INET_H + +/* Define to 1 if you have the `atexit' function. */ +#undef HAVE_ATEXIT + /* Define to 1 if you have the `btowc' function. */ #undef HAVE_BTOWC @@ -35,6 +41,10 @@ */ #undef HAVE_DCGETTEXT +/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. + */ +#undef HAVE_DECL_TZNAME + /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ #undef HAVE_DOPRNT @@ -44,6 +54,9 @@ /* Define to 1 if you have the `fmod' function. */ #undef HAVE_FMOD +/* have getaddrinfo */ +#undef HAVE_GETADDRINFO + /* Define to 1 if you have the `getgrent' function. */ #undef HAVE_GETGRENT @@ -81,8 +94,11 @@ /* Define to 1 if you have the `iswupper' function. */ #undef HAVE_ISWUPPER -/* Define to 1 if you have the `dl' library (-ldl). */ -#undef HAVE_LIBDL +/* Define if you have and nl_langinfo(CODESET). */ +#undef HAVE_LANGINFO_CODESET + +/* Define if your file defines LC_MESSAGES. */ +#undef HAVE_LC_MESSAGES /* Define to 1 if you have the header file. */ #undef HAVE_LIBINTL_H @@ -99,6 +115,9 @@ /* Define if you have the 'long long' type. */ #undef HAVE_LONG_LONG +/* Define to 1 if the system has the type `long long int'. */ +#undef HAVE_LONG_LONG_INT + /* Define to 1 if you have the `mbrlen' function. */ #undef HAVE_MBRLEN @@ -114,6 +133,9 @@ /* Define to 1 if you have the `memcpy' function. */ #undef HAVE_MEMCPY +/* Define to 1 if you have the `memcpy_ulong' function. */ +#undef HAVE_MEMCPY_ULONG + /* Define to 1 if you have the `memmove' function. */ #undef HAVE_MEMMOVE @@ -123,6 +145,12 @@ /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET +/* Define to 1 if you have the `memset_ulong' function. */ +#undef HAVE_MEMSET_ULONG + +/* Define to 1 if you have the `mkstemp' function. */ +#undef HAVE_MKSTEMP + /* we have the mktime function */ #undef HAVE_MKTIME @@ -144,12 +172,18 @@ /* Define to 1 if you have the `snprintf' function. */ #undef HAVE_SNPRINTF +/* newer systems define this type here */ +#undef HAVE_SOCKADDR_STORAGE + /* we have sockets on this system */ #undef HAVE_SOCKETS /* Define to 1 if you have the header file. */ #undef HAVE_STDARG_H +/* Define to 1 if you have the header file. */ +#undef HAVE_STDDEF_H + /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H @@ -224,6 +258,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_TERMIOS_H +/* Define to 1 if you have the `tmpfile' function. */ +#undef HAVE_TMPFILE + /* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use `HAVE_STRUCT_TM_TM_ZONE' instead. */ #undef HAVE_TM_ZONE @@ -250,6 +287,9 @@ /* Define if you have the 'unsigned long long' type. */ #undef HAVE_UNSIGNED_LONG_LONG +/* Define to 1 if the system has the type `unsigned long long int'. */ +#undef HAVE_UNSIGNED_LONG_LONG_INT + /* Define to 1 if you have the `vprintf' function. */ #undef HAVE_VPRINTF @@ -274,6 +314,9 @@ /* systems should define this type here */ #undef HAVE_WINT_T +/* disable fatal errors on directories */ +#undef NO_DIRECTORY_FATAL + /* disable lint checks */ #undef NO_LINT @@ -304,10 +347,10 @@ /* Define as the return type of signal handlers (`int' or `void'). */ #undef RETSIGTYPE -/* The size of a `unsigned int', as computed by sizeof. */ +/* The size of `unsigned int', as computed by sizeof. */ #undef SIZEOF_UNSIGNED_INT -/* The size of a `unsigned long', as computed by sizeof. */ +/* The size of `unsigned long', as computed by sizeof. */ #undef SIZEOF_UNSIGNED_LONG /* return type of sprintf */ @@ -316,9 +359,6 @@ /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS -/* strtod doesn't have C89 semantics */ -#undef STRTOD_NOT_C89 - /* some systems define this type here */ #undef TIME_T_IN_SYS_TYPES_H @@ -344,6 +384,11 @@ /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif + /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES @@ -362,6 +407,17 @@ # undef __CHAR_UNSIGNED__ #endif +/* Enable extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif + /* Define like PROTOTYPES; this can be used by system headers. */ #undef __PROTOTYPES @@ -387,7 +443,7 @@ supported. Do not define if restrict is supported directly. */ #undef restrict -/* Define to `unsigned' if does not define. */ +/* Define to `unsigned int' if does not define. */ #undef size_t /* type to use in place of socklen_t if not defined */ diff -urN gawk-3.1.5/configure gawk-3.1.6/configure --- gawk-3.1.5/configure 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/configure 2007-10-22 08:52:03.000000000 +0200 @@ -0,0 +1,14257 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.61 for GNU Awk 3.1.6. +# +# Report bugs to . +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + +if test "x$CONFIG_SHELL" = x; then + if (eval ":") 2>/dev/null; then + as_have_required=yes +else + as_have_required=no +fi + + if test $as_have_required = yes && (eval ": +(as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=\$LINENO + as_lineno_2=\$LINENO + test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && + test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } +") 2> /dev/null; then + : +else + as_candidate_shells= + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + case $as_dir in + /*) + for as_base in sh bash ksh sh5; do + as_candidate_shells="$as_candidate_shells $as_dir/$as_base" + done;; + esac +done +IFS=$as_save_IFS + + + for as_shell in $as_candidate_shells $SHELL; do + # Try only shells that exist, to save several forks. + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { ("$as_shell") 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +_ASEOF +}; then + CONFIG_SHELL=$as_shell + as_have_required=yes + if { "$as_shell" 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +(as_func_return () { + (exit $1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = "$1" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test $exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + +_ASEOF +}; then + break +fi + +fi + + done + + if test "x$CONFIG_SHELL" != x; then + for as_var in BASH_ENV ENV + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + + if test $as_have_required = no; then + echo This script requires a shell more modern than all the + echo shells that I found on your system. Please install a + echo modern shell, or manually run the script under such a + echo shell if you do have one. + { (exit 1); exit 1; } +fi + + +fi + +fi + + + +(eval "as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0") || { + echo No shell found that supports shell functions. + echo Please tell autoconf@gnu.org about your system, + echo including any error possibly output before this + echo message +} + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + +exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Identity of this package. +PACKAGE_NAME='GNU Awk' +PACKAGE_TARNAME='gawk' +PACKAGE_VERSION='3.1.6' +PACKAGE_STRING='GNU Awk 3.1.6' +PACKAGE_BUGREPORT='bug-gawk@gnu.org' + +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +gt_needs= +ac_header_list= +ac_func_list= +ac_subst_vars='SHELL +PATH_SEPARATOR +PACKAGE_NAME +PACKAGE_TARNAME +PACKAGE_VERSION +PACKAGE_STRING +PACKAGE_BUGREPORT +exec_prefix +prefix +program_transform_name +bindir +sbindir +libexecdir +datarootdir +datadir +sysconfdir +sharedstatedir +localstatedir +includedir +oldincludedir +docdir +infodir +htmldir +dvidir +pdfdir +psdir +libdir +localedir +mandir +DEFS +ECHO_C +ECHO_N +ECHO_T +LIBS +build_alias +host_alias +target_alias +INSTALL_PROGRAM +INSTALL_SCRIPT +INSTALL_DATA +am__isrc +CYGPATH_W +PACKAGE +VERSION +ACLOCAL +AUTOCONF +AUTOMAKE +AUTOHEADER +MAKEINFO +install_sh +STRIP +INSTALL_STRIP_PROGRAM +mkdir_p +AWK +SET_MAKE +am__leading_dot +AMTAR +am__tar +am__untar +GREP +EGREP +YACC +YFLAGS +LN_S +CC +CFLAGS +LDFLAGS +CPPFLAGS +ac_ct_CC +EXEEXT +OBJEXT +DEPDIR +am__include +am__quote +AMDEP_TRUE +AMDEP_FALSE +AMDEPBACKSLASH +CCDEPMODE +am__fastdepCC_TRUE +am__fastdepCC_FALSE +CPP +RANLIB +U +ANSI2KNR +USE_NLS +MSGFMT +GMSGFMT +MSGFMT_015 +GMSGFMT_015 +XGETTEXT +XGETTEXT_015 +MSGMERGE +build +build_cpu +build_vendor +build_os +host +host_cpu +host_vendor +host_os +INTL_MACOSX_LIBS +LIBICONV +LTLIBICONV +INTLLIBS +LIBINTL +LTLIBINTL +POSUB +LIBOBJS +SOCKET_LIBS +LTLIBOBJS' +ac_subst_files='' + ac_precious_vars='build_alias +host_alias +target_alias +YACC +YFLAGS +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` + eval enable_$ac_feature=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid feature name: $ac_feature" >&2 + { (exit 1); exit 1; }; } + ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` + eval enable_$ac_feature=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/[-.]/_/g'` + eval with_$ac_package=\$ac_optarg ;; + + -without-* | --without-*) + ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid package name: $ac_package" >&2 + { (exit 1); exit 1; }; } + ac_package=`echo $ac_package | sed 's/[-.]/_/g'` + eval with_$ac_package=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) { echo "$as_me: error: unrecognized option: $ac_option +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && + { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + { echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +# Be sure to have absolute directory names. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; } +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used." >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + { echo "$as_me: error: Working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + { echo "$as_me: error: pwd does not report name of working directory" >&2 + { (exit 1); exit 1; }; } + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$0" || +$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$0" : 'X\(//\)[^/]' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X"$0" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 + { (exit 1); exit 1; }; } + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +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 GNU Awk 3.1.6 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/gawk] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of GNU Awk 3.1.6:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-portals Enable /p as path prefix for portals + --disable-lint Disable gawk lint checking + --enable-switch Enable switch statements for awk programs + --disable-directories-fatal Disable fatal errors on directories + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --disable-largefile omit support for large files + --disable-nls do not use Native Language Support + --disable-rpath do not hardcode runtime library paths + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-whiny-user-strftime Force use of included version of strftime for deficient systems + --with-gnu-ld assume the C compiler uses GNU ld default=no + --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib + --without-libiconv-prefix don't search for libiconv in includedir and libdir + --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib + --without-libintl-prefix don't search for libintl in includedir and libdir + +Some influential environment variables: + YACC The `Yet Another C Compiler' implementation to use. Defaults to + the first program found out of: `bison -y', `byacc', `yacc'. + YFLAGS The list of arguments that will be passed by default to $YACC. + This script will default YFLAGS to the empty string to avoid a + default value of `-d' given by some make applications. + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +GNU Awk configure 3.1.6 +generated by GNU Autoconf 2.61 + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi +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 GNU Awk $as_me 3.1.6, which was +generated by GNU Autoconf 2.61. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + echo "PATH: $as_dir" +done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; + 2) + ac_configure_args1="$ac_configure_args1 '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + ac_configure_args="$ac_configure_args '$ac_arg'" + ;; + esac + done +done +$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } +$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + cat <<\_ASBOX +## ---------------- ## +## Cache variables. ## +## ---------------- ## +_ASBOX + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------------- ## +## File substitutions. ## +## ------------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + echo "$as_me: caught signal $ac_signal" + echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer explicitly selected file to automatically selected ones. +if test -n "$CONFIG_SITE"; then + set x "$CONFIG_SITE" +elif test "x$prefix" != xNONE; then + set x "$prefix/share/config.site" "$prefix/etc/config.site" +else + set x "$ac_default_prefix/share/config.site" \ + "$ac_default_prefix/etc/config.site" +fi +shift +for ac_site_file +do + if test -r "$ac_site_file"; then + { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special + # files actually), so we avoid doing that. + if test -f "$cache_file"; then + { echo "$as_me:$LINENO: loading cache $cache_file" >&5 +echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { echo "$as_me:$LINENO: creating cache $cache_file" >&5 +echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +gt_needs="$gt_needs " +ac_header_list="$ac_header_list sys/time.h" +ac_header_list="$ac_header_list unistd.h" +ac_func_list="$ac_func_list alarm" +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 +echo "$as_me: former value: $ac_old_val" >&2;} + { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 +echo "$as_me: current value: $ac_new_val" >&2;} + ac_cache_corrupted=: + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} + { (exit 1); exit 1; }; } +fi + + + + + + + + + + + + + + + + + + + + + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +# This is a hack. Different versions of install on different systems +# are just too different. Chuck it and use install-sh. +# +# If the user supplies $INSTALL, figure they know what they're doing. +# +# With Autoconf 2.5x, this needs to come very early on, but *after* +# the INIT macro. Sigh. + +if test "x$INSTALL" = "x" +then + INSTALL="$srcdir/install-sh -c" + export INSTALL +fi + + +am__api_version='1.10' + +ac_aux_dir= +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 +echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} + { (exit 1); exit 1; }; } +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done +IFS=$as_save_IFS + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5 +echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&5 +echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&2;} + { (exit 1); exit 1; }; } + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! +Check your system clock" >&5 +echo "$as_me: error: newly created file is older than distributed files! +Check your system clock" >&2;} + { (exit 1); exit 1; }; } +fi +{ echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. echo might interpret backslashes. +# By default was `s,x,x', remove it if useless. +cat <<\_ACEOF >conftest.sed +s/[\\$]/&&/g;s/;s,x,x,$// +_ACEOF +program_transform_name=`echo $program_transform_name | sed -f conftest.sed` +rm -f conftest.sed + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 +echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; } +if test -z "$MKDIR_P"; then + if test "${ac_cv_path_mkdir+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done +done +IFS=$as_save_IFS + +fi + + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + test -d ./--version && rmdir ./--version + MKDIR_P="$ac_install_sh -d" + fi +fi +{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5 +echo "${ECHO_T}$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { echo "$as_me:$LINENO: result: $AWK" >&5 +echo "${ECHO_T}$AWK" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } +set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + SET_MAKE= +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 +echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} + { (exit 1); exit 1; }; } + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='gawk' + VERSION='3.1.6' + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { echo "$as_me:$LINENO: result: $STRIP" >&5 +echo "${ECHO_T}$STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +echo "${ECHO_T}$ac_ct_STRIP" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' + + + + + + + +# Check whether --enable-portals was given. +if test "${enable_portals+set}" = set; then + enableval=$enable_portals; if test "$enableval" = yes + then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_PORTALS 1 +_ACEOF + + fi + +fi + + +# Check whether --with-whiny-user-strftime was given. +if test "${with_whiny_user_strftime+set}" = set; then + withval=$with_whiny_user_strftime; if test "$withval" = yes + then + +cat >>confdefs.h <<\_ACEOF +#define USE_INCLUDED_STRFTIME 1 +_ACEOF + + fi + +fi + +# Check whether --enable-lint was given. +if test "${enable_lint+set}" = set; then + enableval=$enable_lint; if test "$enableval" = no + then + +cat >>confdefs.h <<\_ACEOF +#define NO_LINT 1 +_ACEOF + + fi + +fi + +# Check whether --enable-switch was given. +if test "${enable_switch+set}" = set; then + enableval=$enable_switch; if test "$enableval" = yes + then + +cat >>confdefs.h <<\_ACEOF +#define ALLOW_SWITCH 1 +_ACEOF + + fi + +fi + +# Check whether --enable-directories-fatal was given. +if test "${enable_directories_fatal+set}" = set; then + enableval=$enable_directories_fatal; if test "$enableval" = no + then + +cat >>confdefs.h <<\_ACEOF +#define NO_DIRECTORY_FATAL 1 +_ACEOF + + fi + +fi + + +{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Extract the first word of "grep ggrep" to use in msg output +if test -z "$GREP"; then +set dummy grep ggrep; ac_prog_name=$2 +if test "${ac_cv_path_GREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_GREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + # Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_GREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +GREP="$ac_cv_path_GREP" +if test -z "$GREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_GREP=$GREP +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +echo "${ECHO_T}$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ echo "$as_me:$LINENO: checking for egrep" >&5 +echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + # Extract the first word of "egrep" to use in msg output +if test -z "$EGREP"; then +set dummy egrep; ac_prog_name=$2 +if test "${ac_cv_path_EGREP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_path_EGREP_found=false +# Loop through the user's path and test for each of PROGNAME-LIST +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + # Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + + $ac_path_EGREP_found && break 3 + done +done + +done +IFS=$as_save_IFS + + +fi + +EGREP="$ac_cv_path_EGREP" +if test -z "$EGREP"; then + { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } +fi + +else + ac_cv_path_EGREP=$EGREP +fi + + + fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +for ac_prog in 'bison -y' byacc +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_YACC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$YACC"; then + ac_cv_prog_YACC="$YACC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_YACC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +YACC=$ac_cv_prog_YACC +if test -n "$YACC"; then + { echo "$as_me:$LINENO: result: $YACC" >&5 +echo "${ECHO_T}$YACC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$YACC" && break +done +test -n "$YACC" || YACC="yacc" + +{ echo "$as_me:$LINENO: checking whether ln -s works" >&5 +echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 +echo "${ECHO_T}no, using $LN_S" >&6; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { echo "$as_me:$LINENO: result: $CC" >&5 +echo "${ECHO_T}$CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +echo "${ECHO_T}$ac_ct_CC" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +echo "$as_me: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + +# Provide some information about the compiler. +echo "$as_me:$LINENO: checking for C compiler version" >&5 +ac_compiler=`set X $ac_compile; echo $2` +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } +ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +# +# List of possible output files, starting from the most likely. +# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) +# only as a last resort. b.out is created by i960 compilers. +ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' +# +# The IRIX 6 linker writes into existing files which may not be +# executable, retaining their permissions. Remove them first so a +# subsequent execution test works. +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { (ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi + +{ echo "$as_me:$LINENO: result: $ac_file" >&5 +echo "${ECHO_T}$ac_file" >&6; } +if test -z "$ac_file"; then + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +echo "$as_me: error: C compiler cannot create executables +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } +fi + +ac_exeext=$ac_cv_exeext + +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } +# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 +# If not cross compiling, check that we can run a simple program. +if test "$cross_compiling" != yes; then + if { ac_try='./$ac_file' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { echo "$as_me:$LINENO: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } + fi + fi +fi +{ echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + +rm -f a.out a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: result: $cross_compiling" >&5 +echo "${ECHO_T}$cross_compiling" >&6; } + +{ echo "$as_me:$LINENO: checking for suffix of executables" >&5 +echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest$ac_cv_exeext +{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +echo "${ECHO_T}$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +{ echo "$as_me:$LINENO: checking for suffix of object files" >&5 +echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } +if test "${ac_cv_objext+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +echo "${ECHO_T}$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } +GCC=`test $ac_compiler_gnu = yes && echo yes` +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_c89=$ac_arg +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { echo "$as_me:$LINENO: result: none needed" >&5 +echo "${ECHO_T}none needed" >&6; } ;; + xno) + { echo "$as_me:$LINENO: result: unsupported" >&5 +echo "${ECHO_T}unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; +esac + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi + + +{ echo "$as_me:$LINENO: result: $_am_result" >&5 +echo "${ECHO_T}$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + +depcc="$CC" am_compiler_list= + +{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ echo "$as_me:$LINENO: result: $CPP" >&5 +echo "${ECHO_T}$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Broken: fails on valid input. +continue +fi + +rm -f conftest.err conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + # Passes both tests. +ac_preproc_ok=: +break +fi + +rm -f conftest.err conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.err conftest.$ac_ext +if $ac_preproc_ok; then + : +else + { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { echo "$as_me:$LINENO: result: $RANLIB" >&5 +echo "${ECHO_T}$RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +echo "${ECHO_T}$ac_ct_RANLIB" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&5 +echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools +whose name does not start with the host triplet. If you think this +configuration is useful to you, please write to autoconf@gnu.org." >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + + + + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in + ./ | .// | /cC/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + done + done + ;; +esac +done +IFS=$as_save_IFS + + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ echo "$as_me:$LINENO: result: $INSTALL" >&5 +echo "${ECHO_T}$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } +set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + SET_MAKE= +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + + +# This is mainly for my use during testing and development. +# Yes, it's a bit of a hack. +{ echo "$as_me:$LINENO: checking for special development options" >&5 +echo $ECHO_N "checking for special development options... $ECHO_C" >&6; } +if test -f $srcdir/.developing +then + # add other debug flags as appropriate, save GAWKDEBUG for emergencies + CFLAGS="$CFLAGS -DARRAYDEBUG -DYYDEBUG" + if grep dbug $srcdir/.developing + then + CFLAGS="$CFLAGS -DDBUG" + LIBS="$LIBS dbug/libdbug.a" + fi + # turn on compiler warnings if we're doing development + if test "$GCC" = yes + then + CFLAGS="$CFLAGS -Wall -fno-builtin" + fi + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + + +cat >>confdefs.h <<\_ACEOF +#define _GNU_SOURCE 1 +_ACEOF + + + + + +{ echo "$as_me:$LINENO: checking for AIX" >&5 +echo $ECHO_N "checking for AIX... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifdef _AIX + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } +cat >>confdefs.h <<\_ACEOF +#define _ALL_SOURCE 1 +_ACEOF + +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi +rm -f conftest* + + +{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. + + + + + + + + + +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_ac_Header=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +if test "${ac_cv_header_minix_config_h+set}" = set; then + { echo "$as_me:$LINENO: checking for minix/config.h" >&5 +echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6; } +if test "${ac_cv_header_minix_config_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 +echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking minix/config.h usability" >&5 +echo $ECHO_N "checking minix/config.h usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking minix/config.h presence" >&5 +echo $ECHO_N "checking minix/config.h presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: minix/config.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: minix/config.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: minix/config.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: minix/config.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: minix/config.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: minix/config.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: minix/config.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ------------------------------- ## +## Report this to bug-gawk@gnu.org ## +## ------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for minix/config.h" >&5 +echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6; } +if test "${ac_cv_header_minix_config_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_minix_config_h=$ac_header_preproc +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 +echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6; } + +fi +if test $ac_cv_header_minix_config_h = yes; then + MINIX=yes +else + MINIX= +fi + + +if test "$MINIX" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define _POSIX_SOURCE 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define _POSIX_1_SOURCE 2 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define _MINIX 1 +_ACEOF + +fi + + + + + + + + + + + + { echo "$as_me:$LINENO: checking whether it is safe to define __EXTENSIONS__" >&5 +echo $ECHO_N "checking whether it is safe to define __EXTENSIONS__... $ECHO_C" >&6; } +if test "${ac_cv_safe_to_define___extensions__+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +# define __EXTENSIONS__ 1 + $ac_includes_default +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_safe_to_define___extensions__=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_safe_to_define___extensions__=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_safe_to_define___extensions__" >&5 +echo "${ECHO_T}$ac_cv_safe_to_define___extensions__" >&6; } + test $ac_cv_safe_to_define___extensions__ = yes && + cat >>confdefs.h <<\_ACEOF +#define __EXTENSIONS__ 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define _POSIX_PTHREAD_SEMANTICS 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define _TANDEM_SOURCE 1 +_ACEOF + + + + { echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5 +echo $ECHO_N "checking for strerror in -lcposix... $ECHO_C" >&6; } +if test "${ac_cv_lib_cposix_strerror+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcposix $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char strerror (); +int +main () +{ +return strerror (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_cposix_strerror=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_cposix_strerror=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5 +echo "${ECHO_T}$ac_cv_lib_cposix_strerror" >&6; } +if test $ac_cv_lib_cposix_strerror = yes; then + LIBS="$LIBS -lcposix" +fi + + + +# Check whether --enable-largefile was given. +if test "${enable_largefile+set}" = set; then + enableval=$enable_largefile; +fi + +if test "$enable_largefile" != no; then + + { echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 +echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6; } +if test "${ac_cv_sys_largefile_CC+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + CC="$CC -n32" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_sys_largefile_CC=' -n32'; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 +echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6; } + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + { echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6; } +if test "${ac_cv_sys_file_offset_bits+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_sys_file_offset_bits=no; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_sys_file_offset_bits=64; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_file_offset_bits=unknown + break +done +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 +echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits +_ACEOF +;; +esac +rm -f conftest* + if test $ac_cv_sys_file_offset_bits = unknown; then + { echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 +echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6; } +if test "${ac_cv_sys_large_files+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_sys_large_files=no; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#define _LARGE_FILES 1 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_sys_large_files=1; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cv_sys_large_files=unknown + break +done +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 +echo "${ECHO_T}$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) +cat >>confdefs.h <<_ACEOF +#define _LARGE_FILES $ac_cv_sys_large_files +_ACEOF +;; +esac +rm -f conftest* + fi +fi + + +{ echo "$as_me:$LINENO: checking for AIX compilation hacks" >&5 +echo $ECHO_N "checking for AIX compilation hacks... $ECHO_C" >&6; } +if test "${gawk_cv_aix_hack+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +if test -d /lpp +then + CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED=1 -DGAWK_AIX=1" + gawk_cv_aix_hack=yes +else + gawk_cv_aix_hack=no +fi + +fi +{ echo "$as_me:$LINENO: result: ${gawk_cv_aix_hack}" >&5 +echo "${ECHO_T}${gawk_cv_aix_hack}" >&6; } + + +{ echo "$as_me:$LINENO: checking for Linux/Alpha compilation hacks" >&5 +echo $ECHO_N "checking for Linux/Alpha compilation hacks... $ECHO_C" >&6; } +if test "${gawk_cv_linux_alpha_hack+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + +if test "Linux" = "`uname`" && test "alpha" = "`uname -m`" +then + # this isn't necessarily always true, + # the vendor's compiler is also often found + if test "$GCC" = yes + then + CFLAGS="$CFLAGS -mieee" + gawk_cv_linux_alpha_hack=yes + else + gawk_cv_linux_alpha_hack=no + fi +else + gawk_cv_linux_alpha_hack=no +fi + +fi +{ echo "$as_me:$LINENO: result: ${gawk_cv_linux_alpha_hack}" >&5 +echo "${ECHO_T}${gawk_cv_linux_alpha_hack}" >&6; } + + +if test "$ISC" = 1 # will be set by test for ISC +then + CFLAGS="$CFLAGS -D_SYSV3" +fi + +{ echo "$as_me:$LINENO: checking for function prototypes" >&5 +echo $ECHO_N "checking for function prototypes... $ECHO_C" >&6; } +if test "$ac_cv_prog_cc_c89" != no; then + { echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6; } + +cat >>confdefs.h <<\_ACEOF +#define PROTOTYPES 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define __PROTOTYPES 1 +_ACEOF + +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + +if test "$ac_cv_prog_cc_stdc" != no; then + U= ANSI2KNR= +else + U=_ ANSI2KNR=./ansi2knr +fi +# Ensure some checks needed by ansi2knr itself. + + +for ac_header in string.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ------------------------------- ## +## Report this to bug-gawk@gnu.org ## +## ------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + +case `(uname) 2> /dev/null` in +*CYGWIN*) + with_libiconv_prefix=no + with_libintl_prefix=no + ;; +*) + ;; +esac + + + { echo "$as_me:$LINENO: checking whether NLS is requested" >&5 +echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6; } + # Check whether --enable-nls was given. +if test "${enable_nls+set}" = set; then + enableval=$enable_nls; USE_NLS=$enableval +else + USE_NLS=yes +fi + + { echo "$as_me:$LINENO: result: $USE_NLS" >&5 +echo "${ECHO_T}$USE_NLS" >&6; } + + + + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_MSGFMT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case "$MSGFMT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test "$MSGFMT" != ":"; then + { echo "$as_me:$LINENO: result: $MSGFMT" >&5 +echo "${ECHO_T}$MSGFMT" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_GMSGFMT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { echo "$as_me:$LINENO: result: $GMSGFMT" >&5 +echo "${ECHO_T}$GMSGFMT" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + + case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; + *) MSGFMT_015=$MSGFMT ;; + esac + + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_XGETTEXT+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case "$XGETTEXT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test "$XGETTEXT" != ":"; then + { echo "$as_me:$LINENO: result: $XGETTEXT" >&5 +echo "${ECHO_T}$XGETTEXT" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + rm -f messages.po + + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgmerge", so it can be a program name with args. +set dummy msgmerge; ac_word=$2 +{ echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } +if test "${ac_cv_path_MSGMERGE+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case "$MSGMERGE" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then + ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" + ;; +esac +fi +MSGMERGE="$ac_cv_path_MSGMERGE" +if test "$MSGMERGE" != ":"; then + { echo "$as_me:$LINENO: result: $MSGMERGE" >&5 +echo "${ECHO_T}$MSGMERGE" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi + + + test -n "$localedir" || localedir='${datadir}/locale' + + + ac_config_commands="$ac_config_commands po-directories" + + + + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 +echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} + { (exit 1); exit 1; }; } + +{ echo "$as_me:$LINENO: checking build system type" >&5 +echo $ECHO_N "checking build system type... $ECHO_C" >&6; } +if test "${ac_cv_build+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 +echo "$as_me: error: cannot guess build type; you must specify one" >&2;} + { (exit 1); exit 1; }; } +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} + { (exit 1); exit 1; }; } + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5 +echo "${ECHO_T}$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 +echo "$as_me: error: invalid value of canonical build" >&2;} + { (exit 1); exit 1; }; };; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ echo "$as_me:$LINENO: checking host system type" >&5 +echo $ECHO_N "checking host system type... $ECHO_C" >&6; } +if test "${ac_cv_host+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 +echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} + { (exit 1); exit 1; }; } +fi + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5 +echo "${ECHO_T}$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 +echo "$as_me: error: invalid value of canonical host" >&2;} + { (exit 1); exit 1; }; };; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { echo "$as_me:$LINENO: checking for ld used by GCC" >&5 +echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | [A-Za-z]:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { echo "$as_me:$LINENO: checking for GNU ld" >&5 +echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } +else + { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 +echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } +fi +if test "${acl_cv_path_LD+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break ;; + *) + test "$with_gnu_ld" != yes && break ;; + esac + fi + done + IFS="$ac_save_ifs" +else + acl_cv_path_LD="$LD" # Let the user override the test with a path. +fi +fi + +LD="$acl_cv_path_LD" +if test -n "$LD"; then + { echo "$as_me:$LINENO: result: $LD" >&5 +echo "${ECHO_T}$LD" >&6; } +else + { echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6; } +fi +test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 +echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} + { (exit 1); exit 1; }; } +{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 +echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } +if test "${acl_cv_prog_gnu_ld+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # I'd rather use --version here, but apparently some GNU ld's only accept -v. +case `$LD -v 2>&1 &5 +echo "${ECHO_T}$acl_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$acl_cv_prog_gnu_ld + + + + + { echo "$as_me:$LINENO: checking for shared library run path origin" >&5 +echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6; } +if test "${acl_cv_rpath+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + +fi +{ echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5 +echo "${ECHO_T}$acl_cv_rpath" >&6; } + wl="$acl_cv_wl" + libext="$acl_cv_libext" + shlibext="$acl_cv_shlibext" + hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + hardcode_direct="$acl_cv_hardcode_direct" + hardcode_minus_L="$acl_cv_hardcode_minus_L" + # Check whether --enable-rpath was given. +if test "${enable_rpath+set}" = set; then + enableval=$enable_rpath; : +else + enable_rpath=yes +fi + + + + acl_libdirstem=lib + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libiconv-prefix was given. +if test "${with_libiconv_prefix+set}" = set; then + withval=$with_libiconv_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi + +fi + + LIBICONV= + LTLIBICONV= + INCICONV= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='iconv ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + if test $use_additional = yes; then + if test -n "$shlibext" \ + && { test -f "$additional_libdir/lib$name.$shlibext" \ + || { test "$shlibext" = dll \ + && test -f "$additional_libdir/lib$name.dll.a"; }; }; then + found_dir="$additional_libdir" + if test -f "$additional_libdir/lib$name.$shlibext"; then + found_so="$additional_libdir/lib$name.$shlibext" + else + found_so="$additional_libdir/lib$name.dll.a" + fi + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + else + if test -f "$additional_libdir/lib$name.$libext"; then + found_dir="$additional_libdir" + found_a="$additional_libdir/lib$name.$libext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$shlibext" \ + && { test -f "$dir/lib$name.$shlibext" \ + || { test "$shlibext" = dll \ + && test -f "$dir/lib$name.dll.a"; }; }; then + found_dir="$dir" + if test -f "$dir/lib$name.$shlibext"; then + found_so="$dir/lib$name.$shlibext" + else + found_so="$dir/lib$name.dll.a" + fi + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + else + if test -f "$dir/lib$name.$libext"; then + found_dir="$dir" + found_a="$dir/lib$name.$libext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$hardcode_direct" = yes; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" + fi + if test "$hardcode_minus_L" != no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" + ;; + esac + done + fi + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" + done + fi + + + + + + + + + + + + + + + + + + + + + + + + + + { echo "$as_me:$LINENO: checking for CFPreferencesCopyAppValue" >&5 +echo $ECHO_N "checking for CFPreferencesCopyAppValue... $ECHO_C" >&6; } +if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +CFPreferencesCopyAppValue(NULL, NULL) + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + gt_cv_func_CFPreferencesCopyAppValue=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gt_cv_func_CFPreferencesCopyAppValue=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ echo "$as_me:$LINENO: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 +echo "${ECHO_T}$gt_cv_func_CFPreferencesCopyAppValue" >&6; } + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_CFPREFERENCESCOPYAPPVALUE 1 +_ACEOF + + fi + { echo "$as_me:$LINENO: checking for CFLocaleCopyCurrent" >&5 +echo $ECHO_N "checking for CFLocaleCopyCurrent... $ECHO_C" >&6; } +if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +CFLocaleCopyCurrent(); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + gt_cv_func_CFLocaleCopyCurrent=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gt_cv_func_CFLocaleCopyCurrent=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ echo "$as_me:$LINENO: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 +echo "${ECHO_T}$gt_cv_func_CFLocaleCopyCurrent" >&6; } + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_CFLOCALECOPYCURRENT 1 +_ACEOF + + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + + + + + + + LIBINTL= + LTLIBINTL= + POSUB= + + case " $gt_needs " in + *" need-formatstring-macros "*) gt_api_version=3 ;; + *" need-ngettext "*) gt_api_version=2 ;; + *) gt_api_version=1 ;; + esac + gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" + gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + + + if test $gt_api_version -ge 3; then + gt_revision_test_code=' +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +' + else + gt_revision_test_code= + fi + if test $gt_api_version -ge 2; then + gt_expression_test_code=' + * ngettext ("", "", 0)' + else + gt_expression_test_code= + fi + + { echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 +echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6; } +if { as_var=$gt_func_gnugettext_libc; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; +int +main () +{ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$gt_func_gnugettext_libc=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$gt_func_gnugettext_libc=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$gt_func_gnugettext_libc'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + + + + + + am_save_CPPFLAGS="$CPPFLAGS" + + for element in $INCICONV; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + + { echo "$as_me:$LINENO: checking for iconv" >&5 +echo $ECHO_N "checking for iconv... $ECHO_C" >&6; } +if test "${am_cv_func_iconv+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + am_cv_func_iconv=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + am_cv_lib_iconv=yes + am_cv_func_iconv=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$am_save_LIBS" + fi + +fi +{ echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 +echo "${ECHO_T}$am_cv_func_iconv" >&6; } + if test "$am_cv_func_iconv" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ICONV 1 +_ACEOF + + fi + if test "$am_cv_lib_iconv" = yes; then + { echo "$as_me:$LINENO: checking how to link with libiconv" >&5 +echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6; } + { echo "$as_me:$LINENO: result: $LIBICONV" >&5 +echo "${ECHO_T}$LIBICONV" >&6; } + else + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libintl-prefix was given. +if test "${with_libintl_prefix+set}" = set; then + withval=$with_libintl_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi + +fi + + LIBINTL= + LTLIBINTL= + INCINTL= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='intl ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + if test $use_additional = yes; then + if test -n "$shlibext" \ + && { test -f "$additional_libdir/lib$name.$shlibext" \ + || { test "$shlibext" = dll \ + && test -f "$additional_libdir/lib$name.dll.a"; }; }; then + found_dir="$additional_libdir" + if test -f "$additional_libdir/lib$name.$shlibext"; then + found_so="$additional_libdir/lib$name.$shlibext" + else + found_so="$additional_libdir/lib$name.dll.a" + fi + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + else + if test -f "$additional_libdir/lib$name.$libext"; then + found_dir="$additional_libdir" + found_a="$additional_libdir/lib$name.$libext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" + fi + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$shlibext" \ + && { test -f "$dir/lib$name.$shlibext" \ + || { test "$shlibext" = dll \ + && test -f "$dir/lib$name.dll.a"; }; }; then + found_dir="$dir" + if test -f "$dir/lib$name.$shlibext"; then + found_so="$dir/lib$name.$shlibext" + else + found_so="$dir/lib$name.dll.a" + fi + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + else + if test -f "$dir/lib$name.$libext"; then + found_dir="$dir" + found_a="$dir/lib$name.$libext" + if test -f "$dir/lib$name.la"; then + found_la="$dir/lib$name.la" + fi + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$hardcode_direct" = yes; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" + fi + if test "$hardcode_minus_L" != no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" + ;; + esac + done + fi + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" + done + fi + + { echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5 +echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6; } +if { as_var=$gt_func_gnugettext_libintl; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +int +main () +{ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$gt_func_gnugettext_libintl=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$gt_func_gnugettext_libintl=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +int +main () +{ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + eval "$gt_func_gnugettext_libintl=yes" + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS" +fi +ac_res=`eval echo '${'$gt_func_gnugettext_libintl'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + fi + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ + || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + +cat >>confdefs.h <<\_ACEOF +#define ENABLE_NLS 1 +_ACEOF + + else + USE_NLS=no + fi + fi + + { echo "$as_me:$LINENO: checking whether to use NLS" >&5 +echo $ECHO_N "checking whether to use NLS... $ECHO_C" >&6; } + { echo "$as_me:$LINENO: result: $USE_NLS" >&5 +echo "${ECHO_T}$USE_NLS" >&6; } + if test "$USE_NLS" = "yes"; then + { echo "$as_me:$LINENO: checking where the gettext function comes from" >&5 +echo $ECHO_N "checking where the gettext function comes from... $ECHO_C" >&6; } + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + { echo "$as_me:$LINENO: result: $gt_source" >&5 +echo "${ECHO_T}$gt_source" >&6; } + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + { echo "$as_me:$LINENO: checking how to link with libintl" >&5 +echo $ECHO_N "checking how to link with libintl... $ECHO_C" >&6; } + { echo "$as_me:$LINENO: result: $LIBINTL" >&5 +echo "${ECHO_T}$LIBINTL" >&6; } + + for element in $INCINTL; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + fi + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_GETTEXT 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_DCGETTEXT 1 +_ACEOF + + fi + + POSUB=po + fi + + + + INTLLIBS="$LIBINTL" + + + + + + + + + { echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5 +echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6; } +if test "${am_cv_langinfo_codeset+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +char* cs = nl_langinfo(CODESET); return !cs; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + am_cv_langinfo_codeset=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + am_cv_langinfo_codeset=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ echo "$as_me:$LINENO: result: $am_cv_langinfo_codeset" >&5 +echo "${ECHO_T}$am_cv_langinfo_codeset" >&6; } + if test $am_cv_langinfo_codeset = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LANGINFO_CODESET 1 +_ACEOF + + fi + + + { echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5 +echo $ECHO_N "checking for LC_MESSAGES... $ECHO_C" >&6; } +if test "${gt_cv_val_LC_MESSAGES+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +return LC_MESSAGES + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + gt_cv_val_LC_MESSAGES=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gt_cv_val_LC_MESSAGES=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $gt_cv_val_LC_MESSAGES" >&5 +echo "${ECHO_T}$gt_cv_val_LC_MESSAGES" >&6; } + if test $gt_cv_val_LC_MESSAGES = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LC_MESSAGES 1 +_ACEOF + + fi + + +{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_stdc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then + : +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then + : +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +echo "${ECHO_T}$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6; } +if test "${ac_cv_header_sys_wait_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#ifndef WEXITSTATUS +# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8) +#endif +#ifndef WIFEXITED +# define WIFEXITED(stat_val) (((stat_val) & 255) == 0) +#endif + +int +main () +{ + int s; + wait (&s); + s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_sys_wait_h=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_sys_wait_h=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 +echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6; } +if test $ac_cv_header_sys_wait_h = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_SYS_WAIT_H 1 +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 +echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; } +if test "${ac_cv_header_time+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include + +int +main () +{ +if ((struct tm *) 0) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_time=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_time=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 +echo "${ECHO_T}$ac_cv_header_time" >&6; } +if test $ac_cv_header_time = yes; then + +cat >>confdefs.h <<\_ACEOF +#define TIME_WITH_SYS_TIME 1 +_ACEOF + +fi + + + + + + + + + + + + + + + + + + + + + +for ac_header in arpa/inet.h fcntl.h limits.h locale.h libintl.h mcheck.h \ + netdb.h netinet/in.h signum.h stdarg.h stddef.h string.h \ + sys/param.h sys/socket.h sys/time.h unistd.h \ + termios.h stropts.h wchar.h wctype.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ------------------------------- ## +## Report this to bug-gawk@gnu.org ## +## ------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +if test "$ac_cv_header_string_h" = yes +then + +for ac_header in memory.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ------------------------------- ## +## Report this to bug-gawk@gnu.org ## +## ------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +else + +for ac_header in strings.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ------------------------------- ## +## Report this to bug-gawk@gnu.org ## +## ------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +fi + +{ echo "$as_me:$LINENO: checking for pid_t" >&5 +echo $ECHO_N "checking for pid_t... $ECHO_C" >&6; } +if test "${ac_cv_type_pid_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef pid_t ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_pid_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_pid_t=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 +echo "${ECHO_T}$ac_cv_type_pid_t" >&6; } +if test $ac_cv_type_pid_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define pid_t int +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking return type of signal handlers" >&5 +echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6; } +if test "${ac_cv_type_signal+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +return *(signal (0, 0)) (0) == 1; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_signal=int +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_signal=void +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 +echo "${ECHO_T}$ac_cv_type_signal" >&6; } + +cat >>confdefs.h <<_ACEOF +#define RETSIGTYPE $ac_cv_type_signal +_ACEOF + + +{ echo "$as_me:$LINENO: checking for size_t" >&5 +echo $ECHO_N "checking for size_t... $ECHO_C" >&6; } +if test "${ac_cv_type_size_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef size_t ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_size_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_size_t=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 +echo "${ECHO_T}$ac_cv_type_size_t" >&6; } +if test $ac_cv_type_size_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define size_t unsigned int +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5 +echo $ECHO_N "checking for uid_t in sys/types.h... $ECHO_C" >&6; } +if test "${ac_cv_type_uid_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "uid_t" >/dev/null 2>&1; then + ac_cv_type_uid_t=yes +else + ac_cv_type_uid_t=no +fi +rm -f conftest* + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5 +echo "${ECHO_T}$ac_cv_type_uid_t" >&6; } +if test $ac_cv_type_uid_t = no; then + +cat >>confdefs.h <<\_ACEOF +#define uid_t int +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define gid_t int +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking type of array argument to getgroups" >&5 +echo $ECHO_N "checking type of array argument to getgroups... $ECHO_C" >&6; } +if test "${ac_cv_type_getgroups+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_type_getgroups=cross +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Thanks to Mike Rendell for this test. */ +$ac_includes_default +#define NGID 256 +#undef MAX +#define MAX(x, y) ((x) > (y) ? (x) : (y)) + +int +main () +{ + gid_t gidset[NGID]; + int i, n; + union { gid_t gval; long int lval; } val; + + val.lval = -1; + for (i = 0; i < NGID; i++) + gidset[i] = val.gval; + n = getgroups (sizeof (gidset) / MAX (sizeof (int), sizeof (gid_t)) - 1, + gidset); + /* Exit non-zero if getgroups seems to require an array of ints. This + happens when gid_t is short int but getgroups modifies an array + of ints. */ + return n > 0 && gidset[n] != val.gval; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_type_getgroups=gid_t +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_type_getgroups=int +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +if test $ac_cv_type_getgroups = cross; then + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "getgroups.*int.*gid_t" >/dev/null 2>&1; then + ac_cv_type_getgroups=gid_t +else + ac_cv_type_getgroups=int +fi +rm -f conftest* + +fi +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_getgroups" >&5 +echo "${ECHO_T}$ac_cv_type_getgroups" >&6; } + +cat >>confdefs.h <<_ACEOF +#define GETGROUPS_T $ac_cv_type_getgroups +_ACEOF + + + + { echo "$as_me:$LINENO: checking for long long int" >&5 +echo $ECHO_N "checking for long long int... $ECHO_C" >&6; } +if test "${ac_cv_type_long_long_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +long long int ll = 9223372036854775807ll; + long long int nll = -9223372036854775807LL; + typedef int a[((-9223372036854775807LL < 0 + && 0 < 9223372036854775807ll) + ? 1 : -1)]; + int i = 63; +int +main () +{ +long long int llmax = 9223372036854775807ll; + return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) + | (llmax / ll) | (llmax % ll)); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_type_long_long_int=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_long_long_int=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_long_long_int" >&5 +echo "${ECHO_T}$ac_cv_type_long_long_int" >&6; } + if test $ac_cv_type_long_long_int = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LONG_LONG_INT 1 +_ACEOF + + fi + + + + ac_cv_type_long_long=$ac_cv_type_long_long_int + if test $ac_cv_type_long_long = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_LONG_LONG 1 +_ACEOF + + fi + + + { echo "$as_me:$LINENO: checking for unsigned long long int" >&5 +echo $ECHO_N "checking for unsigned long long int... $ECHO_C" >&6; } +if test "${ac_cv_type_unsigned_long_long_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +unsigned long long int ull = 18446744073709551615ULL; + typedef int a[(18446744073709551615ULL <= (unsigned long long int) -1 + ? 1 : -1)]; + int i = 63; +int +main () +{ +unsigned long long int ullmax = 18446744073709551615ull; + return (ull << 63 | ull >> 63 | ull << i | ull >> i + | ullmax / ull | ullmax % ull); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_type_unsigned_long_long_int=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_unsigned_long_long_int=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long_long_int" >&5 +echo "${ECHO_T}$ac_cv_type_unsigned_long_long_int" >&6; } + if test $ac_cv_type_unsigned_long_long_int = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_UNSIGNED_LONG_LONG_INT 1 +_ACEOF + + fi + + + + ac_cv_type_unsigned_long_long=$ac_cv_type_unsigned_long_long_int + if test $ac_cv_type_unsigned_long_long = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_UNSIGNED_LONG_LONG 1 +_ACEOF + + fi + + + { echo "$as_me:$LINENO: checking for inttypes.h" >&5 +echo $ECHO_N "checking for inttypes.h... $ECHO_C" >&6; } +if test "${gl_cv_header_inttypes_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int +main () +{ +uintmax_t i = (uintmax_t) -1; return !i; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_header_inttypes_h=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gl_cv_header_inttypes_h=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $gl_cv_header_inttypes_h" >&5 +echo "${ECHO_T}$gl_cv_header_inttypes_h" >&6; } + if test $gl_cv_header_inttypes_h = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_INTTYPES_H_WITH_UINTMAX 1 +_ACEOF + + fi + + + { echo "$as_me:$LINENO: checking for stdint.h" >&5 +echo $ECHO_N "checking for stdint.h... $ECHO_C" >&6; } +if test "${gl_cv_header_stdint_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int +main () +{ +uintmax_t i = (uintmax_t) -1; return !i; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + gl_cv_header_stdint_h=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + gl_cv_header_stdint_h=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $gl_cv_header_stdint_h" >&5 +echo "${ECHO_T}$gl_cv_header_stdint_h" >&6; } + if test $gl_cv_header_stdint_h = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STDINT_H_WITH_UINTMAX 1 +_ACEOF + + fi + + + + + if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then + + test $ac_cv_type_long_long = yes \ + && ac_type='long long' \ + || ac_type='long' + +cat >>confdefs.h <<_ACEOF +#define intmax_t $ac_type +_ACEOF + + else + +cat >>confdefs.h <<\_ACEOF +#define HAVE_INTMAX_T 1 +_ACEOF + + fi + + + + + if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then + + test $ac_cv_type_unsigned_long_long = yes \ + && ac_type='unsigned long long' \ + || ac_type='unsigned long' + +cat >>confdefs.h <<_ACEOF +#define uintmax_t $ac_type +_ACEOF + + else + +cat >>confdefs.h <<\_ACEOF +#define HAVE_UINTMAX_T 1 +_ACEOF + + fi + +{ echo "$as_me:$LINENO: checking for ssize_t" >&5 +echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6; } +if test "${ac_cv_type_ssize_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef ssize_t ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_ssize_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_ssize_t=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5 +echo "${ECHO_T}$ac_cv_type_ssize_t" >&6; } +if test $ac_cv_type_ssize_t = yes; then + : +else + +cat >>confdefs.h <<_ACEOF +#define ssize_t int +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for unsigned int" >&5 +echo $ECHO_N "checking for unsigned int... $ECHO_C" >&6; } +if test "${ac_cv_type_unsigned_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef unsigned int ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_unsigned_int=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_unsigned_int=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_int" >&5 +echo "${ECHO_T}$ac_cv_type_unsigned_int" >&6; } + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ echo "$as_me:$LINENO: checking size of unsigned int" >&5 +echo $ECHO_N "checking size of unsigned int... $ECHO_C" >&6; } +if test "${ac_cv_sizeof_unsigned_int+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef unsigned int ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef unsigned int ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef unsigned int ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef unsigned int ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo= ac_hi= +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef unsigned int ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr '(' $ac_mid ')' + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_unsigned_int=$ac_lo;; +'') if test "$ac_cv_type_unsigned_int" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (unsigned int) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (unsigned int) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_unsigned_int=0 + fi ;; +esac +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef unsigned int ac__type_sizeof_; +static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } +static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (((long int) (sizeof (ac__type_sizeof_))) < 0) + { + long int i = longval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%ld\n", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%lu\n", i); + } + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_unsigned_int=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +if test "$ac_cv_type_unsigned_int" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (unsigned int) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (unsigned int) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_unsigned_int=0 + fi +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.val +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_unsigned_int" >&5 +echo "${ECHO_T}$ac_cv_sizeof_unsigned_int" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UNSIGNED_INT $ac_cv_sizeof_unsigned_int +_ACEOF + + +{ echo "$as_me:$LINENO: checking for unsigned long" >&5 +echo $ECHO_N "checking for unsigned long... $ECHO_C" >&6; } +if test "${ac_cv_type_unsigned_long+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +typedef unsigned long ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_unsigned_long=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_unsigned_long=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long" >&5 +echo "${ECHO_T}$ac_cv_type_unsigned_long" >&6; } + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ echo "$as_me:$LINENO: checking size of unsigned long" >&5 +echo $ECHO_N "checking size of unsigned long... $ECHO_C" >&6; } +if test "${ac_cv_sizeof_unsigned_long+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef unsigned long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=0 ac_mid=0 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef unsigned long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr $ac_mid + 1` + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef unsigned long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=-1 ac_mid=-1 + while :; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef unsigned long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_lo=$ac_mid; break +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_hi=`expr '(' $ac_mid ')' - 1` + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + ac_mid=`expr 2 '*' $ac_mid` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo= ac_hi= +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef unsigned long ac__type_sizeof_; +int +main () +{ +static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_hi=$ac_mid +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_lo=`expr '(' $ac_mid ')' + 1` +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in +?*) ac_cv_sizeof_unsigned_long=$ac_lo;; +'') if test "$ac_cv_type_unsigned_long" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (unsigned long) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (unsigned long) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_unsigned_long=0 + fi ;; +esac +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default + typedef unsigned long ac__type_sizeof_; +static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } +static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (((long int) (sizeof (ac__type_sizeof_))) < 0) + { + long int i = longval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%ld\n", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ((long int) (sizeof (ac__type_sizeof_)))) + return 1; + fprintf (f, "%lu\n", i); + } + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_sizeof_unsigned_long=`cat conftest.val` +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +if test "$ac_cv_type_unsigned_long" = yes; then + { { echo "$as_me:$LINENO: error: cannot compute sizeof (unsigned long) +See \`config.log' for more details." >&5 +echo "$as_me: error: cannot compute sizeof (unsigned long) +See \`config.log' for more details." >&2;} + { (exit 77); exit 77; }; } + else + ac_cv_sizeof_unsigned_long=0 + fi +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +rm -f conftest.val +fi +{ echo "$as_me:$LINENO: result: $ac_cv_sizeof_unsigned_long" >&5 +echo "${ECHO_T}$ac_cv_sizeof_unsigned_long" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UNSIGNED_LONG $ac_cv_sizeof_unsigned_long +_ACEOF + + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "int.*sprintf" >/dev/null 2>&1; then + +cat >>confdefs.h <<\_ACEOF +#define SPRINTF_RET int +_ACEOF + +else + cat >>confdefs.h <<\_ACEOF +#define SPRINTF_RET char * +_ACEOF + +fi +rm -f conftest* + +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + + time_t foo; + foo = 0; + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + +cat >>confdefs.h <<\_ACEOF +#define TIME_T_IN_SYS_TYPES_H 1 +_ACEOF + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + + wctype_t foo; + foo = 0; + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_WCTYPE_T 1 +_ACEOF + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ + + wint_t foo; + foo = 0; + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_WINT_T 1 +_ACEOF + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +int +main () +{ + + struct sockaddr_storage foo; + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_SOCKADDR_STORAGE 1 +_ACEOF + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + + + + + + { echo "$as_me:$LINENO: checking for socklen_t" >&5 +echo $ECHO_N "checking for socklen_t... $ECHO_C" >&6; } +if test "${ac_cv_type_socklen_t+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +typedef socklen_t ac__type_new_; +int +main () +{ +if ((ac__type_new_ *) 0) + return 0; +if (sizeof (ac__type_new_)) + return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_type_socklen_t=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_type_socklen_t=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_type_socklen_t" >&5 +echo "${ECHO_T}$ac_cv_type_socklen_t" >&6; } +if test $ac_cv_type_socklen_t = yes; then + : +else + + { echo "$as_me:$LINENO: checking for socklen_t equivalent" >&5 +echo $ECHO_N "checking for socklen_t equivalent... $ECHO_C" >&6; } + if test "${rsync_cv_socklen_t_equiv+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + # Systems have either "struct sockaddr *" or + # "void *" as the second argument to getpeername + rsync_cv_socklen_t_equiv= + for arg2 in "struct sockaddr" void; do + for t in int size_t unsigned long "unsigned long"; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +#include +#include + + int getpeername (int, $arg2 *, $t *); + +int +main () +{ + + $t len; + getpeername(0,0,&len); + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + + rsync_cv_socklen_t_equiv="$t" + break + +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done + done + + if test "x$rsync_cv_socklen_t_equiv" = x; then + rsync_cv_socklen_t_equiv=int + fi + +fi + + { echo "$as_me:$LINENO: result: $rsync_cv_socklen_t_equiv" >&5 +echo "${ECHO_T}$rsync_cv_socklen_t_equiv" >&6; } + +cat >>confdefs.h <<_ACEOF +#define socklen_t $rsync_cv_socklen_t_equiv +_ACEOF + +fi + + + + +for ac_func in vprintf +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +{ echo "$as_me:$LINENO: checking for _doprnt" >&5 +echo $ECHO_N "checking for _doprnt... $ECHO_C" >&6; } +if test "${ac_cv_func__doprnt+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define _doprnt to an innocuous variant, in case declares _doprnt. + For example, HP-UX 11i declares gettimeofday. */ +#define _doprnt innocuous__doprnt + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char _doprnt (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef _doprnt + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char _doprnt (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub__doprnt || defined __stub____doprnt +choke me +#endif + +int +main () +{ +return _doprnt (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func__doprnt=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func__doprnt=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 +echo "${ECHO_T}$ac_cv_func__doprnt" >&6; } +if test $ac_cv_func__doprnt = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_DOPRNT 1 +_ACEOF + +fi + +fi +done + + + + + + +for ac_header in $ac_header_list +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ------------------------------- ## +## Report this to bug-gawk@gnu.org ## +## ------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + + + + + +for ac_func in $ac_func_list +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + + + + + + + + + + + + + + + + +{ echo "$as_me:$LINENO: checking for working mktime" >&5 +echo $ECHO_N "checking for working mktime... $ECHO_C" >&6; } +if test "${ac_cv_func_working_mktime+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + if test "$cross_compiling" = yes; then + ac_cv_func_working_mktime=no +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Test program from Paul Eggert and Tony Leneis. */ +#ifdef TIME_WITH_SYS_TIME +# include +# include +#else +# ifdef HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif + +#include + +#ifdef HAVE_UNISTD_H +# include +#endif + +#ifndef HAVE_ALARM +# define alarm(X) /* empty */ +#endif + +/* Work around redefinition to rpl_putenv by other config tests. */ +#undef putenv + +static time_t time_t_max; +static time_t time_t_min; + +/* Values we'll use to set the TZ environment variable. */ +static char *tz_strings[] = { + (char *) 0, "TZ=GMT0", "TZ=JST-9", + "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" +}; +#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) + +/* Return 0 if mktime fails to convert a date in the spring-forward gap. + Based on a problem report from Andreas Jaeger. */ +static int +spring_forward_gap () +{ + /* glibc (up to about 1998-10-07) failed this test. */ + struct tm tm; + + /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" + instead of "TZ=America/Vancouver" in order to detect the bug even + on systems that don't support the Olson extension, or don't have the + full zoneinfo tables installed. */ + putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); + + tm.tm_year = 98; + tm.tm_mon = 3; + tm.tm_mday = 5; + tm.tm_hour = 2; + tm.tm_min = 0; + tm.tm_sec = 0; + tm.tm_isdst = -1; + return mktime (&tm) != (time_t) -1; +} + +static int +mktime_test1 (now) + time_t now; +{ + struct tm *lt; + return ! (lt = localtime (&now)) || mktime (lt) == now; +} + +static int +mktime_test (now) + time_t now; +{ + return (mktime_test1 (now) + && mktime_test1 ((time_t) (time_t_max - now)) + && mktime_test1 ((time_t) (time_t_min + now))); +} + +static int +irix_6_4_bug () +{ + /* Based on code from Ariel Faigon. */ + struct tm tm; + tm.tm_year = 96; + tm.tm_mon = 3; + tm.tm_mday = 0; + tm.tm_hour = 0; + tm.tm_min = 0; + tm.tm_sec = 0; + tm.tm_isdst = -1; + mktime (&tm); + return tm.tm_mon == 2 && tm.tm_mday == 31; +} + +static int +bigtime_test (j) + int j; +{ + struct tm tm; + time_t now; + tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j; + now = mktime (&tm); + if (now != (time_t) -1) + { + struct tm *lt = localtime (&now); + if (! (lt + && lt->tm_year == tm.tm_year + && lt->tm_mon == tm.tm_mon + && lt->tm_mday == tm.tm_mday + && lt->tm_hour == tm.tm_hour + && lt->tm_min == tm.tm_min + && lt->tm_sec == tm.tm_sec + && lt->tm_yday == tm.tm_yday + && lt->tm_wday == tm.tm_wday + && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) + == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) + return 0; + } + return 1; +} + +static int +year_2050_test () +{ + /* The correct answer for 2050-02-01 00:00:00 in Pacific time, + ignoring leap seconds. */ + unsigned long int answer = 2527315200UL; + + struct tm tm; + time_t t; + tm.tm_year = 2050 - 1900; + tm.tm_mon = 2 - 1; + tm.tm_mday = 1; + tm.tm_hour = tm.tm_min = tm.tm_sec = 0; + tm.tm_isdst = -1; + + /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" + instead of "TZ=America/Vancouver" in order to detect the bug even + on systems that don't support the Olson extension, or don't have the + full zoneinfo tables installed. */ + putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); + + t = mktime (&tm); + + /* Check that the result is either a failure, or close enough + to the correct answer that we can assume the discrepancy is + due to leap seconds. */ + return (t == (time_t) -1 + || (0 < t && answer - 120 <= t && t <= answer + 120)); +} + +int +main () +{ + time_t t, delta; + int i, j; + + /* This test makes some buggy mktime implementations loop. + Give up after 60 seconds; a mktime slower than that + isn't worth using anyway. */ + alarm (60); + + for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2) + continue; + time_t_max--; + if ((time_t) -1 < 0) + for (time_t_min = -1; (time_t) (time_t_min * 2) < 0; time_t_min *= 2) + continue; + delta = time_t_max / 997; /* a suitable prime number */ + for (i = 0; i < N_STRINGS; i++) + { + if (tz_strings[i]) + putenv (tz_strings[i]); + + for (t = 0; t <= time_t_max - delta; t += delta) + if (! mktime_test (t)) + return 1; + if (! (mktime_test ((time_t) 1) + && mktime_test ((time_t) (60 * 60)) + && mktime_test ((time_t) (60 * 60 * 24)))) + return 1; + + for (j = 1; 0 < j; j *= 2) + if (! bigtime_test (j)) + return 1; + if (! bigtime_test (j - 1)) + return 1; + } + return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ()); +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_func_working_mktime=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_func_working_mktime=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_working_mktime" >&5 +echo "${ECHO_T}$ac_cv_func_working_mktime" >&6; } +if test $ac_cv_func_working_mktime = no; then + case " $LIBOBJS " in + *" mktime.$ac_objext "* ) ;; + *) LIBOBJS="$LIBOBJS mktime.$ac_objext" + ;; +esac + +fi + +case "$ac_cv_func_working_mktime" in +yes) +cat >>confdefs.h <<\_ACEOF +#define HAVE_MKTIME 1 +_ACEOF + + ;; +esac + +{ echo "$as_me:$LINENO: checking for getaddrinfo" >&5 +echo $ECHO_N "checking for getaddrinfo... $ECHO_C" >&6; } +if test "${ac_cv_func_getaddrinfo+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define getaddrinfo to an innocuous variant, in case declares getaddrinfo. + For example, HP-UX 11i declares gettimeofday. */ +#define getaddrinfo innocuous_getaddrinfo + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char getaddrinfo (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef getaddrinfo + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char getaddrinfo (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_getaddrinfo || defined __stub___getaddrinfo +choke me +#endif + +int +main () +{ +return getaddrinfo (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_getaddrinfo=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_getaddrinfo=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_getaddrinfo" >&5 +echo "${ECHO_T}$ac_cv_func_getaddrinfo" >&6; } +if test $ac_cv_func_getaddrinfo = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_GETADDRINFO 1 +_ACEOF + +else + { echo "$as_me:$LINENO: checking for getaddrinfo in -lsocket" >&5 +echo $ECHO_N "checking for getaddrinfo in -lsocket... $ECHO_C" >&6; } +if test "${ac_cv_lib_socket_getaddrinfo+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char getaddrinfo (); +int +main () +{ +return getaddrinfo (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_socket_getaddrinfo=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_socket_getaddrinfo=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_socket_getaddrinfo" >&5 +echo "${ECHO_T}$ac_cv_lib_socket_getaddrinfo" >&6; } +if test $ac_cv_lib_socket_getaddrinfo = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_GETADDRINFO 1 +_ACEOF + +fi + +fi + + + +{ echo "$as_me:$LINENO: checking for fmod in -lm" >&5 +echo $ECHO_N "checking for fmod in -lm... $ECHO_C" >&6; } +if test "${ac_cv_lib_m_fmod+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lm $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fmod (); +int +main () +{ +return fmod (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_m_fmod=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_m_fmod=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_m_fmod" >&5 +echo "${ECHO_T}$ac_cv_lib_m_fmod" >&6; } +if test $ac_cv_lib_m_fmod = yes; then + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBM 1 +_ACEOF + + LIBS="-lm $LIBS" + +fi + + +# Need the check for mkstemp and tmpfile for missing_d/snprintf.c. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +for ac_func in atexit btowc fmod getgrent getgroups grantpt \ + isascii iswctype iswlower iswupper mbrlen \ + memcmp memcpy memcpy_ulong memmove memset \ + memset_ulong mkstemp setlocale snprintf strchr \ + strerror strftime strncasecmp strtod strtoul \ + system tmpfile towlower towupper tzset wcrtomb \ + wcscoll wcscoll wctype +do +as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` +{ echo "$as_me:$LINENO: checking for $ac_func" >&5 +echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } +if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define $ac_func to an innocuous variant, in case declares $ac_func. + For example, HP-UX 11i declares gettimeofday. */ +#define $ac_func innocuous_$ac_func + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $ac_func + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $ac_func (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$ac_func || defined __stub___$ac_func +choke me +#endif + +int +main () +{ +return $ac_func (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + eval "$as_ac_var=yes" +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_var=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +ac_res=`eval echo '${'$as_ac_var'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + + { echo "$as_me:$LINENO: checking whether mbrtowc and mbstate_t are properly declared" >&5 +echo $ECHO_N "checking whether mbrtowc and mbstate_t are properly declared... $ECHO_C" >&6; } +if test "${ac_cv_func_mbrtowc+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +wchar_t wc; + char const s[] = ""; + size_t n = 1; + mbstate_t state; + return ! (sizeof state && (mbrtowc) (&wc, s, n, &state)); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_mbrtowc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_mbrtowc=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_mbrtowc" >&5 +echo "${ECHO_T}$ac_cv_func_mbrtowc" >&6; } + if test $ac_cv_func_mbrtowc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_MBRTOWC 1 +_ACEOF + + fi + + +if test "${ac_cv_header_dlfcn_h+set}" = set; then + { echo "$as_me:$LINENO: checking for dlfcn.h" >&5 +echo $ECHO_N "checking for dlfcn.h... $ECHO_C" >&6; } +if test "${ac_cv_header_dlfcn_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_dlfcn_h" >&5 +echo "${ECHO_T}$ac_cv_header_dlfcn_h" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking dlfcn.h usability" >&5 +echo $ECHO_N "checking dlfcn.h usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking dlfcn.h presence" >&5 +echo $ECHO_N "checking dlfcn.h presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: dlfcn.h: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: dlfcn.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: dlfcn.h: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: dlfcn.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: dlfcn.h: present but cannot be compiled" >&5 +echo "$as_me: WARNING: dlfcn.h: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: dlfcn.h: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: dlfcn.h: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: dlfcn.h: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: dlfcn.h: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: dlfcn.h: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: dlfcn.h: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: dlfcn.h: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: dlfcn.h: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: dlfcn.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ------------------------------- ## +## Report this to bug-gawk@gnu.org ## +## ------------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ echo "$as_me:$LINENO: checking for dlfcn.h" >&5 +echo $ECHO_N "checking for dlfcn.h... $ECHO_C" >&6; } +if test "${ac_cv_header_dlfcn_h+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_header_dlfcn_h=$ac_header_preproc +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_dlfcn_h" >&5 +echo "${ECHO_T}$ac_cv_header_dlfcn_h" >&6; } + +fi +if test $ac_cv_header_dlfcn_h = yes; then + +cat >>confdefs.h <<\_ACEOF +#define DYNAMIC 1 +_ACEOF + + if test "$GCC" = yes + then + # Add others here as appropriate, + # one day use GNU libtool. + if uname | $EGREP -i 'linux|freebsd|cygwin' > /dev/null + then + LDFLAGS="$LDFLAGS -export-dynamic" + fi + fi + + # Check this separately. Some systems have dlopen + # in libc. Notably freebsd and cygwin. + # HP-NSK has it in zrldsrl + { echo "$as_me:$LINENO: checking for library containing dlopen" >&5 +echo $ECHO_N "checking for library containing dlopen... $ECHO_C" >&6; } +if test "${ac_cv_search_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_func_search_save_LIBS=$LIBS +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +for ac_lib in '' dl zrldsrl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_search_dlopen=$ac_res +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext + if test "${ac_cv_search_dlopen+set}" = set; then + break +fi +done +if test "${ac_cv_search_dlopen+set}" = set; then + : +else + ac_cv_search_dlopen=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_search_dlopen" >&5 +echo "${ECHO_T}$ac_cv_search_dlopen" >&6; } +ac_res=$ac_cv_search_dlopen +if test "$ac_res" != no; then + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + +fi + + + +case `(uname) 2> /dev/null` in +*VMS*|*BeOS*|*OS/2*|*MS-DOS*) + +cat >>confdefs.h <<\_ACEOF +#define GETPGRP_VOID 1 +_ACEOF + + ;; +*) { echo "$as_me:$LINENO: checking whether getpgrp requires zero arguments" >&5 +echo $ECHO_N "checking whether getpgrp requires zero arguments... $ECHO_C" >&6; } +if test "${ac_cv_func_getpgrp_void+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # Use it with a single arg. +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +getpgrp (0); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_func_getpgrp_void=no +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_getpgrp_void=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_getpgrp_void" >&5 +echo "${ECHO_T}$ac_cv_func_getpgrp_void" >&6; } +if test $ac_cv_func_getpgrp_void = yes; then + +cat >>confdefs.h <<\_ACEOF +#define GETPGRP_VOID 1 +_ACEOF + +fi + + ;; +esac + +{ echo "$as_me:$LINENO: checking for printf %F format" >&5 +echo $ECHO_N "checking for printf %F format... $ECHO_C" >&6; } +if test "$cross_compiling" = yes; then + has_f_format=no +else + cat >conftest.$ac_ext <<_ACEOF + +#include + +int main() +{ + char buf[100]; + + sprintf(buf, "%F", 123.45); + + if (strcmp(buf, "123.450000") == 0) + return 0; + else + return 1; +} + +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + has_f_format=yes +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +has_f_format=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +if test "$has_f_format" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define PRINTF_HAS_F_FORMAT 1 +_ACEOF + +fi +{ echo "$as_me:$LINENO: result: $has_f_format" >&5 +echo "${ECHO_T}$has_f_format" >&6; } + + +gawk_have_sockets=no +# Check for system-dependent location of socket libraries + +SOCKET_LIBS= +if test "$ISC" = yes; then + SOCKET_LIBS="-lnsl_s -linet" +else + # Martyn.Johnson@cl.cam.ac.uk says this is needed for Ultrix, if the X + # libraries were built with DECnet support. And karl@cs.umb.edu says + # the Alpha needs dnet_stub (dnet does not exist). + # + # ADR: Is this needed just for sockets??? +# AC_CHECK_LIB(dnet, dnet_ntoa, [SOCKET_LIBS="$SOCKET_LIBS -ldnet"]) +# if test $ac_cv_lib_dnet_ntoa = no; then +# AC_CHECK_LIB(dnet_stub, dnet_ntoa, +# [SOCKET_LIBS="$SOCKET_LIBS -ldnet_stub"]) +# fi + + # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, + # to get the SysV transport functions. + # chad@anasazi.com says the Pyramid MIS-ES running DC/OSx (SVR4) + # needs -lnsl. + # The nsl library prevents programs from opening the X display + # on Irix 5.2, according to dickey@clark.net. + { echo "$as_me:$LINENO: checking for gethostbyname" >&5 +echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6; } +if test "${ac_cv_func_gethostbyname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define gethostbyname to an innocuous variant, in case declares gethostbyname. + For example, HP-UX 11i declares gettimeofday. */ +#define gethostbyname innocuous_gethostbyname + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char gethostbyname (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef gethostbyname + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_gethostbyname || defined __stub___gethostbyname +choke me +#endif + +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_gethostbyname=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_gethostbyname=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5 +echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6; } + + if test $ac_cv_func_gethostbyname = no; then + { echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 +echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6; } +if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_nsl_gethostbyname=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_nsl_gethostbyname=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 +echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6; } +if test $ac_cv_lib_nsl_gethostbyname = yes; then + SOCKET_LIBS="$SOCKET_LIBS -lnsl" +fi + + fi + + # lieder@skyler.mavd.honeywell.com says without -lsocket, + # socket/setsockopt and other routines are undefined under SCO ODT + # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary + # on later versions), says simon@lia.di.epfl.ch: it contains + # gethostby* variants that don't use the nameserver (or something). + # -lsocket must be given before -lnsl if both are needed. + # We assume that if connect needs -lnsl, so does gethostbyname. + { echo "$as_me:$LINENO: checking for connect" >&5 +echo $ECHO_N "checking for connect... $ECHO_C" >&6; } +if test "${ac_cv_func_connect+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +/* Define connect to an innocuous variant, in case declares connect. + For example, HP-UX 11i declares gettimeofday. */ +#define connect innocuous_connect + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char connect (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef connect + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char connect (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_connect || defined __stub___connect +choke me +#endif + +int +main () +{ +return connect (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_func_connect=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_func_connect=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5 +echo "${ECHO_T}$ac_cv_func_connect" >&6; } + + if test $ac_cv_func_connect = no; then + { echo "$as_me:$LINENO: checking for connect in -lsocket" >&5 +echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6; } +if test "${ac_cv_lib_socket_connect+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $SOCKET_LIBS $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char connect (); +int +main () +{ +return connect (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_lib_socket_connect=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_socket_connect=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5 +echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6; } +if test $ac_cv_lib_socket_connect = yes; then + SOCKET_LIBS="-lsocket $SOCKET_LIBS" + gawk_have_sockets=yes +fi + + else + gawk_have_sockets=yes + fi +fi + +if test "${gawk_have_sockets}" = "yes" +then + { echo "$as_me:$LINENO: checking where to find the socket library calls" >&5 +echo $ECHO_N "checking where to find the socket library calls... $ECHO_C" >&6; } + case "${SOCKET_LIBS}" in + ?*) gawk_lib_loc="${SOCKET_LIBS}" ;; + *) gawk_lib_loc="the standard library" ;; + esac + { echo "$as_me:$LINENO: result: ${gawk_lib_loc}" >&5 +echo "${ECHO_T}${gawk_lib_loc}" >&6; } + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_SOCKETS 1 +_ACEOF + +fi + + +{ echo "$as_me:$LINENO: checking for struct stat.st_blksize" >&5 +echo $ECHO_N "checking for struct stat.st_blksize... $ECHO_C" >&6; } +if test "${ac_cv_member_struct_stat_st_blksize+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static struct stat ac_aggr; +if (ac_aggr.st_blksize) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_member_struct_stat_st_blksize=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static struct stat ac_aggr; +if (sizeof ac_aggr.st_blksize) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_member_struct_stat_st_blksize=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_member_struct_stat_st_blksize=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blksize" >&5 +echo "${ECHO_T}$ac_cv_member_struct_stat_st_blksize" >&6; } +if test $ac_cv_member_struct_stat_st_blksize = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 +_ACEOF + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_ST_BLKSIZE 1 +_ACEOF + +fi + + +{ echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 +echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; } +if test "${ac_cv_header_time+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include + +int +main () +{ +if ((struct tm *) 0) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_time=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_time=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 +echo "${ECHO_T}$ac_cv_header_time" >&6; } +if test $ac_cv_header_time = yes; then + +cat >>confdefs.h <<\_ACEOF +#define TIME_WITH_SYS_TIME 1 +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 +echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6; } +if test "${ac_cv_struct_tm+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +struct tm tm; + int *p = &tm.tm_sec; + return !p; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_struct_tm=time.h +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_struct_tm=sys/time.h +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 +echo "${ECHO_T}$ac_cv_struct_tm" >&6; } +if test $ac_cv_struct_tm = sys/time.h; then + +cat >>confdefs.h <<\_ACEOF +#define TM_IN_SYS_TIME 1 +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for struct tm.tm_zone" >&5 +echo $ECHO_N "checking for struct tm.tm_zone... $ECHO_C" >&6; } +if test "${ac_cv_member_struct_tm_tm_zone+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include <$ac_cv_struct_tm> + + +int +main () +{ +static struct tm ac_aggr; +if (ac_aggr.tm_zone) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_member_struct_tm_tm_zone=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include <$ac_cv_struct_tm> + + +int +main () +{ +static struct tm ac_aggr; +if (sizeof ac_aggr.tm_zone) +return 0; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_member_struct_tm_tm_zone=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_member_struct_tm_tm_zone=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_zone" >&5 +echo "${ECHO_T}$ac_cv_member_struct_tm_tm_zone" >&6; } +if test $ac_cv_member_struct_tm_tm_zone = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TM_TM_ZONE 1 +_ACEOF + + +fi + +if test "$ac_cv_member_struct_tm_tm_zone" = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_TM_ZONE 1 +_ACEOF + +else + { echo "$as_me:$LINENO: checking whether tzname is declared" >&5 +echo $ECHO_N "checking whether tzname is declared... $ECHO_C" >&6; } +if test "${ac_cv_have_decl_tzname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef tzname + (void) tzname; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_have_decl_tzname=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_decl_tzname=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_have_decl_tzname" >&5 +echo "${ECHO_T}$ac_cv_have_decl_tzname" >&6; } +if test $ac_cv_have_decl_tzname = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_TZNAME 1 +_ACEOF + + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_TZNAME 0 +_ACEOF + + +fi + + + { echo "$as_me:$LINENO: checking for tzname" >&5 +echo $ECHO_N "checking for tzname... $ECHO_C" >&6; } +if test "${ac_cv_var_tzname+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#if !HAVE_DECL_TZNAME +extern char *tzname[]; +#endif + +int +main () +{ +return tzname[0][0]; + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_link") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && + $as_test_x conftest$ac_exeext; then + ac_cv_var_tzname=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_var_tzname=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ + conftest$ac_exeext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_var_tzname" >&5 +echo "${ECHO_T}$ac_cv_var_tzname" >&6; } + if test $ac_cv_var_tzname = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_TZNAME 1 +_ACEOF + + fi +fi + + + +{ echo "$as_me:$LINENO: checking whether char is unsigned" >&5 +echo $ECHO_N "checking whether char is unsigned... $ECHO_C" >&6; } +if test "${ac_cv_c_char_unsigned+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(((char) -1) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_c_char_unsigned=no +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_c_char_unsigned=yes +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_char_unsigned" >&5 +echo "${ECHO_T}$ac_cv_c_char_unsigned" >&6; } +if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then + cat >>confdefs.h <<\_ACEOF +#define __CHAR_UNSIGNED__ 1 +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 +echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; } +if test "${ac_cv_c_const+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +int +main () +{ +/* FIXME: Include the comments suggested by Paul. */ +#ifndef __cplusplus + /* Ultrix mips cc rejects this. */ + typedef int charset[2]; + const charset cs; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this. */ + char *t; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + if (s) return 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; }; + struct s *b; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + if (!foo) return 0; + } + return !cs[0] && !zero.x; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_c_const=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_c_const=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 +echo "${ECHO_T}$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then + +cat >>confdefs.h <<\_ACEOF +#define const +_ACEOF + +fi + +{ echo "$as_me:$LINENO: checking for C/C++ restrict keyword" >&5 +echo $ECHO_N "checking for C/C++ restrict keyword... $ECHO_C" >&6; } +if test "${ac_cv_c_restrict+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_c_restrict=no + # Try the official restrict keyword, then gcc's __restrict, and + # the less common variants. + for ac_kw in restrict __restrict __restrict__ _Restrict; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +typedef int * int_ptr; + int foo (int_ptr $ac_kw ip) { + return ip[0]; + } +int +main () +{ +int s[1]; + int * $ac_kw t = s; + t[0] = 0; + return foo(t) + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_c_restrict=$ac_kw +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_restrict" != no && break + done + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_restrict" >&5 +echo "${ECHO_T}$ac_cv_c_restrict" >&6; } + case $ac_cv_c_restrict in + restrict) ;; + no) +cat >>confdefs.h <<\_ACEOF +#define restrict +_ACEOF + ;; + *) cat >>confdefs.h <<_ACEOF +#define restrict $ac_cv_c_restrict +_ACEOF + ;; + esac + +{ echo "$as_me:$LINENO: checking for inline" >&5 +echo $ECHO_N "checking for inline... $ECHO_C" >&6; } +if test "${ac_cv_c_inline+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_c_inline=$ac_kw +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 +echo "${ECHO_T}$ac_cv_c_inline" >&6; } + + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + +{ echo "$as_me:$LINENO: checking for preprocessor stringizing operator" >&5 +echo $ECHO_N "checking for preprocessor stringizing operator... $ECHO_C" >&6; } +if test "${ac_cv_c_stringize+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#define x(y) #y + +char *s = x(teststring); +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "#teststring" >/dev/null 2>&1; then + ac_cv_c_stringize=no +else + ac_cv_c_stringize=yes +fi +rm -f conftest* + +fi +{ echo "$as_me:$LINENO: result: $ac_cv_c_stringize" >&5 +echo "${ECHO_T}$ac_cv_c_stringize" >&6; } +if test $ac_cv_c_stringize = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_STRINGIZE 1 +_ACEOF + +fi + + +ac_config_headers="$ac_config_headers config.h:configh.in" + + + + +ac_config_files="$ac_config_files Makefile awklib/Makefile doc/Makefile po/Makefile.in test/Makefile" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 +echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { echo "$as_me:$LINENO: updating cache $cache_file" >&5 +echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi + +: ${CONFIG_STATUS=./config.status} +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false +SHELL=\${CONFIG_SHELL-$SHELL} +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# PATH needs CR +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +as_nl=' +' +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break +done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +for as_var in \ + LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ + LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ + LC_TELEPHONE LC_TIME +do + if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then + eval $as_var=C; export $as_var + else + ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + fi +done + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + + +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { + + # Create $as_me.lineno as a copy of $as_myself, but with $LINENO + # uniformly replaced by the line number. The first 'sed' inserts a + # line-number line after each line using $LINENO; the second 'sed' + # does the real work. The second script uses 'N' to pair each + # line-number line with the line containing $LINENO, and appends + # trailing '-' during substitution so that $LINENO is not a special + # case at line end. + # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the + # scripts with optimization help from Paolo Bonzini. Blame Lee + # E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 + { (exit 1); exit 1; }; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir +fi +echo >conf$$.file +if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' +elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 + +# Save the log message, to keep $[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by GNU Awk $as_me 3.1.6, which was +generated by GNU Autoconf 2.61. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +cat >>$CONFIG_STATUS <<_ACEOF +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTIONS] [FILE]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +ac_cs_version="\\ +GNU Awk config.status 3.1.6 +configured by $0, generated by GNU Autoconf 2.61, + with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" + +Copyright (C) 2006 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If no file are specified by the user, then we need to provide default +# value. By we need to know if files were specified by the user. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + echo "$ac_cs_version"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + CONFIG_FILES="$CONFIG_FILES $ac_optarg" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + { echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { echo "$as_me: error: unrecognized option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; } ;; + + *) ac_config_targets="$ac_config_targets $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +if \$ac_cs_recheck; then + echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 + CONFIG_SHELL=$SHELL + export CONFIG_SHELL + exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" +# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake < 1.5. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:configh.in" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "awklib/Makefile") CONFIG_FILES="$CONFIG_FILES awklib/Makefile" ;; + "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; + "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; + + *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +echo "$as_me: error: invalid argument: $ac_config_target" >&2;} + { (exit 1); exit 1; }; };; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || +{ + echo "$me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } +} + +# +# Set up the sed scripts for CONFIG_FILES section. +# + +# No need to generate the scripts if there are no CONFIG_FILES. +# This happens for instance when ./config.status config.h +if test -n "$CONFIG_FILES"; then + +_ACEOF + + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +SHELL!$SHELL$ac_delim +PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim +PACKAGE_NAME!$PACKAGE_NAME$ac_delim +PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim +PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim +PACKAGE_STRING!$PACKAGE_STRING$ac_delim +PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim +exec_prefix!$exec_prefix$ac_delim +prefix!$prefix$ac_delim +program_transform_name!$program_transform_name$ac_delim +bindir!$bindir$ac_delim +sbindir!$sbindir$ac_delim +libexecdir!$libexecdir$ac_delim +datarootdir!$datarootdir$ac_delim +datadir!$datadir$ac_delim +sysconfdir!$sysconfdir$ac_delim +sharedstatedir!$sharedstatedir$ac_delim +localstatedir!$localstatedir$ac_delim +includedir!$includedir$ac_delim +oldincludedir!$oldincludedir$ac_delim +docdir!$docdir$ac_delim +infodir!$infodir$ac_delim +htmldir!$htmldir$ac_delim +dvidir!$dvidir$ac_delim +pdfdir!$pdfdir$ac_delim +psdir!$psdir$ac_delim +libdir!$libdir$ac_delim +localedir!$localedir$ac_delim +mandir!$mandir$ac_delim +DEFS!$DEFS$ac_delim +ECHO_C!$ECHO_C$ac_delim +ECHO_N!$ECHO_N$ac_delim +ECHO_T!$ECHO_T$ac_delim +LIBS!$LIBS$ac_delim +build_alias!$build_alias$ac_delim +host_alias!$host_alias$ac_delim +target_alias!$target_alias$ac_delim +INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim +INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim +INSTALL_DATA!$INSTALL_DATA$ac_delim +am__isrc!$am__isrc$ac_delim +CYGPATH_W!$CYGPATH_W$ac_delim +PACKAGE!$PACKAGE$ac_delim +VERSION!$VERSION$ac_delim +ACLOCAL!$ACLOCAL$ac_delim +AUTOCONF!$AUTOCONF$ac_delim +AUTOMAKE!$AUTOMAKE$ac_delim +AUTOHEADER!$AUTOHEADER$ac_delim +MAKEINFO!$MAKEINFO$ac_delim +install_sh!$install_sh$ac_delim +STRIP!$STRIP$ac_delim +INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim +mkdir_p!$mkdir_p$ac_delim +AWK!$AWK$ac_delim +SET_MAKE!$SET_MAKE$ac_delim +am__leading_dot!$am__leading_dot$ac_delim +AMTAR!$AMTAR$ac_delim +am__tar!$am__tar$ac_delim +am__untar!$am__untar$ac_delim +GREP!$GREP$ac_delim +EGREP!$EGREP$ac_delim +YACC!$YACC$ac_delim +YFLAGS!$YFLAGS$ac_delim +LN_S!$LN_S$ac_delim +CC!$CC$ac_delim +CFLAGS!$CFLAGS$ac_delim +LDFLAGS!$LDFLAGS$ac_delim +CPPFLAGS!$CPPFLAGS$ac_delim +ac_ct_CC!$ac_ct_CC$ac_delim +EXEEXT!$EXEEXT$ac_delim +OBJEXT!$OBJEXT$ac_delim +DEPDIR!$DEPDIR$ac_delim +am__include!$am__include$ac_delim +am__quote!$am__quote$ac_delim +AMDEP_TRUE!$AMDEP_TRUE$ac_delim +AMDEP_FALSE!$AMDEP_FALSE$ac_delim +AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim +CCDEPMODE!$CCDEPMODE$ac_delim +am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim +am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim +CPP!$CPP$ac_delim +RANLIB!$RANLIB$ac_delim +U!$U$ac_delim +ANSI2KNR!$ANSI2KNR$ac_delim +USE_NLS!$USE_NLS$ac_delim +MSGFMT!$MSGFMT$ac_delim +GMSGFMT!$GMSGFMT$ac_delim +MSGFMT_015!$MSGFMT_015$ac_delim +GMSGFMT_015!$GMSGFMT_015$ac_delim +XGETTEXT!$XGETTEXT$ac_delim +XGETTEXT_015!$XGETTEXT_015$ac_delim +MSGMERGE!$MSGMERGE$ac_delim +build!$build$ac_delim +build_cpu!$build_cpu$ac_delim +build_vendor!$build_vendor$ac_delim +build_os!$build_os$ac_delim +host!$host$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +CEOF$ac_eof +_ACEOF + + +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + cat >conf$$subs.sed <<_ACEOF +host_cpu!$host_cpu$ac_delim +host_vendor!$host_vendor$ac_delim +host_os!$host_os$ac_delim +INTL_MACOSX_LIBS!$INTL_MACOSX_LIBS$ac_delim +LIBICONV!$LIBICONV$ac_delim +LTLIBICONV!$LTLIBICONV$ac_delim +INTLLIBS!$INTLLIBS$ac_delim +LIBINTL!$LIBINTL$ac_delim +LTLIBINTL!$LTLIBINTL$ac_delim +POSUB!$POSUB$ac_delim +LIBOBJS!$LIBOBJS$ac_delim +SOCKET_LIBS!$SOCKET_LIBS$ac_delim +LTLIBOBJS!$LTLIBOBJS$ac_delim +_ACEOF + + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 13; then + break + elif $ac_last_try; then + { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` +if test -n "$ac_eof"; then + ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` + ac_eof=`expr $ac_eof + 1` +fi + +cat >>$CONFIG_STATUS <<_ACEOF +cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end +_ACEOF +sed ' +s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g +s/^/s,@/; s/!/@,|#_!!_#|/ +:n +t n +s/'"$ac_delim"'$/,g/; t +s/$/\\/; p +N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n +' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF +:end +s/|#_!!_#|//g +CEOF$ac_eof +_ACEOF + + +# VPATH may cause trouble with some makes, so we remove $(srcdir), +# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=/{ +s/:*\$(srcdir):*/:/ +s/:*\${srcdir}:*/:/ +s/:*@srcdir@:*/:/ +s/^\([^=]*=[ ]*\):*/\1/ +s/:*$// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF +fi # test -n "$CONFIG_FILES" + + +for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 +echo "$as_me: error: Invalid tag $ac_tag." >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { (exit 1); exit 1; }; };; + esac + ac_file_inputs="$ac_file_inputs $ac_f" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input="Generated from "`IFS=: + echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + fi + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin";; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir="$ac_dir" + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= + +case `sed -n '/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p +' $ac_file_inputs` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF + sed "$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s&@configure_input@&$configure_input&;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out"; rm -f "$tmp/out";; + *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; + esac + ;; + :H) + # + # CONFIG_HEADER + # +_ACEOF + +# Transform confdefs.h into a sed script `conftest.defines', that +# substitutes the proper values into config.h.in to produce config.h. +rm -f conftest.defines conftest.tail +# First, append a space to every undef/define line, to ease matching. +echo 's/$/ /' >conftest.defines +# Then, protect against being on the right side of a sed subst, or in +# an unquoted here document, in config.status. If some macros were +# called several times there might be several #defines for the same +# symbol, which is useless. But do not sort them, since the last +# AC_DEFINE must be honored. +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where +# NAME is the cpp macro being defined, VALUE is the value it is being given. +# PARAMS is the parameter list in the macro definition--in most cases, it's +# just an empty string. +ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' +ac_dB='\\)[ (].*,\\1define\\2' +ac_dC=' ' +ac_dD=' ,' + +uniq confdefs.h | + sed -n ' + t rset + :rset + s/^[ ]*#[ ]*define[ ][ ]*// + t ok + d + :ok + s/[\\&,]/\\&/g + s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p + s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p + ' >>conftest.defines + +# Remove the space that was appended to ease matching. +# Then replace #undef with comments. This is necessary, for +# example, in the case of _POSIX_SOURCE, which is predefined and required +# on some systems where configure will not decide to define it. +# (The regexp can be short, since the line contains either #define or #undef.) +echo 's/ $// +s,^[ #]*u.*,/* & */,' >>conftest.defines + +# Break up conftest.defines: +ac_max_sed_lines=50 + +# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" +# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" +# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" +# et cetera. +ac_in='$ac_file_inputs' +ac_out='"$tmp/out1"' +ac_nxt='"$tmp/out2"' + +while : +do + # Write a here document: + cat >>$CONFIG_STATUS <<_ACEOF + # First, check the format of the line: + cat >"\$tmp/defines.sed" <<\\CEOF +/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def +/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def +b +:def +_ACEOF + sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS + echo 'CEOF + sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS + ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in + sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail + grep . conftest.tail >/dev/null || break + rm -f conftest.defines + mv conftest.tail conftest.defines +done +rm -f conftest.defines conftest.tail + +echo "ac_result=$ac_in" >>$CONFIG_STATUS +cat >>$CONFIG_STATUS <<\_ACEOF + if test x"$ac_file" != x-; then + echo "/* $configure_input */" >"$tmp/config.h" + cat "$ac_result" >>"$tmp/config.h" + if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then + { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f $ac_file + mv "$tmp/config.h" $ac_file + fi + else + echo "/* $configure_input */" + cat "$ac_result" + fi + rm -f "$tmp/out12" +# Compute $ac_file's index in $config_headers. +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $ac_file | $ac_file:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $ac_file" >`$as_dirname -- $ac_file || +$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X$ac_file : 'X\(//\)[^/]' \| \ + X$ac_file : 'X\(//\)$' \| \ + X$ac_file : 'X\(/\)' \| . 2>/dev/null || +echo X$ac_file | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 +echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir=$dirpart/$fdir + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done + ;; + "po-directories":C) + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done ;; + + esac +done # for ac_tag + + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || { (exit 1); exit 1; } +fi + diff -urN gawk-3.1.5/configure.ac gawk-3.1.6/configure.ac --- gawk-3.1.5/configure.ac 2005-07-26 21:43:51.000000000 +0300 +++ gawk-3.1.6/configure.ac 2007-10-22 08:51:06.000000000 +0200 @@ -1,14 +1,14 @@ dnl dnl configure.ac --- autoconf input file for gawk dnl -dnl Copyright (C) 1995-2005 the Free Software Foundation, Inc. +dnl Copyright (C) 1995-2007 the Free Software Foundation, Inc. dnl dnl This file is part of GAWK, the GNU implementation of the dnl AWK Programming Language. dnl dnl GAWK is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation; either version 2 of the License, or +dnl the Free Software Foundation; either version 3 of the License, or dnl (at your option) any later version. dnl dnl GAWK is distributed in the hope that it will be useful, @@ -23,7 +23,7 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([GNU Awk], 3.1.5, bug-gawk@gnu.org, gawk) +AC_INIT([GNU Awk], 3.1.6, bug-gawk@gnu.org, gawk) # This is a hack. Different versions of install on different systems # are just too different. Chuck it and use install-sh. @@ -39,8 +39,9 @@ export INSTALL fi -AC_PREREQ(2.59) -AM_INIT_AUTOMAKE +AC_PREREQ(2.61) +AM_INIT_AUTOMAKE([1.10]) + dnl Additional argument stuff AC_ARG_ENABLE(portals, [ --enable-portals Enable /p as path prefix for portals], @@ -68,6 +69,12 @@ AC_DEFINE(ALLOW_SWITCH, 1, [switch statements are enabled in awk programs]) fi ) +AC_ARG_ENABLE([directories-fatal], [ --disable-directories-fatal Disable fatal errors on directories], + if test "$enableval" = no + then + AC_DEFINE(NO_DIRECTORY_FATAL, 1, [disable fatal errors on directories]) + fi +) dnl checks for programs AC_PROG_EGREP @@ -90,7 +97,7 @@ if test -f $srcdir/.developing then # add other debug flags as appropriate, save GAWKDEBUG for emergencies - CFLAGS="$CFLAGS -DARRAYDEBUG" + CFLAGS="$CFLAGS -DARRAYDEBUG -DYYDEBUG" if grep dbug $srcdir/.developing then CFLAGS="$CFLAGS -DDBUG" @@ -99,7 +106,7 @@ # turn on compiler warnings if we're doing development if test "$GCC" = yes then - CFLAGS="$CFLAGS -Wall" + CFLAGS="$CFLAGS -Wall -fno-builtin" fi AC_MSG_RESULT([yes]) else @@ -109,9 +116,8 @@ AC_SUBST(CFLAGS) dnl checks for systems -AC_AIX +AC_USE_SYSTEM_EXTENSIONS AC_ISC_POSIX -AC_MINIX AC_SYS_LARGEFILE GAWK_AC_AIX_TWEAK GAWK_AC_LINUX_ALPHA @@ -122,8 +128,7 @@ CFLAGS="$CFLAGS -D_SYSV3" fi -dnl check for C compiler for automake -AM_PROG_CC_STDC +dnl check for C compiler for automake. Needed for dfa.h. AM_C_PROTOTYPES dnl Cygwin doesn't like to get libs with full paths @@ -139,14 +144,16 @@ dnl initialize GNU gettext AM_GNU_GETTEXT([external]) -AM_GNU_GETTEXT_VERSION([0.14.4]) +AM_GNU_GETTEXT_VERSION([0.16.1]) +AM_LANGINFO_CODESET +gt_LC_MESSAGES dnl checks for header files AC_HEADER_STDC AC_HEADER_SYS_WAIT AC_HEADER_TIME -AC_CHECK_HEADERS(fcntl.h limits.h locale.h libintl.h mcheck.h \ - netdb.h netinet/in.h signum.h stdarg.h string.h \ +AC_CHECK_HEADERS(arpa/inet.h fcntl.h limits.h locale.h libintl.h mcheck.h \ + netdb.h netinet/in.h signum.h stdarg.h stddef.h string.h \ sys/param.h sys/socket.h sys/time.h unistd.h \ termios.h stropts.h wchar.h wctype.h) @@ -191,6 +198,12 @@ foo = 0; ], AC_DEFINE(HAVE_WINT_T, 1, [systems should define this type here])) +dnl check for sockaddr_storage +AC_TRY_COMPILE([#include +#include ],[ + struct sockaddr_storage foo; +], + AC_DEFINE(HAVE_SOCKADDR_STORAGE, 1, [newer systems define this type here])) dnl Borrwed from rsync, thanks to to Jim Meyering. @@ -244,20 +257,27 @@ dnl checks for functions AC_FUNC_VPRINTF -GAWK_AC_FUNC_STRTOD_C89 AC_FUNC_MKTIME case "$ac_cv_func_working_mktime" in yes) AC_DEFINE(HAVE_MKTIME, 1, [we have the mktime function]) ;; esac +AC_CHECK_FUNC(getaddrinfo, [AC_DEFINE(HAVE_GETADDRINFO, 1, [have getaddrinfo])], + [AC_CHECK_LIB(socket, getaddrinfo, + [AC_DEFINE(HAVE_GETADDRINFO, 1, + [have getaddrinfo])])]) + AC_CHECK_LIB(m, fmod) -AC_CHECK_FUNCS(fmod getgrent getgroups grantpt iswctype mbrlen \ - memcmp memcpy memmove memset setlocale snprintf strchr \ - strerror strftime strncasecmp strtod strtoul system tzset \ - isascii btowc \ - iswlower iswupper towlower towupper \ - wcrtomb wcscoll wcscoll wctype) + +# Need the check for mkstemp and tmpfile for missing_d/snprintf.c. +AC_CHECK_FUNCS(atexit btowc fmod getgrent getgroups grantpt \ + isascii iswctype iswlower iswupper mbrlen \ + memcmp memcpy memcpy_ulong memmove memset \ + memset_ulong mkstemp setlocale snprintf strchr \ + strerror strftime strncasecmp strtod strtoul \ + system tmpfile towlower towupper tzset wcrtomb \ + wcscoll wcscoll wctype) dnl this check is for both mbrtowc and the mbstate_t type, which is good AC_FUNC_MBRTOWC @@ -277,7 +297,8 @@ # Check this separately. Some systems have dlopen # in libc. Notably freebsd and cygwin. - AC_CHECK_LIB(dl, dlopen) + # HP-NSK has it in zrldsrl + AC_SEARCH_LIBS(dlopen, dl zrldsrl) ]) dnl check for how to use getpgrp @@ -341,30 +362,5 @@ awklib/Makefile doc/Makefile po/Makefile.in - test/Makefile - [version.c:version.in]) - -dnl This is a significant and rather ugly hack. We want to keep -dnl version.c from being removed upon `make distclean'. -dnl We put the `$$' on the front for old systems with 14-char filenames. - -dnl At this point, `configure' has finished creating `config.status' which -dnl actually does all the checking and configuring. `config.status' is run -dnl by the AC_OUTPUT macro below. This step comes in between the two: it -dnl adds code to `config.status'. Doing it there ensures that this step -dnl happens *every* time `config.status' is run, such as when `make' decides -dnl to update something. Fun, fun, fun. - -dnl Be careful of multiple levels of shell quoting! - -dnl The trailing newline in the sed command is needed for Mac OS X. Sigh. - -AC_CONFIG_COMMANDS_POST([sed '$i\ - echo $as_me: fixing Makefile to keep version.c\ - sed "/CONFIG_CLEAN_FILES/s/version.c//" < Makefile > $$.Makefile\ - mv $$.Makefile Makefile - ' < $CONFIG_STATUS > $$.gawk-hack - mv $$.gawk-hack $CONFIG_STATUS]) - - + test/Makefile) AC_OUTPUT diff -urN gawk-3.1.5/custom.h gawk-3.1.6/custom.h --- gawk-3.1.5/custom.h 2005-05-11 18:28:14.000000000 +0300 +++ gawk-3.1.6/custom.h 2007-08-11 22:39:49.000000000 +0300 @@ -18,7 +18,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/depcomp gawk-3.1.6/depcomp --- gawk-3.1.5/depcomp 2005-05-11 18:28:14.000000000 +0300 +++ gawk-3.1.6/depcomp 2007-01-12 12:20:47.000000000 +0200 @@ -1,9 +1,10 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2005-02-09.22 +scriptversion=2006-10-15.18 -# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software +# Foundation, Inc. # 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 @@ -91,7 +92,20 @@ ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. - "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" stat=$? if test $stat -eq 0; then : else @@ -276,6 +290,46 @@ rm -f "$tmpdepfile" ;; +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add `dependent.h:' lines. + sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. @@ -288,13 +342,13 @@ if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a - # static library. This mecanism is used in libtool 1.4 series to + # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two - # compilations output dependencies in in $dir.libs/$base.o.d and + # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is @@ -467,7 +521,8 @@ done "$@" -E | - sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" diff -urN gawk-3.1.5/dfa.c gawk-3.1.6/dfa.c --- gawk-3.1.5/dfa.c 2005-07-26 21:07:43.000000000 +0300 +++ gawk-3.1.6/dfa.c 2007-09-03 06:30:12.000000000 +0300 @@ -1,9 +1,10 @@ /* dfa.c - deterministic extended regexp routines for GNU - Copyright 1988, 1998, 2000, 2002, 2004, 2005 Free Software Foundation, Inc. + Copyright 1988, 1998, 2000, 2002, 2004, 2005, 2007 + Free Software Foundation, Inc. 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 2, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -13,7 +14,8 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA */ /* Written June, 1988 by Mike Haertel Modified July, 1988 by Arthur David Olson to assist BMG speedups */ @@ -624,7 +626,7 @@ work_mbc->coll_elems[work_mbc->ncoll_elems++] = elem; } } - wc = wc1 = WEOF; + wc1 = wc = WEOF; } else /* We treat '[' as a normal character here. */ @@ -982,6 +984,9 @@ if (c != '}') dfaerror(_("malformed repeat count")); laststart = 0; +#ifdef GAWK + dfa->broken = (minrep == maxrep && minrep == 0); +#endif return lasttok = REPMN; case '|': @@ -1373,7 +1378,14 @@ int i; for (i = 0; i < ntokens; ++i) - addtok(dfa->tokens[tindex + i]); + { + addtok(dfa->tokens[tindex + i]); +#ifdef MBS_SUPPORT + /* Update index into multibyte csets. */ + if (MB_CUR_MAX > 1 && dfa->tokens[tindex + i] == MBCSET) + dfa->multibyte_prop[dfa->tindex - 1] = dfa->multibyte_prop[tindex + i]; +#endif + } } static void @@ -1602,8 +1614,8 @@ d->states[i].constraint = 0; d->states[i].first_end = 0; #ifdef MBS_SUPPORT - if (MB_CUR_MAX > 1) - d->states[i].mbps.nelem = 0; + d->states[i].mbps.nelem = 0; + d->states[i].mbps.elems = NULL; #endif for (j = 0; j < s->nelem; ++j) if (d->tokens[s->elems[j].index] < 0) @@ -2890,7 +2902,8 @@ { remain_bytes = mbrtowc(inputwcs + i, begin + i, end - begin - i + 1, &mbs); - if (remain_bytes <= 1) + if (remain_bytes < 1 + || (remain_bytes == 1 && inputwcs[i] == (wchar_t)begin[i])) { remain_bytes = 0; inputwcs[i] = (wchar_t)begin[i]; @@ -2978,12 +2991,12 @@ unsigned char const *nextp; nextp = p; s = transit_state(d, s, &nextp); - p = (unsigned char *)nextp; + p = (unsigned char *)nextp; /* Trans table might be updated. */ trans = d->trans; - } - else + } + else #endif /* MBS_SUPPORT */ s = d->fails[s][*p++]; continue; @@ -3054,13 +3067,16 @@ d->fails = 0; d->newlines = 0; d->success = 0; +#ifdef GAWK + d->broken = 0; +#endif } /* Parse and analyze a single string of the given length. */ void dfacomp (char const *s, size_t len, struct dfa *d, int searchflag) { - if (case_fold) /* dummy folding in service of dfamust() */ + if (case_fold && len) /* dummy folding in service of dfamust() */ { char *lcopy; int i; @@ -3136,8 +3152,13 @@ } #endif /* MBS_SUPPORT */ - for (i = 0; i < d->sindex; ++i) + for (i = 0; i < d->sindex; ++i) { free((ptr_t) d->states[i].elems.elems); +#ifdef MBS_SUPPORT + if (d->states[i].mbps.nelem > 0) + free((ptr_t) d->states[i].mbps.elems); +#endif /* MBS_SUPPORT */ + } free((ptr_t) d->states); for (i = 0; i < d->tindex; ++i) if (d->follows[i].elems) diff -urN gawk-3.1.5/dfa.h gawk-3.1.6/dfa.h --- gawk-3.1.5/dfa.h 2005-05-11 18:28:14.000000000 +0300 +++ gawk-3.1.6/dfa.h 2007-09-03 06:30:12.000000000 +0300 @@ -3,7 +3,7 @@ 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 2, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -13,7 +13,8 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ + Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA */ /* Written June, 1988 by Mike Haertel */ @@ -373,6 +374,10 @@ struct dfamust *musts; /* List of strings, at least one of which is known to appear in any r.e. matching the dfa. */ +#ifdef GAWK + int broken; /* True if using a feature where there + are bugs and gawk should use regex. */ +#endif }; /* Some macros for user access to dfa internals. */ diff -urN gawk-3.1.5/doc/ChangeLog gawk-3.1.6/doc/ChangeLog --- gawk-3.1.5/doc/ChangeLog 2005-07-26 21:46:43.000000000 +0300 +++ gawk-3.1.6/doc/ChangeLog 2007-10-22 08:49:49.000000000 +0200 @@ -1,3 +1,148 @@ +Mon Oct 22 08:49:05 2007 Arnold D. Robbins + + * Release 3.1.6: Release tar file made. + +Fri Oct 19 04:13:33 2007 Arnold D. Robbins + + * gawk.1: Add length(array) to list of extensions at end. + Revise date. + +Thu Oct 18 08:40:59 2007 Arnold D. Robbins + + * texinfo.tex: Updated to version from Texinfo 4.11. + +Sun Oct 14 20:37:59 2007 Arnold D. Robbins + + * awkcard.in: Fix version numbers and copyright info, minor + cleanups to format nicely. + +Sun Sep 30 22:30:05 2007 Arnold D. Robbins + + * gawk.texi (Conversion): Add table describing locale decimal + point versus period. + +Sat Sep 8 23:53:46 2007 Arnold D. Robbins + + * gawk.texi: A number of minor fixes based on suggestions + from Jack Kelley . + +Sat Aug 11 22:46:14 2007 Arnold D. Robbins + + * gawk.texi (Copying): Move to GPL 3. + +Wed May 30 17:11:19 2007 Arnold D. Robbins + + * Makefile.am (CLEANFILES): Added, so that even "make distclean" + will do the right thing. + (clean): Removed, let automake to do it. + +Tue May 29 22:49:16 2007 Arnold D. Robbins + + * gawk.texi: Document --use-lc-numeric. Document that some + VMS systems come with an old version of gawk. + +Mon May 28 08:21:51 2007 Arnold D. Robbins + + * gawk.1, awkcard.in: Document --use-lc-numeric. + +Tue May 15 13:27:38 2007 Arnold D. Robbins + + * gawk.texi, gawk.1: Documented --disable-directories-fatal + configure option. + +Wed May 9 21:50:44 2007 Arnold D. Robbins + + * gawk.1: Reviewed and updated, minor typos fixed. + * awkcard.in: Added mention of %F. + +Wed May 2 19:55:02 2007 Arnold D. Robbins + + * gawk.texi: Cleaned up discussion of string concatenation + where needed, including a note about the mixed treatment + of `"echo " "date" | getline'. Sigh. + +Sun Apr 29 13:33:27 2007 Arnold D. Robbins + + * gawk.texi (Time Functions): Update description of strftime + for third utc-flag argument. Other minor fixes. + * gawk.1, awkcard.in: Same. + +Tue Apr 3 22:47:40 2007 Arnold D. Robbins + + * gawk.texi (New Ports): Update list of files for all of + regex that should not be messed with lightly. + +Wed Mar 21 09:02:53 2007 Arnold D. Robbins + + * gawk.texi: Removed last vestiges of arnold@gnu.org + email address. + +Wed Mar 7 13:06:31 2007 Arnold D. Robbins + + * gawk.texi (Getopt Function): Add a note that user level + code must clear out ARGV from 1 to Optind. + Thanks to Matthew.Hall1@VerizonWireless.com, from mail + dated Tue, 02 Aug 2005 09:04:37 -0700. + +Wed Mar 7 08:48:02 2007 Arnold D. Robbins + + * gawk.texi: Fix my personal email address. Sheesh. + Thanks again to Sahak Petrosyan . + +Tue Mar 6 09:13:38 2007 Arnold D. Robbins + + * gawk.texi: Fix link to online version of the manual. + Thanks to Sahak Petrosyan . + +Wed Feb 14 19:40:33 2007 Arnold D. Robbins + + * gawk.texi: Add discussion of magic values for Inf, NaN, + and hexadecimal floating point in appendix on numbers. + Other minor updates for date, trademarks, etc. + +Sun Jan 21 12:59:33 2007 "Ennio-(Sr)" + + * gawk.1: Add note that locale settings can influence the + choice of decimal point character. + +Sat Jan 13 22:43:39 2007 Ralf Wildenhues + + * gawk.texi: Fix some typos. + * gawkinet.texi: Likewise. + +Sat Jan 13 21:25:28 2007 Ralf Wildenhues + + * awkcard.in: next is POSIX. + * gawk.texi: V7/SVR3.1: Mention assignable `$0', `var in index' + as expression. Specify `FS' limitation. + +Fri Jan 12 12:28:51 2007 Arnold D. Robbins + + * texinfo.tex: Updated upon move to current autotools. + +Thu Jan 4 19:56:45 2007 Arnold D. Robbins + + * gawk.1: Applied patch from Eric Raymond to stop his stupid + automated email kvetching about the wonders of docbook. + +2006-07-29 Paul Eggert + + * gawk.texi: Document that `$$0++--' isn't valid even though it + is unambiguous according to the Awk grammar. This is in response + to Open Group XCU ERN 86 + . + +Fri Oct 21 12:50:19 2005 Arnold D. Robbins + + Better support for PDF, thanks to Marty Leisner + for the prodding. + + * Makefile.am: Add lflashlight.pdf, rflashlight.pdf, statist.pdf + to EXTRADIST and add gawk.pdf and gawkinet.pdf to list of files + to remove for `clean'. + * lflashlight.pdf, rflashlight.pdf, statist.pdf: New files, created + with `epstopdf foo.eps > foo.pdf'. + Tue Jul 26 21:46:16 2005 Arnold D. Robbins * Release 3.1.5: Release tar file made. @@ -331,7 +476,7 @@ install it directly. Wed Jun 30 16:14:36 1999 Arnold D. Robbins - + * Release 3.0.4: Release tar file made. This time for sure. Wed Oct 7 21:59:33 1998 Arnold D. Robbins diff -urN gawk-3.1.5/doc/Makefile.am gawk-3.1.6/doc/Makefile.am --- gawk-3.1.5/doc/Makefile.am 2005-07-26 21:20:13.000000000 +0300 +++ gawk-3.1.6/doc/Makefile.am 2007-08-11 22:39:49.000000000 +0300 @@ -1,14 +1,15 @@ # # doc/Makefile.am --- automake input file for gawk # -# Copyright (C) 2000, 2001, 2002, 2004, 2005 the Free Software Foundation, Inc. +# Copyright (C) 2000, 2001, 2002, 2004, 2005, 2007 +# the Free Software Foundation, Inc. # # This file is part of GAWK, the GNU implementation of the # AWK Programming Language. # # GAWK is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # GAWK is distributed in the hope that it will be useful, @@ -31,7 +32,11 @@ awkcard.in awkforai.txt texinfo.tex cardfonts \ macros colors no.colors $(man_MANS) \ lflashlight.eps rflashlight.eps \ - statist.jpg statist.eps + lflashlight.pdf rflashlight.pdf \ + statist.jpg statist.eps statist.pdf + +# Get rid of generated files when cleaning +CLEANFILES = *.ps *.html *.dvi *~ awkcard.nc awkcard.tr gawk.pdf gawkinet.pdf MAKEINFO = @MAKEINFO@ --no-split --force @@ -90,6 +95,3 @@ awkcard.nc: $(CARDFILES) $(TROFF) $(CARDSRC_N) | $(SEDME) | cat $(srcdir)/setter.outline - > awkcard.ps && touch awkcard.nc - -clean: - rm -f *.ps *~ awkcard.nc awkcard.tr *.html diff -urN gawk-3.1.5/doc/Makefile.in gawk-3.1.6/doc/Makefile.in --- gawk-3.1.5/doc/Makefile.in 2005-07-26 21:44:02.000000000 +0300 +++ gawk-3.1.6/doc/Makefile.in 2007-10-22 08:52:01.000000000 +0200 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.5 from Makefile.am. +# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,14 +17,15 @@ # # doc/Makefile.am --- automake input file for gawk # -# Copyright (C) 2000, 2001, 2002, 2004, 2005 the Free Software Foundation, Inc. +# Copyright (C) 2000, 2001, 2002, 2004, 2005, 2007 +# the Free Software Foundation, Inc. # # This file is part of GAWK, the GNU implementation of the # AWK Programming Language. # # GAWK is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # GAWK is distributed in the hope that it will be useful, @@ -36,15 +37,11 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c @@ -63,13 +60,14 @@ texinfo.tex ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/arch.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intmax_t.m4 $(top_srcdir)/m4/inttypes_h.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/longlong.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/socket.m4 \ - $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strtod.m4 \ + $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intmax_t.m4 \ + $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ + $(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/socket.m4 $(top_srcdir)/m4/stdint_h.m4 \ $(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -92,13 +90,17 @@ AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) DVIPS = dvips am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -118,6 +120,9 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -134,8 +139,9 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ --no-split --force -MKINSTALLDIRS = @MKINSTALLDIRS@ +MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ @@ -155,12 +161,14 @@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ YACC = @YACC@ +YFLAGS = @YFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -172,36 +180,51 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ +builddir = @builddir@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ info_TEXINFOS = gawk.texi gawkinet.texi man_MANS = gawk.1 igawk.1 EXTRA_DIST = ChangeLog README.card ad.block setter.outline \ awkcard.in awkforai.txt texinfo.tex cardfonts \ macros colors no.colors $(man_MANS) \ lflashlight.eps rflashlight.eps \ - statist.jpg statist.eps + lflashlight.pdf rflashlight.pdf \ + statist.jpg statist.eps statist.pdf + +# Get rid of generated files when cleaning +CLEANFILES = *.ps *.html *.dvi *~ awkcard.nc awkcard.tr gawk.pdf gawkinet.pdf TROFF = groff -t -Tps -U SEDME = sed -e "s/^level0 restore/level0 restore flashme 100 72 moveto (Copyright `date '+%m-%d-%y %T'`, FSF, Inc. (all)) show/" \ -e "s/^\/level0 save def/\/level0 save def 30 -48 translate/" @@ -262,9 +285,11 @@ restore=: && backupdir="$(am__leading_dot)am$$$$" && \ am__cwd=`pwd` && cd $(srcdir) && \ rm -rf $$backupdir && mkdir $$backupdir && \ - for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ - if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ - done; \ + if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ + for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ + if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ + done; \ + else :; fi && \ cd "$$am__cwd"; \ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $@ $<; \ @@ -310,11 +335,29 @@ gawkinet.pdf: gawkinet.texi gawkinet.html: gawkinet.texi .dvi.ps: + TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ $(DVIPS) -o $@ $< +uninstall-dvi-am: + @$(NORMAL_UNINSTALL) + @list='$(DVIS)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \ + rm -f "$(DESTDIR)$(dvidir)/$$f"; \ + done + +uninstall-html-am: + @$(NORMAL_UNINSTALL) + @list='$(HTMLS)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \ + rm -rf "$(DESTDIR)$(htmldir)/$$f"; \ + done + uninstall-info-am: @$(PRE_UNINSTALL) - @if (install-info --version && \ + @if test -d '$(DESTDIR)$(infodir)' && \ + (install-info --version && \ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ list='$(INFO_DEPS)'; \ for file in $$list; do \ @@ -328,12 +371,28 @@ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ - (if cd "$(DESTDIR)$(infodir)"; then \ + (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \ echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ else :; fi); \ done +uninstall-pdf-am: + @$(NORMAL_UNINSTALL) + @list='$(PDFS)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \ + rm -f "$(DESTDIR)$(pdfdir)/$$f"; \ + done + +uninstall-ps-am: + @$(NORMAL_UNINSTALL) + @list='$(PSS)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \ + rm -f "$(DESTDIR)$(psdir)/$$f"; \ + done + dist-info: $(INFO_DEPS) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; \ @@ -342,10 +401,13 @@ $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$base; then d=.; else d=$(srcdir); fi; \ - for file in $$d/$$base*; do \ - relfile=`expr "$$file" : "$$d/\(.*\)"`; \ - test -f $(distdir)/$$relfile || \ - cp -p $$file $(distdir)/$$relfile; \ + base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \ + for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \ + if test -f $$file; then \ + relfile=`expr "$$file" : "$$d/\(.*\)"`; \ + test -f $(distdir)/$$relfile || \ + cp -p $$file $(distdir)/$$relfile; \ + else :; fi; \ done; \ done @@ -366,7 +428,7 @@ done install-man1: $(man1_MANS) $(man_MANS) @$(NORMAL_INSTALL) - test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)" + test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ @@ -417,22 +479,21 @@ distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ @@ -451,7 +512,7 @@ all-am: Makefile $(INFO_DEPS) $(MANS) installdirs: for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am @@ -470,6 +531,7 @@ mostlyclean-generic: clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -477,6 +539,8 @@ maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + clean-am: clean-generic mostlyclean-am distclean: distclean-am @@ -499,13 +563,42 @@ @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook +install-dvi: install-dvi-am + +install-dvi-am: $(DVIS) + @$(NORMAL_INSTALL) + test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)" + @list='$(DVIS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(dvidir)/$$f'"; \ + $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(dvidir)/$$f"; \ + done install-exec-am: +install-html: install-html-am + +install-html-am: $(HTMLS) + @$(NORMAL_INSTALL) + test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)" + @list='$(HTMLS)'; for p in $$list; do \ + if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + if test -d "$$d$$p"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \ + $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ + echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \ + $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \ + else \ + echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \ + $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \ + fi; \ + done install-info: install-info-am install-info-am: $(INFO_DEPS) @$(NORMAL_INSTALL) - test -z "$(infodir)" || $(mkdir_p) "$(DESTDIR)$(infodir)" + test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)" @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; \ for file in $$list; do \ @@ -535,6 +628,28 @@ else : ; fi install-man: install-man1 +install-pdf: install-pdf-am + +install-pdf-am: $(PDFS) + @$(NORMAL_INSTALL) + test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)" + @list='$(PDFS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/$$f'"; \ + $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/$$f"; \ + done +install-ps: install-ps-am + +install-ps-am: $(PSS) + @$(NORMAL_INSTALL) + test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)" + @list='$(PSS)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(psdir)/$$f'"; \ + $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(psdir)/$$f"; \ + done installcheck-am: maintainer-clean: maintainer-clean-am @@ -554,22 +669,28 @@ ps-am: $(PSS) -uninstall-am: uninstall-info-am uninstall-man +uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \ + uninstall-man uninstall-pdf-am uninstall-ps-am @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook uninstall-man: uninstall-man1 +.MAKE: install-am install-data-am install-strip uninstall-am + .PHONY: all all-am check check-am clean clean-generic dist-info \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ - install-data-hook install-exec install-exec-am install-info \ - install-info-am install-man install-man1 install-strip \ + install-data-hook install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-man1 install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-aminfo maintainer-clean-generic mostlyclean \ mostlyclean-aminfo mostlyclean-generic pdf pdf-am ps ps-am \ - uninstall uninstall-am uninstall-hook uninstall-info-am \ - uninstall-man uninstall-man1 + uninstall uninstall-am uninstall-dvi-am uninstall-hook \ + uninstall-html-am uninstall-info-am uninstall-man \ + uninstall-man1 uninstall-pdf-am uninstall-ps-am # Link gawk.1 to pgawk.1 @@ -604,9 +725,6 @@ awkcard.nc: $(CARDFILES) $(TROFF) $(CARDSRC_N) | $(SEDME) | cat $(srcdir)/setter.outline - > awkcard.ps && touch awkcard.nc - -clean: - rm -f *.ps *~ awkcard.nc awkcard.tr *.html # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff -urN gawk-3.1.5/doc/awkcard.in gawk-3.1.6/doc/awkcard.in --- gawk-3.1.5/doc/awkcard.in 2005-06-26 16:40:54.000000000 +0300 +++ gawk-3.1.6/doc/awkcard.in 2007-10-14 23:18:21.000000000 +0200 @@ -1,7 +1,7 @@ .\" AWK Reference Card --- Arnold Robbins, arnold@skeeve.com .\" .\" Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, -.\" 2003, 2004, 2005 Free Software Foundation, Inc. +.\" 2003, 2004, 2005, 2007 Free Software Foundation, Inc. .\" .\" Permission is granted to make and distribute verbatim copies of .\" this reference card provided the copyright notice and this permission @@ -100,8 +100,8 @@ \*(CD .SL .nf -\*(FRCopyright \(co 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 -Free Software Foundation, Inc. +\*(FRCopyright \(co 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +2005, 2007 Free Software Foundation, Inc. .nf .BT @@ -223,11 +223,10 @@ .\" --- Command Line Arguments (gawk) .ES .fi -\*(CDThe following options are specific to \*(GK. -You may also use ``\*(FC\-W \*(FIoption\*(FR'' -for full POSIX compliance. -Long options may abbreviated as long as the abbreviation +\*(CDLong options may abbreviated as long as the abbreviation remains unique. +You may use ``\*(FC\-W \*(FIoption\*(FR'' +for full POSIX compliance. .sp .5 .ig .\" This option is left undocumented, on purpose. @@ -355,21 +354,28 @@ ls l lw(2.2i). \*(FC\-\^\-source '\*(FItext\*(FC'\*(FR -%use \*(FItext\*(FR as AWK program source code. +%T{ +use \*(FItext\*(FR as AWK program source code. \*(FC\-\^\-version\*(FR%T{ print version information on \*(FCstdout\fP and exit zero. T} +.T& +ls +l lw(2.2i). +\*(FC\-\^\-use\-lc\-numeric +%T{ +force use of the locale's decimal point character when parsing input data. +T} .TE .sp .5 .fi In compatibility mode, any other options are flagged as invalid, but are otherwise ignored. -In normal operation, as long as program text has been supplied, unknown +Normally, if there is program text, unknown options options are passed on to the AWK program in \*(FCARGV\*(FR -for processing. This is most useful for running AWK -programs via the \*(FC#!\*(FR executable interpreter mechanism.\*(CB +for processing.\*(CB .EB "\s+2\f(HBCOMMAND LINE ARGUMENTS (\*(GK\f(HB)\*(FR\s0" .BT @@ -1168,7 +1174,7 @@ .br co-process pipe into \*(FCgetline\*(FR; set \*(FIv\*(FR. .ti -.2i -\*(FCnext\fP +\*(CD\*(FCnext\fP .br stop processing the current input record. Read next input record and @@ -1297,6 +1303,8 @@ \*(FC%E\fP like \*(FC%e\fP, but use \*(FCE\fP instead of \*(FCe\*(FR \*(FC%f\fP a floating point number of the form \*(FC[\-]ddd.dddddd\*(FR +\*(FC%F\fP like \*(FC%f\fP, but use capital letters for infinity and + not-a-number values. \*(FC%g\fP use \*(FC%e\fP or \*(FC%f\fP, whichever is shorter, with nonsignificant zeros suppressed \*(FC%G\fP like \*(FC%g\fP, but use \*(FC%E\fP instead of \*(FC%e\*(FR @@ -1672,12 +1680,15 @@ The \*(FIdatespec\fP is a string of the form \*(FC"\*(FIYYYY MM DD HH MM SS[ DST]\*(FC"\*(FR. .ti -.2i -\*(FCstrftime(\*(FR[\*(FIformat \*(FR[\*(FC, \*(FItimestamp\*(FR]]\*(FC)\*(FR +\*(FCstrftime(\*(FR[\*(FIformat \*(FR[\*(FC, \*(FItimestamp\*(FR[\*(FC, \*(FIutc-flag\*(FR]]]\*(FC)\*(FR .br formats \*(FItimestamp\fP according to the specification in \*(FIformat\*(FR. The \*(FItimestamp\fP should be of the same form as returned by \*(FCsystime()\*(FR. +If \*(FIutc-flag\*(FR +is present and is non-zero or non-null, the result +is in UTC, otherwise the result is in local time. If \*(FItimestamp\fP is missing, the current time of day is used. If \*(FIformat\fP is missing, a default format equivalent to the output of \*(FIdate\*(FR(1) is used. @@ -1902,7 +1913,7 @@ .ES .nf \*(CDHost: \*(FCftp.gnu.org\*(FR -File: \*(FC/gnu/gawk/gawk-3.1.5.tar.gz\fP +File: \*(FC/gnu/gawk/gawk-3.1.6.tar.gz\fP .in +.2i .fi GNU \*(AK (\*(GK). There may be a later version. @@ -1929,8 +1940,8 @@ .\" --- Copying Permissions .ES .fi -\*(CDCopyright \(co 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -Free Software Foundation, Inc. +\*(CDCopyright \(co 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, +2007 Free Software Foundation, Inc. .sp .5 Permission is granted to make and distribute verbatim copies of this reference card provided the copyright notice and this permission notice diff -urN gawk-3.1.5/doc/gawk.1 gawk-3.1.6/doc/gawk.1 --- gawk-3.1.5/doc/gawk.1 2005-06-26 16:42:14.000000000 +0300 +++ gawk-3.1.6/doc/gawk.1 2007-10-19 04:13:28.000000000 +0200 @@ -3,6 +3,14 @@ .ds AN \s-1ANSI\s+1 .ds GN \s-1GNU\s+1 .ds AK \s-1AWK\s+1 +.de EX +.nf +.ft CW +.. +.de EE +.ft R +.fi +.. .ds EP \fIGAWK: Effective AWK Programming\fP .if !\n(.g \{\ . if !\w|\*(lq| \{\ @@ -14,7 +22,7 @@ . if \w'\(rq' .ds rq "\(rq . \} .\} -.TH GAWK 1 "June 26 2005" "Free Software Foundation" "Utility Commands" +.TH GAWK 1 "Oct 19 2007" "Free Software Foundation" "Utility Commands" .SH NAME gawk \- pattern scanning and processing language .SH SYNOPSIS @@ -53,7 +61,7 @@ .I Gawk is the \*(GN Project's implementation of the \*(AK programming language. It conforms to the definition of the language in -the \*(PX 1003.2 Command Language And Utilities Standard. +the \*(PX 1003.1 Standard. This version in turn is based on the description in .IR "The AWK Programming Language" , by Aho, Kernighan, and Weinberger, @@ -94,7 +102,7 @@ .PP .I Gawk options may be either traditional \*(PX one letter options, -or \*(GN style long options. \*(PX options start with a single \*(lq\-\*(rq, +or \*(GN-style long options. \*(PX options start with a single \*(lq\-\*(rq, while long options start with \*(lq\-\^\-\*(rq. Long options are provided for both \*(GN-specific features and for \*(PX-mandated features. @@ -119,7 +127,7 @@ .SH OPTIONS .PP .I Gawk -accepts the following options, listed alphabetically. +accepts the following options, listed by frequency. .TP .PD 0 .BI \-F " fs" @@ -174,7 +182,8 @@ .B r flag sets the maximum record size. These two flags and the .B \-m -option are from the Bell Laboratories research version of \*(UX +option are from an earlier version of the Bell Laboratories +research version of \*(UX .IR awk . They are ignored by .IR gawk , @@ -233,7 +242,7 @@ is provided, .I gawk uses a file named -.I awkvars.out +.B awkvars.out in the current directory. .sp .5 Having a list of all the global variables is a good way to look for @@ -446,6 +455,25 @@ in shell scripts. .TP .PD 0 +.B "\-W use\-lc\-numeric" +.TP +.PD +.B \-\^\-use\-lc\-numeric +This forces +.I gawk +to use the locale's decimal point character when parsing input data. +Although the POSIX standard requires this behavior, and +.I gawk +does so when +.B \-\^\-posix +is in effect, the default is to follow traditional behavior and use a +period as the decimal point, even in locales where the period is not the +decimal point character. This option overrides the default behavior, +without the full draconian strictness of the +.B \-\^\-posix +option. +.TP +.PD 0 .B "\-W version" .TP .PD @@ -467,7 +495,7 @@ .B \-\^\- Signal the end of options. This is useful to allow further arguments to the \*(AK program itself to start with a \*(lq\-\*(rq. -This is mainly for consistency with the argument parsing convention used +This provides consistency with the argument parsing convention used by most other \*(PX programs. .PP In compatibility mode, @@ -588,7 +616,7 @@ depending upon how they are used. \*(AK also has one dimensional arrays; arrays with multiple dimensions may be simulated. Several pre-defined variables are set as a program -runs; these will be described as needed and summarized below. +runs; these are described as needed and summarized below. .SS Records Normally, records are separated by newline characters. You can control how records are separated by assigning values to the built-in variable @@ -636,10 +664,10 @@ .B FS is a single space, fields are separated by runs of spaces and/or tabs and/or newlines. -(But see the discussion of -.BR \-\^\-posix , +(But see the section +.BR "POSIX COMPATIBILITY" , below). -.B NOTE: +.BR NOTE : The value of .B IGNORECASE (see below) also affects how fields are split when @@ -828,7 +856,7 @@ .B sub() built-in functions all ignore case when doing regular expression operations. -.B NOTE: +.BR NOTE : Array subscripting is .I not affected. @@ -858,7 +886,7 @@ facilities such as .BR isalpha() , and -.BR tolupper() . +.BR toupper() . .TP .B LINT Provides dynamic control of the @@ -1003,11 +1031,7 @@ .PP The special operator .B in -may be used in an -.B if -or -.B while -statement to see if an array has an index consisting of a particular +may be used to test if an array has an index consisting of a particular value. .PP .RS @@ -1040,7 +1064,7 @@ Variables and fields may be (floating point) numbers, or strings, or both. How the value of a variable is interpreted depends upon its context. If used in -a numeric expression, it will be treated as a number, if used as a string +a numeric expression, it will be treated as a number; if used as a string it will be treated as a string. .PP To force a variable to be treated as a number, add 0 to it; to force it @@ -1073,6 +1097,16 @@ .B b has a string value of \fB"12"\fR and not \fB"12.00"\fR. .PP +When operating in POSIX mode (such as with the +.B \-\^\-posix +command line option), +beware that locale settings may interfere with the way +decimal numbers are treated: the decimal separator of the numbers you +are feeding to +.I gawk +must conform to what your locale would expect, be it +a comma (,) or a period (.). +.PP .I Gawk performs comparisons as follows: If two variables are numeric, they are compared numerically. @@ -1081,13 +1115,6 @@ Otherwise, the numeric value is converted to a string and a string comparison is performed. Two strings are compared, of course, as strings. -Note that the POSIX standard applies the concept of -\*(lqnumeric string\*(rq everywhere, even to string constants. -However, this is -clearly incorrect, and -.I gawk -does not do this. -(Fortunately, this is fixed in the next version of the standard.) .PP Note that string constants, such as \fB"57"\fP, are .I not @@ -1335,7 +1362,7 @@ character list, matches any of the characters .IR abc.\|.\|. . .TP -.BI [^ abc.\|.\|. ] +\fB[^\fIabc.\|.\|.\fB]\fR negated character list, matches any character except .IR abc.\|.\|. . .TP @@ -1429,7 +1456,7 @@ are also valid in regular expressions. .PP .I "Character classes" -are a new feature introduced in the \*(PX standard. +are a feature introduced in the \*(PX standard. A character class is a special notation for describing lists of characters that have a specific attribute, but where the actual characters themselves can vary from country to country and/or @@ -1495,7 +1522,8 @@ With the \*(PX character classes, you can write .BR /[[:alnum:]]/ , and this matches -the alphabetic and numeric characters in your character set. +the alphabetic and numeric characters in your character set, +no matter what it is. .PP Two additional special sequences can appear in character lists. These apply to non-\s-1ASCII\s+1 character sets, which can have single symbols @@ -1505,7 +1533,7 @@ character, as well as several characters that are equivalent for .IR collating , or sorting, purposes. (E.g., in French, a plain \*(lqe\*(rq -and a grave-accented e\` are equivalent.) +and a grave-accented \*(lqe\h'-\w:e:u'\`\*(rq are equivalent.) .TP Collating Symbols A collating symbol is a multi-character collating element enclosed in @@ -1637,6 +1665,13 @@ .I space String concatenation. .TP +.B "| |&" +Piped I/O for +.BR getline , +.BR print , +and +.BR printf . +.TP .PD 0 .B "< >" .TP @@ -1649,7 +1684,7 @@ .TP .B "~ !~" Regular expression match, negated match. -.B NOTE: +.BR NOTE : Do not use a constant regular expression .RB ( /foo/ ) on the left-hand side of a @@ -1780,6 +1815,10 @@ Co-processes are a .I gawk extension. +.RI ( command +can also be a socket. See the subsection +.BR "Special File Names" , +below.) .TP .B next Stop processing the current input record. The next input record @@ -1856,14 +1895,17 @@ .BR printf . .TP .BI "print .\|.\|. >>" " file" -appends output to the +Appends output to the .IR file . .TP .BI "print .\|.\|. |" " command" -writes on a pipe. +Writes on a pipe. .TP .BI "print .\|.\|. |&" " command" -sends data to a co-process. +Sends data to a co-process or socket. +(See also the subsection +.BR "Special File Names" , +below.) .PP The .BR getline @@ -1872,8 +1914,8 @@ .B ERRNO contains a string describing the problem. .PP -.B NOTE: -If using a pipe or co-process to +.BR NOTE : +If using a pipe, co-process, or socket to .BR getline , or from .B print @@ -1883,8 +1925,8 @@ .I must use .B close() -to create new instances of the command. -\*(AK does not automatically close pipes or co-processes when +to create new instances of the command or socket. +\*(AK does not automatically close pipes, sockets, or co-processes when they return EOF. .SS The \fIprintf\fP\^ Statement .PP @@ -1907,7 +1949,7 @@ .BR "%d" "," " %i" A decimal number (the integer part). .TP -.B %e , " %E" +.BR %e , " %E" A floating point number of the form .BR [\-]d.dddddde[+\^\-]dd . The @@ -1917,11 +1959,22 @@ instead of .BR e . .TP -.B %f +.BR %f , " %F" A floating point number of the form .BR [\-]ddd.dddddd . +If the system library supports it, +.B %F +is available as well. This is like +.BR %f , +but uses capital letters for special \*(lqnot a number\*(rq +and \*(lqinfinity\*(rq values. If +.B %F +is not available, +.I gawk +uses +.BR %f . .TP -.B %g , " %G" +.BR %g , " %G" Use .B %e or @@ -1944,7 +1997,7 @@ .B %s A character string. .TP -.B %x , " %X" +.BR %x , " %X" An unsigned hexadecimal number (an integer). The .B %X @@ -1965,7 +2018,7 @@ integer, .I gawk switches to the -.B %g +.B %0f format specifier. If .B \-\^\-lint is provided on the command line @@ -2023,8 +2076,9 @@ For .BR %e , .BR %E , +.B %f and -.BR %f , +.BR %F , the result always contains a decimal point. For @@ -2053,8 +2107,9 @@ For the .BR %e , .BR %E , +.B %f and -.BR %f +.BR %F , formats, this specifies the number of digits you want printed to the right of the decimal point. For the @@ -2275,7 +2330,7 @@ are sorted using .IR gawk\^ "'s" normal rules for -comparing values, and the indexes of the +comparing values, and the indices of the sorted values of .I s are replaced with sequential @@ -2288,7 +2343,7 @@ .IR d , and then .I d -is sorted, leaving the indexes of the +is sorted, leaving the indices of the source array .I s unchanged. @@ -2530,6 +2585,16 @@ .I str translated to their corresponding upper-case counterparts. Non-alphabetic characters are left unchanged. +.PP +As of version 3.1.5, +.I gawk +is multibyte aware. This means that +.BR index() , +.BR length() , +.B substr() +and +.B match() +all work in terms of characters, not bytes. .SS Time Functions Since one of the primary uses of \*(AK programs is processing log files that contain time stamp information, @@ -2574,11 +2639,15 @@ .B mktime() returns \-1. .TP -\fBstrftime(\fR[\fIformat \fR[\fB, \fItimestamp\fR]]\fB)\fR +\fBstrftime(\fR[\fIformat \fR[\fB, \fItimestamp\fR[\fB, \fIutc-flag\fR]]]\fB)\fR Formats .I timestamp according to the specification in .IR format. +If +.I utc-flag +is present and is non-zero or non-null, the result +is in UTC, otherwise the result is in local time. The .I timestamp should be of the same form as returned by @@ -2595,14 +2664,6 @@ .B strftime() function in \*(AN C for the format conversions that are guaranteed to be available. -A public-domain version of -.IR strftime (3) -and a man page for it come with -.IR gawk ; -if that version was used to build -.IR gawk , -then all of the conversions described in that man page are available to -.IR gawk. .TP .B systime() Returns the current time of day as the number of seconds since the Epoch @@ -2613,7 +2674,7 @@ the following bit manipulation functions are available. They work by converting double-precision floating point values to -.B "unsigned long" +.B uintmax_t integers, doing the operation, and then converting the result back to floating point. The functions are: @@ -2771,7 +2832,7 @@ The left parenthesis in a function call is required to immediately follow the function name, without any intervening white space. -This is to avoid a syntactic ambiguity with the concatenation operator. +This avoids a syntactic ambiguity with the concatenation operator. This restriction does not apply to the built-in functions listed above. .PP Functions may call each other and may be recursive. @@ -2819,7 +2880,7 @@ .ft B This function is provided and documented in \*(EP, but everything about this feature is likely to change -in the next release. +eventually. We STRONGLY recommend that you do not use this feature for anything that you aren't willing to redo. .ft R @@ -2834,7 +2895,9 @@ .B \-\^\-profile option. It then continues to run. .B SIGHUP -causes it to dump the profile and function call stack and then exit. +causes +.I pgawk +to dump the profile and function call stack and then exit. .SH EXAMPLES .nf Print and sort the login names of all users: @@ -2907,10 +2970,11 @@ .B TEXTDOMAIN variable to set the text domain to a name associated with your program. .sp -.ti +5n -.ft B +.RS +.EX BEGIN { TEXTDOMAIN = "myprog" } -.ft R +.EE +.RE .sp This allows .I gawk @@ -2942,9 +3006,9 @@ file for your program. .TP 5. -Provide appropriate translations, and build and install a corresponding +Provide appropriate translations, and build and install the corresponding .B \&.mo -file. +files. .PP The internationalization features are described in full detail in \*(EP. .SH POSIX COMPATIBILITY @@ -3080,7 +3144,9 @@ .I gawk with the .B \-\^\-traditional -option. +or +.B \-\^\-posix +options. .PP The following features of .I gawk @@ -3186,6 +3252,10 @@ .B printf and .BR sprintf() . +.TP +\(bu +The ability to pass an array to +.BR length() . .\" New keywords or changes to keywords .TP \(bu @@ -3258,7 +3328,7 @@ is set to the tab character. Note that typing .B "gawk \-F\et \&.\|.\|." -simply causes the shell to quote the \*(lqt,\*(rq, and does not pass +simply causes the shell to quote the \*(lqt,\*(rq and does not pass \*(lq\et\*(rq to the .B \-F option. @@ -3310,6 +3380,15 @@ \fB}\fR .fi .RE +.PP +If +.I gawk +is configured with the +.B \-\^\-disable\-directories-fatal +option, then it will silently skip directories named on the command line. +Otherwise, it will do so only if invoked with the +.B \-\^\-traditional +option. .SH ENVIRONMENT VARIABLES The .B AWKPATH @@ -3350,6 +3429,8 @@ .PP \*(EP, Edition 3.0, published by the Free Software Foundation, 2001. +The current version of this document is available online at +.BR http://www.gnu.org/software/gawk/manual . .SH BUGS The .B \-F @@ -3385,13 +3466,16 @@ Scott Deifik is the current DOS maintainer. Pat Rankin did the port to VMS, and Michal Jaegermann did the port to the Atari ST. The port to OS/2 was done by Kai Uwe Rommel, with contributions and -help from Darrel Hankerson. Fred Fish supplied support for the Amiga, -Stephen Davies provided the Tandem port, +help from Darrel Hankerson. +Juan M.\& Guerrero now maintains the OS/2 port. +Fred Fish supplied support for the Amiga, and Martin Brown provided the BeOS port. +Stephen Davies provided the original Tandem port, and +Matthew Woehlke provided changes for Tandem's POSIX-compliant systems. .SH VERSION INFORMATION This man page documents .IR gawk , -version 3.1.5. +version 3.1.6. .SH BUG REPORTS If you find a bug in .IR gawk , @@ -3404,12 +3488,18 @@ what C compiler you used to compile it, and a test program and data that are as small as possible for reproducing the problem. .PP -Before sending a bug report, please do two things. First, verify that +Before sending a bug report, please do the following things. First, verify that you have the latest version of .IR gawk . Many bugs (usually subtle ones) are fixed at each release, and if yours is out of date, the problem may already have been solved. -Second, please read this man page and the reference manual carefully to +Second, please see if setting the environment variable +.B LC_ALL +to +.B LC_ALL=C +causes things to behave as you expect. If so, it's a locale issue, +and may or may not really be a bug. +Finally, please read this man page and the reference manual carefully to be sure that what you think is a bug really is, instead of just a quirk in the language. .PP @@ -3435,7 +3525,8 @@ We thank him. .SH COPYING PERMISSIONS Copyright \(co 1989, 1991, 1992, 1993, 1994, 1995, 1996, -1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2007 +Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this manual page provided the copyright notice and this permission diff -urN gawk-3.1.5/doc/gawk.texi gawk-3.1.6/doc/gawk.texi --- gawk-3.1.5/doc/gawk.texi 2005-07-25 22:28:03.000000000 +0300 +++ gawk-3.1.6/doc/gawk.texi 2007-09-30 22:27:45.000000000 +0200 @@ -20,9 +20,9 @@ @c applies to and all the info about who's publishing this edition @c These apply across the board. -@set UPDATE-MONTH June, 2005 +@set UPDATE-MONTH October, 2007 @set VERSION 3.1 -@set PATCHLEVEL 5 +@set PATCHLEVEL 6 @set FSF @@ -110,7 +110,7 @@ @end iftex @copying -Copyright @copyright{} 1989, 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +Copyright @copyright{} 1989, 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc. @sp 2 This is Edition @value{EDITION} of @cite{@value{TITLE}: @value{SUBTITLE}}, @@ -171,13 +171,15 @@ So there. @sp 2 UNIX is a registered trademark of The Open Group in the United States and other countries. @* +Linux is a registered trademark of Linus Torvalds in the United States and other countries. @* Microsoft, MS and MS-DOS are registered trademarks, and Windows is a trademark of Microsoft Corporation in the United States and other countries. @* Atari, 520ST, 1040ST, TT, STE, Mega and Falcon are registered trademarks or trademarks of Atari Corporation. @* -DEC, Digital, OpenVMS, ULTRIX and VMS are trademarks of Digital Equipment -Corporation. @* +Once upon a time, +DEC, Digital, OpenVMS, ULTRIX and VMS were trademarks of Digital Equipment +Corporation. Now they belong to Hewlett-Packard Corporation. @* @end ignore ``To boldly go where no man has gone before'' is a Registered Trademark of Paramount Pictures Corporation. @* @@ -281,7 +283,7 @@ operating systems. * Notes:: Notes about @command{gawk} extensions and possible future work. -* Basic Concepts:: A very quick intoduction to programming +* Basic Concepts:: A very quick introduction to programming concepts. * Glossary:: An explanation of some unfamiliar terms. * Copying:: Your right to copy and distribute @@ -406,6 +408,8 @@ * Typing and Comparison:: How variables acquire types and how this affects comparison of numbers and strings with @samp{<}, etc. +* Variable Typing:: String type versus numeric type. +* Comparison Operators:: The comparison operators. * Boolean Ops:: Combining comparison expressions using boolean operators @samp{||} (``or''), @samp{&&} (``and'') and @samp{!} (``not''). @@ -601,6 +605,7 @@ * VMS Installation Details:: How to install @command{gawk} under VMS. * VMS Running:: How to run @command{gawk} under VMS. * VMS POSIX:: Alternate instructions for VMS POSIX. +* VMS Old Gawk:: An old version comes with some VMS systems. * Unsupported:: Systems whose ports are no longer supported. * Atari Installation:: Installing @command{gawk} on the Atari ST. @@ -630,6 +635,10 @@ * Basic High Level:: The high level view. * Basic Data Typing:: A very quick intro to data types. * Floating Point Issues:: Stuff to know about floating-point numbers. +* String Conversion Precision:: The String Value Can Lie. +* Unexpected Results:: Floating Point Numbers Are Not + Abstract Numbers. +* POSIX Floating Point Problems:: Standards Versus Existing Practice. @end detailmenu @end menu @@ -930,7 +939,7 @@ @node Names @section A Rose by Any Other Name -@cindex @command{awk}, new vs. old +@cindex @command{awk}, new vs.@: old The @command{awk} language has evolved over the years. Full details are provided in @ref{Language History}. The language described in this @value{DOCUMENT} @@ -1218,7 +1227,7 @@ To find out more about the FSF and the GNU Project online, see @uref{http://www.gnu.org, the GNU Project's home page}. This @value{DOCUMENT} may also be read from -@uref{http://www.gnu.org/manual/gawk/, their web site}. +@uref{http://www.gnu.org/software/gawk/manual/, their web site}. A shell, an editor (Emacs), highly portable optimizing C, C++, and Objective-C compilers, a symbolic debugger and dozens of large and @@ -1559,7 +1568,7 @@ the end of the input files. @cindex @command{awk}, uses for -@cindex programming languages@comma{} data-driven vs. procedural +@cindex programming languages@comma{} data-driven vs.@: procedural @cindex @command{awk} programs Programs in @command{awk} are different from programs in most other languages, because @command{awk} programs are @dfn{data-driven}; that is, you describe @@ -1926,8 +1935,8 @@ when reading it at a later time. @cindex quoting -@cindex single quote (@code{'}), vs. apostrophe -@cindex @code{'} (single quote), vs. apostrophe +@cindex single quote (@code{'}), vs.@: apostrophe +@cindex @code{'} (single quote), vs.@: apostrophe @strong{Caution:} As mentioned in @ref{One-shot}, you can enclose small to medium programs in single quotes, in order to keep @@ -2692,7 +2701,7 @@ retargetable assembler for eight-bit microprocessors (@pxref{Glossary}, for more information), and a microcode assembler for a special-purpose Prolog computer. More recently, @command{gawk} was used for writing a Wiki -clone.@footnote{@uref{http://www.awk-scripting.de/cgi/wiki.cgi/yawk/, Yet Another Wiki Clone}.} +clone.@footnote{@uref{http://www.awk-scripting.de/cgi-bin/wiki.cgi/yawk/, Yet Another Wiki Clone}.} While the original @command{awk}'s capabilities were strained by tasks of such complexity, modern versions are more capable. Even the Bell Labs version of @command{awk} has fewer predefined limits, and those @@ -3561,6 +3570,7 @@ are the POSIX character classes (@code{[[:alnum:]]}, etc.). Characters described by octal and hexadecimal escape sequences are treated literally, even if they represent regexp metacharacters. +Also, @command{gawk} silently skips directories named on the command line. @item @code{--re-interval} Allow interval expressions in regexps, even if @option{--traditional} @@ -3663,7 +3673,7 @@ ASCII characters, which also provides a number of characters suitable for use with European languages. -As of @command{gawk} 3.1.4, the case equivalencies are fully +As of @command{gawk} 3.1.4, the case equivalences are fully locale-aware. They are based on the C @code{} facilities, such as @code{isalpha()} and @code{toupper()}. @@ -3751,7 +3761,7 @@ on the right. This is true of any string-valued expression (such as @code{digits_regexp}, shown previously), not just string constants. -@cindex regexp constants, slashes vs. quotes +@cindex regexp constants, slashes vs.@: quotes @cindex @code{\} (backslash), regexp constants @cindex backslash (@code{\}), regexp constants @cindex @code{"} (double quote), regexp constants @@ -3767,9 +3777,9 @@ second one so that the string actually contains the two characters @samp{\} and @samp{*}. -@cindex troubleshooting, regexp constants vs. string constants -@cindex regexp constants, vs. string constants -@cindex string constants, vs. regexp constants +@cindex troubleshooting, regexp constants vs.@: string constants +@cindex regexp constants, vs.@: string constants +@cindex string constants, vs.@: regexp constants Given that you can use both regexp and string constants to describe regular expressions, which should you use? The answer is ``regexp constants,'' for several reasons: @@ -3828,6 +3838,7 @@ @node Locales @section Where You Are Makes A Difference +@cindex locale, definition of Modern systems support the notion of @dfn{locales}: a way to tell the system about the local character set and language. The current @@ -3852,6 +3863,7 @@ locale setting (and thus you may not see it on your system). There are two fixes. The first is to use the POSIX character class @samp{[[:upper:]]}, instead of @samp{[A-Z]}. +(This is preferred, since then your program will work everywhere.) The second is to change the locale setting in the environment, before running @command{gawk}, by using the shell statements: @@ -3873,10 +3885,14 @@ or use a POSIX character class such as @samp{[[:punct:]]}.) For the normal case of @samp{RS = "\n"}, the locale is largely irrelevant. -For other single byte record separators, using @samp{LC_ALL=C} will give you -much better performance when reading records. Otherwise, @command{gawk} has -to make several function calls, @emph{per input character} to find the record -terminator. +For other single-character record separators, using @samp{LC_ALL=C} +will give you much better performance when reading records. Otherwise, +@command{gawk} has to make several function calls, @emph{per input +character} to find the record terminator. + +Finally, the locale affects the value of the decimal point character +used when @command{gawk} parses input data. This is discussed in +detail in @ref{Conversion}. @node Reading Files @chapter Reading Input Files @@ -4840,7 +4856,7 @@ separator occurs when processing the Unix system password file. On many Unix systems, each user has a separate entry in the system password file, one line per user. The information in these lines is separated -by colons. The first field is the user's logon name and the second is +by colons. The first field is the user's login name and the second is the user's (encrypted or shadow) password. A password file entry might look like this: @@ -5161,7 +5177,7 @@ separate the fields in the record. One way to do this is to divide each of the lines into fields in the normal manner. This happens by default as the result of a special feature. When @code{RS} is set to the empty -string, @emph{and} @code{FS} is a set to a single character, +string, @emph{and} @code{FS} is set to a single character, the newline character @emph{always} acts as a field separator. This is in addition to whatever field separations result from @code{FS}.@footnote{When @code{FS} is the null string (@code{""}) @@ -5185,7 +5201,7 @@ Another way to separate fields is to put each field on a separate line: to do this, just set the variable @code{FS} to the string @code{"\n"}. (This single -character seperator matches a single newline.) +character separator matches a single newline.) A practical example of a @value{DF} organized this way might be a mailing list, where each entry is separated by blank lines. Consider a mailing list in a file named @file{addresses}, which looks like this: @@ -5259,7 +5275,9 @@ successive occurrences delimit empty records. @item RS == "" -Records are separated by runs of blank lines. The newline character +Records are separated by runs of blank lines. +When @code{FS} is a single character, then +the newline character always serves as a field separator, in addition to whatever value @code{FS} may have. Leading and trailing newlines in a file are ignored. @@ -5347,7 +5365,6 @@ print m > "/dev/stderr" exit @} - t = -1 u = index($0, "*/") @} # substr expression will be "" if */ @@ -5358,7 +5375,7 @@ @} @end example -This @command{awk} program deletes all C-style comments (@samp{/* @dots{} +This @command{awk} program deletes C-style comments (@samp{/* @dots{} */}) from the input. By replacing the @samp{print $0} with other statements, you could perform more complicated processing on the decommented input, such as searching for matches of a regular @@ -5601,6 +5618,20 @@ write it as @samp{(@w{"echo "} "date") | getline} if you want your program to be portable to other @command{awk} implementations. +@quotation NOTE +Unfortunately, @command{gawk} has not been consistent in its treatment +of a construct like @samp{@w{"echo "} "date" | getline}. Up to and including +@value{PVERSION} 3.1.1 of @command{gawk}, it was treated as +@samp{@w{("echo "} "date") | getline}. +(This how Unix @command{awk} behaves.) +From 3.1.2 through 3.1.5, it was treated as +@samp{@w{"echo "} ("date" | getline)}. +(This is how @command{mawk} behaves.) +Starting with @value{PVERSION} 3.1.6, the earlier behavior was reinstated. +In short, @emph{always} use explicit parentheses, and then you won't +have to worry. +@end quotation + @node Getline/Variable/Pipe @subsection Using @code{getline} into a Variable from a Pipe @cindex variables, @code{getline} command into@comma{} using @@ -5648,7 +5679,7 @@ On occasion, you might want to send data to another program for processing and then read the results back. -@command{gawk} allows you start a @dfn{coprocess}, with which two-way +@command{gawk} allows you to start a @dfn{coprocess}, with which two-way communications are possible. This is done with the @samp{|&} operator. Typically, you write data to the coprocess first and then @@ -6179,7 +6210,7 @@ infinity are formatted as @samp{-inf} or @samp{-infinity}, and positive infinity as -@samp{inf} and @samp{-infinity}. +@samp{inf} and @samp{infinity}. The special ``not a number'' value formats as @samp{-nan} or @samp{nan}. @item %F @@ -6187,7 +6218,7 @@ using uppercase letters. The @code{%F} format is a POSIX extension to ISO C; not all systems -support. On those that don't, @command{gawk} uses @code{%f} instead. +support it. On those that don't, @command{gawk} uses @code{%f} instead. @item %g@r{,} %G These print a number in either scientific notation or in floating-point @@ -6220,7 +6251,7 @@ @cindex @command{gawk}, format-control characters @quotation NOTE When using the integer format-control letters for values that are -outside the range of the widest C integer type, @command{gawk} switches to the +outside the range of the widest C integer type, @command{gawk} switches to the @samp{%g} format specifier. If @option{--lint} is provided on the command line (@pxref{Options}), @command{gawk} warns about this. Other versions of @command{awk} may print invalid @@ -6313,19 +6344,19 @@ value to print. @item ' -A single quote or apostrohe character is a POSIX extension to ISO C. +A single quote or apostrophe character is a POSIX extension to ISO C. It indicates that the integer part of a floating point value, or the entire part of an integer decimal value, should have a thousands-separator character in it. This only works in locales that support such characters. For example: @example -$ @kbd{cat thousands.awk} @i{Show source program} +$ @kbd{cat thousands.awk} @i{Show source program} @print{} BEGIN @{ printf "%'d\n", 1234567 @} -$ @kbd{LC_ALL=C gawk -f thousands.awk} @i{Run it in "C" locale} -@print{} 1234567 -$ @kbd{LC_ALL=en_US.UTF-8 gawk -f thousands.awk} @i{Run in US English UTF locale} -@print{} 1,234,567 +$ @kbd{LC_ALL=C gawk -f thousands.awk} +@print{} 1234567 @i{Results in "C" locale} +$ @kbd{LC_ALL=en_US.UTF-8 gawk -f thousands.awk} +@print{} 1,234,567 @i{Results in US English UTF locale} @end example @noindent @@ -6334,7 +6365,7 @@ @quotation NOTE The @samp{'} flag is a nice feature, but its use complicates things: it -now becomes difficult to use it in command-line programs. For information +becomes difficult to use it in command-line programs. For information on appropriate quoting tricks, see @ref{Quoting}. @end quotation @@ -6654,7 +6685,8 @@ This example also illustrates the use of a variable to represent a @var{file} or @var{command}---it is not necessary to always use a string constant. Using a variable is generally a good idea, -because @command{awk} requires that the string value be spelled identically +because (if you mean to refer to that same file or command) +@command{awk} requires that the string value be spelled identically every time. @cindex coprocesses @@ -6671,6 +6703,8 @@ This feature is a @command{gawk} extension, and is not available in POSIX @command{awk}. +@xref{Getline/Coprocess}, +for a brief discussion. @xref{Two-way I/O}, for a more complete discussion. @end table @@ -6696,7 +6730,10 @@ This is indeed how redirections must be used from the shell. But in @command{awk}, it isn't necessary. In this kind of case, a program should use @samp{>} for all the @code{print} statements, since the output file -is only opened once. +is only opened once. (It happens that if you mix @samp{>} and @samp{>>} +that output is produced in the expected order. However, mixing the operators +for the same file is definitely poor style, and is confusing to readers +of your program.) @cindex differences in @command{awk} and @command{gawk}, implementation limitations @cindex implementation issues@comma{} @command{gawk}, limits @@ -7767,8 +7804,8 @@ @cindex POSIX @command{awk}, @code{OFMT} variable and @cindex @code{OFMT} variable -@cindex portability, new @command{awk} vs. old @command{awk} -@cindex @command{awk}, new vs. old, @code{OFMT} variable +@cindex portability, new @command{awk} vs.@: old @command{awk} +@cindex @command{awk}, new vs.@: old, @code{OFMT} variable Prior to the POSIX standard, @command{awk} used the value of @code{OFMT} for converting numbers to strings. @code{OFMT} specifies the output format to use when printing numbers with @code{print}. @@ -7783,23 +7820,22 @@ @xref{Print}, for more information on the @code{print} statement. -Finally, once again, where you are can matter when it comes to -converting between numbers and strings. In -@ref{Locales}, we mentioned that the -local character set and language (the locale) can affect how @command{gawk} matches -characters. The locale also affects numeric formats. In particular, for @command{awk} -programs, it affects the decimal point character. The @code{"C"} locale, and most -English-language locales, use the period character (@samp{.}) as the decimal point. -However, many (if not most) European and non-English locales use the comma (@samp{,}) -as the decimal point character. +And, once again, where you are can matter when it comes to converting +between numbers and strings. In @ref{Locales}, we mentioned that +the local character set and language (the locale) can affect how +@command{gawk} matches characters. The locale also affects numeric +formats. In particular, for @command{awk} programs, it affects the +decimal point character. The @code{"C"} locale, and most English-language +locales, use the period character (@samp{.}) as the decimal point. +However, many (if not most) European and non-English locales use the comma +(@samp{,}) as the decimal point character. The POSIX standard says that @command{awk} always uses the period as the decimal point when reading the @command{awk} program source code, and for command-line variable assignments (@pxref{Other Arguments}). However, when interpreting input data, for @code{print} and @code{printf} output, and for number to string conversion, the local decimal point character is used. -As of @value{PVERSION} 3.1.3, @command{gawk} fully complies with this aspect -of the standard. Here are some examples indicating the difference in behavior, +Here are some examples indicating the difference in behavior, on a GNU/Linux system: @example @@ -7819,6 +7855,37 @@ treats @samp{4,321} as @samp{4}, while in the Danish locale, it's treated as the full number, @samp{4.321}. +For @value{PVERSION} 3.1.3 through 3.1.5, @command{gawk} fully complied +with this aspect of the standard. However, many users in non-English +locales complained about this behavior, since their data used a period +as the decimal point. Beginning in @value{PVERSION} 3.1.6, the default +behavior was restored to use a period as the decimal point character. +You can use the @option{--use-lc-numeric} option (@pxref{Options}) +to force @command{gawk} to use the locale's decimal point character. +(@command{gawk} also uses the locale's decimal point character when in +POSIX mode, either via @option{--posix}, or the @env{POSIXLY_CORRECT} +environment variable.) + +The following table describes the cases in which the locale's decimal +point character is used and when a period is used. Some of these +features have not been described yet. + +@float Table,table-locale-affects +@caption{Locale Decimal Point versus A Period} +@multitable @columnfractions .15 .20 .45 +@headitem Feature @tab Default @tab @option{--posix} or @option{--use-lc-numeric} +@item @samp{%'g} @tab Use locale @tab Use locale +@item @samp{%g} @tab Use period @tab Use locale +@item Input @tab Use period @tab Use locale +@item @samp{strtonum} @tab Use period @tab Use locale +@end multitable +@end float + +Finally, modern day formal standards and IEEE standard floating point +representation can have an unusual but important effect on the way +@command{gawk} converts some special string values to numbers. The details +are presented in @ref{POSIX Floating Point Problems}. + @node Arithmetic Ops @section Arithmetic Operators @cindex arithmetic operators @@ -7969,9 +8036,9 @@ @cindex troubleshooting, string concatenation Because string concatenation does not have an explicit operator, it is often necessary to insure that it happens at the right time by using -parentheses to enclose the items to concatenate. For example, the -following code fragment does not concatenate @code{file} and @code{name} -as you might expect: +parentheses to enclose the items to concatenate. For example, +you might expect that the +following code fragment concatenates @code{file} and @code{name}: @example file = "file" @@ -7980,6 +8047,9 @@ @end example @noindent +This produces a syntax error with Unix @command{awk}.@footnote{It happens +that @command{gawk} and @command{mawk} ``get it right,'' but you should +not rely on this.} It is necessary to use the following: @example @@ -8013,7 +8083,7 @@ @ignore > To: bug-gnu-utils@@gnu.org -> CC: arnold@gnu.org +> CC: arnold@@gnu.org > Subject: gawk 3.0.4 bug with {print -12 " " -24} > From: Russell Schulz > Date: Tue, 8 Feb 2000 19:56:08 -0700 @@ -8500,6 +8570,16 @@ Unlike other programming languages, @command{awk} variables do not have a fixed type. Instead, they can be either a number or a string, depending upon the value that is assigned to them. +We look now at how variables are typed, and how @command{awk} +compares variables. + +@menu +* Variable Typing:: String type versus numeric type. +* Comparison Operators:: The comparison operators. +@end menu + +@node Variable Typing +@subsection String Type Versus Numeric Type @cindex numeric, strings @cindex strings, numeric @@ -8544,9 +8624,9 @@ @example BEGIN @{ - a = 12.345 - b = a " is a cute number" - print b + a = 12.345 + b = a " is a cute number" + print b @} @end example @@ -8615,17 +8695,49 @@ The basic idea is that user input that looks numeric---and @emph{only} user input---should be treated as numeric, even though it is actually made of characters and is therefore also a string. -Thus, for example, the string constant @w{@code{" +3.14"}} -is a string, even though it looks numeric, -and is @emph{never} treated as number for comparison +Thus, for example, the string constant @w{@code{" +3.14"}}, +when it appears in program source code, +is a string---even though it looks numeric---and +is @emph{never} treated as number for comparison purposes. In short, when one operand is a ``pure'' string, such as a string constant, then a string comparison is performed. Otherwise, a -numeric comparison is performed.@footnote{The POSIX standard is under -revision. The revised standard's rules for typing and comparison are +numeric comparison is performed.@footnote{The POSIX standard has +been revised. The revised standard's rules for typing and comparison are the same as just described for @command{gawk}.} +This point bears additional emphasis: All user input is made of characters, +and so is first and foremost of @var{string} type; input strings +that look numeric are additionally given the @var{strnum} attribute. +Thus, the six-character input string @w{@samp{ +3.14}} receives the +@var{strnum} attribute. In contrast, the eight-character literal +@w{@code{" +3.14"}} appearing in program text is a string constant. +The following examples print @samp{1} when the comparison between +the two different constants is true, @samp{0} otherwise: + +@example +$ echo ' +3.14' | gawk '@{ print $0 == " +3.14" @}' @i{True} +@print{} 1 +$ echo ' +3.14' | gawk '@{ print $0 == "+3.14" @}' @i{False} +@print{} 0 +$ echo ' +3.14' | gawk '@{ print $0 == "3.14" @}' @i{False} +@print{} 0 +$ echo ' +3.14' | gawk '@{ print $0 == 3.14 @}' @i{True} +@print{} 1 +$ echo ' +3.14' | gawk '@{ print $1 == " +3.14" @}' @i{False} +@print{} 0 +$ echo ' +3.14' | gawk '@{ print $1 == "+3.14" @}' @i{True} +@print{} 1 +$ echo ' +3.14' | gawk '@{ print $1 == "3.14" @}' @i{False} +@print{} 0 +$ echo ' +3.14' | gawk '@{ print $1 == 3.14 @}' @i{True} +@print{} 1 +@end example + +@node Comparison Operators +@subsection Comparison Operators + @dfn{Comparison expressions} compare strings or numbers for relationships such as equality. They are written using @dfn{relational operators}, which are a superset of those in C. @@ -8726,9 +8838,9 @@ @print{} false @end example -@cindex comparison expressions, string vs. regexp -@c @cindex string comparison vs. regexp comparison -@c @cindex regexp comparison vs. string comparison +@cindex comparison expressions, string vs.@: regexp +@c @cindex string comparison vs.@: regexp comparison +@c @cindex regexp comparison vs.@: string comparison @noindent the result is @samp{false} because both @code{$1} and @code{$2} are user input. They are numeric strings---therefore both have @@ -8906,7 +9018,9 @@ first field is @samp{START}, the value of @code{interested} is toggled to true, using @samp{!}. The next rule prints lines as long as @code{interested} is true. When a line is seen whose first field is -@samp{END}, @code{interested} is toggled back to false. +@samp{END}, @code{interested} is toggled back to false.@footnote{This +program has a bug; it prints lines starting with @samp{END}. How +would you fix it?} @ignore Scott Deifik points out that this program isn't robust against @@ -9047,8 +9161,7 @@ Like every other expression, the function call has a value, which is computed by the function based on the arguments you give it. In this example, the value of @samp{sqrt(@var{argument})} is the square root of -@var{argument}. A function can also have side effects, such as assigning -values to certain variables or doing I/O. +@var{argument}. The following program reads numbers, one number per line, and prints the square root of each one: @@ -9063,6 +9176,34 @@ @kbd{@value{CTL}-d} @end example +A function can also have side effects, such as assigning +values to certain variables or doing I/O. +This program shows how the @samp{match} function +(@pxref{String Functions}) +changes the variables @code{RSTART} and @code{RLENGTH}: + +@example +@{ + if (match($1, $2)) + print RSTART, RLENGTH + else + print "no match" +@} +@end example + +@noindent +Here is a sample run: + +@example +$ awk -f matchit.awk +aaccdd c+ +@print{} 3 2 +foo bar +@print{} no match +abcdefg e +@print{} 5 1 +@end example + @node Precedence @section Operator Precedence (How Operators Nest) @c STARTOFRANGE prec @@ -9093,14 +9234,20 @@ Thus, @samp{a - b + c} groups as @samp{(a - b) + c} and @samp{a = b = c} groups as @samp{a = (b = c)}. -The precedence of prefix unary operators does not matter as long as only -unary operators are involved, because there is only one way to interpret +Normally the precedence of prefix unary operators does not matter, +because there is only one way to interpret them: innermost first. Thus, @samp{$++i} means @samp{$(++i)} and @samp{++$x} means @samp{++($x)}. However, when another operator follows the operand, then the precedence of the unary operators can matter. @samp{$x^2} means @samp{($x)^2}, but @samp{-x^2} means @samp{-(x^2)}, because @samp{-} has lower precedence than @samp{^}, whereas @samp{$} has higher precedence. +Also, operators cannot be combined in a way that violates the +precedence rules; for example, @samp{$$0++--} is not a valid +expression because the first @samp{$} has higher precedence than the +@samp{++}; to avoid the problem the expression can be rewritten as +@samp{$($0++)--}. + This table presents @command{awk}'s operators, in order of highest to lowest precedence: @@ -9144,7 +9291,7 @@ @cindex @code{%} (percent sign), @code{%} operator @cindex percent sign (@code{%}), @code{%} operator @item * / % -Multiplication, division, modulus. +Multiplication, division, remainder. @cindex @code{+} (plus sign), @code{+} operator @cindex plus sign (@code{+}), @code{+} operator @@ -11168,9 +11315,9 @@ verbose = 1 else if (ARGV[i] == "-d") debug = 1 - else if (ARGV[i] ~ /^-?/) @{ + else if (ARGV[i] ~ /^-./) @{ e = sprintf("%s: unrecognized option -- %c", - ARGV[0], substr(ARGV[i], 1, ,1)) + ARGV[0], substr(ARGV[i], 2, 1)) print e > "/dev/stderr" @} else break @@ -12699,7 +12846,7 @@ default is to use and alter @code{$0}.@footnote{Note that this means that the record will first be regenerated using the value of @code{OFS} if any fields have been changed, and that the fields will be updated -after the substituion, even if the operation is a ``no-op'' such +after the substitution, even if the operation is a ``no-op'' such as @samp{sub(/^/, "")}.} For example: @@ -13112,7 +13259,7 @@ @ref{table-sub-proposed}. @float Table,table-sub-proposed -@caption{Propsosed rules for sub and backslash} +@caption{Proposed rules for sub and backslash} @tex \vbox{\bigskip % This table has lots of &'s and \'s, so unspecialize them. @@ -13425,7 +13572,7 @@ @c fakenode --- for prepinfo @subheading Advanced Notes: Interactive Versus Noninteractive Buffering @cindex advanced features, buffering -@cindex buffering, interactive vs. noninteractive +@cindex buffering, interactive vs.@: noninteractive As a side point, buffering issues can be even more confusing, depending upon whether your program is @dfn{interactive}, i.e., communicating @@ -13598,12 +13745,15 @@ If @var{datespec} does not contain enough elements or if the resulting time is out of range, @code{mktime} returns @minus{}1. -@item strftime(@r{[}@var{format} @r{[}, @var{timestamp}@r{]]}) +@item strftime(@r{[}@var{format} @r{[}, @var{timestamp} @r{[}, @var{utc-flag}@r{]]]}) @c STARTOFRANGE strf @cindex @code{strftime} function (@command{gawk}) This function returns a string. It is similar to the function of the same name in ISO C. The time specified by @var{timestamp} is used to produce a string, based on the contents of the @var{format} string. +If @var{utc-flag} is present and is either non-zero or non-null, the value +is formatted as UTC (Coordinated Universal Time, formerly GMT or Greenwich +Mean Time). Otherwise, the value is formatted for the local time zone. The @var{timestamp} is in the same format as the value returned by the @code{systime} function. If no @var{timestamp} argument is supplied, @command{gawk} uses the current time of day as the timestamp. @@ -13805,8 +13955,9 @@ locale, which is an environment that is typical of what most C programmers are used to. -A public-domain C version of @code{strftime} is supplied with @command{gawk} -for systems that are not yet fully standards-compliant. +For systems that are not yet fully standards-compliant, +@command{gawk} supplies a copy of +@code{strftime} from the GNU C Library. It supports all of the just listed format specifications. If that version is used to compile @command{gawk} (@pxref{Installation}), @@ -13821,6 +13972,7 @@ The hour (12-hour clock) as a decimal number (1--12). Single-digit numbers are padded with a space. +@ignore @item %N The ``Emperor/Era'' name. Equivalent to @code{%C}. @@ -13828,12 +13980,15 @@ @item %o The ``Emperor/Era'' year. Equivalent to @code{%y}. +@end ignore @item %s The time as a decimal timestamp in seconds since the epoch. +@ignore @item %v The date in VMS format (e.g., @samp{20-JUN-1991}). +@end ignore @end table @c ENDOFRANGE strf @@ -15241,7 +15396,7 @@ at runtime, it cannot change the argument order in the call to @code{printf}. -To solve this problem, @code{printf} format specificiers may have +To solve this problem, @code{printf} format specifiers may have an additional optional element, which we call a @dfn{positional specifier}. For example: @@ -15281,7 +15436,7 @@ @quotation NOTE When using @samp{*} with a positional specifier, the @samp{*} comes first, then the integer position, and then the @samp{$}. -This is somewhat counterintutive. +This is somewhat counterintuitive. @end quotation @cindex @code{printf} statement, positional specifiers, mixing with regular formats @@ -16130,9 +16285,11 @@ the total by four. However, @samp{3 + 5 * 4} has no parentheses, and means @samp{3 + (5 * 4)}. +@ignore @item All string concatenations are parenthesized too. (This could be made a bit smarter.) +@end ignore @item Parentheses are used around the arguments to @code{print} @@ -16241,6 +16398,8 @@ @c ENDOFRANGE awkp @c ENDOFRANGE proawk + + @node Invoking Gawk @chapter Running @command{awk} and @command{gawk} @@ -16525,6 +16684,12 @@ With an optional argument of @samp{invalid}, only warnings about things that are actually invalid are issued. (This is not fully implemented yet.) +Some warnings are only printed once, even if the dubious constructs they warn +about occur multiple times in your @command{awk} program. Thus, when eliminating +problems pointed out by @option{--lint}, you should take care to search for all +occurrences of each inappropriate construct. As @command{awk} programs are +usually short, doing so is not burdensome. + @item -W lint-old @itemx --lint-old @cindex @code{--lint-old} option @@ -16596,6 +16761,12 @@ of @code{FS} to be a single TAB character (@pxref{Field Separators}). +@cindex locale decimal point character +@cindex decimal point character, locale specific +@item +The locale's decimal point character is used for parsing input +data (@pxref{Locales}). + @cindex @code{fflush} function@comma{} unsupported @item The @code{fflush} built-in function is not supported @@ -16647,6 +16818,12 @@ when you have library functions that you want to use from your command-line programs (@pxref{AWKPATH Variable}). +@item -W use-lc-numeric +@itemx --use-lc-numeric +@cindex @code{--use-lc-numeric} option +This option forces the use of the locale's decimal point character +when parsing numeric input data (@pxref{Locales}). + @item -W version @itemx --version @cindex @code{--version} option @@ -16700,8 +16877,8 @@ uses the first non-option command-line argument as the text of the program source code. -@cindex @code{POSIXLY_CORRECT} environment variable -@cindex lint checking, @code{POSIXLY_CORRECT} environment variable +@cindex @env{POSIXLY_CORRECT} environment variable +@cindex lint checking, @env{POSIXLY_CORRECT} environment variable @cindex POSIX mode If the environment variable @env{POSIXLY_CORRECT} exists, then @command{gawk} behaves in strict POSIX mode, exactly as if @@ -16720,7 +16897,7 @@ export POSIXLY_CORRECT @end example -@cindex @command{csh} utility, @code{POSIXLY_CORRECT} environment variable +@cindex @command{csh} utility, @env{POSIXLY_CORRECT} environment variable For a @command{csh}-compatible shell,@footnote{Not recommended.} you would add this line to the @file{.login} file in your home directory: @@ -16729,7 +16906,7 @@ setenv POSIXLY_CORRECT true @end example -@cindex portability, @code{POSIXLY_CORRECT} environment variable +@cindex portability, @env{POSIXLY_CORRECT} environment variable Having @env{POSIXLY_CORRECT} set is not recommended for daily use, but it is good for testing the portability of your programs to other environments. @@ -17302,7 +17479,7 @@ @cindex @code{nextfile} user-defined function This initial version has a subtle problem. -If the same @value{DF} is listed @emph{twice} on the commandline, +If the same @value{DF} is listed @emph{twice} on the command line, one right after the other or even with just a variable assignment between them, this code skips right through the file a second time, even though @@ -17318,7 +17495,7 @@ @ignore @c file eg/lib/nextfile.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # May, 1993 @c endfile @@ -17462,7 +17639,7 @@ the correct numeric value for each hexadecimal digit. Finally, if the string matches the (rather complicated) regex for a -regular decimal integer or floating-point numer, the computation +regular decimal integer or floating-point number, the computation @samp{ret = str + 0} lets @command{awk} convert the value to a number. @@ -17524,7 +17701,7 @@ @c file eg/lib/assert.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # May, 1993 @c endfile @@ -17631,7 +17808,7 @@ @ignore @c file eg/lib/round.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # August, 1996 @c endfile @@ -17661,10 +17838,11 @@ return ival @} @} +@c endfile +@c don't include test harness in the file that gets installed # test harness @{ print $0, round($0) @} -@c endfile @end example @node Cliff Random Function @@ -17675,7 +17853,7 @@ @cindex functions, library, Cliff random numbers The Cliff random number -generator@footnote{@uref{http://mathworld.wolfram.com/CliffRandomNumberGenerator.hmtl}} +generator@footnote{@uref{http://mathworld.wolfram.com/CliffRandomNumberGenerator.html}} is a very simple random number generator that ``passes the noise sphere test for randomness by showing no structure.'' It is easily programmed, in less than 10 lines of @command{awk} code: @@ -17688,7 +17866,7 @@ @ignore @c file eg/lib/cliff_rand.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # December 2000 @c endfile @@ -17742,7 +17920,7 @@ @ignore @c file eg/lib/ord.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # 16 January, 1992 # 20 July, 1992, revised @@ -17860,7 +18038,7 @@ @ignore @c file eg/lib/join.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # May 1993 @c endfile @@ -17918,7 +18096,7 @@ @ignore @c file eg/lib/gettime.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain, May 1993 +# Arnold Robbins, arnold@@skeeve.com, Public Domain, May 1993 # @c endfile @end ignore @@ -18044,7 +18222,7 @@ # that each take the name of the file being started or # finished, respectively. @c # -@c # Arnold Robbins, arnold@@gnu.org, Public Domain +@c # Arnold Robbins, arnold@@skeeve.com, Public Domain @c # January 1992 FILENAME != _oldfilename \ @@ -18097,7 +18275,7 @@ @ignore @c file eg/lib/ftrans.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # November 1992 @c endfile @@ -18141,7 +18319,7 @@ @ignore @c file eg/lib/rewind.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # September 2000 @c endfile @@ -18204,7 +18382,7 @@ @ignore @c file eg/lib/readable.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # October 2000 @c endfile @@ -18258,7 +18436,7 @@ @ignore @c file eg/lib/zerofile.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # June 2003 @c endfile @@ -18358,7 +18536,7 @@ @ignore @c file eg/lib/noassign.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # October 1999 @c endfile @@ -18533,7 +18711,7 @@ @ignore @c file eg/lib/getopt.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # # Initial version: March, 1991 # Revised: May, 1993 @@ -18739,6 +18917,15 @@ In both runs, the first @option{--} terminates the arguments to @command{awk}, so that it does not try to interpret the @option{-a}, etc., as its own options. + +@quotation NOTE +After @code{getopt} is through, it is the responsibility of the user level +code to +clear out all the elements of @code{ARGV} from 1 to @code{Optind}, +so that @command{awk} does not try to process the command-line options +as @value{FN}s. +@end quotation + Several of the sample programs presented in @ref{Sample Programs}, use @code{getopt} to process their arguments. @@ -18811,7 +18998,7 @@ @ignore @c file eg/lib/pwcat.c /* - * Arnold Robbins, arnold@@gnu.org, May 1993 + * Arnold Robbins, arnold@@skeeve.com, May 1993 * Public Domain */ @@ -18940,7 +19127,7 @@ @ignore @c file eg/lib/passwdawk.in # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # May 1993 # Revised October 2000 @@ -19161,7 +19348,7 @@ @ignore @c file eg/lib/grcat.c /* - * Arnold Robbins, arnold@@gnu.org, May 1993 + * Arnold Robbins, arnold@@skeeve.com, May 1993 * Public Domain */ @@ -19232,7 +19419,7 @@ we cast it to @code{long} for all cases.) @item Group Member List -A comma-separated list of usernames. These users are members of the group. +A comma-separated list of user names. These users are members of the group. Modern Unix systems allow users to be members of several groups simultaneously. If your system does, then there are elements @code{"group1"} through @code{"group@var{N}"} in @code{PROCINFO} @@ -19252,7 +19439,7 @@ The group's numeric group ID number; this number should be unique within the file. @item Group member list @tab -A comma-separated list of usernames. These users are members of the group. +A comma-separated list of user names. These users are members of the group. Modern Unix systems allow users to be members of several groups simultaneously. If your system does, then there are elements @code{"group1"} through @code{"group@var{N}"} in @code{PROCINFO} @@ -19286,7 +19473,7 @@ @ignore @c file eg/lib/groupawk.in # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # May 1993 # Revised October 2000 @@ -19362,7 +19549,7 @@ The group information is stored is several associative arrays. The arrays are indexed by group name (@code{@w{_gr_byname}}), by group ID number (@code{@w{_gr_bygid}}), and by position in the database (@code{@w{_gr_bycount}}). -There is an additional array indexed by username (@code{@w{_gr_groupsbyuser}}), +There is an additional array indexed by user name (@code{@w{_gr_groupsbyuser}}), which is a space-separated list of groups to which each user belongs. Unlike the user database, it is possible to have multiple records in the @@ -19375,7 +19562,7 @@ @end example For this reason, @code{_gr_init} looks to see if a group name or -group ID number is already seen. If it is, then the usernames are +group ID number is already seen. If it is, then the user names are simply concatenated onto the previous list of users. (There is actually a subtle problem with the code just presented. Suppose that the first time there were no names. This code adds the names with @@ -19423,7 +19610,7 @@ @cindex @code{getgruser} function (C library) The @code{getgruser} function does not have a C counterpart. It takes a -username and returns the list of groups that have the user as a member: +user name and returns the list of groups that have the user as a member: @cindex @code{getgruser} function, user-defined @example @@ -19645,7 +19832,7 @@ @ignore @c file eg/prog/cut.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # May 1993 @c endfile @@ -19735,7 +19922,9 @@ a single space (@code{@w{" "}}) for the value of @code{FS} is incorrect---@command{awk} would separate fields with runs of spaces, tabs, and/or newlines, and we want them to be separated with individual -spaces. Also, note that after @code{getopt} is through, we have to +spaces. Also remember that after @code{getopt} is through +(as described in @ref{Getopt Function}), +we have to clear out all the elements of @code{ARGV} from 1 to @code{Optind}, so that @command{awk} does not try to process the command-line options as @value{FN}s. @@ -19983,7 +20172,7 @@ @ignore @c file eg/prog/egrep.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # May 1993 @c endfile @@ -20252,7 +20441,7 @@ @ignore @c file eg/prog/id.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # May 1993 # Revised February 1996 @@ -20390,7 +20579,7 @@ @ignore @c file eg/prog/split.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # May 1993 @c endfile @@ -20532,7 +20721,7 @@ @ignore @c file eg/prog/tee.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # May 1993 # Revised December 1995 @@ -20697,7 +20886,7 @@ @ignore @c file eg/prog/uniq.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # May 1993 @c endfile @@ -20935,7 +21124,7 @@ @ignore @c file eg/prog/wc.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # May 1993 @c endfile @end ignore @@ -21126,7 +21315,7 @@ @ignore @c file eg/prog/dupword.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # December 1991 # Revised October 2000 @@ -21192,7 +21381,7 @@ @ignore @c file eg/prog/alarm.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # May 1993 @c endfile @@ -21391,7 +21580,7 @@ @ignore @c file eg/prog/translate.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # August 1989 @c endfile @@ -21523,7 +21712,7 @@ @ignore @c file eg/prog/labels.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # June 1992 @c endfile @end ignore @@ -21751,7 +21940,7 @@ @ignore @c file eg/prog/histsort.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # May 1993 @c endfile @@ -21901,7 +22090,7 @@ @ignore @c file eg/prog/extract.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # May 1993 # Revised September 2000 @@ -22087,7 +22276,7 @@ @ignore @c file eg/prog/awksed.awk # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # August 1995 @c endfile @@ -22318,7 +22507,7 @@ @ignore @c file eg/prog/igawk.sh # -# Arnold Robbins, arnold@@gnu.org, Public Domain +# Arnold Robbins, arnold@@skeeve.com, Public Domain # July 1993 @c endfile @@ -22330,7 +22519,7 @@ shift fi -# A literal newline, so that program text is formmatted correctly +# A literal newline, so that program text is formatted correctly n=' ' @@ -22769,10 +22958,17 @@ and @code{SUBSEP} built-in variables (@pxref{Built-in Variables}). @item +Assignable @code{$0}. + +@item The conditional expression using the ternary operator @samp{?:} (@pxref{Conditional Exp}). @item +The expression @samp{@var{index} in @var{array}} outside of @samp{for} +statements (@pxref{Reference to Elements}). + +@item The exponentiation operator @samp{^} (@pxref{Arithmetic Ops}) and its assignment operator form @samp{^=} (@pxref{Assignment Ops}). @@ -22785,7 +22981,8 @@ Regexps as the value of @code{FS} (@pxref{Field Separators}) and as the third argument to the @code{split} function -(@pxref{String Functions}). +(@pxref{String Functions}), rather than using only the first character +of @code{FS}. @item Dynamic regexps as operands of the @samp{~} and @samp{!~} operators @@ -22931,6 +23128,10 @@ (@pxref{Field Separators}). @item +The locale's decimal point character is used for parsing input +data (@pxref{Locales}). + +@item The @code{fflush} built-in function is not supported (@pxref{I/O Functions}). @end itemize @@ -23012,7 +23213,7 @@ @appendixsec Extensions in @command{gawk} Not in POSIX @command{awk} @ignore -I've tried to follow this general order, esp. for the 3.0 and 3.1 sections: +I've tried to follow this general order, esp.@: for the 3.0 and 3.1 sections: variables special files language changes (e.g., hex constants) @@ -23296,11 +23497,21 @@ (@pxref{Profiling}). @item +The @option{--use-lc-numeric} option to force @command{gawk} +to use the locale's decimal point for parsing input data +(@pxref{Conversion}). + +@item The @option{--enable-portals} configuration option to enable special treatment of pathnames that begin with @file{/p} as BSD portals (@pxref{Portal Files}). @item +The @option{--disable-directories-fatal} configuration option which +causes @command{gawk} to silently skip directories named on the +command line (@pxref{Additional Configuration Options}). + +@item The use of GNU Automake to help in standardizing the configuration process (@pxref{Quick Installation}). @@ -23334,7 +23545,7 @@ (@pxref{Gory Details}). @item -The @option{--exec} option, for use in CGI scripts. +The @option{--exec} option, for use in CGI scripts (@pxref{Options}). @item @@ -23342,6 +23553,11 @@ and return the number of elements in the array (@pxref{String Functions}). +@item +The @code{strftime} function acquired a third argument to +enable printing times as UTC +(@pxref{Time Functions}). + @end itemize @c XXX ADD MORE STUFF HERE @@ -23481,7 +23697,9 @@ @item @cindex Davies, Stephen Stephen Davies -provided the port to Tandem systems and its documentation. +provided the initial port to Tandem systems and its documentation. +Matthew Woehlke provided improvements for Tandem's POSIX-compliant +systems. @item @cindex Brown, Martin @@ -23498,7 +23716,8 @@ @cindex Broder, Alan J.@: Alan J.@: Broder provided the initial version of the @code{asort} function -as well as the code for the new optional third argument to the @code{match} function. +as well as the code for the new optional third argument to the +@code{match} function. @item @cindex Buening, Andreas @@ -23942,6 +24161,11 @@ Disable all message-translation facilities. This is usually not desirable, but it may bring you some slight performance improvement. + +@cindex @code{--disable-directories-fatal} configuration option +@cindex configuration option, @code{--disable-directories-fatal} +@item --disable-directories-fatal +Causes @command{gawk} to silently skip directories named on the command line. @end table As of version 3.1.5, the @option{--with-included-gettext} configuration @@ -24084,7 +24308,7 @@ If these steps do not work, please send in a bug report (@pxref{Bugs}). -@c Rewritten by Scott Deifik +@c Rewritten by Scott Deifik @c and Darrel Hankerson @node PC Installation @@ -24508,6 +24732,7 @@ * VMS Installation Details:: How to install @command{gawk} under VMS. * VMS Running:: How to run @command{gawk} under VMS. * VMS POSIX:: Alternate instructions for VMS POSIX. +* VMS Old Gawk:: An old version comes with some VMS systems. @end menu @node VMS Compilation @@ -24674,6 +24899,21 @@ the normal VMS port of @command{gawk}, no special command-line manipulation is needed in the VMS POSIX environment. +@node VMS Old Gawk +@appendixsubsubsec Some VMS Systems Have An Old Version of @command{gawk} + +@c Thanks to "gerard labadie" + +Some versions of VMS have an old version of @command{gawk}. To access it, +define a symbol, as follows: + +@example +$ @kbd{gawk :== $ sys$common:[syshlp.examples.tcpip.snmp]gawk.exe} +@end example + +This is apparently @value{PVERSION} 2.15.6, which is quite old. We +recommend compiling and using the current version. + @node Unsupported @appendixsec Unsupported Operating System Ports @@ -24891,7 +25131,7 @@ You can get this information with the command @samp{gawk --version}. Using this address automatically sends a carbon copy of your mail to me. If necessary, I can be reached directly at -@email{arnold@@gnu.org}. The bug reporting address is preferred since the +@email{arnold@@skeeve.com}. The bug reporting address is preferred since the email list is archived at the GNU Project. @emph{All email should be in English, since that is my native language.} @@ -24930,7 +25170,7 @@ @cindex Deifik, Scott @cindex Hankerson, Darrel @item MS-DOS -Scott Deifik, @email{scottd@@amgen.com} and +Scott Deifik, @email{scottd.mail@@sbcglobal.net} and Darrel Hankerson, @email{hankedr@@mail.auburn.edu}. @cindex Grigera, Juan @@ -24959,7 +25199,7 @@ @cindex Deifik, Scott @cindex Hankerson, Darrel -@item MS-DOS @tab Scott Deifik, @email{scottd@@amgen.com} and +@item MS-DOS @tab Scott Deifik, @email{scottd.mail@@sbcglobal.net} and Darrel Hankerson, @email{hankedr@@mail.auburn.edu}. @cindex Grigera, Juan @@ -24997,7 +25237,7 @@ Michael Brennan @end quotation -There are three other freely available @command{awk} implementations. +There are a number of other freely available @command{awk} implementations. This @value{SECTION} briefly describes where to get them: @table @asis @@ -25124,6 +25364,27 @@ or @uref{http://www.math.utah.edu/pub/pawk/pawk-20020210.tar.gz}. +@cindex OpenSolaris +@cindex Solaris, POSIX compliant @command{awk} +@item The OpenSolaris POSIX @command{awk} +The version of @command{awk} in @file{/usr/xpg4/bin} on Solaris is +POSIX compliant. It is based on the @command{awk} from Mortice Kern +Systems for PCs. The source code can be downloaded from +the OpenSolaris web site.@footnote{@uref{http://www.opensolaris.org}} +This author was able to make it compile and work under GNU/Linux +with 1--2 hours of work. Making it more generally portable (using +GNU Autoconf and/or Automake) would take more work, and this +has not been done, at least to our knowledge. + +@cindex @command{jawk} +@cindex Java implementation of @command{awk} +@item @command{jawk} +This is an interpreter for @command{awk} written in Java. It claims +to be a full interpreter, although because it uses Java facilities +for I/O and for regexp matching, the language it supports is different +from POSIX @command{awk}. More information is available on the +project's home page.@footnote{@uref{http://jawk.sourceforge.net}}. + @end table @c ENDOFRANGE gligawk @c ENDOFRANGE ingawk @@ -25406,9 +25667,10 @@ people at the Free Software Foundation. Thus, you should not change them unless it is for a very good reason; i.e., changes are not out of the question, but changes to these files are scrutinized extra carefully. -The files are @file{getopt.h}, @file{getopt.c}, -@file{getopt1.c}, @file{regex.h}, @file{regex.c}, @file{dfa.h}, -@file{dfa.c}, @file{install-sh}, and @file{mkinstalldirs}. +The files are @file{getopt.h}, @file{getopt.c}, @file{getopt1.c}, +@file{regex.h}, @file{regex.c}, @file{regcomp.c}, @file{regex_internal.c}, +@file{regex_internal.h}, @file{regexec.c}, @file{dfa.h}, @file{dfa.c}, +@file{install-sh}, and @file{mkinstalldirs}. @item Be willing to continue to maintain the port. @@ -25503,7 +25765,7 @@ @strong{Caution:} If you have written your own dynamic extensions, be sure to recompile them for each new @command{gawk} release. There is no guarantee of binary compatibility between different -releases, no will there ever be such a guarantee. +releases, nor will there ever be such a guarantee. @menu * Internals:: A brief look at some @command{gawk} internals. @@ -26822,6 +27084,16 @@ This is worth reading if you are interested in the details, but it does require a background in computer science. +@menu +* String Conversion Precision:: The String Value Can Lie. +* Unexpected Results:: Floating Point Numbers Are Not + Abstract Numbers. +* POSIX Floating Point Problems:: Standards Versus Existing Practice. +@end menu + +@node String Conversion Precision +@appendixsubsec The String Value Can Lie + Internally, @command{awk} keeps both the numeric value (double-precision floating-point) and the string value for a variable. Separately, @command{awk} keeps @@ -26875,6 +27147,9 @@ value exactly.@footnote{Pathological cases can require up to 752 digits (!), but we doubt that you need to worry about this.} +@node Unexpected Results +@appendixsubsec Floating Point Numbers Are Not Abstract Numbers + @cindex floating-point Unlike numbers in the abstract sense (such as what you studied in high school or college math), numbers stored in computers are limited in certain ways. @@ -26927,6 +27202,101 @@ It helps to keep this in mind should you process numeric data that contains negative zero values; the fact that the zero is negative is noted and can affect comparisons. + +@node POSIX Floating Point Problems +@appendixsubsec Standards Versus Existing Practice + +Historically, @command{awk} has converted any non-numeric looking string +to the numeric value zero, when required. Furthermore, the original +definition of the language and the original POSIX standards specified that +@command{awk} only understands decimal numbers (base 10), and not octal +(base 8) or hexadecimal numbers (base 16). + +As of this writing (February, 2007), changes in the language of the +current POSIX standard can be interpreted to imply that @command{awk} +should support additional features. These features are: + +@itemize @bullet +@item +Interpretation of floating point data values specified in hexadecimal +notation (@samp{0xDEADBEEF}). (Note: data values, @emph{not} +source code constants.) + +@item +Support for the special IEEE 754 floating point values ``Not A Number'' +(NaN), positive Infinity (``inf'') and negative Infinity (``@minus{}inf''). +In particular, the format for these values is as specified by the ISO C99 +standard, which ignores case and can allow machine-dependent additional +characters after the @samp{nan} and allow either @samp{inf} or @samp{infinity}. +@end itemize + +The first problem is that both of these are clear changes to historical +practice: + +@itemize @bullet +@item +The @command{gawk} maintainer feels that hexadecimal floating +point values, in particular, is ugly, and was never intended by the +original designers to be part of the language. + +@item +Allowing completely alphabetic strings to have valid numeric +values is also a very severe departure from historical practice. +@end itemize + +The second problem is that the @code{gawk} maintainer feels that this +interpretation of the standard, which requires a certain amount of +``language lawyering'' to arrive at in the first place, was not intended +by the standard developers, either. In other words, ``we see how you +got where you are, but we don't think that that's where you want to be.'' + +Nevertheless, on systems that support IEEE floating point, it seems +reasonable to provide @emph{some} way to support NaN and Infinity values. +The solution implemented in @command{gawk}, as of version 3.1.6, is +as follows: + +@enumerate 1 +@item +With the @option{--posix} command-line option, @command{gawk} becomes +``hands off.'' String values are passed directly to the system library's +@code{strtod()} function, and if it successfuly returns a numeric value, +that is what's used. By definition, the results are not portable across +different systems.@footnote{You asked for it, you got it.} +They are also a little surprising: + +@example +$ @kbd{echo nanny | gawk --posix '@{ print $1 + 0 @}'} +@print{} nan +$ @kbd{echo 0xDeadBeef | gawk --posix '@{ print $1 + 0 @}'} +@print{} 3735928559 +@end example + +@item +Without @option{--posix}, @command{gawk} interprets the four strings +@samp{+inf}, +@samp{-inf}, +@samp{+nan}, +and +@samp{-nan} +specially, producing the corresponding special numeric values. +The leading sign acts a signal to @command{gawk} (and the user) +that the value is really numeric. Hexadecimal floating point is +not supported (unless you also use @option{--non-decimal-data}, +which is @emph{not} recommended). For example: + +@example +$ @kbd{echo nanny | gawk '@{ print $1 + 0 @}'} +@print{} 0 +$ @kbd{echo +nan | gawk '@{ print $1 + 0 @}'} +@print{} nan +$ @kbd{echo 0xDeadBeef | gawk '@{ print $1 + 0 @}'} +@print{} 0 +@end example + +@command{gawk} does ignore case distinction in the four special values. +Thus @samp{+nan} and @samp{+NaN} are the same. +@end enumerate + @c ENDOFRANGE procon @node Glossary @@ -27380,6 +27750,13 @@ @code{func}, and @code{exit}. +If @command{gawk} was configured with the @option{--enable-switch} +option (@pxref{Switch Statement}), then +@code{switch}, +@code{case}, +and +@code{default} +are also keywords. @cindex LGPL (Lesser General Public License) @cindex Lesser General Public License (LGPL) @@ -27619,406 +27996,729 @@ record or a string. @end table +@c The GNU General Public License. @node Copying @unnumbered GNU General Public License -@center Version 2, June 1991 +@center Version 3, 29 June 2007 + +@c This file is intended to be included within another document, +@c hence no sectioning command or @node. @display -Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc. -51 Franklin Street, Fifth Floor, Boston, MA 02111, USA +Copyright @copyright{} 2007 Free Software Foundation, Inc. @url{http://fsf.org/} -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. @end display @c fakenode --- for prepinfo -@unnumberedsec Preamble +@heading Preamble + +The GNU General Public License is a free, copyleft license for +software and other kinds of works. - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software---to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. +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 +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 -this service 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 make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. 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. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. +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 +The precise terms and conditions for copying, distribution and modification follow. -@ifnotinfo @c fakenode --- for prepinfo -@unnumberedsec Terms and Conditions for Copying, Distribution and Modification -@end ifnotinfo -@ifinfo -@center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION -@end ifinfo +@heading TERMS AND CONDITIONS @enumerate 0 -@item -This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The ``Program'', below, -refers to any such program or work, and a ``work based on the Program'' -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term ``modification''.) Each licensee is addressed as ``you''. - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - -@item -You may copy and distribute 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 and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - -@item -You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: +@item Definitions. -@enumerate a -@item -You must cause the modified files to carry prominent notices -stating that you changed the files and the date of any change. +``This License'' refers to version 3 of the GNU General Public License. -@item -You must cause any work that you distribute or publish, that in -whole or in part contains or is derived from the Program or any -part thereof, to be licensed as a whole at no charge to all third -parties under the terms of this License. - -@item -If the modified program normally reads commands interactively -when run, you must cause it, when started running for such -interactive use in the most ordinary way, to print or display an -announcement including an appropriate copyright notice and a -notice that there is no warranty (or else, saying that you provide -a warranty) and that users may redistribute the program under -these conditions, and telling the user how to view a copy of this -License. (Exception: if the Program itself is interactive but -does not normally print such an announcement, your work based on -the Program is not required to print an announcement.) +``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. + +@item 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. + +@item 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. + +@item 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. + +@item 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. + +@item 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: + +@enumerate a +@item +The work must carry prominent notices stating that you modified it, +and giving a relevant date. + +@item +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''. + +@item +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. + +@item +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. @end enumerate -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - -@item -You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: +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. + +@item 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: @enumerate a @item -Accompany it with the complete corresponding machine-readable -source code, which must be distributed under the terms of Sections -1 and 2 above on a medium customarily used for software interchange; or, - -@item -Accompany it with a written offer, valid for at least three -years, to give any third party, for a charge no more than your -cost of physically performing source distribution, a complete -machine-readable copy of the corresponding source code, to be -distributed under the terms of Sections 1 and 2 above on a medium -customarily used for software interchange; or, - -@item -Accompany it with the information you received as to the offer -to distribute corresponding source code. (This alternative is -allowed only for noncommercial distribution and only if you -received the program in object code or executable form with such -an offer, in accord with Subsection b above.) +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. + +@item +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. + +@item +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. + +@item +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. + +@item +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. + @end enumerate -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - -@item -You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. +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. + +@item 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: +@enumerate a @item -You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - -@item -Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. +Disclaiming warranty or limiting liability differently from the terms +of sections 15 and 16 of this License; or @item -If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -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 -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - -@item -If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. +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 @item -The Free Software Foundation may publish revised and/or new versions -of the 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 a version number of this License which applies to it and ``any -later version'', you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. +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 @item -If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - -@ifnotinfo -@c fakenode --- for prepinfo -@heading NO WARRANTY -@end ifnotinfo -@ifinfo -@center NO WARRANTY -@end ifinfo +Limiting the use for publicity purposes of names of licensors or +authors of the material; or @item -BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. +Declining to grant rights under trademark law for use of some trade +names, trademarks, or service marks; or @item +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. +@end enumerate + +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. + +@item 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. + +@item 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. + +@item 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. + +@item 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. + +@item 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. + +@item 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. + +@item 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. + +@item 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. + +@item 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 MAY MODIFY AND/OR -REDISTRIBUTE 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. +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. + +@item 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 enumerate -@ifnotinfo @c fakenode --- for prepinfo @heading END OF TERMS AND CONDITIONS -@end ifnotinfo -@ifinfo -@center END OF TERMS AND CONDITIONS -@end ifinfo -@page @c fakenode --- for prepinfo -@unnumberedsec How to Apply These Terms to Your New Programs +@heading How to Apply These Terms to Your New Programs - If you develop a new program, and you want it to be of the greatest +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. +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 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 -convey the exclusion of warranty; and each file should have at least +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. @smallexample -@var{one line to give the program's name and an idea of what it does.} -Copyright (C) @var{year} @var{name of author} +@var{one line to give the program's name and a brief idea of what it does.} +Copyright (C) @var{year} @var{name of author} -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 2 -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. +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, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA. +along with this program. If not, see @url{http://www.gnu.org/licenses/}. @end smallexample Also add information on how to contact you by electronic and paper mail. -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: +If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: @smallexample -Gnomovision version 69, Copyright (C) @var{year} @var{name of author} -Gnomovision 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. +@var{program} Copyright (C) @var{year} @var{name of author} +This program comes with ABSOLUTELY NO WARRANTY; for details type @samp{show w}. +This is free software, and you are welcome to redistribute it +under certain conditions; type @samp{show c} for details. @end smallexample The hypothetical commands @samp{show w} and @samp{show c} should show -the appropriate parts of the General Public License. Of course, the -commands you use may be called something other than @samp{show w} and -@samp{show c}; they could even be mouse-clicks or menu items---whatever -suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a ``copyright disclaimer'' for the program, if -necessary. Here is a sample; alter the names: - -@smallexample -@group -Yoyodyne, Inc., hereby disclaims all copyright -interest in the program `Gnomovision' -(which makes passes at compilers) written -by James Hacker. - -@var{signature of Ty Coon}, 1 April 1989 -Ty Coon, President of Vice -@end group -@end smallexample - -This 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. +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 +@url{http://www.gnu.org/licenses/}. + +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 @url{http://www.gnu.org/philosophy/why-not-lgpl.html}. @node GNU Free Documentation License @unnumbered GNU Free Documentation License @@ -28389,7 +29089,7 @@ 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 Warrany Disclaimers, provided that you also include +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 diff -urN gawk-3.1.5/doc/gawkinet.texi gawk-3.1.6/doc/gawkinet.texi --- gawk-3.1.5/doc/gawkinet.texi 2005-05-11 18:32:31.000000000 +0300 +++ gawk-3.1.6/doc/gawkinet.texi 2007-01-13 22:43:18.000000000 +0200 @@ -152,7 +152,7 @@ @menu * Preface:: About this document. -* Introduction:: About networkiing. +* Introduction:: About networking. * Using Networking:: Some examples. * Some Applications and Techniques:: More extended examples. * Links:: Where to find the stuff mentioned in this @@ -240,7 +240,7 @@ @node Introduction, Using Networking, Preface, Top @chapter Networking Concepts -This @value{CHAPTER} provides a (necessarily) brief intoduction to +This @value{CHAPTER} provides a (necessarily) brief introduction to computer networking concepts. For many applications of @command{gawk} to TCP/IP networking, we hope that this is enough. For more advanced tasks, you will need deeper background, and it may be necessary @@ -1008,7 +1008,7 @@ @ignore @multitable {1234567890123} {1234567890123} {123456789012345678901234567890123456789012} @item Service @strong{name} @tab Service @strong{number} -@item echo @tab 7/tcp @tab echo sends back each line it receivces +@item echo @tab 7/tcp @tab echo sends back each line it receives @item echo @tab 7/udp @tab echo is good for testing purposes @item discard @tab 9/tcp @tab discard behaves like @file{/dev/null} @item discard @tab 9/udp @tab discard just throws away each line @@ -1071,7 +1071,7 @@ flavor of Microsoft Windows usually do @emph{not} support these services. Nevertheless, it @emph{is} possible to do networking with @command{gawk} on Microsoft -Windows.@footnote{Microsoft prefered to ignore the TCP/IP +Windows.@footnote{Microsoft preferred to ignore the TCP/IP family of protocols until 1995. Then came the rise of the Netscape browser as a landmark ``killer application.'' Microsoft added TCP/IP support and their own browser to Microsoft Windows 95 at the last minute. They even back-ported @@ -4476,7 +4476,7 @@ can ignore. Then there are some comments about the query having been filtered to avoid spuriously high scores. After this, there is a reference to the paper that describes the software being used for searching the data -base. After a repitition of the original query's description we find the +base. After a repetition of the original query's description we find the list of significant alignments: @smallexample @@ -4497,7 +4497,7 @@ But the value 0.20 (20%) means that the probability of an accidental match is rather high (20%) in all cases and should be taken into account. You may wonder what the first column means. It is a key to the specific -database in which this occurence was found. The unique sequence identifiers +database in which this occurrence was found. The unique sequence identifiers reported in the search results can be used as sequence retrieval keys via the NCBI server. The syntax of sequence header lines used by the NCBI BLAST server depends on the database from which each sequence was obtained. @@ -4581,7 +4581,7 @@ @item While Waterman's book can explain to you the algorithms employed internally -in the database search engines, most practicioners prefer to approach +in the database search engines, most practitioners prefer to approach the subject differently. The applied side of Computational Biology is called Bioinformatics, and emphasizes the tools available for day-to-day work as well as how to actually @emph{use} them. One of the very few affordable @@ -5092,7 +5092,7 @@ 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 Warrany Disclaimers, provided that you also include +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 diff -urN gawk-3.1.5/doc/lflashlight.pdf gawk-3.1.6/doc/lflashlight.pdf --- gawk-3.1.5/doc/lflashlight.pdf 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/doc/lflashlight.pdf 2006-08-11 15:44:17.000000000 +0300 @@ -0,0 +1,56 @@ +%PDF-1.3 +%쏢 +6 0 obj +<> +stream +xUA! E=EOn51P)D$[l;p +>3~ E*XpZ)IwZyBȚljFB3fIaV HTMV*RjowU4E Imt>1Ҫ O>endstream +endobj +7 0 obj +168 +endobj +5 0 obj +<> +/Contents 6 0 R +>> +endobj +3 0 obj +<< /Type /Pages /Kids [ +5 0 R +] /Count 1 +>> +endobj +1 0 obj +<> +endobj +4 0 obj +<> +endobj +8 0 obj +<> +endobj +2 0 obj +<>endobj +xref +0 9 +0000000000 65535 f +0000000471 00000 n +0000000617 00000 n +0000000412 00000 n +0000000519 00000 n +0000000272 00000 n +0000000015 00000 n +0000000253 00000 n +0000000588 00000 n +trailer +<< /Size 9 /Root 1 0 R /Info 2 0 R +>> +startxref +667 +%%EOF diff -urN gawk-3.1.5/doc/rflashlight.pdf gawk-3.1.6/doc/rflashlight.pdf --- gawk-3.1.5/doc/rflashlight.pdf 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/doc/rflashlight.pdf 2006-08-11 15:44:17.000000000 +0300 @@ -0,0 +1,57 @@ +%PDF-1.3 +%쏢 +6 0 obj +<> +stream +xEQ 9'pBQ+eYR%'(] a5ZaU fOyFzDESH|FN),hS?iWk*ڞ%H!FЮM\m +2m +tgHXTR쬊>@2{MWV'Eendstream +endobj +7 0 obj +175 +endobj +5 0 obj +<> +/Contents 6 0 R +>> +endobj +3 0 obj +<< /Type /Pages /Kids [ +5 0 R +] /Count 1 +>> +endobj +1 0 obj +<> +endobj +4 0 obj +<> +endobj +8 0 obj +<> +endobj +2 0 obj +<>endobj +xref +0 9 +0000000000 65535 f +0000000478 00000 n +0000000624 00000 n +0000000419 00000 n +0000000526 00000 n +0000000279 00000 n +0000000015 00000 n +0000000260 00000 n +0000000595 00000 n +trailer +<< /Size 9 /Root 1 0 R /Info 2 0 R +>> +startxref +674 +%%EOF diff -urN gawk-3.1.5/doc/texinfo.tex gawk-3.1.6/doc/texinfo.tex --- gawk-3.1.5/doc/texinfo.tex 2005-05-11 18:28:15.000000000 +0300 +++ gawk-3.1.6/doc/texinfo.tex 2007-10-18 08:40:50.000000000 +0200 @@ -3,16 +3,16 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2005-01-30.17} +\def\texinfoversion{2007-09-03.05} % -% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, -% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software -% Foundation, Inc. +% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 2007, +% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, +% 2007 Free Software Foundation, Inc. % -% This texinfo.tex file is free software; you can redistribute it and/or +% This texinfo.tex file is free software: you can redistribute it and/or % modify it under the terms of the GNU General Public License as -% published by the Free Software Foundation; either version 2, or (at -% your option) any later version. +% published by the Free Software Foundation, either version 3 of the +% License, or (at your option) any later version. % % This texinfo.tex file is distributed in the hope that it will be % useful, but WITHOUT ANY WARRANTY; without even the implied warranty @@ -20,9 +20,7 @@ % General Public License for more details. % % You should have received a copy of the GNU General Public License -% along with this texinfo.tex file; see the file COPYING. If not, write -% to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -% Boston, MA 02110-1301, USA. +% along with this program. If not, see . % % As a special exception, when this file is read by TeX when processing % a Texinfo source document, you may use the result without @@ -67,7 +65,7 @@ \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} -\message{Basics,} + \chardef\other=12 % We never want plain's \outer definition of \+ in Texinfo. @@ -153,20 +151,22 @@ \ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi -% In some macros, we cannot use the `\? notation---the left quote is -% in some cases the escape char. +% Since the category of space is not known, we have to be careful. +\chardef\spacecat = 10 +\def\spaceisspace{\catcode`\ =\spacecat} + +% sometimes characters are active, so we need control sequences. \chardef\colonChar = `\: \chardef\commaChar = `\, +\chardef\dashChar = `\- \chardef\dotChar = `\. \chardef\exclamChar= `\! +\chardef\lquoteChar= `\` \chardef\questChar = `\? +\chardef\rquoteChar= `\' \chardef\semiChar = `\; \chardef\underChar = `\_ -\chardef\spaceChar = `\ % -\chardef\spacecat = 10 -\def\spaceisspace{\catcode\spaceChar=\spacecat} - % Ignore a token. % \def\gobble#1{} @@ -277,6 +277,50 @@ \newdimen\cornerthick \cornerthick=.3pt \newdimen\topandbottommargin \topandbottommargin=.75in +% Output a mark which sets \thischapter, \thissection and \thiscolor. +% We dump everything together because we only have one kind of mark. +% This works because we only use \botmark / \topmark, not \firstmark. +% +% A mark contains a subexpression of the \ifcase ... \fi construct. +% \get*marks macros below extract the needed part using \ifcase. +% +% Another complication is to let the user choose whether \thischapter +% (\thissection) refers to the chapter (section) in effect at the top +% of a page, or that at the bottom of a page. The solution is +% described on page 260 of The TeXbook. It involves outputting two +% marks for the sectioning macros, one before the section break, and +% one after. I won't pretend I can describe this better than DEK... +\def\domark{% + \toks0=\expandafter{\lastchapterdefs}% + \toks2=\expandafter{\lastsectiondefs}% + \toks4=\expandafter{\prevchapterdefs}% + \toks6=\expandafter{\prevsectiondefs}% + \toks8=\expandafter{\lastcolordefs}% + \mark{% + \the\toks0 \the\toks2 + \noexpand\or \the\toks4 \the\toks6 + \noexpand\else \the\toks8 + }% +} +% \topmark doesn't work for the very first chapter (after the title +% page or the contents), so we use \firstmark there -- this gets us +% the mark with the chapter defs, unless the user sneaks in, e.g., +% @setcolor (or @url, or @link, etc.) between @contents and the very +% first @chapter. +\def\gettopheadingmarks{% + \ifcase0\topmark\fi + \ifx\thischapter\empty \ifcase0\firstmark\fi \fi +} +\def\getbottomheadingmarks{\ifcase1\botmark\fi} +\def\getcolormarks{\ifcase2\topmark\fi} + +% Avoid "undefined control sequence" errors. +\def\lastchapterdefs{} +\def\lastsectiondefs{} +\def\prevchapterdefs{} +\def\prevsectiondefs{} +\def\lastcolordefs{} + % Main output routine. \chardef\PAGE = 255 \output = {\onepageout{\pagecontents\PAGE}} @@ -294,7 +338,9 @@ % % Do this outside of the \shipout so @code etc. will be expanded in % the headline as they should be, not taken literally (outputting ''code). + \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% + \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}% % {% @@ -302,10 +348,14 @@ % take effect in \write's, yet the group defined by the \vbox ends % before the \shipout runs. % - \escapechar = `\\ % use backslash in output files. \indexdummies % don't expand commands in the output. \normalturnoffactive % \ in index entries must not stay \, e.g., if - % the page break happens to be in the middle of an example. + % the page break happens to be in the middle of an example. + % We don't want .vr (or whatever) entries like this: + % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}} + % "\acronym" won't work when it's read back in; + % it needs to be + % {\code {{\tt \backslashcurfont }acronym} \shipout\vbox{% % Do this early so pdf references go to the beginning of the page. \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi @@ -333,9 +383,9 @@ \pagebody{#1}% \ifdim\ht\footlinebox > 0pt % Only leave this space if the footline is nonempty. - % (We lessened \vsize for it in \oddfootingxxx.) + % (We lessened \vsize for it in \oddfootingyyy.) % The \baselineskip=24pt in plain's \makefootline has no effect. - \vskip 2\baselineskip + \vskip 24pt \unvbox\footlinebox \fi % @@ -356,7 +406,7 @@ \egroup % \vbox from first cropmarks clause \fi }% end of \shipout\vbox - }% end of group with \normalturnoffactive + }% end of group with \indexdummies \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } @@ -369,7 +419,7 @@ % marginal hacks, juha@viisa.uucp (Juha Takala) \ifvoid\margin\else % marginal info is present \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi -\dimen@=\dp#1 \unvbox#1 +\dimen@=\dp#1\relax \unvbox#1\relax \ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi \ifr@ggedbottom \kern-\dimen@ \vfil \fi} } @@ -391,7 +441,7 @@ % \def\parsearg{\parseargusing{}} \def\parseargusing#1#2{% - \def\next{#2}% + \def\argtorun{#2}% \begingroup \obeylines \spaceisspace @@ -422,8 +472,7 @@ \def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{% \def\temp{#3}% \ifx\temp\empty - % We cannot use \next here, as it holds the macro to run; - % thus we reuse \temp. + % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp: \let\temp\finishparsearg \else \let\temp\argcheckspaces @@ -435,14 +484,14 @@ % If a _delimited_ argument is enclosed in braces, they get stripped; so % to get _exactly_ the rest of the line, we had to prevent such situation. % We prepended an \empty token at the very beginning and we expand it now, -% just before passing the control to \next. +% just before passing the control to \argtorun. % (Similarily, we have to think about #3 of \argcheckspacesY above: it is % either the null string, or it ends with \^^M---thus there is no danger % that a pair of braces would be stripped. % % But first, we have to remove the trailing space token. % -\def\finishparsearg#1 \ArgTerm{\expandafter\next\expandafter{#1}} +\def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}} % \parseargdef\foo{...} % is roughly equivalent to @@ -566,7 +615,7 @@ \let\}=\myrbrace \begingroup % Definitions to produce \{ and \} commands for indices, - % and @{ and @} for the aux file. + % and @{ and @} for the aux/toc files. \catcode`\{ = \other \catcode`\} = \other \catcode`\[ = 1 \catcode`\] = 2 \catcode`\! = 0 \catcode`\\ = \other @@ -647,13 +696,28 @@ \let\/=\allowbreak % @. is an end-of-sentence period. -\def\.{.\spacefactor=3000 } +\def\.{.\spacefactor=\endofsentencespacefactor\space} % @! is an end-of-sentence bang. -\def\!{!\spacefactor=3000 } +\def\!{!\spacefactor=\endofsentencespacefactor\space} % @? is an end-of-sentence query. -\def\?{?\spacefactor=3000 } +\def\?{?\spacefactor=\endofsentencespacefactor\space} + +% @frenchspacing on|off says whether to put extra space after punctuation. +% +\def\onword{on} +\def\offword{off} +% +\parseargdef\frenchspacing{% + \def\temp{#1}% + \ifx\temp\onword \plainfrenchspacing + \else\ifx\temp\offword \plainnonfrenchspacing + \else + \errhelp = \EMsimple + \errmessage{Unknown @frenchspacing option `\temp', must be on/off}% + \fi\fi +} % @w prevents a word break. Without the \leavevmode, @w at the % beginning of a paragraph, when TeX is still in vertical mode, would @@ -1031,9 +1095,9 @@ % _ active, and distinguish by seeing if the current family is \slfam, % which is what @var uses. { - \catcode\underChar = \active + \catcode`\_ = \active \gdef\mathunderscore{% - \catcode\underChar=\active + \catcode`\_=\active \def_{\ifnum\fam=\slfam \_\else\sb\fi}% } } @@ -1076,15 +1140,24 @@ \def\minus{$-$} % @dots{} outputs an ellipsis using the current font. -% We do .5em per period so that it has the same spacing in a typewriter -% font as three actual period characters. +% We do .5em per period so that it has the same spacing in the cm +% typewriter fonts as three actual period characters; on the other hand, +% in other typewriter fonts three periods are wider than 1.5em. So do +% whichever is larger. % \def\dots{% \leavevmode - \hbox to 1.5em{% - \hskip 0pt plus 0.25fil - .\hfil.\hfil.% - \hskip 0pt plus 0.5fil + \setbox0=\hbox{...}% get width of three periods + \ifdim\wd0 > 1.5em + \dimen0 = \wd0 + \else + \dimen0 = 1.5em + \fi + \hbox to \dimen0{% + \hskip 0pt plus.25fil + .\hskip 0pt plus1fil + .\hskip 0pt plus1fil + .\hskip 0pt plus.5fil }% } @@ -1092,7 +1165,7 @@ % \def\enddots{% \dots - \spacefactor=3000 + \spacefactor=\endofsentencespacefactor } % @comma{} is so commas can be inserted into text without messing up @@ -1176,13 +1249,134 @@ \fi \fi \fi -% + +% PDF uses PostScript string constants for the names of xref targets, +% for display in the outlines, and in other places. Thus, we have to +% double any backslashes. Otherwise, a name like "\node" will be +% interpreted as a newline (\n), followed by o, d, e. Not good. +% http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html +% (and related messages, the final outcome is that it is up to the TeX +% user to double the backslashes and otherwise make the string valid, so +% that's what we do). + +% double active backslashes. +% +{\catcode`\@=0 \catcode`\\=\active + @gdef@activebackslashdouble{% + @catcode`@\=@active + @let\=@doublebackslash} +} + +% To handle parens, we must adopt a different approach, since parens are +% not active characters. hyperref.dtx (which has the same problem as +% us) handles it with this amazing macro to replace tokens, with minor +% changes for Texinfo. It is included here under the GPL by permission +% from the author, Heiko Oberdiek. +% +% #1 is the tokens to replace. +% #2 is the replacement. +% #3 is the control sequence with the string. +% +\def\HyPsdSubst#1#2#3{% + \def\HyPsdReplace##1#1##2\END{% + ##1% + \ifx\\##2\\% + \else + #2% + \HyReturnAfterFi{% + \HyPsdReplace##2\END + }% + \fi + }% + \xdef#3{\expandafter\HyPsdReplace#3#1\END}% +} +\long\def\HyReturnAfterFi#1\fi{\fi#1} + +% #1 is a control sequence in which to do the replacements. +\def\backslashparens#1{% + \xdef#1{#1}% redefine it as its expansion; the definition is simply + % \lastnode when called from \setref -> \pdfmkdest. + \HyPsdSubst{(}{\realbackslash(}{#1}% + \HyPsdSubst{)}{\realbackslash)}{#1}% +} + +\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images +with PDF output, and none of those formats could be found. (.eps cannot +be supported due to the design of the PDF format; use regular TeX (DVI +output) for that.)} + \ifpdf - \input pdfcolor - \pdfcatalog{/PageMode /UseOutlines}% + % + % Color manipulation macros based on pdfcolor.tex. + \def\cmykDarkRed{0.28 1 1 0.35} + \def\cmykBlack{0 0 0 1} + % + \def\pdfsetcolor#1{\pdfliteral{#1 k}} + % Set color, and create a mark which defines \thiscolor accordingly, + % so that \makeheadline knows which color to restore. + \def\setcolor#1{% + \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}% + \domark + \pdfsetcolor{#1}% + } + % + \def\maincolor{\cmykBlack} + \pdfsetcolor{\maincolor} + \edef\thiscolor{\maincolor} + \def\lastcolordefs{} + % + \def\makefootline{% + \baselineskip24pt + \line{\pdfsetcolor{\maincolor}\the\footline}% + } + % + \def\makeheadline{% + \vbox to 0pt{% + \vskip-22.5pt + \line{% + \vbox to8.5pt{}% + % Extract \thiscolor definition from the marks. + \getcolormarks + % Typeset the headline with \maincolor, then restore the color. + \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% + }% + \vss + }% + \nointerlineskip + } + % + % + \pdfcatalog{/PageMode /UseOutlines} + % + % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). \def\dopdfimage#1#2#3{% - \def\imagewidth{#2}% - \def\imageheight{#3}% + \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% + \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% + % + % pdftex (and the PDF format) support .png, .jpg, .pdf (among + % others). Let's try in that order. + \let\pdfimgext=\empty + \begingroup + \openin 1 #1.png \ifeof 1 + \openin 1 #1.jpg \ifeof 1 + \openin 1 #1.jpeg \ifeof 1 + \openin 1 #1.JPG \ifeof 1 + \openin 1 #1.pdf \ifeof 1 + \errhelp = \nopdfimagehelp + \errmessage{Could not find image file #1 for pdf}% + \else \gdef\pdfimgext{pdf}% + \fi + \else \gdef\pdfimgext{JPG}% + \fi + \else \gdef\pdfimgext{jpeg}% + \fi + \else \gdef\pdfimgext{jpg}% + \fi + \else \gdef\pdfimgext{png}% + \fi + \closein 1 + \endgroup + % % without \immediate, pdftex seg faults when the same image is % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) \ifnum\pdftexversion < 14 @@ -1190,26 +1384,38 @@ \else \immediate\pdfximage \fi - \ifx\empty\imagewidth\else width \imagewidth \fi - \ifx\empty\imageheight\else height \imageheight \fi + \ifdim \wd0 >0pt width \imagewidth \fi + \ifdim \wd2 >0pt height \imageheight \fi \ifnum\pdftexversion<13 - #1.pdf% + #1.\pdfimgext \else - {#1.pdf}% + {#1.\pdfimgext}% \fi \ifnum\pdftexversion < 14 \else \pdfrefximage \pdflastximage \fi} + % \def\pdfmkdest#1{{% - % We have to set dummies so commands such as @code in a section title - % aren't expanded. - \atdummies - \normalturnoffactive - \pdfdest name{#1} xyz% + % We have to set dummies so commands such as @code, and characters + % such as \, aren't expanded when present in a section title. + \indexnofonts + \turnoffactive + \activebackslashdouble + \makevalueexpandable + \def\pdfdestname{#1}% + \backslashparens\pdfdestname + \safewhatsit{\pdfdest name{\pdfdestname} xyz}% }} + % + % used to mark target names; must be expandable. \def\pdfmkpgn#1{#1} - \let\linkcolor = \Blue % was Cyan, but that seems light? - \def\endlink{\Black\pdfendlink} + % + % by default, use a color that is dark enough to print on paper as + % nearly black, but still distinguishable for online viewing. + \def\urlcolor{\cmykDarkRed} + \def\linkcolor{\cmykDarkRed} + \def\endlink{\setcolor{\maincolor}\pdfendlink} + % % Adding outlines to PDF; macros for calculating structure of outlines % come from Petr Olsak \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% @@ -1218,20 +1424,31 @@ \advance\tempnum by 1 \expandafter\xdef\csname#1\endcsname{\the\tempnum}} % - % #1 is the section text. #2 is the pdf expression for the number - % of subentries (or empty, for subsubsections). #3 is the node - % text, which might be empty if this toc entry had no - % corresponding node. #4 is the page number. + % #1 is the section text, which is what will be displayed in the + % outline by the pdf viewer. #2 is the pdf expression for the number + % of subentries (or empty, for subsubsections). #3 is the node text, + % which might be empty if this toc entry had no corresponding node. + % #4 is the page number % \def\dopdfoutline#1#2#3#4{% % Generate a link to the node text if that exists; else, use the % page number. We could generate a destination for the section % text in the case where a section has no node, but it doesn't - % seem worthwhile, since most documents are normally structured. + % seem worth the trouble, since most documents are normally structured. \def\pdfoutlinedest{#3}% - \ifx\pdfoutlinedest\empty \def\pdfoutlinedest{#4}\fi + \ifx\pdfoutlinedest\empty + \def\pdfoutlinedest{#4}% + \else + % Doubled backslashes in the name. + {\activebackslashdouble \xdef\pdfoutlinedest{#3}% + \backslashparens\pdfoutlinedest}% + \fi + % + % Also double the backslashes in the display string. + {\activebackslashdouble \xdef\pdfoutlinetext{#1}% + \backslashparens\pdfoutlinetext}% % - \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{#1}% + \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}% } % \def\pdfmakeoutlines{% @@ -1272,7 +1489,7 @@ \def\unnsecentry{\numsecentry}% \def\unnsubsecentry{\numsubsecentry}% \def\unnsubsubsecentry{\numsubsubsecentry}% - \input \jobname.toc + \readdatafile{toc}% % % Read toc second time, this time actually producing the outlines. % The `-' means take the \expnumber as the absolute number of @@ -1298,41 +1515,12 @@ % their "best" equivalent, based on the @documentencoding. Right % now, I guess we'll just let the pdf reader have its way. \indexnofonts - \turnoffactive - \input \jobname.toc + \setupdatafile + \catcode`\\=\active \otherbackslash + \input \tocreadfilename \endgroup } % - \def\makelinks #1,{% - \def\params{#1}\def\E{END}% - \ifx\params\E - \let\nextmakelinks=\relax - \else - \let\nextmakelinks=\makelinks - \ifnum\lnkcount>0,\fi - \picknum{#1}% - \startlink attr{/Border [0 0 0]} - goto name{\pdfmkpgn{\the\pgn}}% - \linkcolor #1% - \advance\lnkcount by 1% - \endlink - \fi - \nextmakelinks - } - \def\picknum#1{\expandafter\pn#1} - \def\pn#1{% - \def\p{#1}% - \ifx\p\lbrace - \let\nextpn=\ppn - \else - \let\nextpn=\ppnn - \def\first{#1} - \fi - \nextpn - } - \def\ppn#1{\pgn=#1\gobble} - \def\ppnn{\pgn=\first} - \def\pdfmklnk#1{\lnkcount=0\makelinks #1,END,} \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces @@ -1347,11 +1535,19 @@ \else \let \startlink \pdfstartlink \fi + % make a live url in pdf output. \def\pdfurl#1{% \begingroup - \normalturnoffactive\def\@{@}% + % it seems we really need yet another set of dummies; have not + % tried to figure out what each command should do in the context + % of @url. for now, just make @/ a no-op, that's the only one + % people have actually reported a problem with. + % + \normalturnoffactive + \def\@{@}% + \let\/=\empty \makevalueexpandable - \leavevmode\Red + \leavevmode\setcolor{\urlcolor}% \startlink attr{/Border [0 0 0]}% user{/Subtype /Link /A << /S /URI /URI (#1) >>}% \endgroup} @@ -1378,13 +1574,14 @@ {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} \def\pdflink#1{% \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} - \linkcolor #1\endlink} + \setcolor{\linkcolor}#1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} \else \let\pdfmkdest = \gobble \let\pdfurl = \gobble \let\endlink = \relax - \let\linkcolor = \relax + \let\setcolor = \gobble + \let\pdfsetcolor = \gobble \let\pdfmakeoutlines = \relax \fi % \ifx\pdfoutput @@ -1419,6 +1616,7 @@ % We don't need math for this font style. \def\ttsl{\setfontstyle{ttsl}} + % Default leading. \newdimen\textleading \textleading = 13.2pt @@ -1430,8 +1628,12 @@ \def\strutheightpercent{.70833} \def\strutdepthpercent {.29167} % +% can get a sort of poor man's double spacing by redefining this. +\def\baselinefactor{1} +% \def\setleading#1{% - \normalbaselineskip = #1\relax + \dimen0 = #1\relax + \normalbaselineskip = \baselinefactor\dimen0 \normallineskip = \lineskipfactor\normalbaselineskip \normalbaselines \setbox\strutbox =\hbox{% @@ -1440,10 +1642,277 @@ }% } +% +% PDF CMaps. See also LaTeX's t1.cmap. +% +% \cmapOT1 +\ifpdf + \begingroup + \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. + \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap +%%DocumentNeededResources: ProcSet (CIDInit) +%%IncludeResource: ProcSet (CIDInit) +%%BeginResource: CMap (TeX-OT1-0) +%%Title: (TeX-OT1-0 TeX OT1 0) +%%Version: 1.000 +%%EndComments +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo +<< /Registry (TeX) +/Ordering (OT1) +/Supplement 0 +>> def +/CMapName /TeX-OT1-0 def +/CMapType 2 def +1 begincodespacerange +<00> <7F> +endcodespacerange +8 beginbfrange +<00> <01> <0393> +<09> <0A> <03A8> +<23> <26> <0023> +<28> <3B> <0028> +<3F> <5B> <003F> +<5D> <5E> <005D> +<61> <7A> <0061> +<7B> <7C> <2013> +endbfrange +40 beginbfchar +<02> <0398> +<03> <039B> +<04> <039E> +<05> <03A0> +<06> <03A3> +<07> <03D2> +<08> <03A6> +<0B> <00660066> +<0C> <00660069> +<0D> <0066006C> +<0E> <006600660069> +<0F> <00660066006C> +<10> <0131> +<11> <0237> +<12> <0060> +<13> <00B4> +<14> <02C7> +<15> <02D8> +<16> <00AF> +<17> <02DA> +<18> <00B8> +<19> <00DF> +<1A> <00E6> +<1B> <0153> +<1C> <00F8> +<1D> <00C6> +<1E> <0152> +<1F> <00D8> +<21> <0021> +<22> <201D> +<27> <2019> +<3C> <00A1> +<3D> <003D> +<3E> <00BF> +<5C> <201C> +<5F> <02D9> +<60> <2018> +<7D> <02DD> +<7E> <007E> +<7F> <00A8> +endbfchar +endcmap +CMapName currentdict /CMap defineresource pop +end +end +%%EndResource +%%EOF + }\endgroup + \expandafter\edef\csname cmapOT1\endcsname#1{% + \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% + }% +% +% \cmapOT1IT + \begingroup + \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. + \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap +%%DocumentNeededResources: ProcSet (CIDInit) +%%IncludeResource: ProcSet (CIDInit) +%%BeginResource: CMap (TeX-OT1IT-0) +%%Title: (TeX-OT1IT-0 TeX OT1IT 0) +%%Version: 1.000 +%%EndComments +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo +<< /Registry (TeX) +/Ordering (OT1IT) +/Supplement 0 +>> def +/CMapName /TeX-OT1IT-0 def +/CMapType 2 def +1 begincodespacerange +<00> <7F> +endcodespacerange +8 beginbfrange +<00> <01> <0393> +<09> <0A> <03A8> +<25> <26> <0025> +<28> <3B> <0028> +<3F> <5B> <003F> +<5D> <5E> <005D> +<61> <7A> <0061> +<7B> <7C> <2013> +endbfrange +42 beginbfchar +<02> <0398> +<03> <039B> +<04> <039E> +<05> <03A0> +<06> <03A3> +<07> <03D2> +<08> <03A6> +<0B> <00660066> +<0C> <00660069> +<0D> <0066006C> +<0E> <006600660069> +<0F> <00660066006C> +<10> <0131> +<11> <0237> +<12> <0060> +<13> <00B4> +<14> <02C7> +<15> <02D8> +<16> <00AF> +<17> <02DA> +<18> <00B8> +<19> <00DF> +<1A> <00E6> +<1B> <0153> +<1C> <00F8> +<1D> <00C6> +<1E> <0152> +<1F> <00D8> +<21> <0021> +<22> <201D> +<23> <0023> +<24> <00A3> +<27> <2019> +<3C> <00A1> +<3D> <003D> +<3E> <00BF> +<5C> <201C> +<5F> <02D9> +<60> <2018> +<7D> <02DD> +<7E> <007E> +<7F> <00A8> +endbfchar +endcmap +CMapName currentdict /CMap defineresource pop +end +end +%%EndResource +%%EOF + }\endgroup + \expandafter\edef\csname cmapOT1IT\endcsname#1{% + \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% + }% +% +% \cmapOT1TT + \begingroup + \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. + \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap +%%DocumentNeededResources: ProcSet (CIDInit) +%%IncludeResource: ProcSet (CIDInit) +%%BeginResource: CMap (TeX-OT1TT-0) +%%Title: (TeX-OT1TT-0 TeX OT1TT 0) +%%Version: 1.000 +%%EndComments +/CIDInit /ProcSet findresource begin +12 dict begin +begincmap +/CIDSystemInfo +<< /Registry (TeX) +/Ordering (OT1TT) +/Supplement 0 +>> def +/CMapName /TeX-OT1TT-0 def +/CMapType 2 def +1 begincodespacerange +<00> <7F> +endcodespacerange +5 beginbfrange +<00> <01> <0393> +<09> <0A> <03A8> +<21> <26> <0021> +<28> <5F> <0028> +<61> <7E> <0061> +endbfrange +32 beginbfchar +<02> <0398> +<03> <039B> +<04> <039E> +<05> <03A0> +<06> <03A3> +<07> <03D2> +<08> <03A6> +<0B> <2191> +<0C> <2193> +<0D> <0027> +<0E> <00A1> +<0F> <00BF> +<10> <0131> +<11> <0237> +<12> <0060> +<13> <00B4> +<14> <02C7> +<15> <02D8> +<16> <00AF> +<17> <02DA> +<18> <00B8> +<19> <00DF> +<1A> <00E6> +<1B> <0153> +<1C> <00F8> +<1D> <00C6> +<1E> <0152> +<1F> <00D8> +<20> <2423> +<27> <2019> +<60> <2018> +<7F> <00A8> +endbfchar +endcmap +CMapName currentdict /CMap defineresource pop +end +end +%%EndResource +%%EOF + }\endgroup + \expandafter\edef\csname cmapOT1TT\endcsname#1{% + \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% + }% +\else + \expandafter\let\csname cmapOT1\endcsname\gobble + \expandafter\let\csname cmapOT1IT\endcsname\gobble + \expandafter\let\csname cmapOT1TT\endcsname\gobble +\fi + + % Set the font macro #1 to the font named #2, adding on the % specified font prefix (normally `cm'). -% #3 is the font's design size, #4 is a scale factor -\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4} +% #3 is the font's design size, #4 is a scale factor, #5 is the CMap +% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass +% empty to omit). +\def\setfont#1#2#3#4#5{% + \font#1=\fontprefix#2#3 scaled #4 + \csname cmap#5\endcsname#1% +} +% This is what gets called when #5 of \setfont is empty. +\let\cmap\gobble + % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix @@ -1468,118 +1937,297 @@ \def\scshape{csc} \def\scbshape{csc} +% Definitions for a main text size of 11pt. This is the default in +% Texinfo. +% +\def\definetextfontsizexi{% % Text fonts (11.2pt, magstep1). \def\textnominalsize{11pt} \edef\mainmagstep{\magstephalf} -\setfont\textrm\rmshape{10}{\mainmagstep} -\setfont\texttt\ttshape{10}{\mainmagstep} -\setfont\textbf\bfshape{10}{\mainmagstep} -\setfont\textit\itshape{10}{\mainmagstep} -\setfont\textsl\slshape{10}{\mainmagstep} -\setfont\textsf\sfshape{10}{\mainmagstep} -\setfont\textsc\scshape{10}{\mainmagstep} -\setfont\textttsl\ttslshape{10}{\mainmagstep} +\setfont\textrm\rmshape{10}{\mainmagstep}{OT1} +\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} +\setfont\textbf\bfshape{10}{\mainmagstep}{OT1} +\setfont\textit\itshape{10}{\mainmagstep}{OT1IT} +\setfont\textsl\slshape{10}{\mainmagstep}{OT1} +\setfont\textsf\sfshape{10}{\mainmagstep}{OT1} +\setfont\textsc\scshape{10}{\mainmagstep}{OT1} +\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep +\def\textecsize{1095} % A few fonts for @defun names and args. -\setfont\defbf\bfshape{10}{\magstep1} -\setfont\deftt\ttshape{10}{\magstep1} -\setfont\defttsl\ttslshape{10}{\magstep1} +\setfont\defbf\bfshape{10}{\magstep1}{OT1} +\setfont\deftt\ttshape{10}{\magstep1}{OT1TT} +\setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT} \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} % Fonts for indices, footnotes, small examples (9pt). \def\smallnominalsize{9pt} -\setfont\smallrm\rmshape{9}{1000} -\setfont\smalltt\ttshape{9}{1000} -\setfont\smallbf\bfshape{10}{900} -\setfont\smallit\itshape{9}{1000} -\setfont\smallsl\slshape{9}{1000} -\setfont\smallsf\sfshape{9}{1000} -\setfont\smallsc\scshape{10}{900} -\setfont\smallttsl\ttslshape{10}{900} +\setfont\smallrm\rmshape{9}{1000}{OT1} +\setfont\smalltt\ttshape{9}{1000}{OT1TT} +\setfont\smallbf\bfshape{10}{900}{OT1} +\setfont\smallit\itshape{9}{1000}{OT1IT} +\setfont\smallsl\slshape{9}{1000}{OT1} +\setfont\smallsf\sfshape{9}{1000}{OT1} +\setfont\smallsc\scshape{10}{900}{OT1} +\setfont\smallttsl\ttslshape{10}{900}{OT1TT} \font\smalli=cmmi9 \font\smallsy=cmsy9 +\def\smallecsize{0900} % Fonts for small examples (8pt). \def\smallernominalsize{8pt} -\setfont\smallerrm\rmshape{8}{1000} -\setfont\smallertt\ttshape{8}{1000} -\setfont\smallerbf\bfshape{10}{800} -\setfont\smallerit\itshape{8}{1000} -\setfont\smallersl\slshape{8}{1000} -\setfont\smallersf\sfshape{8}{1000} -\setfont\smallersc\scshape{10}{800} -\setfont\smallerttsl\ttslshape{10}{800} +\setfont\smallerrm\rmshape{8}{1000}{OT1} +\setfont\smallertt\ttshape{8}{1000}{OT1TT} +\setfont\smallerbf\bfshape{10}{800}{OT1} +\setfont\smallerit\itshape{8}{1000}{OT1IT} +\setfont\smallersl\slshape{8}{1000}{OT1} +\setfont\smallersf\sfshape{8}{1000}{OT1} +\setfont\smallersc\scshape{10}{800}{OT1} +\setfont\smallerttsl\ttslshape{10}{800}{OT1TT} \font\smalleri=cmmi8 \font\smallersy=cmsy8 +\def\smallerecsize{0800} % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} -\setfont\titlerm\rmbshape{12}{\magstep3} -\setfont\titleit\itbshape{10}{\magstep4} -\setfont\titlesl\slbshape{10}{\magstep4} -\setfont\titlett\ttbshape{12}{\magstep3} -\setfont\titlettsl\ttslshape{10}{\magstep4} -\setfont\titlesf\sfbshape{17}{\magstep1} +\setfont\titlerm\rmbshape{12}{\magstep3}{OT1} +\setfont\titleit\itbshape{10}{\magstep4}{OT1IT} +\setfont\titlesl\slbshape{10}{\magstep4}{OT1} +\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} +\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} +\setfont\titlesf\sfbshape{17}{\magstep1}{OT1} \let\titlebf=\titlerm -\setfont\titlesc\scbshape{10}{\magstep4} +\setfont\titlesc\scbshape{10}{\magstep4}{OT1} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\authorrm{\secrm} \def\authortt{\sectt} +\def\titleecsize{2074} % Chapter (and unnumbered) fonts (17.28pt). \def\chapnominalsize{17pt} -\setfont\chaprm\rmbshape{12}{\magstep2} -\setfont\chapit\itbshape{10}{\magstep3} -\setfont\chapsl\slbshape{10}{\magstep3} -\setfont\chaptt\ttbshape{12}{\magstep2} -\setfont\chapttsl\ttslshape{10}{\magstep3} -\setfont\chapsf\sfbshape{17}{1000} +\setfont\chaprm\rmbshape{12}{\magstep2}{OT1} +\setfont\chapit\itbshape{10}{\magstep3}{OT1IT} +\setfont\chapsl\slbshape{10}{\magstep3}{OT1} +\setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT} +\setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT} +\setfont\chapsf\sfbshape{17}{1000}{OT1} \let\chapbf=\chaprm -\setfont\chapsc\scbshape{10}{\magstep3} +\setfont\chapsc\scbshape{10}{\magstep3}{OT1} \font\chapi=cmmi12 scaled \magstep2 \font\chapsy=cmsy10 scaled \magstep3 +\def\chapecsize{1728} % Section fonts (14.4pt). \def\secnominalsize{14pt} -\setfont\secrm\rmbshape{12}{\magstep1} -\setfont\secit\itbshape{10}{\magstep2} -\setfont\secsl\slbshape{10}{\magstep2} -\setfont\sectt\ttbshape{12}{\magstep1} -\setfont\secttsl\ttslshape{10}{\magstep2} -\setfont\secsf\sfbshape{12}{\magstep1} +\setfont\secrm\rmbshape{12}{\magstep1}{OT1} +\setfont\secit\itbshape{10}{\magstep2}{OT1IT} +\setfont\secsl\slbshape{10}{\magstep2}{OT1} +\setfont\sectt\ttbshape{12}{\magstep1}{OT1TT} +\setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT} +\setfont\secsf\sfbshape{12}{\magstep1}{OT1} \let\secbf\secrm -\setfont\secsc\scbshape{10}{\magstep2} +\setfont\secsc\scbshape{10}{\magstep2}{OT1} \font\seci=cmmi12 scaled \magstep1 \font\secsy=cmsy10 scaled \magstep2 +\def\sececsize{1440} % Subsection fonts (13.15pt). \def\ssecnominalsize{13pt} -\setfont\ssecrm\rmbshape{12}{\magstephalf} -\setfont\ssecit\itbshape{10}{1315} -\setfont\ssecsl\slbshape{10}{1315} -\setfont\ssectt\ttbshape{12}{\magstephalf} -\setfont\ssecttsl\ttslshape{10}{1315} -\setfont\ssecsf\sfbshape{12}{\magstephalf} +\setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1} +\setfont\ssecit\itbshape{10}{1315}{OT1IT} +\setfont\ssecsl\slbshape{10}{1315}{OT1} +\setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT} +\setfont\ssecttsl\ttslshape{10}{1315}{OT1TT} +\setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1} \let\ssecbf\ssecrm -\setfont\ssecsc\scbshape{10}{1315} +\setfont\ssecsc\scbshape{10}{1315}{OT1} \font\sseci=cmmi12 scaled \magstephalf \font\ssecsy=cmsy10 scaled 1315 +\def\ssececsize{1200} % Reduced fonts for @acro in text (10pt). \def\reducednominalsize{10pt} -\setfont\reducedrm\rmshape{10}{1000} -\setfont\reducedtt\ttshape{10}{1000} -\setfont\reducedbf\bfshape{10}{1000} -\setfont\reducedit\itshape{10}{1000} -\setfont\reducedsl\slshape{10}{1000} -\setfont\reducedsf\sfshape{10}{1000} -\setfont\reducedsc\scshape{10}{1000} -\setfont\reducedttsl\ttslshape{10}{1000} +\setfont\reducedrm\rmshape{10}{1000}{OT1} +\setfont\reducedtt\ttshape{10}{1000}{OT1TT} +\setfont\reducedbf\bfshape{10}{1000}{OT1} +\setfont\reducedit\itshape{10}{1000}{OT1IT} +\setfont\reducedsl\slshape{10}{1000}{OT1} +\setfont\reducedsf\sfshape{10}{1000}{OT1} +\setfont\reducedsc\scshape{10}{1000}{OT1} +\setfont\reducedttsl\ttslshape{10}{1000}{OT1TT} \font\reducedi=cmmi10 \font\reducedsy=cmsy10 +\def\reducedecsize{1000} + +% reset the current fonts +\textfonts +\rm +} % end of 11pt text font size definitions + + +% Definitions to make the main text be 10pt Computer Modern, with +% section, chapter, etc., sizes following suit. This is for the GNU +% Press printing of the Emacs 22 manual. Maybe other manuals in the +% future. Used with @smallbook, which sets the leading to 12pt. +% +\def\definetextfontsizex{% +% Text fonts (10pt). +\def\textnominalsize{10pt} +\edef\mainmagstep{1000} +\setfont\textrm\rmshape{10}{\mainmagstep}{OT1} +\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} +\setfont\textbf\bfshape{10}{\mainmagstep}{OT1} +\setfont\textit\itshape{10}{\mainmagstep}{OT1IT} +\setfont\textsl\slshape{10}{\mainmagstep}{OT1} +\setfont\textsf\sfshape{10}{\mainmagstep}{OT1} +\setfont\textsc\scshape{10}{\mainmagstep}{OT1} +\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} +\font\texti=cmmi10 scaled \mainmagstep +\font\textsy=cmsy10 scaled \mainmagstep +\def\textecsize{1000} + +% A few fonts for @defun names and args. +\setfont\defbf\bfshape{10}{\magstephalf}{OT1} +\setfont\deftt\ttshape{10}{\magstephalf}{OT1TT} +\setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT} +\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} + +% Fonts for indices, footnotes, small examples (9pt). +\def\smallnominalsize{9pt} +\setfont\smallrm\rmshape{9}{1000}{OT1} +\setfont\smalltt\ttshape{9}{1000}{OT1TT} +\setfont\smallbf\bfshape{10}{900}{OT1} +\setfont\smallit\itshape{9}{1000}{OT1IT} +\setfont\smallsl\slshape{9}{1000}{OT1} +\setfont\smallsf\sfshape{9}{1000}{OT1} +\setfont\smallsc\scshape{10}{900}{OT1} +\setfont\smallttsl\ttslshape{10}{900}{OT1TT} +\font\smalli=cmmi9 +\font\smallsy=cmsy9 +\def\smallecsize{0900} + +% Fonts for small examples (8pt). +\def\smallernominalsize{8pt} +\setfont\smallerrm\rmshape{8}{1000}{OT1} +\setfont\smallertt\ttshape{8}{1000}{OT1TT} +\setfont\smallerbf\bfshape{10}{800}{OT1} +\setfont\smallerit\itshape{8}{1000}{OT1IT} +\setfont\smallersl\slshape{8}{1000}{OT1} +\setfont\smallersf\sfshape{8}{1000}{OT1} +\setfont\smallersc\scshape{10}{800}{OT1} +\setfont\smallerttsl\ttslshape{10}{800}{OT1TT} +\font\smalleri=cmmi8 +\font\smallersy=cmsy8 +\def\smallerecsize{0800} + +% Fonts for title page (20.4pt): +\def\titlenominalsize{20pt} +\setfont\titlerm\rmbshape{12}{\magstep3}{OT1} +\setfont\titleit\itbshape{10}{\magstep4}{OT1IT} +\setfont\titlesl\slbshape{10}{\magstep4}{OT1} +\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} +\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} +\setfont\titlesf\sfbshape{17}{\magstep1}{OT1} +\let\titlebf=\titlerm +\setfont\titlesc\scbshape{10}{\magstep4}{OT1} +\font\titlei=cmmi12 scaled \magstep3 +\font\titlesy=cmsy10 scaled \magstep4 +\def\authorrm{\secrm} +\def\authortt{\sectt} +\def\titleecsize{2074} + +% Chapter fonts (14.4pt). +\def\chapnominalsize{14pt} +\setfont\chaprm\rmbshape{12}{\magstep1}{OT1} +\setfont\chapit\itbshape{10}{\magstep2}{OT1IT} +\setfont\chapsl\slbshape{10}{\magstep2}{OT1} +\setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT} +\setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT} +\setfont\chapsf\sfbshape{12}{\magstep1}{OT1} +\let\chapbf\chaprm +\setfont\chapsc\scbshape{10}{\magstep2}{OT1} +\font\chapi=cmmi12 scaled \magstep1 +\font\chapsy=cmsy10 scaled \magstep2 +\def\chapecsize{1440} + +% Section fonts (12pt). +\def\secnominalsize{12pt} +\setfont\secrm\rmbshape{12}{1000}{OT1} +\setfont\secit\itbshape{10}{\magstep1}{OT1IT} +\setfont\secsl\slbshape{10}{\magstep1}{OT1} +\setfont\sectt\ttbshape{12}{1000}{OT1TT} +\setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT} +\setfont\secsf\sfbshape{12}{1000}{OT1} +\let\secbf\secrm +\setfont\secsc\scbshape{10}{\magstep1}{OT1} +\font\seci=cmmi12 +\font\secsy=cmsy10 scaled \magstep1 +\def\sececsize{1200} + +% Subsection fonts (10pt). +\def\ssecnominalsize{10pt} +\setfont\ssecrm\rmbshape{10}{1000}{OT1} +\setfont\ssecit\itbshape{10}{1000}{OT1IT} +\setfont\ssecsl\slbshape{10}{1000}{OT1} +\setfont\ssectt\ttbshape{10}{1000}{OT1TT} +\setfont\ssecttsl\ttslshape{10}{1000}{OT1TT} +\setfont\ssecsf\sfbshape{10}{1000}{OT1} +\let\ssecbf\ssecrm +\setfont\ssecsc\scbshape{10}{1000}{OT1} +\font\sseci=cmmi10 +\font\ssecsy=cmsy10 +\def\ssececsize{1000} + +% Reduced fonts for @acro in text (9pt). +\def\reducednominalsize{9pt} +\setfont\reducedrm\rmshape{9}{1000}{OT1} +\setfont\reducedtt\ttshape{9}{1000}{OT1TT} +\setfont\reducedbf\bfshape{10}{900}{OT1} +\setfont\reducedit\itshape{9}{1000}{OT1IT} +\setfont\reducedsl\slshape{9}{1000}{OT1} +\setfont\reducedsf\sfshape{9}{1000}{OT1} +\setfont\reducedsc\scshape{10}{900}{OT1} +\setfont\reducedttsl\ttslshape{10}{900}{OT1TT} +\font\reducedi=cmmi9 +\font\reducedsy=cmsy9 +\def\reducedecsize{0900} + +% reduce space between paragraphs +\divide\parskip by 2 + +% reset the current fonts +\textfonts +\rm +} % end of 10pt text font size definitions + + +% We provide the user-level command +% @fonttextsize 10 +% (or 11) to redefine the text font size. pt is assumed. +% +\def\xword{10} +\def\xiword{11} +% +\parseargdef\fonttextsize{% + \def\textsizearg{#1}% + \wlog{doing @fonttextsize \textsizearg}% + % + % Set \globaldefs so that documents can use this inside @tex, since + % makeinfo 4.8 does not support it, but we need it nonetheless. + % + \begingroup \globaldefs=1 + \ifx\textsizearg\xword \definetextfontsizex + \else \ifx\textsizearg\xiword \definetextfontsizexi + \else + \errhelp=\EMsimple + \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'} + \fi\fi + \endgroup +} + % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. Since @@ -1691,7 +2339,7 @@ % Set up the default fonts, so we can use them for creating boxes. % -\textfonts \rm +\definetextfontsizexi % Define these so they can be easily changed for other fonts. \def\angleleft{$\langle$} @@ -1701,10 +2349,10 @@ \newcount\fontdepth \fontdepth=0 % Fonts for short table of contents. -\setfont\shortcontrm\rmshape{12}{1000} -\setfont\shortcontbf\bfshape{10}{\magstep1} % no cmb12 -\setfont\shortcontsl\slshape{12}{1000} -\setfont\shortconttt\ttshape{12}{1000} +\setfont\shortcontrm\rmshape{12}{1000}{OT1} +\setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12 +\setfont\shortcontsl\slshape{12}{1000}{OT1} +\setfont\shortconttt\ttshape{12}{1000}{OT1TT} %% Add scribe-like font environments, plus @l for inline lisp (usually sans %% serif) and @ii for TeX italic @@ -1749,18 +2397,25 @@ % sometimes \x has an active definition that messes things up. % \catcode`@=11 - \def\frenchspacing{% + \def\plainfrenchspacing{% \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m + \def\endofsentencespacefactor{1000}% for @. and friends + } + \def\plainnonfrenchspacing{% + \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000 + \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 + \def\endofsentencespacefactor{3000}% for @. and friends } \catcode`@=\other +\def\endofsentencespacefactor{3000}% default \def\t#1{% - {\tt \rawbackslash \frenchspacing #1}% + {\tt \rawbackslash \plainfrenchspacing #1}% \null } \def\samp#1{`\tclose{#1}'\null} -\setfont\keyrm\rmshape{8}{1000} +\setfont\keyrm\rmshape{8}{1000}{OT1} \font\keysy=cmsy9 \def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% @@ -1768,6 +2423,7 @@ \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% \kern-0.4pt\hrule}% \kern-.06em\raise0.4pt\hbox{\angleright}}}} +\def\key #1{{\nohyphenation \uppercase{#1}}\null} % The old definition, with no lozenge: %\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null} \def\ctrl #1{{\tt \rawbackslash \hat}#1} @@ -1793,7 +2449,7 @@ \nohyphenation % \rawbackslash - \frenchspacing + \plainfrenchspacing #1% }% \null @@ -1809,12 +2465,21 @@ % and arrange explicitly to hyphenate at a dash. % -- rms. { - \catcode`\-=\active - \catcode`\_=\active + \catcode`\-=\active \catcode`\_=\active + \catcode`\'=\active \catcode`\`=\active % \global\def\code{\begingroup - \catcode`\-=\active \let-\codedash - \catcode`\_=\active \let_\codeunder + \catcode\rquoteChar=\active \catcode\lquoteChar=\active + \let'\codequoteright \let`\codequoteleft + % + \catcode\dashChar=\active \catcode\underChar=\active + \ifallowcodebreaks + \let-\codedash + \let_\codeunder + \else + \let-\realdash + \let_\realunder + \fi \codex } } @@ -1834,6 +2499,28 @@ } \def\codex #1{\tclose{#1}\endgroup} +% An additional complication: the above will allow breaks after, e.g., +% each of the four underscores in __typeof__. This is undesirable in +% some manuals, especially if they don't have long identifiers in +% general. @allowcodebreaks provides a way to control this. +% +\newif\ifallowcodebreaks \allowcodebreakstrue + +\def\keywordtrue{true} +\def\keywordfalse{false} + +\parseargdef\allowcodebreaks{% + \def\txiarg{#1}% + \ifx\txiarg\keywordtrue + \allowcodebreakstrue + \else\ifx\txiarg\keywordfalse + \allowcodebreaksfalse + \else + \errhelp = \EMsimple + \errmessage{Unknown @allowcodebreaks option `\txiarg'}% + \fi\fi +} + % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. @@ -1841,16 +2528,16 @@ % `example' (@kbd uses ttsl only inside of @example and friends), % or `code' (@kbd uses normal tty font always). \parseargdef\kbdinputstyle{% - \def\arg{#1}% - \ifx\arg\worddistinct + \def\txiarg{#1}% + \ifx\txiarg\worddistinct \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% - \else\ifx\arg\wordexample + \else\ifx\txiarg\wordexample \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% - \else\ifx\arg\wordcode + \else\ifx\txiarg\wordcode \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% \else \errhelp = \EMsimple - \errmessage{Unknown @kbdinputstyle option `\arg'}% + \errmessage{Unknown @kbdinputstyle option `\txiarg'}% \fi\fi\fi } \def\worddistinct{distinct} @@ -1962,7 +2649,7 @@ % \def\abbr#1{\doabbr #1,,\finish} \def\doabbr#1,#2,#3\finish{% - {\frenchspacing #1}% + {\plainfrenchspacing #1}% \def\temp{#2}% \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% @@ -2021,6 +2708,35 @@ \thiseurofont } +% Hacks for glyphs from the EC fonts similar to \euro. We don't +% use \let for the aliases, because sometimes we redefine the original +% macro, and the alias should reflect the redefinition. +\def\guillemetleft{{\ecfont \char"13}} +\def\guillemotleft{\guillemetleft} +\def\guillemetright{{\ecfont \char"14}} +\def\guillemotright{\guillemetright} +\def\guilsinglleft{{\ecfont \char"0E}} +\def\guilsinglright{{\ecfont \char"0F}} +\def\quotedblbase{{\ecfont \char"12}} +\def\quotesinglbase{{\ecfont \char"0D}} +% +\def\ecfont{% + % We can't distinguish serif/sanserif and italic/slanted, but this + % is used for crude hacks anyway (like adding French and German + % quotes to documents typeset with CM, where we lose kerning), so + % hopefully nobody will notice/care. + \edef\ecsize{\csname\curfontsize ecsize\endcsname}% + \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% + \ifx\curfontstyle\bfstylename + % bold: + \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize + \else + % regular: + \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize + \fi + \thisecfont +} + % @registeredsymbol - R in a circle. The font for the R should really % be smaller yet, but lllsize is the best we can do for now. % Adapted from the plain.tex definition of \copyright. @@ -2031,6 +2747,10 @@ }$% } +% @textdegree - the normal degrees sign. +% +\def\textdegree{$^\circ$} + % Laurent Siebenmann reports \Orb undefined with: % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 % so we'll define it if necessary. @@ -2039,6 +2759,11 @@ \def\Orb{\mathhexbox20D} \fi +% Quotes. +\chardef\quotedblleft="5C +\chardef\quotedblright=`\" +\chardef\quoteleft=`\` +\chardef\quoteright=`\' \message{page headings,} @@ -2202,12 +2927,39 @@ % % Leave some space for the footline. Hopefully ok to assume % @evenfooting will not be used by itself. - \global\advance\pageheight by -\baselineskip - \global\advance\vsize by -\baselineskip + \global\advance\pageheight by -12pt + \global\advance\vsize by -12pt } \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} +% @evenheadingmarks top \thischapter <- chapter at the top of a page +% @evenheadingmarks bottom \thischapter <- chapter at the bottom of a page +% +% The same set of arguments for: +% +% @oddheadingmarks +% @evenfootingmarks +% @oddfootingmarks +% @everyheadingmarks +% @everyfootingmarks + +\def\evenheadingmarks{\headingmarks{even}{heading}} +\def\oddheadingmarks{\headingmarks{odd}{heading}} +\def\evenfootingmarks{\headingmarks{even}{footing}} +\def\oddfootingmarks{\headingmarks{odd}{footing}} +\def\everyheadingmarks#1 {\headingmarks{even}{heading}{#1} + \headingmarks{odd}{heading}{#1} } +\def\everyfootingmarks#1 {\headingmarks{even}{footing}{#1} + \headingmarks{odd}{footing}{#1} } +% #1 = even/odd, #2 = heading/footing, #3 = top/bottom. +\def\headingmarks#1#2#3 {% + \expandafter\let\expandafter\temp \csname get#3headingmarks\endcsname + \global\expandafter\let\csname get#1#2marks\endcsname \temp +} + +\everyheadingmarks bottom +\everyfootingmarks bottom % @headings double turns headings on for double-sided printing. % @headings single turns headings on for single-sided printing. @@ -2862,6 +3614,7 @@ \def\doignore#1{\begingroup % Scan in ``verbatim'' mode: + \obeylines \catcode`\@ = \other \catcode`\{ = \other \catcode`\} = \other @@ -2882,16 +3635,16 @@ \gdef\dodoignore#1{% % #1 contains the command name as a string, e.g., `ifinfo'. % - % Define a command to find the next `@end #1', which must be on a line - % by itself. - \long\def\doignoretext##1^^M@end #1{\doignoretextyyy##1^^M@#1\_STOP_}% + % Define a command to find the next `@end #1'. + \long\def\doignoretext##1^^M@end #1{% + \doignoretextyyy##1^^M@#1\_STOP_}% + % % And this command to find another #1 command, at the beginning of a % line. (Otherwise, we would consider a line `@c @ifset', for % example, to count as an @ifset for nesting.) \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}% % % And now expand that command. - \obeylines % \doignoretext ^^M% }% } @@ -2921,7 +3674,12 @@ } % Finish off ignored text. -\def\enddoignore{\endgroup\ignorespaces} +{ \obeylines% + % Ignore anything after the last `@end #1'; this matters in verbatim + % environments, where otherwise the newline after an ignored conditional + % would result in a blank line in the output. + \gdef\enddoignore#1^^M{\endgroup\ignorespaces}% +} % @set VAR sets the variable VAR to an empty value. @@ -3121,42 +3879,50 @@ % we have to laboriously prevent expansion for those that we don't. % \def\indexdummies{% + \escapechar = `\\ % use backslash in output files. \def\@{@}% change to @@ when we switch to @ as escape char in index files. \def\ {\realbackslash\space }% + % % Need these in case \tex is in effect and \{ is a \delimiter again. % But can't use \lbracecmd and \rbracecmd because texindex assumes % braces and backslashes are used only as delimiters. \let\{ = \mylbrace \let\} = \myrbrace % - % \definedummyword defines \#1 as \realbackslash #1\space, thus - % effectively preventing its expansion. This is used only for control - % words, not control letters, because the \space would be incorrect - % for control characters, but is needed to separate the control word - % from whatever follows. - % - % For control letters, we have \definedummyletter, which omits the - % space. - % - % These can be used both for control words that take an argument and - % those that do not. If it is followed by {arg} in the input, then - % that will dutifully get written to the index (or wherever). - % - \def\definedummyword##1{% - \expandafter\def\csname ##1\endcsname{\realbackslash ##1\space}% - }% - \def\definedummyletter##1{% - \expandafter\def\csname ##1\endcsname{\realbackslash ##1}% - }% - \let\definedummyaccent\definedummyletter + % I don't entirely understand this, but when an index entry is + % generated from a macro call, the \endinput which \scanmacro inserts + % causes processing to be prematurely terminated. This is, + % apparently, because \indexsorttmp is fully expanded, and \endinput + % is an expandable command. The redefinition below makes \endinput + % disappear altogether for that purpose -- although logging shows that + % processing continues to some further point. On the other hand, it + % seems \endinput does not hurt in the printed index arg, since that + % is still getting written without apparent harm. + % + % Sample source (mac-idx3.tex, reported by Graham Percival to + % help-texinfo, 22may06): + % @macro funindex {WORD} + % @findex xyz + % @end macro + % ... + % @funindex commtest + % + % The above is not enough to reproduce the bug, but it gives the flavor. + % + % Sample whatsit resulting: + % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}} + % + % So: + \let\endinput = \empty % % Do the redefinitions. \commondummies } -% For the aux file, @ is the escape character. So we want to redefine -% everything using @ instead of \realbackslash. When everything uses -% @, this will be simpler. +% For the aux and toc files, @ is the escape character. So we want to +% redefine everything using @ as the escape character (instead of +% \realbackslash, still used for index files). When everything uses @, +% this will be simpler. % \def\atdummies{% \def\@{@@}% @@ -3164,147 +3930,162 @@ \let\{ = \lbraceatcmd \let\} = \rbraceatcmd % - % (See comments in \indexdummies.) - \def\definedummyword##1{% - \expandafter\def\csname ##1\endcsname{@##1\space}% - }% - \def\definedummyletter##1{% - \expandafter\def\csname ##1\endcsname{@##1}% - }% - \let\definedummyaccent\definedummyletter - % % Do the redefinitions. \commondummies + \otherbackslash } -% Called from \indexdummies and \atdummies. \definedummyword and -% \definedummyletter must be defined first. +% Called from \indexdummies and \atdummies. % \def\commondummies{% % - \normalturnoffactive + % \definedummyword defines \#1 as \string\#1\space, thus effectively + % preventing its expansion. This is used only for control% words, + % not control letters, because the \space would be incorrect for + % control characters, but is needed to separate the control word + % from whatever follows. + % + % For control letters, we have \definedummyletter, which omits the + % space. + % + % These can be used both for control words that take an argument and + % those that do not. If it is followed by {arg} in the input, then + % that will dutifully get written to the index (or wherever). + % + \def\definedummyword ##1{\def##1{\string##1\space}}% + \def\definedummyletter##1{\def##1{\string##1}}% + \let\definedummyaccent\definedummyletter % \commondummiesnofonts % - \definedummyletter{_}% + \definedummyletter\_% % % Non-English letters. - \definedummyword{AA}% - \definedummyword{AE}% - \definedummyword{L}% - \definedummyword{OE}% - \definedummyword{O}% - \definedummyword{aa}% - \definedummyword{ae}% - \definedummyword{l}% - \definedummyword{oe}% - \definedummyword{o}% - \definedummyword{ss}% - \definedummyword{exclamdown}% - \definedummyword{questiondown}% - \definedummyword{ordf}% - \definedummyword{ordm}% + \definedummyword\AA + \definedummyword\AE + \definedummyword\L + \definedummyword\OE + \definedummyword\O + \definedummyword\aa + \definedummyword\ae + \definedummyword\l + \definedummyword\oe + \definedummyword\o + \definedummyword\ss + \definedummyword\exclamdown + \definedummyword\questiondown + \definedummyword\ordf + \definedummyword\ordm % % Although these internal commands shouldn't show up, sometimes they do. - \definedummyword{bf}% - \definedummyword{gtr}% - \definedummyword{hat}% - \definedummyword{less}% - \definedummyword{sf}% - \definedummyword{sl}% - \definedummyword{tclose}% - \definedummyword{tt}% + \definedummyword\bf + \definedummyword\gtr + \definedummyword\hat + \definedummyword\less + \definedummyword\sf + \definedummyword\sl + \definedummyword\tclose + \definedummyword\tt % - \definedummyword{LaTeX}% - \definedummyword{TeX}% + \definedummyword\LaTeX + \definedummyword\TeX % % Assorted special characters. - \definedummyword{bullet}% - \definedummyword{comma}% - \definedummyword{copyright}% - \definedummyword{registeredsymbol}% - \definedummyword{dots}% - \definedummyword{enddots}% - \definedummyword{equiv}% - \definedummyword{error}% - \definedummyword{euro}% - \definedummyword{expansion}% - \definedummyword{minus}% - \definedummyword{pounds}% - \definedummyword{point}% - \definedummyword{print}% - \definedummyword{result}% + \definedummyword\bullet + \definedummyword\comma + \definedummyword\copyright + \definedummyword\registeredsymbol + \definedummyword\dots + \definedummyword\enddots + \definedummyword\equiv + \definedummyword\error + \definedummyword\euro + \definedummyword\guillemetleft + \definedummyword\guillemetright + \definedummyword\guilsinglleft + \definedummyword\guilsinglright + \definedummyword\expansion + \definedummyword\minus + \definedummyword\pounds + \definedummyword\point + \definedummyword\print + \definedummyword\quotedblbase + \definedummyword\quotedblleft + \definedummyword\quotedblright + \definedummyword\quoteleft + \definedummyword\quoteright + \definedummyword\quotesinglbase + \definedummyword\result + \definedummyword\textdegree + % + % We want to disable all macros so that they are not expanded by \write. + \macrolist + % + \normalturnoffactive % % Handle some cases of @value -- where it does not contain any % (non-fully-expandable) commands. \makevalueexpandable - % - % Normal spaces, not active ones. - \unsepspaces - % - % No macro expansion. - \turnoffmacros } % \commondummiesnofonts: common to \commondummies and \indexnofonts. % -% Better have this without active chars. -{ - \catcode`\~=\other - \gdef\commondummiesnofonts{% - % Control letters and accents. - \definedummyletter{!}% - \definedummyaccent{"}% - \definedummyaccent{'}% - \definedummyletter{*}% - \definedummyaccent{,}% - \definedummyletter{.}% - \definedummyletter{/}% - \definedummyletter{:}% - \definedummyaccent{=}% - \definedummyletter{?}% - \definedummyaccent{^}% - \definedummyaccent{`}% - \definedummyaccent{~}% - \definedummyword{u}% - \definedummyword{v}% - \definedummyword{H}% - \definedummyword{dotaccent}% - \definedummyword{ringaccent}% - \definedummyword{tieaccent}% - \definedummyword{ubaraccent}% - \definedummyword{udotaccent}% - \definedummyword{dotless}% - % - % Texinfo font commands. - \definedummyword{b}% - \definedummyword{i}% - \definedummyword{r}% - \definedummyword{sc}% - \definedummyword{t}% - % - % Commands that take arguments. - \definedummyword{acronym}% - \definedummyword{cite}% - \definedummyword{code}% - \definedummyword{command}% - \definedummyword{dfn}% - \definedummyword{emph}% - \definedummyword{env}% - \definedummyword{file}% - \definedummyword{kbd}% - \definedummyword{key}% - \definedummyword{math}% - \definedummyword{option}% - \definedummyword{samp}% - \definedummyword{strong}% - \definedummyword{tie}% - \definedummyword{uref}% - \definedummyword{url}% - \definedummyword{var}% - \definedummyword{verb}% - \definedummyword{w}% - } +\def\commondummiesnofonts{% + % Control letters and accents. + \definedummyletter\!% + \definedummyaccent\"% + \definedummyaccent\'% + \definedummyletter\*% + \definedummyaccent\,% + \definedummyletter\.% + \definedummyletter\/% + \definedummyletter\:% + \definedummyaccent\=% + \definedummyletter\?% + \definedummyaccent\^% + \definedummyaccent\`% + \definedummyaccent\~% + \definedummyword\u + \definedummyword\v + \definedummyword\H + \definedummyword\dotaccent + \definedummyword\ringaccent + \definedummyword\tieaccent + \definedummyword\ubaraccent + \definedummyword\udotaccent + \definedummyword\dotless + % + % Texinfo font commands. + \definedummyword\b + \definedummyword\i + \definedummyword\r + \definedummyword\sc + \definedummyword\t + % + % Commands that take arguments. + \definedummyword\acronym + \definedummyword\cite + \definedummyword\code + \definedummyword\command + \definedummyword\dfn + \definedummyword\emph + \definedummyword\env + \definedummyword\file + \definedummyword\kbd + \definedummyword\key + \definedummyword\math + \definedummyword\option + \definedummyword\pxref + \definedummyword\ref + \definedummyword\samp + \definedummyword\strong + \definedummyword\tie + \definedummyword\uref + \definedummyword\url + \definedummyword\var + \definedummyword\verb + \definedummyword\w + \definedummyword\xref } % \indexnofonts is used when outputting the strings to sort the index @@ -3314,13 +4095,9 @@ % \def\indexnofonts{% % Accent commands should become @asis. - \def\definedummyaccent##1{% - \expandafter\let\csname ##1\endcsname\asis - }% + \def\definedummyaccent##1{\let##1\asis}% % We can just ignore other control letters. - \def\definedummyletter##1{% - \expandafter\def\csname ##1\endcsname{}% - }% + \def\definedummyletter##1{\let##1\empty}% % Hopefully, all control words can become @asis. \let\definedummyword\definedummyaccent % @@ -3367,15 +4144,35 @@ \def\equiv{==}% \def\error{error}% \def\euro{euro}% + \def\guillemetleft{<<}% + \def\guillemetright{>>}% + \def\guilsinglleft{<}% + \def\guilsinglright{>}% \def\expansion{==>}% \def\minus{-}% \def\pounds{pounds}% \def\point{.}% \def\print{-|}% + \def\quotedblbase{"}% + \def\quotedblleft{"}% + \def\quotedblright{"}% + \def\quoteleft{`}% + \def\quoteright{'}% + \def\quotesinglbase{,}% \def\result{=>}% + \def\textdegree{degrees}% % - % Don't write macro names. - \emptyusermacros + % We need to get rid of all macros, leaving only the arguments (if present). + % Of course this is not nearly correct, but it is the best we can do for now. + % makeinfo does not expand macros in the argument to @deffn, which ends up + % writing an index entry, and texindex isn't prepared for an index sort entry + % that starts with \. + % + % Since macro invocations are followed by braces, we can just redefine them + % to take a single TeX argument. The case of a macro invocation that + % goes to end-of-line is not handled. + % + \macrolist } \let\indexbackslash=0 %overridden during \printindex. @@ -3403,11 +4200,7 @@ % \edef\writeto{\csname#1indfile\endcsname}% % - \ifvmode - \dosubindsanitize - \else - \dosubindwrite - \fi + \safewhatsit\dosubindwrite }% \fi } @@ -3422,7 +4215,6 @@ % % Remember, we are within a group. \indexdummies % Must do this here, since \bf, etc expand at this stage - \escapechar=`\\ \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now % so it will be output as is; and it will print as backslash. % @@ -3445,13 +4237,13 @@ \temp } -% Take care of unwanted page breaks: +% Take care of unwanted page breaks/skips around a whatsit: % % If a skip is the last thing on the list now, preserve it % by backing up by \lastskip, doing the \write, then inserting % the skip again. Otherwise, the whatsit generated by the -% \write will make \lastskip zero. The result is that sequences -% like this: +% \write or \pdfdest will make \lastskip zero. The result is that +% sequences like this: % @end defun % @tindex whatever % @defun ... @@ -3475,25 +4267,31 @@ % \edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname} % +\newskip\whatsitskip +\newcount\whatsitpenalty +% % ..., ready, GO: % -\def\dosubindsanitize{% +\def\safewhatsit#1{% +\ifhmode + #1% +\else % \lastskip and \lastpenalty cannot both be nonzero simultaneously. - \skip0 = \lastskip + \whatsitskip = \lastskip \edef\lastskipmacro{\the\lastskip}% - \count255 = \lastpenalty + \whatsitpenalty = \lastpenalty % % If \lastskip is nonzero, that means the last item was a % skip. And since a skip is discardable, that means this - % -\skip0 glue we're inserting is preceded by a + % -\whatsitskip glue we're inserting is preceded by a % non-discardable item, therefore it is not a potential % breakpoint, therefore no \nobreak needed. \ifx\lastskipmacro\zeroskipmacro \else - \vskip-\skip0 + \vskip-\whatsitskip \fi % - \dosubindwrite + #1% % \ifx\lastskipmacro\zeroskipmacro % If \lastskip was zero, perhaps the last item was a penalty, and @@ -3507,13 +4305,14 @@ % Description. % would allow a break between the index-whatever whatsit % and the "Description." paragraph. - \ifnum\count255>9999 \penalty\count255 \fi + \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi \else % On the other hand, if we had a nonzero \lastskip, % this make-up glue would be preceded by a non-discardable item % (the whatsit from the \write), so we must insert a \nobreak. - \nobreak\vskip\skip0 + \nobreak\vskip\whatsitskip \fi +\fi } % The index entry written in the file actually looks like @@ -3556,6 +4355,7 @@ % \smallfonts \rm \tolerance = 9500 + \plainfrenchspacing \everypar = {}% don't want the \kern\-parindent from indentation suppression. % % See if the index file exists and is nonempty. @@ -3685,11 +4485,8 @@ % The following is kludged to not output a line of dots in the index if % there are no page numbers. The next person who breaks this will be % cursed by a Unix daemon. - \def\tempa{{\rm }}% - \def\tempb{#1}% - \edef\tempc{\tempa}% - \edef\tempd{\tempb}% - \ifx\tempc\tempd + \setbox\boxA = \hbox{#1}% + \ifdim\wd\boxA = 0pt \ % \else % @@ -3713,9 +4510,9 @@ \endgroup } -% Like \dotfill except takes at least 1 em. +% Like plain.tex's \dotfill, except uses up at least 1 em. \def\indexdotfill{\cleaders - \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill} + \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill} \def\primary #1{\line{#1\hfil}} @@ -3825,6 +4622,34 @@ % % All done with double columns. \def\enddoublecolumns{% + % The following penalty ensures that the page builder is exercised + % _before_ we change the output routine. This is necessary in the + % following situation: + % + % The last section of the index consists only of a single entry. + % Before this section, \pagetotal is less than \pagegoal, so no + % break occurs before the last section starts. However, the last + % section, consisting of \initial and the single \entry, does not + % fit on the page and has to be broken off. Without the following + % penalty the page builder will not be exercised until \eject + % below, and by that time we'll already have changed the output + % routine to the \balancecolumns version, so the next-to-last + % double-column page will be processed with \balancecolumns, which + % is wrong: The two columns will go to the main vertical list, with + % the broken-off section in the recent contributions. As soon as + % the output routine finishes, TeX starts reconsidering the page + % break. The two columns and the broken-off section both fit on the + % page, because the two columns now take up only half of the page + % goal. When TeX sees \eject from below which follows the final + % section, it invokes the new output routine that we've set after + % \balancecolumns below; \onepageout will try to fit the two columns + % and the final section into the vbox of \pageheight (see + % \pagebody), causing an overfull box. + % + % Note that glue won't work here, because glue does not exercise the + % page builder, unlike penalties (see The TeXbook, pp. 280-281). + \penalty0 + % \output = {% % Split the last of the double-column material. Leave it on the % current page, no automatic page break. @@ -3934,11 +4759,15 @@ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} -% Each @chapter defines this as the name of the chapter. -% page headings and footings can use it. @section does likewise. -% However, they are not reliable, because we don't use marks. +% Each @chapter defines these (using marks) as the number+name, number +% and name of the chapter. Page headings and footings can use +% these. @section does likewise. \def\thischapter{} +\def\thischapternum{} +\def\thischaptername{} \def\thissection{} +\def\thissectionnum{} +\def\thissectionname{} \newcount\absseclevel % used to calculate proper heading level \newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count @@ -4239,7 +5068,20 @@ \def\chapbreak{\dobreak \chapheadingskip {-4000}} \def\chappager{\par\vfill\supereject} -\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi} +% Because \domark is called before \chapoddpage, the filler page will +% get the headings for the next chapter, which is wrong. But we don't +% care -- we just disable all headings on the filler page. +\def\chapoddpage{% + \chappager + \ifodd\pageno \else + \begingroup + \evenheadline={\hfil}\evenfootline={\hfil}% + \oddheadline={\hfil}\oddfootline={\hfil}% + \hbox to 0pt{}% + \chappager + \endgroup + \fi +} \def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname} @@ -4273,41 +5115,72 @@ \def\Yappendixkeyword{Yappendix} % \def\chapmacro#1#2#3{% + % Insert the first mark before the heading break (see notes for \domark). + \let\prevchapterdefs=\lastchapterdefs + \let\prevsectiondefs=\lastsectiondefs + \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}% + \gdef\thissection{}}% + % + \def\temptype{#2}% + \ifx\temptype\Ynothingkeyword + \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% + \gdef\thischapter{\thischaptername}}% + \else\ifx\temptype\Yomitfromtockeyword + \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% + \gdef\thischapter{}}% + \else\ifx\temptype\Yappendixkeyword + \toks0={#1}% + \xdef\lastchapterdefs{% + \gdef\noexpand\thischaptername{\the\toks0}% + \gdef\noexpand\thischapternum{\appendixletter}% + \gdef\noexpand\thischapter{\putwordAppendix{} \noexpand\thischapternum: + \noexpand\thischaptername}% + }% + \else + \toks0={#1}% + \xdef\lastchapterdefs{% + \gdef\noexpand\thischaptername{\the\toks0}% + \gdef\noexpand\thischapternum{\the\chapno}% + \gdef\noexpand\thischapter{\putwordChapter{} \noexpand\thischapternum: + \noexpand\thischaptername}% + }% + \fi\fi\fi + % + % Output the mark. Pass it through \safewhatsit, to take care of + % the preceding space. + \safewhatsit\domark + % + % Insert the chapter heading break. \pchapsepmacro + % + % Now the second mark, after the heading break. No break points + % between here and the heading. + \let\prevchapterdefs=\lastchapterdefs + \let\prevsectiondefs=\lastsectiondefs + \domark + % {% \chapfonts \rm % - % Have to define \thissection before calling \donoderef, because the + % Have to define \lastsection before calling \donoderef, because the % xref code eventually uses it. On the other hand, it has to be called % after \pchapsepmacro, or the headline will change too soon. - \gdef\thissection{#1}% - \gdef\thischaptername{#1}% + \gdef\lastsection{#1}% % % Only insert the separating space if we have a chapter/appendix % number, and don't print the unnumbered ``number''. - \def\temptype{#2}% \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unnchap}% - \gdef\thischapter{#1}% \else\ifx\temptype\Yomitfromtockeyword \setbox0 = \hbox{}% contents like unnumbered, but no toc entry \def\toctype{omit}% - \gdef\thischapter{}% \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% \def\toctype{app}% - % We don't substitute the actual chapter name into \thischapter - % because we don't want its macros evaluated now. And we don't - % use \thissection because that changes with each section. - % - \xdef\thischapter{\putwordAppendix{} \appendixletter: - \noexpand\thischaptername}% \else \setbox0 = \hbox{#3\enspace}% \def\toctype{numchap}% - \xdef\thischapter{\putwordChapter{} \the\chapno: - \noexpand\thischaptername}% \fi\fi\fi % % Write the toc entry for this chapter. Must come before the @@ -4323,6 +5196,7 @@ \donoderef{#2}% % % Typeset the actual heading. + \nobreak % Avoid page breaks at the interline glue. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright \hangindent=\wd0 \centerparametersmaybe \unhbox0 #1\par}% @@ -4385,45 +5259,95 @@ % the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the % section number. % +\def\seckeyword{sec} +% \def\sectionheading#1#2#3#4{% {% % Switch to the right set of fonts. \csname #2fonts\endcsname \rm % + \def\sectionlevel{#2}% + \def\temptype{#3}% + % + % Insert first mark before the heading break (see notes for \domark). + \let\prevsectiondefs=\lastsectiondefs + \ifx\temptype\Ynothingkeyword + \ifx\sectionlevel\seckeyword + \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}% + \gdef\thissection{\thissectionname}}% + \fi + \else\ifx\temptype\Yomitfromtockeyword + % Don't redefine \thissection. + \else\ifx\temptype\Yappendixkeyword + \ifx\sectionlevel\seckeyword + \toks0={#1}% + \xdef\lastsectiondefs{% + \gdef\noexpand\thissectionname{\the\toks0}% + \gdef\noexpand\thissectionnum{#4}% + \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum: + \noexpand\thissectionname}% + }% + \fi + \else + \ifx\sectionlevel\seckeyword + \toks0={#1}% + \xdef\lastsectiondefs{% + \gdef\noexpand\thissectionname{\the\toks0}% + \gdef\noexpand\thissectionnum{#4}% + \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum: + \noexpand\thissectionname}% + }% + \fi + \fi\fi\fi + % + % Output the mark. Pass it through \safewhatsit, to take care of + % the preceding space. + \safewhatsit\domark + % % Insert space above the heading. \csname #2headingbreak\endcsname % - % Only insert the space after the number if we have a section number. - \def\sectionlevel{#2}% - \def\temptype{#3}% + % Now the second mark, after the heading break. No break points + % between here and the heading. + \let\prevsectiondefs=\lastsectiondefs + \domark % + % Only insert the space after the number if we have a section number. \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unn}% - \gdef\thissection{#1}% + \gdef\lastsection{#1}% \else\ifx\temptype\Yomitfromtockeyword % for @headings -- no section number, don't include in toc, - % and don't redefine \thissection. + % and don't redefine \lastsection. \setbox0 = \hbox{}% \def\toctype{omit}% \let\sectionlevel=\empty \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{#4\enspace}% \def\toctype{app}% - \gdef\thissection{#1}% + \gdef\lastsection{#1}% \else \setbox0 = \hbox{#4\enspace}% \def\toctype{num}% - \gdef\thissection{#1}% + \gdef\lastsection{#1}% \fi\fi\fi % - % Write the toc entry (before \donoderef). See comments in \chfplain. + % Write the toc entry (before \donoderef). See comments in \chapmacro. \writetocentry{\toctype\sectionlevel}{#1}{#4}% % % Write the node reference (= pdf destination for pdftex). - % Again, see comments in \chfplain. + % Again, see comments in \chapmacro. \donoderef{#3}% % + % Interline glue will be inserted when the vbox is completed. + % That glue will be a valid breakpoint for the page, since it'll be + % preceded by a whatsit (usually from the \donoderef, or from the + % \writetocentry if there was no node). We don't want to allow that + % break, since then the whatsits could end up on page n while the + % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000. + \nobreak + % % Output the actual section heading. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright \hangindent=\wd0 % zero if no section number @@ -4482,11 +5406,11 @@ \fi % \iflinks - \toks0 = {#2}% - \toks2 = \expandafter{\lastnode}% - \edef\temp{\write\tocfile{\realbackslash #1entry{\the\toks0}{#3}% - {\the\toks2}{\noexpand\folio}}}% - \temp + {\atdummies + \edef\temp{% + \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}% + \temp + }% \fi \fi % @@ -4499,6 +5423,31 @@ \ifpdf \global\pdfmakepagedesttrue \fi } + +% These characters do not print properly in the Computer Modern roman +% fonts, so we must take special care. This is more or less redundant +% with the Texinfo input format setup at the end of this file. +% +\def\activecatcodes{% + \catcode`\"=\active + \catcode`\$=\active + \catcode`\<=\active + \catcode`\>=\active + \catcode`\\=\active + \catcode`\^=\active + \catcode`\_=\active + \catcode`\|=\active + \catcode`\~=\active +} + + +% Read the toc file, which is essentially Texinfo input. +\def\readtocfile{% + \setupdatafile + \activecatcodes + \input \tocreadfilename +} + \newskip\contentsrightmargin \contentsrightmargin=1in \newcount\savepageno \newcount\lastnegativepageno \lastnegativepageno = -1 @@ -4515,29 +5464,29 @@ % % Don't need to put `Contents' or `Short Contents' in the headline. % It is abundantly clear what they are. - \def\thischapter{}% \chapmacro{#1}{Yomitfromtoc}{}% % \savepageno = \pageno \begingroup % Set up to handle contents files properly. - \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11 - % We can't do this, because then an actual ^ in a section - % title fails, e.g., @chapter ^ -- exponentiation. --karl, 9jul97. - %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi - \raggedbottom % Worry more about breakpoints than the bottom. + \raggedbottom % Worry more about breakpoints than the bottom. \advance\hsize by -\contentsrightmargin % Don't use the full line length. % % Roman numerals for page numbers. \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi } +% redefined for the two-volume lispref. We always output on +% \jobname.toc even if this is redefined. +% +\def\tocreadfilename{\jobname.toc} % Normal (long) toc. +% \def\contents{% \startcontents{\putwordTOC}% - \openin 1 \jobname.toc + \openin 1 \tocreadfilename\space \ifeof 1 \else - \input \jobname.toc + \readtocfile \fi \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect @@ -4573,9 +5522,9 @@ \let\numsubsubsecentry = \numsecentry \let\appsubsubsecentry = \numsecentry \let\unnsubsubsecentry = \numsecentry - \openin 1 \jobname.toc + \openin 1 \tocreadfilename\space \ifeof 1 \else - \input \jobname.toc + \readtocfile \fi \closein 1 \vfill \eject @@ -4717,7 +5666,7 @@ {\tentt \global\dimen0 = 3em}% Width of the box. \dimen2 = .55pt % Thickness of rules % The text. (`r' is open on the right, `e' somewhat less so on the left.) -\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt} +\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt} % \setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. @@ -4765,6 +5714,7 @@ \let\/=\ptexslash \let\*=\ptexstar \let\t=\ptext + \let\frenchspacing=\plainfrenchspacing % \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% @@ -4810,7 +5760,8 @@ \let\afterenvbreak = \aboveenvbreak -% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins. +% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will +% also clear it, so that its embedded environments do the narrowing again. \let\nonarrowing=\relax % @cartouche ... @end cartouche: draw rectangle w/rounded corners around @@ -4847,7 +5798,7 @@ % each corner char, and rule thickness \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip % Flag to tell @lisp, etc., not to narrow margin. - \let\nonarrowing=\comment + \let\nonarrowing = t% \vbox\bgroup \baselineskip=0pt\parskip=0pt\lineskip=0pt \carttop @@ -4887,11 +5838,11 @@ \parskip = 0pt \parindent = 0pt \emergencystretch = 0pt % don't try to avoid overfull boxes - % @cartouche defines \nonarrowing to inhibit narrowing - % at next level down. \ifx\nonarrowing\relax \advance \leftskip by \lispnarrowing \exdentamount=\lispnarrowing + \else + \let\nonarrowing = \relax \fi \let\exdent=\nofillexdent } @@ -4906,12 +5857,18 @@ \let\SETdispenvsize\relax \def\setnormaldispenv{% \ifx\SETdispenvsize\smallword + % end paragraph for sake of leading, in case document has no blank + % line. This is redundant with what happens in \aboveenvbreak, but + % we need to do it before changing the fonts, and it's inconvenient + % to change the fonts afterward. + \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } \def\setsmalldispenv{% \ifx\SETdispenvsize\nosmallword \else + \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } @@ -4938,11 +5895,10 @@ % \maketwodispenvs {lisp}{example}{% \nonfillstart - \tt + \tt\quoteexpand \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. \gobble % eat return } - % @display/@smalldisplay: same as @lisp except keep current font. % \makedispenv {display}{% @@ -4991,6 +5947,7 @@ \advance\leftskip by \lispnarrowing \advance\rightskip by \lispnarrowing \exdentamount = \lispnarrowing + \else \let\nonarrowing = \relax \fi \parsearg\quotationlabel @@ -5069,6 +6026,34 @@ \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount % \def\starttabbox{\setbox0=\hbox\bgroup} + +% Allow an option to not replace quotes with a regular directed right +% quote/apostrophe (char 0x27), but instead use the undirected quote +% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it +% the default, but it works for pasting with more pdf viewers (at least +% evince), the lilypond developers report. xpdf does work with the +% regular 0x27. +% +\def\codequoteright{% + \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax + \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax + '% + \else \char'15 \fi + \else \char'15 \fi +} +% +% and a similar option for the left quote char vs. a grave accent. +% Modern fonts display ASCII 0x60 as a grave accent, so some people like +% the code environments to do likewise. +% +\def\codequoteleft{% + \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax + \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax + `% + \else \char'22 \fi + \else \char'22 \fi +} +% \begingroup \catcode`\^^I=\active \gdef\tabexpand{% @@ -5081,15 +6066,25 @@ \wd0=\dimen0 \box0 \starttabbox }% } + \catcode`\'=\active + \gdef\rquoteexpand{\catcode\rquoteChar=\active \def'{\codequoteright}}% + % + \catcode`\`=\active + \gdef\lquoteexpand{\catcode\lquoteChar=\active \def`{\codequoteleft}}% + % + \gdef\quoteexpand{\rquoteexpand \lquoteexpand}% \endgroup + +% start the verbatim environment. \def\setupverbatim{% + \let\nonarrowing = t% \nonfillstart - \advance\leftskip by -\defbodyindent % Easiest (and conventionally used) font for verbatim \tt \def\par{\leavevmode\egroup\box0\endgraf}% \catcode`\`=\active \tabexpand + \quoteexpand % Respect line breaks, % print special symbols as themselves, and % make each space count @@ -5174,27 +6169,35 @@ \endgroup } + \message{defuns,} % @defun etc. \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt \newskip\deflastargmargin \deflastargmargin=18pt +\newcount\defunpenalty % Start the processing of @deffn: \def\startdefun{% \ifnum\lastpenalty<10000 \medbreak + \defunpenalty=10003 % Will keep this @deffn together with the + % following @def command, see below. \else % If there are two @def commands in a row, we'll have a \nobreak, % which is there to keep the function description together with its % header. But if there's nothing but headers, we need to allow a % break somewhere. Check specifically for penalty 10002, inserted - % by \defargscommonending, instead of 10000, since the sectioning + % by \printdefunline, instead of 10000, since the sectioning % commands also insert a nobreak penalty, and we don't want to allow % a break between a section heading and a defun. - % - \ifnum\lastpenalty=10002 \penalty2000 \fi + % + % As a minor refinement, we avoid "club" headers by signalling + % with penalty of 10003 after the very first @deffn in the + % sequence (see above), and penalty of 10002 after any following + % @def command. + \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi % % Similarly, after a section heading, do not allow a break. % But do insert the glue. @@ -5212,7 +6215,7 @@ % % As above, allow line break if we have multiple x headers in a row. % It's not a great place, though. - \ifnum\lastpenalty=10002 \penalty3000 \fi + \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi % % And now, it's time to reuse the body of the original defun: \expandafter\gobbledefun#1% @@ -5230,7 +6233,7 @@ \advance\rightskip by 0pt plus 1fil \endgraf \nobreak\vskip -\parskip - \penalty 10002 % signal to \startdefun and \dodefunx + \penalty\defunpenalty % signal to \startdefun and \dodefunx % Some of the @defun-type tags do not enable magic parentheses, % rendering the following check redundant. But we don't optimize. \checkparencounts @@ -5499,12 +6502,14 @@ \ifnum\parencount=0 \else \badparencount \fi \ifnum\brackcount=0 \else \badbrackcount \fi } +% these should not use \errmessage; the glibc manual, at least, actually +% has such constructs (when documenting function pointers). \def\badparencount{% - \errmessage{Unbalanced parentheses in @def}% + \message{Warning: unbalanced parentheses in @def...}% \global\parencount=0 } \def\badbrackcount{% - \errmessage{Unbalanced square braces in @def}% + \message{Warning: unbalanced square brackets in @def...}% \global\brackcount=0 } @@ -5539,7 +6544,6 @@ \spaceisspace % % Append \endinput to make sure that TeX does not see the ending newline. - % % I've verified that it is necessary both for e-TeX and for ordinary TeX % --kasal, 29nov03 \scantokens{#1\endinput}% @@ -5554,8 +6558,19 @@ \newcount\paramno % Count of parameters \newtoks\macname % Macro name \newif\ifrecursive % Is it recursive? -\def\macrolist{} % List of all defined macros in the form - % \do\macro1\do\macro2... + +% List of all defined macros in the form +% \definedummyword\macro1\definedummyword\macro2... +% Currently is also contains all @aliases; the list can be split +% if there is a need. +\def\macrolist{} + +% Add the macro to \macrolist +\def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname} +\def\addtomacrolistxxx#1{% + \toks0 = \expandafter{\macrolist\definedummyword#1}% + \xdef\macrolist{\the\toks0}% +} % Utility routines. % This does \let #1 = #2, with \csnames; that is, @@ -5589,6 +6604,10 @@ % all characters are catcode 10, 11 or 12, except \ which is active % (as in normal texinfo). It is necessary to change the definition of \. +% Non-ASCII encodings make 8-bit characters active, so un-activate +% them to avoid their expansion. Must do this non-globally, to +% confine the change to the current group. + % It's necessary to have hard CRs when the macro is executed. This is % done by making ^^M (\endlinechar) catcode 12 when reading the macro % body, and then making it the \newlinechar in \scanmacro. @@ -5603,6 +6622,7 @@ \catcode`\_=\other \catcode`\|=\other \catcode`\~=\other + \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi } \def\scanargctxt{% @@ -5653,10 +6673,7 @@ \else \errmessage{Macro name \the\macname\space already defined}\fi \global\cslet{macsave.\the\macname}{\the\macname}% \global\expandafter\let\csname ismacro.\the\macname\endcsname=1% - % Add the macroname to \macrolist - \toks0 = \expandafter{\macrolist\do}% - \xdef\macrolist{\the\toks0 - \expandafter\noexpand\csname\the\macname\endcsname}% + \addtomacrolist{\the\macname}% \fi \begingroup \macrobodyctxt \ifrecursive \expandafter\parsermacbody @@ -5670,7 +6687,7 @@ % Remove the macro name from \macrolist: \begingroup \expandafter\let\csname#1\endcsname \relax - \let\do\unmacrodo + \let\definedummyword\unmacrodo \xdef\macrolist{\macrolist}% \endgroup \else @@ -5682,10 +6699,10 @@ % macro definitions that have been changed to \relax. % \def\unmacrodo#1{% - \ifx#1\relax + \ifx #1\relax % remove this \else - \noexpand\do \noexpand #1% + \noexpand\definedummyword \noexpand#1% \fi } @@ -5798,30 +6815,11 @@ % {. If so it reads up to the closing }, if not, it reads the whole % line. Whatever was read is then fed to the next control sequence % as an argument (by \parsebrace or \parsearg) -\def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx} +\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup\else \expandafter\parsearg - \fi \next} - -% We want to disable all macros during \shipout so that they are not -% expanded by \write. -\def\turnoffmacros{\begingroup \def\do##1{\let\noexpand##1=\relax}% - \edef\next{\macrolist}\expandafter\endgroup\next} - -% For \indexnofonts, we need to get rid of all macros, leaving only the -% arguments (if present). Of course this is not nearly correct, but it -% is the best we can do for now. makeinfo does not expand macros in the -% argument to @deffn, which ends up writing an index entry, and texindex -% isn't prepared for an index sort entry that starts with \. -% -% Since macro invocations are followed by braces, we can just redefine them -% to take a single TeX argument. The case of a macro invocation that -% goes to end-of-line is not handled. -% -\def\emptyusermacros{\begingroup - \def\do##1{\let\noexpand##1=\noexpand\asis}% - \edef\next{\macrolist}\expandafter\endgroup\next} + \fi \macnamexxx} % @alias. @@ -5832,6 +6830,7 @@ \def\aliasyyy #1=#2\relax{% {% \expandafter\let\obeyedspace=\empty + \addtomacrolist{#1}% \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}% }% \next @@ -5841,7 +6840,6 @@ \message{cross references,} \newwrite\auxfile - \newif\ifhavexrefs % True if xref values are known. \newif\ifwarnedxrefs % True if we warned once that they aren't known. @@ -5886,7 +6884,7 @@ % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an % anchor), which consists of three parts: -% 1) NAME-title - the current sectioning name taken from \thissection, +% 1) NAME-title - the current sectioning name taken from \lastsection, % or the anchor name. % 2) NAME-snt - section number and type, passed as the SNT arg, or % empty for anchors. @@ -5901,16 +6899,14 @@ \iflinks {% \atdummies % preserve commands, but don't expand them - \turnoffactive - \otherbackslash \edef\writexrdef##1##2{% \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef ##1}{##2}}% these are parameters of \writexrdef }% - \toks0 = \expandafter{\thissection}% + \toks0 = \expandafter{\lastsection}% \immediate \writexrdef{title}{\the\toks0 }% \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. - \writexrdef{pg}{\folio}% will be written later, during \shipout + \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout }% \fi } @@ -5956,16 +6952,21 @@ \ifpdf \leavevmode \getfilename{#4}% - {\turnoffactive \otherbackslash + {\indexnofonts + \turnoffactive + % See comments at \activebackslashdouble. + {\activebackslashdouble \xdef\pdfxrefdest{#1}% + \backslashparens\pdfxrefdest}% + % \ifnum\filenamelength>0 \startlink attr{/Border [0 0 0]}% - goto file{\the\filename.pdf} name{#1}% + goto file{\the\filename.pdf} name{\pdfxrefdest}% \else \startlink attr{/Border [0 0 0]}% - goto name{\pdfmkpgn{#1}}% + goto name{\pdfmkpgn{\pdfxrefdest}}% \fi }% - \linkcolor + \setcolor{\linkcolor}% \fi % % Float references are printed completely differently: "Figure 1.2" @@ -5976,7 +6977,6 @@ % include an _ in the xref name, etc. \indexnofonts \turnoffactive - \otherbackslash \expandafter\global\expandafter\let\expandafter\Xthisreftitle \csname XR#1-title\endcsname }% @@ -5984,7 +6984,7 @@ % If the user specified the print name (third arg) to the ref, % print it instead of our usual "Figure 1.2". \ifdim\wd0 = 0pt - \refx{#1-snt}% + \refx{#1-snt}{}% \else \printedrefname \fi @@ -6004,14 +7004,14 @@ % is a loss. Therefore, we give the text of the node name again, so it % is as if TeX is seeing it for the first time. \ifdim \wd1 > 0pt - \putwordsection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}% + \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}% \else % _ (for example) has to be the character _ for the purposes of the % control sequence corresponding to the node, but it has to expand % into the usual \leavevmode...\vrule stuff for purposes of % printing. So we \turnoffactive for the \refx-snt, back on for the % printing, back off for the \refx-pg. - {\turnoffactive \otherbackslash + {\turnoffactive % Only output a following space if the -snt ref is nonempty; for % @unnumbered and @anchor, it won't be. \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% @@ -6024,7 +7024,7 @@ ,\space % % output the `page 3'. - \turnoffactive \otherbackslash \putwordpage\tie\refx{#1-pg}{}% + \turnoffactive \putwordpage\tie\refx{#1-pg}{}% \fi \fi \endlink @@ -6100,10 +7100,18 @@ % collisions). But if this is a float type, we have more work to do. % \def\xrdef#1#2{% - \expandafter\gdef\csname XR#1\endcsname{#2}% remember this xref value. + {% The node name might contain 8-bit characters, which in our current + % implementation are changed to commands like @'e. Don't let these + % mess up the control sequence name. + \indexnofonts + \turnoffactive + \xdef\safexrefname{#1}% + }% + % + \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% remember this xref % % Was that xref control sequence that we just defined for a float? - \expandafter\iffloat\csname XR#1\endcsname + \expandafter\iffloat\csname XR\safexrefname\endcsname % it was a float, and we have the (safe) float type in \iffloattype. \expandafter\let\expandafter\floatlist \csname floatlist\iffloattype\endcsname @@ -6118,7 +7126,8 @@ % % Remember this xref in the control sequence \floatlistFLOATTYPE, % for later use in \listoffloats. - \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0{#1}}% + \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0 + {\safexrefname}}% \fi } @@ -6127,13 +7136,13 @@ \def\tryauxfile{% \openin 1 \jobname.aux \ifeof 1 \else - \readauxfile + \readdatafile{aux}% \global\havexrefstrue \fi \closein 1 } -\def\readauxfile{\begingroup +\def\setupdatafile{% \catcode`\^^@=\other \catcode`\^^A=\other \catcode`\^^B=\other @@ -6202,11 +7211,11 @@ % % Make the characters 128-255 be printing characters. {% - \count 1=128 + \count1=128 \def\loop{% - \catcode\count 1=\other - \advance\count 1 by 1 - \ifnum \count 1<256 \loop \fi + \catcode\count1=\other + \advance\count1 by 1 + \ifnum \count1<256 \loop \fi }% }% % @@ -6214,8 +7223,12 @@ \catcode`\{=1 \catcode`\}=2 \catcode`\@=0 - % - \input \jobname.aux +} + +\def\readdatafile#1{% +\begingroup + \setupdatafile + \input\jobname.#1 \endgroup} @@ -6411,7 +7424,7 @@ % above and below. \nobreak\vskip\parskip \nobreak - \line\bgroup\hss + \line\bgroup \fi % % Output the image. @@ -6424,7 +7437,7 @@ \epsfbox{#1.eps}% \fi % - \ifimagevmode \hss \egroup \bigbreak \fi % space after the image + \ifimagevmode \egroup \bigbreak \fi % space after the image \endgroup} @@ -6491,13 +7504,13 @@ \global\advance\floatno by 1 % {% - % This magic value for \thissection is output by \setref as the + % This magic value for \lastsection is output by \setref as the % XREFLABEL-title value. \xrefX uses it to distinguish float % labels (which have a completely different output format) from % node and anchor labels. And \xrdef uses it to construct the % lists of floats. % - \edef\thissection{\floatmagic=\safefloattype}% + \edef\lastsection{\floatmagic=\safefloattype}% \setref{\floatlabel}{Yfloat}% }% \fi @@ -6564,7 +7577,8 @@ % \floatlabel-lof. Besides \floatident, we include the short % caption if specified, else the full caption if specified, else nothing. {% - \atdummies \turnoffactive \otherbackslash + \atdummies + % % since we read the caption text in the macro world, where ^^M % is turned into a normal character, we have to scan it back, so % we don't write the literal three characters "^^M" into the aux file. @@ -6585,8 +7599,9 @@ % % place the captured inserts % - % BEWARE: when the floats start float, we have to issue warning whenever an - % insert appears inside a float which could possibly float. --kasal, 26may04 + % BEWARE: when the floats start floating, we have to issue warning + % whenever an insert appears inside a float which could possibly + % float. --kasal, 26may04 % \checkinserts } @@ -6630,7 +7645,7 @@ % #1 is the control sequence we are passed; we expand into a conditional % which is true if #1 represents a float ref. That is, the magic -% \thissection value which we \setref above. +% \lastsection value which we \setref above. % \def\iffloat#1{\expandafter\doiffloat#1==\finish} % @@ -6691,39 +7706,871 @@ \writeentry }} + \message{localization,} -% and i18n. % @documentlanguage is usually given very early, just after % @setfilename. If done too late, it may not override everything -% properly. Single argument is the language abbreviation. -% It would be nice if we could set up a hyphenation file here. +% properly. Single argument is the language (de) or locale (de_DE) +% abbreviation. It would be nice if we could set up a hyphenation file. % -\parseargdef\documentlanguage{% +{ + \catcode`\_ = \active + \globaldefs=1 +\parseargdef\documentlanguage{\begingroup + \let_=\normalunderscore % normal _ character for filenames \tex % read txi-??.tex file in plain TeX. - % Read the file if it exists. + % Read the file by the name they passed if it exists. \openin 1 txi-#1.tex \ifeof 1 - \errhelp = \nolanghelp - \errmessage{Cannot read language file txi-#1.tex}% + \documentlanguagetrywithoutunderscore{#1_\finish}% \else \input txi-#1.tex \fi \closein 1 \endgroup +\endgroup} +} +% +% If they passed de_DE, and txi-de_DE.tex doesn't exist, +% try txi-de.tex. +% +\def\documentlanguagetrywithoutunderscore#1_#2\finish{% + \openin 1 txi-#1.tex + \ifeof 1 + \errhelp = \nolanghelp + \errmessage{Cannot read language file txi-#1.tex}% + \else + \input txi-#1.tex + \fi + \closein 1 } +% \newhelp\nolanghelp{The given language definition file cannot be found or is empty. Maybe you need to install it? In the current directory should work if nowhere else does.} +% Set the catcode of characters 128 through 255 to the specified number. +% +\def\setnonasciicharscatcode#1{% + \count255=128 + \loop\ifnum\count255<256 + \global\catcode\count255=#1\relax + \advance\count255 by 1 + \repeat +} + +\def\setnonasciicharscatcodenonglobal#1{% + \count255=128 + \loop\ifnum\count255<256 + \catcode\count255=#1\relax + \advance\count255 by 1 + \repeat +} + +% @documentencoding sets the definition of non-ASCII characters +% according to the specified encoding. +% +\parseargdef\documentencoding{% + % Encoding being declared for the document. + \def\declaredencoding{\csname #1.enc\endcsname}% + % + % Supported encodings: names converted to tokens in order to be able + % to compare them with \ifx. + \def\ascii{\csname US-ASCII.enc\endcsname}% + \def\latnine{\csname ISO-8859-15.enc\endcsname}% + \def\latone{\csname ISO-8859-1.enc\endcsname}% + \def\lattwo{\csname ISO-8859-2.enc\endcsname}% + \def\utfeight{\csname UTF-8.enc\endcsname}% + % + \ifx \declaredencoding \ascii + \asciichardefs + % + \else \ifx \declaredencoding \lattwo + \setnonasciicharscatcode\active + \lattwochardefs + % + \else \ifx \declaredencoding \latone + \setnonasciicharscatcode\active + \latonechardefs + % + \else \ifx \declaredencoding \latnine + \setnonasciicharscatcode\active + \latninechardefs + % + \else \ifx \declaredencoding \utfeight + \setnonasciicharscatcode\active + \utfeightchardefs + % + \else + \message{Unknown document encoding #1, ignoring.}% + % + \fi % utfeight + \fi % latnine + \fi % latone + \fi % lattwo + \fi % ascii +} -% @documentencoding should change something in TeX eventually, most -% likely, but for now just recognize it. -\let\documentencoding = \comment +% A message to be logged when using a character that isn't available +% the default font encoding (OT1). +% +\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}} +% Take account of \c (plain) vs. \, (Texinfo) difference. +\def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi} -% Page size parameters. +% First, make active non-ASCII characters in order for them to be +% correctly categorized when TeX reads the replacement text of +% macros containing the character definitions. +\setnonasciicharscatcode\active +% +% Latin1 (ISO-8859-1) character definitions. +\def\latonechardefs{% + \gdef^^a0{~} + \gdef^^a1{\exclamdown} + \gdef^^a2{\missingcharmsg{CENT SIGN}} + \gdef^^a3{{\pounds}} + \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} + \gdef^^a5{\missingcharmsg{YEN SIGN}} + \gdef^^a6{\missingcharmsg{BROKEN BAR}} + \gdef^^a7{\S} + \gdef^^a8{\"{}} + \gdef^^a9{\copyright} + \gdef^^aa{\ordf} + \gdef^^ab{\missingcharmsg{LEFT-POINTING DOUBLE ANGLE QUOTATION MARK}} + \gdef^^ac{$\lnot$} + \gdef^^ad{\-} + \gdef^^ae{\registeredsymbol} + \gdef^^af{\={}} + % + \gdef^^b0{\textdegree} + \gdef^^b1{$\pm$} + \gdef^^b2{$^2$} + \gdef^^b3{$^3$} + \gdef^^b4{\'{}} + \gdef^^b5{$\mu$} + \gdef^^b6{\P} + % + \gdef^^b7{$^.$} + \gdef^^b8{\cedilla\ } + \gdef^^b9{$^1$} + \gdef^^ba{\ordm} + % + \gdef^^bb{\missingcharmsg{RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK}} + \gdef^^bc{$1\over4$} + \gdef^^bd{$1\over2$} + \gdef^^be{$3\over4$} + \gdef^^bf{\questiondown} + % + \gdef^^c0{\`A} + \gdef^^c1{\'A} + \gdef^^c2{\^A} + \gdef^^c3{\~A} + \gdef^^c4{\"A} + \gdef^^c5{\ringaccent A} + \gdef^^c6{\AE} + \gdef^^c7{\cedilla C} + \gdef^^c8{\`E} + \gdef^^c9{\'E} + \gdef^^ca{\^E} + \gdef^^cb{\"E} + \gdef^^cc{\`I} + \gdef^^cd{\'I} + \gdef^^ce{\^I} + \gdef^^cf{\"I} + % + \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER ETH}} + \gdef^^d1{\~N} + \gdef^^d2{\`O} + \gdef^^d3{\'O} + \gdef^^d4{\^O} + \gdef^^d5{\~O} + \gdef^^d6{\"O} + \gdef^^d7{$\times$} + \gdef^^d8{\O} + \gdef^^d9{\`U} + \gdef^^da{\'U} + \gdef^^db{\^U} + \gdef^^dc{\"U} + \gdef^^dd{\'Y} + \gdef^^de{\missingcharmsg{LATIN CAPITAL LETTER THORN}} + \gdef^^df{\ss} + % + \gdef^^e0{\`a} + \gdef^^e1{\'a} + \gdef^^e2{\^a} + \gdef^^e3{\~a} + \gdef^^e4{\"a} + \gdef^^e5{\ringaccent a} + \gdef^^e6{\ae} + \gdef^^e7{\cedilla c} + \gdef^^e8{\`e} + \gdef^^e9{\'e} + \gdef^^ea{\^e} + \gdef^^eb{\"e} + \gdef^^ec{\`{\dotless i}} + \gdef^^ed{\'{\dotless i}} + \gdef^^ee{\^{\dotless i}} + \gdef^^ef{\"{\dotless i}} + % + \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER ETH}} + \gdef^^f1{\~n} + \gdef^^f2{\`o} + \gdef^^f3{\'o} + \gdef^^f4{\^o} + \gdef^^f5{\~o} + \gdef^^f6{\"o} + \gdef^^f7{$\div$} + \gdef^^f8{\o} + \gdef^^f9{\`u} + \gdef^^fa{\'u} + \gdef^^fb{\^u} + \gdef^^fc{\"u} + \gdef^^fd{\'y} + \gdef^^fe{\missingcharmsg{LATIN SMALL LETTER THORN}} + \gdef^^ff{\"y} +} + +% Latin9 (ISO-8859-15) encoding character definitions. +\def\latninechardefs{% + % Encoding is almost identical to Latin1. + \latonechardefs + % + \gdef^^a4{\euro} + \gdef^^a6{\v S} + \gdef^^a8{\v s} + \gdef^^b4{\v Z} + \gdef^^b8{\v z} + \gdef^^bc{\OE} + \gdef^^bd{\oe} + \gdef^^be{\"Y} +} + +% Latin2 (ISO-8859-2) character definitions. +\def\lattwochardefs{% + \gdef^^a0{~} + \gdef^^a1{\missingcharmsg{LATIN CAPITAL LETTER A WITH OGONEK}} + \gdef^^a2{\u{}} + \gdef^^a3{\L} + \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} + \gdef^^a5{\v L} + \gdef^^a6{\'S} + \gdef^^a7{\S} + \gdef^^a8{\"{}} + \gdef^^a9{\v S} + \gdef^^aa{\cedilla S} + \gdef^^ab{\v T} + \gdef^^ac{\'Z} + \gdef^^ad{\-} + \gdef^^ae{\v Z} + \gdef^^af{\dotaccent Z} + % + \gdef^^b0{\textdegree} + \gdef^^b1{\missingcharmsg{LATIN SMALL LETTER A WITH OGONEK}} + \gdef^^b2{\missingcharmsg{OGONEK}} + \gdef^^b3{\l} + \gdef^^b4{\'{}} + \gdef^^b5{\v l} + \gdef^^b6{\'s} + \gdef^^b7{\v{}} + \gdef^^b8{\cedilla\ } + \gdef^^b9{\v s} + \gdef^^ba{\cedilla s} + \gdef^^bb{\v t} + \gdef^^bc{\'z} + \gdef^^bd{\H{}} + \gdef^^be{\v z} + \gdef^^bf{\dotaccent z} + % + \gdef^^c0{\'R} + \gdef^^c1{\'A} + \gdef^^c2{\^A} + \gdef^^c3{\u A} + \gdef^^c4{\"A} + \gdef^^c5{\'L} + \gdef^^c6{\'C} + \gdef^^c7{\cedilla C} + \gdef^^c8{\v C} + \gdef^^c9{\'E} + \gdef^^ca{\missingcharmsg{LATIN CAPITAL LETTER E WITH OGONEK}} + \gdef^^cb{\"E} + \gdef^^cc{\v E} + \gdef^^cd{\'I} + \gdef^^ce{\^I} + \gdef^^cf{\v D} + % + \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER D WITH STROKE}} + \gdef^^d1{\'N} + \gdef^^d2{\v N} + \gdef^^d3{\'O} + \gdef^^d4{\^O} + \gdef^^d5{\H O} + \gdef^^d6{\"O} + \gdef^^d7{$\times$} + \gdef^^d8{\v R} + \gdef^^d9{\ringaccent U} + \gdef^^da{\'U} + \gdef^^db{\H U} + \gdef^^dc{\"U} + \gdef^^dd{\'Y} + \gdef^^de{\cedilla T} + \gdef^^df{\ss} + % + \gdef^^e0{\'r} + \gdef^^e1{\'a} + \gdef^^e2{\^a} + \gdef^^e3{\u a} + \gdef^^e4{\"a} + \gdef^^e5{\'l} + \gdef^^e6{\'c} + \gdef^^e7{\cedilla c} + \gdef^^e8{\v c} + \gdef^^e9{\'e} + \gdef^^ea{\missingcharmsg{LATIN SMALL LETTER E WITH OGONEK}} + \gdef^^eb{\"e} + \gdef^^ec{\v e} + \gdef^^ed{\'\i} + \gdef^^ee{\^\i} + \gdef^^ef{\v d} + % + \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER D WITH STROKE}} + \gdef^^f1{\'n} + \gdef^^f2{\v n} + \gdef^^f3{\'o} + \gdef^^f4{\^o} + \gdef^^f5{\H o} + \gdef^^f6{\"o} + \gdef^^f7{$\div$} + \gdef^^f8{\v r} + \gdef^^f9{\ringaccent u} + \gdef^^fa{\'u} + \gdef^^fb{\H u} + \gdef^^fc{\"u} + \gdef^^fd{\'y} + \gdef^^fe{\cedilla t} + \gdef^^ff{\dotaccent{}} +} + +% UTF-8 character definitions. +% +% This code to support UTF-8 is based on LaTeX's utf8.def, with some +% changes for Texinfo conventions. It is included here under the GPL by +% permission from Frank Mittelbach and the LaTeX team. +% +\newcount\countUTFx +\newcount\countUTFy +\newcount\countUTFz + +\gdef\UTFviiiTwoOctets#1#2{\expandafter + \UTFviiiDefined\csname u8:#1\string #2\endcsname} +% +\gdef\UTFviiiThreeOctets#1#2#3{\expandafter + \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname} % +\gdef\UTFviiiFourOctets#1#2#3#4{\expandafter + \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname} + +\gdef\UTFviiiDefined#1{% + \ifx #1\relax + \message{\linenumber Unicode char \string #1 not defined for Texinfo}% + \else + \expandafter #1% + \fi +} + +\begingroup + \catcode`\~13 + \catcode`\"12 + + \def\UTFviiiLoop{% + \global\catcode\countUTFx\active + \uccode`\~\countUTFx + \uppercase\expandafter{\UTFviiiTmp}% + \advance\countUTFx by 1 + \ifnum\countUTFx < \countUTFy + \expandafter\UTFviiiLoop + \fi} + + \countUTFx = "C2 + \countUTFy = "E0 + \def\UTFviiiTmp{% + \xdef~{\noexpand\UTFviiiTwoOctets\string~}} + \UTFviiiLoop + + \countUTFx = "E0 + \countUTFy = "F0 + \def\UTFviiiTmp{% + \xdef~{\noexpand\UTFviiiThreeOctets\string~}} + \UTFviiiLoop + + \countUTFx = "F0 + \countUTFy = "F4 + \def\UTFviiiTmp{% + \xdef~{\noexpand\UTFviiiFourOctets\string~}} + \UTFviiiLoop +\endgroup + +\begingroup + \catcode`\"=12 + \catcode`\<=12 + \catcode`\.=12 + \catcode`\,=12 + \catcode`\;=12 + \catcode`\!=12 + \catcode`\~=13 + + \gdef\DeclareUnicodeCharacter#1#2{% + \countUTFz = "#1\relax + \wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}% + \begingroup + \parseXMLCharref + \def\UTFviiiTwoOctets##1##2{% + \csname u8:##1\string ##2\endcsname}% + \def\UTFviiiThreeOctets##1##2##3{% + \csname u8:##1\string ##2\string ##3\endcsname}% + \def\UTFviiiFourOctets##1##2##3##4{% + \csname u8:##1\string ##2\string ##3\string ##4\endcsname}% + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter + \gdef\UTFviiiTmp{#2}% + \endgroup} + + \gdef\parseXMLCharref{% + \ifnum\countUTFz < "A0\relax + \errhelp = \EMsimple + \errmessage{Cannot define Unicode char value < 00A0}% + \else\ifnum\countUTFz < "800\relax + \parseUTFviiiA,% + \parseUTFviiiB C\UTFviiiTwoOctets.,% + \else\ifnum\countUTFz < "10000\relax + \parseUTFviiiA;% + \parseUTFviiiA,% + \parseUTFviiiB E\UTFviiiThreeOctets.{,;}% + \else + \parseUTFviiiA;% + \parseUTFviiiA,% + \parseUTFviiiA!% + \parseUTFviiiB F\UTFviiiFourOctets.{!,;}% + \fi\fi\fi + } + + \gdef\parseUTFviiiA#1{% + \countUTFx = \countUTFz + \divide\countUTFz by 64 + \countUTFy = \countUTFz + \multiply\countUTFz by 64 + \advance\countUTFx by -\countUTFz + \advance\countUTFx by 128 + \uccode `#1\countUTFx + \countUTFz = \countUTFy} + + \gdef\parseUTFviiiB#1#2#3#4{% + \advance\countUTFz by "#10\relax + \uccode `#3\countUTFz + \uppercase{\gdef\UTFviiiTmp{#2#3#4}}} +\endgroup + +\def\utfeightchardefs{% + \DeclareUnicodeCharacter{00A0}{\tie} + \DeclareUnicodeCharacter{00A1}{\exclamdown} + \DeclareUnicodeCharacter{00A3}{\pounds} + \DeclareUnicodeCharacter{00A8}{\"{ }} + \DeclareUnicodeCharacter{00A9}{\copyright} + \DeclareUnicodeCharacter{00AA}{\ordf} + \DeclareUnicodeCharacter{00AB}{\guillemetleft} + \DeclareUnicodeCharacter{00AD}{\-} + \DeclareUnicodeCharacter{00AE}{\registeredsymbol} + \DeclareUnicodeCharacter{00AF}{\={ }} + + \DeclareUnicodeCharacter{00B0}{\ringaccent{ }} + \DeclareUnicodeCharacter{00B4}{\'{ }} + \DeclareUnicodeCharacter{00B8}{\cedilla{ }} + \DeclareUnicodeCharacter{00BA}{\ordm} + \DeclareUnicodeCharacter{00BB}{\guillemetright} + \DeclareUnicodeCharacter{00BF}{\questiondown} + + \DeclareUnicodeCharacter{00C0}{\`A} + \DeclareUnicodeCharacter{00C1}{\'A} + \DeclareUnicodeCharacter{00C2}{\^A} + \DeclareUnicodeCharacter{00C3}{\~A} + \DeclareUnicodeCharacter{00C4}{\"A} + \DeclareUnicodeCharacter{00C5}{\AA} + \DeclareUnicodeCharacter{00C6}{\AE} + \DeclareUnicodeCharacter{00C7}{\cedilla{C}} + \DeclareUnicodeCharacter{00C8}{\`E} + \DeclareUnicodeCharacter{00C9}{\'E} + \DeclareUnicodeCharacter{00CA}{\^E} + \DeclareUnicodeCharacter{00CB}{\"E} + \DeclareUnicodeCharacter{00CC}{\`I} + \DeclareUnicodeCharacter{00CD}{\'I} + \DeclareUnicodeCharacter{00CE}{\^I} + \DeclareUnicodeCharacter{00CF}{\"I} + + \DeclareUnicodeCharacter{00D1}{\~N} + \DeclareUnicodeCharacter{00D2}{\`O} + \DeclareUnicodeCharacter{00D3}{\'O} + \DeclareUnicodeCharacter{00D4}{\^O} + \DeclareUnicodeCharacter{00D5}{\~O} + \DeclareUnicodeCharacter{00D6}{\"O} + \DeclareUnicodeCharacter{00D8}{\O} + \DeclareUnicodeCharacter{00D9}{\`U} + \DeclareUnicodeCharacter{00DA}{\'U} + \DeclareUnicodeCharacter{00DB}{\^U} + \DeclareUnicodeCharacter{00DC}{\"U} + \DeclareUnicodeCharacter{00DD}{\'Y} + \DeclareUnicodeCharacter{00DF}{\ss} + + \DeclareUnicodeCharacter{00E0}{\`a} + \DeclareUnicodeCharacter{00E1}{\'a} + \DeclareUnicodeCharacter{00E2}{\^a} + \DeclareUnicodeCharacter{00E3}{\~a} + \DeclareUnicodeCharacter{00E4}{\"a} + \DeclareUnicodeCharacter{00E5}{\aa} + \DeclareUnicodeCharacter{00E6}{\ae} + \DeclareUnicodeCharacter{00E7}{\cedilla{c}} + \DeclareUnicodeCharacter{00E8}{\`e} + \DeclareUnicodeCharacter{00E9}{\'e} + \DeclareUnicodeCharacter{00EA}{\^e} + \DeclareUnicodeCharacter{00EB}{\"e} + \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}} + \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}} + \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}} + \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}} + + \DeclareUnicodeCharacter{00F1}{\~n} + \DeclareUnicodeCharacter{00F2}{\`o} + \DeclareUnicodeCharacter{00F3}{\'o} + \DeclareUnicodeCharacter{00F4}{\^o} + \DeclareUnicodeCharacter{00F5}{\~o} + \DeclareUnicodeCharacter{00F6}{\"o} + \DeclareUnicodeCharacter{00F8}{\o} + \DeclareUnicodeCharacter{00F9}{\`u} + \DeclareUnicodeCharacter{00FA}{\'u} + \DeclareUnicodeCharacter{00FB}{\^u} + \DeclareUnicodeCharacter{00FC}{\"u} + \DeclareUnicodeCharacter{00FD}{\'y} + \DeclareUnicodeCharacter{00FF}{\"y} + + \DeclareUnicodeCharacter{0100}{\=A} + \DeclareUnicodeCharacter{0101}{\=a} + \DeclareUnicodeCharacter{0102}{\u{A}} + \DeclareUnicodeCharacter{0103}{\u{a}} + \DeclareUnicodeCharacter{0106}{\'C} + \DeclareUnicodeCharacter{0107}{\'c} + \DeclareUnicodeCharacter{0108}{\^C} + \DeclareUnicodeCharacter{0109}{\^c} + \DeclareUnicodeCharacter{010A}{\dotaccent{C}} + \DeclareUnicodeCharacter{010B}{\dotaccent{c}} + \DeclareUnicodeCharacter{010C}{\v{C}} + \DeclareUnicodeCharacter{010D}{\v{c}} + \DeclareUnicodeCharacter{010E}{\v{D}} + + \DeclareUnicodeCharacter{0112}{\=E} + \DeclareUnicodeCharacter{0113}{\=e} + \DeclareUnicodeCharacter{0114}{\u{E}} + \DeclareUnicodeCharacter{0115}{\u{e}} + \DeclareUnicodeCharacter{0116}{\dotaccent{E}} + \DeclareUnicodeCharacter{0117}{\dotaccent{e}} + \DeclareUnicodeCharacter{011A}{\v{E}} + \DeclareUnicodeCharacter{011B}{\v{e}} + \DeclareUnicodeCharacter{011C}{\^G} + \DeclareUnicodeCharacter{011D}{\^g} + \DeclareUnicodeCharacter{011E}{\u{G}} + \DeclareUnicodeCharacter{011F}{\u{g}} + + \DeclareUnicodeCharacter{0120}{\dotaccent{G}} + \DeclareUnicodeCharacter{0121}{\dotaccent{g}} + \DeclareUnicodeCharacter{0124}{\^H} + \DeclareUnicodeCharacter{0125}{\^h} + \DeclareUnicodeCharacter{0128}{\~I} + \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}} + \DeclareUnicodeCharacter{012A}{\=I} + \DeclareUnicodeCharacter{012B}{\={\dotless{i}}} + \DeclareUnicodeCharacter{012C}{\u{I}} + \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}} + + \DeclareUnicodeCharacter{0130}{\dotaccent{I}} + \DeclareUnicodeCharacter{0131}{\dotless{i}} + \DeclareUnicodeCharacter{0132}{IJ} + \DeclareUnicodeCharacter{0133}{ij} + \DeclareUnicodeCharacter{0134}{\^J} + \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}} + \DeclareUnicodeCharacter{0139}{\'L} + \DeclareUnicodeCharacter{013A}{\'l} + + \DeclareUnicodeCharacter{0141}{\L} + \DeclareUnicodeCharacter{0142}{\l} + \DeclareUnicodeCharacter{0143}{\'N} + \DeclareUnicodeCharacter{0144}{\'n} + \DeclareUnicodeCharacter{0147}{\v{N}} + \DeclareUnicodeCharacter{0148}{\v{n}} + \DeclareUnicodeCharacter{014C}{\=O} + \DeclareUnicodeCharacter{014D}{\=o} + \DeclareUnicodeCharacter{014E}{\u{O}} + \DeclareUnicodeCharacter{014F}{\u{o}} + + \DeclareUnicodeCharacter{0150}{\H{O}} + \DeclareUnicodeCharacter{0151}{\H{o}} + \DeclareUnicodeCharacter{0152}{\OE} + \DeclareUnicodeCharacter{0153}{\oe} + \DeclareUnicodeCharacter{0154}{\'R} + \DeclareUnicodeCharacter{0155}{\'r} + \DeclareUnicodeCharacter{0158}{\v{R}} + \DeclareUnicodeCharacter{0159}{\v{r}} + \DeclareUnicodeCharacter{015A}{\'S} + \DeclareUnicodeCharacter{015B}{\'s} + \DeclareUnicodeCharacter{015C}{\^S} + \DeclareUnicodeCharacter{015D}{\^s} + \DeclareUnicodeCharacter{015E}{\cedilla{S}} + \DeclareUnicodeCharacter{015F}{\cedilla{s}} + + \DeclareUnicodeCharacter{0160}{\v{S}} + \DeclareUnicodeCharacter{0161}{\v{s}} + \DeclareUnicodeCharacter{0162}{\cedilla{t}} + \DeclareUnicodeCharacter{0163}{\cedilla{T}} + \DeclareUnicodeCharacter{0164}{\v{T}} + + \DeclareUnicodeCharacter{0168}{\~U} + \DeclareUnicodeCharacter{0169}{\~u} + \DeclareUnicodeCharacter{016A}{\=U} + \DeclareUnicodeCharacter{016B}{\=u} + \DeclareUnicodeCharacter{016C}{\u{U}} + \DeclareUnicodeCharacter{016D}{\u{u}} + \DeclareUnicodeCharacter{016E}{\ringaccent{U}} + \DeclareUnicodeCharacter{016F}{\ringaccent{u}} + + \DeclareUnicodeCharacter{0170}{\H{U}} + \DeclareUnicodeCharacter{0171}{\H{u}} + \DeclareUnicodeCharacter{0174}{\^W} + \DeclareUnicodeCharacter{0175}{\^w} + \DeclareUnicodeCharacter{0176}{\^Y} + \DeclareUnicodeCharacter{0177}{\^y} + \DeclareUnicodeCharacter{0178}{\"Y} + \DeclareUnicodeCharacter{0179}{\'Z} + \DeclareUnicodeCharacter{017A}{\'z} + \DeclareUnicodeCharacter{017B}{\dotaccent{Z}} + \DeclareUnicodeCharacter{017C}{\dotaccent{z}} + \DeclareUnicodeCharacter{017D}{\v{Z}} + \DeclareUnicodeCharacter{017E}{\v{z}} + + \DeclareUnicodeCharacter{01C4}{D\v{Z}} + \DeclareUnicodeCharacter{01C5}{D\v{z}} + \DeclareUnicodeCharacter{01C6}{d\v{z}} + \DeclareUnicodeCharacter{01C7}{LJ} + \DeclareUnicodeCharacter{01C8}{Lj} + \DeclareUnicodeCharacter{01C9}{lj} + \DeclareUnicodeCharacter{01CA}{NJ} + \DeclareUnicodeCharacter{01CB}{Nj} + \DeclareUnicodeCharacter{01CC}{nj} + \DeclareUnicodeCharacter{01CD}{\v{A}} + \DeclareUnicodeCharacter{01CE}{\v{a}} + \DeclareUnicodeCharacter{01CF}{\v{I}} + + \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}} + \DeclareUnicodeCharacter{01D1}{\v{O}} + \DeclareUnicodeCharacter{01D2}{\v{o}} + \DeclareUnicodeCharacter{01D3}{\v{U}} + \DeclareUnicodeCharacter{01D4}{\v{u}} + + \DeclareUnicodeCharacter{01E2}{\={\AE}} + \DeclareUnicodeCharacter{01E3}{\={\ae}} + \DeclareUnicodeCharacter{01E6}{\v{G}} + \DeclareUnicodeCharacter{01E7}{\v{g}} + \DeclareUnicodeCharacter{01E8}{\v{K}} + \DeclareUnicodeCharacter{01E9}{\v{k}} + + \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}} + \DeclareUnicodeCharacter{01F1}{DZ} + \DeclareUnicodeCharacter{01F2}{Dz} + \DeclareUnicodeCharacter{01F3}{dz} + \DeclareUnicodeCharacter{01F4}{\'G} + \DeclareUnicodeCharacter{01F5}{\'g} + \DeclareUnicodeCharacter{01F8}{\`N} + \DeclareUnicodeCharacter{01F9}{\`n} + \DeclareUnicodeCharacter{01FC}{\'{\AE}} + \DeclareUnicodeCharacter{01FD}{\'{\ae}} + \DeclareUnicodeCharacter{01FE}{\'{\O}} + \DeclareUnicodeCharacter{01FF}{\'{\o}} + + \DeclareUnicodeCharacter{021E}{\v{H}} + \DeclareUnicodeCharacter{021F}{\v{h}} + + \DeclareUnicodeCharacter{0226}{\dotaccent{A}} + \DeclareUnicodeCharacter{0227}{\dotaccent{a}} + \DeclareUnicodeCharacter{0228}{\cedilla{E}} + \DeclareUnicodeCharacter{0229}{\cedilla{e}} + \DeclareUnicodeCharacter{022E}{\dotaccent{O}} + \DeclareUnicodeCharacter{022F}{\dotaccent{o}} + + \DeclareUnicodeCharacter{0232}{\=Y} + \DeclareUnicodeCharacter{0233}{\=y} + \DeclareUnicodeCharacter{0237}{\dotless{j}} + + \DeclareUnicodeCharacter{1E02}{\dotaccent{B}} + \DeclareUnicodeCharacter{1E03}{\dotaccent{b}} + \DeclareUnicodeCharacter{1E04}{\udotaccent{B}} + \DeclareUnicodeCharacter{1E05}{\udotaccent{b}} + \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}} + \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}} + \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}} + \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}} + \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}} + \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}} + \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}} + \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}} + + \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}} + \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}} + + \DeclareUnicodeCharacter{1E20}{\=G} + \DeclareUnicodeCharacter{1E21}{\=g} + \DeclareUnicodeCharacter{1E22}{\dotaccent{H}} + \DeclareUnicodeCharacter{1E23}{\dotaccent{h}} + \DeclareUnicodeCharacter{1E24}{\udotaccent{H}} + \DeclareUnicodeCharacter{1E25}{\udotaccent{h}} + \DeclareUnicodeCharacter{1E26}{\"H} + \DeclareUnicodeCharacter{1E27}{\"h} + + \DeclareUnicodeCharacter{1E30}{\'K} + \DeclareUnicodeCharacter{1E31}{\'k} + \DeclareUnicodeCharacter{1E32}{\udotaccent{K}} + \DeclareUnicodeCharacter{1E33}{\udotaccent{k}} + \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}} + \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}} + \DeclareUnicodeCharacter{1E36}{\udotaccent{L}} + \DeclareUnicodeCharacter{1E37}{\udotaccent{l}} + \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}} + \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}} + \DeclareUnicodeCharacter{1E3E}{\'M} + \DeclareUnicodeCharacter{1E3F}{\'m} + + \DeclareUnicodeCharacter{1E40}{\dotaccent{M}} + \DeclareUnicodeCharacter{1E41}{\dotaccent{m}} + \DeclareUnicodeCharacter{1E42}{\udotaccent{M}} + \DeclareUnicodeCharacter{1E43}{\udotaccent{m}} + \DeclareUnicodeCharacter{1E44}{\dotaccent{N}} + \DeclareUnicodeCharacter{1E45}{\dotaccent{n}} + \DeclareUnicodeCharacter{1E46}{\udotaccent{N}} + \DeclareUnicodeCharacter{1E47}{\udotaccent{n}} + \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}} + \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}} + + \DeclareUnicodeCharacter{1E54}{\'P} + \DeclareUnicodeCharacter{1E55}{\'p} + \DeclareUnicodeCharacter{1E56}{\dotaccent{P}} + \DeclareUnicodeCharacter{1E57}{\dotaccent{p}} + \DeclareUnicodeCharacter{1E58}{\dotaccent{R}} + \DeclareUnicodeCharacter{1E59}{\dotaccent{r}} + \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}} + \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}} + \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}} + \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}} + + \DeclareUnicodeCharacter{1E60}{\dotaccent{S}} + \DeclareUnicodeCharacter{1E61}{\dotaccent{s}} + \DeclareUnicodeCharacter{1E62}{\udotaccent{S}} + \DeclareUnicodeCharacter{1E63}{\udotaccent{s}} + \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}} + \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}} + \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}} + \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}} + \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}} + \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}} + + \DeclareUnicodeCharacter{1E7C}{\~V} + \DeclareUnicodeCharacter{1E7D}{\~v} + \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}} + \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}} + + \DeclareUnicodeCharacter{1E80}{\`W} + \DeclareUnicodeCharacter{1E81}{\`w} + \DeclareUnicodeCharacter{1E82}{\'W} + \DeclareUnicodeCharacter{1E83}{\'w} + \DeclareUnicodeCharacter{1E84}{\"W} + \DeclareUnicodeCharacter{1E85}{\"w} + \DeclareUnicodeCharacter{1E86}{\dotaccent{W}} + \DeclareUnicodeCharacter{1E87}{\dotaccent{w}} + \DeclareUnicodeCharacter{1E88}{\udotaccent{W}} + \DeclareUnicodeCharacter{1E89}{\udotaccent{w}} + \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}} + \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}} + \DeclareUnicodeCharacter{1E8C}{\"X} + \DeclareUnicodeCharacter{1E8D}{\"x} + \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}} + \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}} + + \DeclareUnicodeCharacter{1E90}{\^Z} + \DeclareUnicodeCharacter{1E91}{\^z} + \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}} + \DeclareUnicodeCharacter{1E93}{\udotaccent{z}} + \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}} + \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}} + \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}} + \DeclareUnicodeCharacter{1E97}{\"t} + \DeclareUnicodeCharacter{1E98}{\ringaccent{w}} + \DeclareUnicodeCharacter{1E99}{\ringaccent{y}} + + \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}} + \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}} + + \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}} + \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}} + \DeclareUnicodeCharacter{1EBC}{\~E} + \DeclareUnicodeCharacter{1EBD}{\~e} + + \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}} + \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}} + \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}} + \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}} + + \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}} + \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}} + + \DeclareUnicodeCharacter{1EF2}{\`Y} + \DeclareUnicodeCharacter{1EF3}{\`y} + \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}} + + \DeclareUnicodeCharacter{1EF8}{\~Y} + \DeclareUnicodeCharacter{1EF9}{\~y} + + \DeclareUnicodeCharacter{2013}{--} + \DeclareUnicodeCharacter{2014}{---} + \DeclareUnicodeCharacter{2018}{\quoteleft} + \DeclareUnicodeCharacter{2019}{\quoteright} + \DeclareUnicodeCharacter{201A}{\quotesinglbase} + \DeclareUnicodeCharacter{201C}{\quotedblleft} + \DeclareUnicodeCharacter{201D}{\quotedblright} + \DeclareUnicodeCharacter{201E}{\quotedblbase} + \DeclareUnicodeCharacter{2022}{\bullet} + \DeclareUnicodeCharacter{2026}{\dots} + \DeclareUnicodeCharacter{2039}{\guilsinglleft} + \DeclareUnicodeCharacter{203A}{\guilsinglright} + \DeclareUnicodeCharacter{20AC}{\euro} + + \DeclareUnicodeCharacter{2192}{\expansion} + \DeclareUnicodeCharacter{21D2}{\result} + + \DeclareUnicodeCharacter{2212}{\minus} + \DeclareUnicodeCharacter{2217}{\point} + \DeclareUnicodeCharacter{2261}{\equiv} +}% end of \utfeightchardefs + + +% US-ASCII character definitions. +\def\asciichardefs{% nothing need be done + \relax +} + +% Make non-ASCII characters printable again for compatibility with +% existing Texinfo documents that may use them, even without declaring a +% document encoding. +% +\setnonasciicharscatcode \other + + +\message{formatting,} + \newdimen\defaultparindent \defaultparindent = 15pt \chapheadingskip = 15pt plus 4pt minus 2pt @@ -6736,7 +8583,7 @@ % Don't be so finicky about underfull hboxes, either. \hbadness = 2000 -% Following George Bush, just get rid of widows and orphans. +% Following George Bush, get rid of widows and orphans. \widowpenalty=10000 \clubpenalty=10000 @@ -6754,9 +8601,9 @@ \fi } -% Parameters in order: 1) textheight; 2) textwidth; 3) voffset; -% 4) hoffset; 5) binding offset; 6) topskip; 7) physical page height; 8) -% physical page width. +% Parameters in order: 1) textheight; 2) textwidth; +% 3) voffset; 4) hoffset; 5) binding offset; 6) topskip; +% 7) physical page height; 8) physical page width. % % We also call \setleading{\textleading}, so the caller should define % \textleading. The caller should also set \parskip. @@ -6783,6 +8630,10 @@ \ifpdf \pdfpageheight #7\relax \pdfpagewidth #8\relax + % if we don't reset these, they will remain at "1 true in" of + % whatever layout pdftex was dumped with. + \pdfhorigin = 1 true in + \pdfvorigin = 1 true in \fi % \setleading{\textleading} @@ -6797,19 +8648,19 @@ \textleading = 13.2pt % % If page is nothing but text, make it come out even. - \internalpagesizes{46\baselineskip}{6in}% + \internalpagesizes{607.2pt}{6in}% that's 46 lines {\voffset}{.25in}% {\bindingoffset}{36pt}% {11in}{8.5in}% }} -% Use @smallbook to reset parameters for 7x9.5 (or so) format. +% Use @smallbook to reset parameters for 7x9.25 trim size. \def\smallbook{{\globaldefs = 1 \parskip = 2pt plus 1pt \textleading = 12pt % \internalpagesizes{7.5in}{5in}% - {\voffset}{.25in}% + {-.2in}{0in}% {\bindingoffset}{16pt}% {9.25in}{7in}% % @@ -6820,6 +8671,24 @@ \defbodyindent = .5cm }} +% Use @smallerbook to reset parameters for 6x9 trim size. +% (Just testing, parameters still in flux.) +\def\smallerbook{{\globaldefs = 1 + \parskip = 1.5pt plus 1pt + \textleading = 12pt + % + \internalpagesizes{7.4in}{4.8in}% + {-.2in}{-.4in}% + {0pt}{14pt}% + {9in}{6in}% + % + \lispnarrowing = 0.25in + \tolerance = 700 + \hfuzz = 1pt + \contentsrightmargin = 0pt + \defbodyindent = .4cm +}} + % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt @@ -6835,7 +8704,7 @@ % \global\normaloffset = -6mm % \global\bindingoffset = 10mm % @end tex - \internalpagesizes{51\baselineskip}{160mm} + \internalpagesizes{673.2pt}{160mm}% that's 51 lines {\voffset}{\hoffset}% {\bindingoffset}{44pt}% {297mm}{210mm}% @@ -6900,7 +8769,7 @@ \parskip = 3pt plus 2pt minus 1pt \setleading{\textleading}% % - \dimen0 = #1 + \dimen0 = #1\relax \advance\dimen0 by \voffset % \dimen2 = \hsize @@ -6972,6 +8841,7 @@ \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} +\let\realunder=_ % Subroutine for the previous macro. \def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em } @@ -6994,6 +8864,13 @@ % \otherifyactive is called near the end of this file. \def\otherifyactive{\catcode`+=\other \catcode`\_=\other} +% Used sometimes to turn off (effectively) the active characters even after +% parsing them. +\def\turnoffactive{% + \normalturnoffactive + \otherbackslash +} + \catcode`\@=0 % \backslashcurfont outputs one backslash character in current font, @@ -7001,27 +8878,29 @@ \global\chardef\backslashcurfont=`\\ \global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work +% \realbackslash is an actual character `\' with catcode other, and +% \doublebackslash is two of them (for the pdf outlines). +{\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}} + +% In texinfo, backslash is an active character; it prints the backslash +% in fixed width font. +\catcode`\\=\active +@def@normalbackslash{{@tt@backslashcurfont}} +% On startup, @fixbackslash assigns: +% @let \ = @normalbackslash + % \rawbackslash defines an active \ to do \backslashcurfont. % \otherbackslash defines an active \ to be a literal `\' character with % catcode other. -{\catcode`\\=\active - @gdef@rawbackslash{@let\=@backslashcurfont} - @gdef@otherbackslash{@let\=@realbackslash} -} - -% \realbackslash is an actual character `\' with catcode other. -{\catcode`\\=\other @gdef@realbackslash{\}} - -% \normalbackslash outputs one backslash in fixed width font. -\def\normalbackslash{{\tt\backslashcurfont}} - -\catcode`\\=\active +@gdef@rawbackslash{@let\=@backslashcurfont} +@gdef@otherbackslash{@let\=@realbackslash} -% Used sometimes to turn off (effectively) the active characters -% even after parsing them. -@def@turnoffactive{% +% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of +% the literal character `\'. +% +@def@normalturnoffactive{% + @let\=@normalbackslash @let"=@normaldoublequote - @let\=@realbackslash @let~=@normaltilde @let^=@normalcaret @let_=@normalunderscore @@ -7033,12 +8912,6 @@ @unsepspaces } -% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of -% the literal character `\'. (Thus, \ is not expandable when this is in -% effect.) -% -@def@normalturnoffactive{@turnoffactive @let\=@normalbackslash} - % Make _ and + \other characters, temporarily. % This is canceled by @fixbackslash. @otherifyactive @@ -7051,9 +8924,9 @@ @global@let\ = @eatinput % On the other hand, perhaps the file did not have a `\input texinfo'. Then -% the first `\{ in the file would cause an error. This macro tries to fix +% the first `\' in the file would cause an error. This macro tries to fix % that, assuming it is called before the first `\' could plausibly occur. -% Also back turn on active characters that might appear in the input +% Also turn back on active characters that might appear in the input % file name, in case not using a pre-dumped format. % @gdef@fixbackslash{% diff -urN gawk-3.1.5/eval.c gawk-3.1.6/eval.c --- gawk-3.1.5/eval.c 2005-07-26 21:07:43.000000000 +0300 +++ gawk-3.1.6/eval.c 2007-08-11 22:39:49.000000000 +0300 @@ -3,14 +3,14 @@ */ /* - * Copyright (C) 1986, 1988, 1989, 1991-2005 the Free Software Foundation, Inc. + * Copyright (C) 1986, 1988, 1989, 1991-2007 the Free Software Foundation, Inc. * * This file is part of GAWK, the GNU implementation of the * AWK Programming Language. * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, @@ -748,7 +748,7 @@ * next. New ones catch it at parse time. Allow it if * do_traditional is on, and complain if lint. */ - static int warned = FALSE; + static short warned = FALSE; if (do_lint && ! warned) { lintwarn(_("`break' outside a loop is not portable")); @@ -769,7 +769,7 @@ * next. New ones catch it at parse time. Allow it if * do_traditional is on, and complain if lint. */ - static int warned = FALSE; + static short warned = FALSE; if (do_lint && ! warned) { lintwarn(_("`continue' outside a loop is not portable")); @@ -1176,6 +1176,7 @@ memcpy(l->stptr + l->stlen, r->stptr, r->stlen); l->stlen += r->stlen; l->stptr[l->stlen] = '\0'; + free_wstr(l); } else { char *nval; size_t nlen = l->stlen + r->stlen + 2; @@ -1186,6 +1187,7 @@ unref(*lhs); *lhs = make_str_node(nval, l->stlen + r->stlen, ALREADY_MALLOCED); } + (*lhs)->flags &= ~(NUMCUR|NUMBER); free_temp(r); if (after_assign) @@ -2116,7 +2118,7 @@ void set_IGNORECASE() { - static int warned = FALSE; + static short warned = FALSE; if ((do_lint || do_traditional) && ! warned) { warned = TRUE; @@ -2143,7 +2145,7 @@ void set_BINMODE() { - static int warned = FALSE; + static short warned = FALSE; char *p, *cp, save; NODE *v; int digits = FALSE; @@ -2167,7 +2169,7 @@ } } - if (! digits || (BINMODE_node->var_value->flags & MAYBE_NUM) == 0) { + if (! digits && (BINMODE_node->var_value->flags & MAYBE_NUM) == 0) { BINMODE = 0; if (strcmp(p, "r") == 0) BINMODE = 1; diff -urN gawk-3.1.5/eval_p.c gawk-3.1.6/eval_p.c --- gawk-3.1.5/eval_p.c 2005-05-11 18:28:15.000000000 +0300 +++ gawk-3.1.6/eval_p.c 2007-08-11 22:39:49.000000000 +0300 @@ -10,7 +10,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/ext.c gawk-3.1.6/ext.c --- gawk-3.1.5/ext.c 2005-07-26 21:23:55.000000000 +0300 +++ gawk-3.1.6/ext.c 2007-08-11 22:39:49.000000000 +0300 @@ -7,14 +7,14 @@ */ /* - * Copyright (C) 1995 - 2001, 2003-2005 the Free Software Foundation, Inc. + * Copyright (C) 1995 - 2001, 2003-2007 the Free Software Foundation, Inc. * * This file is part of GAWK, the GNU implementation of the * AWK Programming Language. * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, @@ -49,6 +49,7 @@ NODE *(*func) P((NODE *, void *)); void *dl; int flags = RTLD_LAZY; + static short warned = FALSE; #ifdef __GNUC__ AWKNUM junk; @@ -56,8 +57,10 @@ junk = (AWKNUM) dummy; #endif - if (do_lint) + if (do_lint && ! warned) { + warned = TRUE; lintwarn(_("`extension' is a gawk extension")); + } if (do_traditional || do_posix) { errcount++; diff -urN gawk-3.1.5/extension/ChangeLog gawk-3.1.6/extension/ChangeLog --- gawk-3.1.5/extension/ChangeLog 2005-07-26 21:46:47.000000000 +0300 +++ gawk-3.1.6/extension/ChangeLog 2007-10-22 08:49:46.000000000 +0200 @@ -1,3 +1,7 @@ +Mon Oct 22 08:49:05 2007 Arnold D. Robbins + + * Release 3.1.6: Release tar file made. + Tue Jul 26 21:46:16 2005 Arnold D. Robbins * Release 3.1.5: Release tar file made. diff -urN gawk-3.1.5/extension/arrayparm.c gawk-3.1.6/extension/arrayparm.c --- gawk-3.1.5/extension/arrayparm.c 2005-05-11 18:28:15.000000000 +0300 +++ gawk-3.1.6/extension/arrayparm.c 2007-08-11 22:39:49.000000000 +0300 @@ -17,7 +17,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/extension/dl.c gawk-3.1.6/extension/dl.c --- gawk-3.1.5/extension/dl.c 2005-05-11 18:28:15.000000000 +0300 +++ gawk-3.1.6/extension/dl.c 2007-08-11 22:39:49.000000000 +0300 @@ -13,7 +13,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/extension/filefuncs.c gawk-3.1.6/extension/filefuncs.c --- gawk-3.1.5/extension/filefuncs.c 2005-07-26 21:07:43.000000000 +0300 +++ gawk-3.1.6/extension/filefuncs.c 2007-08-11 22:39:49.000000000 +0300 @@ -14,7 +14,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/extension/fork.c gawk-3.1.6/extension/fork.c --- gawk-3.1.5/extension/fork.c 2005-05-11 18:28:15.000000000 +0300 +++ gawk-3.1.6/extension/fork.c 2007-08-11 22:39:49.000000000 +0300 @@ -12,7 +12,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/extension/ordchr.c gawk-3.1.6/extension/ordchr.c --- gawk-3.1.5/extension/ordchr.c 2005-05-11 18:28:15.000000000 +0300 +++ gawk-3.1.6/extension/ordchr.c 2007-08-11 22:39:49.000000000 +0300 @@ -15,7 +15,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/extension/readfile.c gawk-3.1.6/extension/readfile.c --- gawk-3.1.5/extension/readfile.c 2005-05-11 18:28:15.000000000 +0300 +++ gawk-3.1.6/extension/readfile.c 2007-08-11 22:39:49.000000000 +0300 @@ -17,7 +17,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/field.c gawk-3.1.6/field.c --- gawk-3.1.5/field.c 2005-05-11 18:28:15.000000000 +0300 +++ gawk-3.1.6/field.c 2007-09-22 22:23:05.000000000 +0200 @@ -3,14 +3,14 @@ */ /* - * Copyright (C) 1986, 1988, 1989, 1991-2005 the Free Software Foundation, Inc. + * Copyright (C) 1986, 1988, 1989, 1991-2007 the Free Software Foundation, Inc. * * This file is part of GAWK, the GNU implementation of the * AWK Programming Language. * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, @@ -166,6 +166,7 @@ cops = ops; ops[0] = '\0'; for (i = 1; i <= NF; i++) { + free_wstr(fields_arr[i]); tmp = fields_arr[i]; /* copy field */ if (tmp->stlen == 1) @@ -212,6 +213,9 @@ n->stptr = cops; unref(fields_arr[i]); fields_arr[i] = n; +#ifdef MBS_SUPPORT + assert((n->flags & WSTRCUR) == 0); +#endif } cops += fields_arr[i]->stlen + ofslen; } @@ -897,7 +901,7 @@ char *end; register int i; static int fw_alloc = 4; - static int warned = FALSE; + static short warned = FALSE; extern unsigned long strtoul P((const char *, char **endptr, int base)); if (do_lint && ! warned) { @@ -916,13 +920,13 @@ parse_field = fw_parse_field; scan = force_string(FIELDWIDTHS_node->var_value)->stptr; - end = scan + 1; + if (FIELDWIDTHS == NULL) emalloc(FIELDWIDTHS, int *, fw_alloc * sizeof(int), "set_FIELDWIDTHS"); FIELDWIDTHS[0] = 0; for (i = 1; ; i++) { unsigned long int tmp; - if (i >= fw_alloc) { + if (i + 1 >= fw_alloc) { fw_alloc *= 2; erealloc(FIELDWIDTHS, int *, fw_alloc * sizeof(int), "set_FIELDWIDTHS"); } @@ -935,13 +939,16 @@ fatal(_("invalid FIELDWIDTHS value, near `%s'"), scan); + if (*scan == '\0') + break; + /* Detect an invalid base-10 integer, a valid value that is followed by something other than a blank or '\0', or a value that is not in the range [1..INT_MAX]. */ errno = 0; tmp = strtoul(scan, &end, 10); if (errno != 0 - || !(*end == '\0' || is_blank(*end)) + || (*end != '\0' && ! is_blank(*end)) || !(0 < tmp && tmp <= INT_MAX)) fatal(_("invalid FIELDWIDTHS value, near `%s'"), scan); @@ -954,7 +961,9 @@ if (*scan == '\0') break; } - FIELDWIDTHS[i] = -1; + if (i == 1) /* empty string! */ + i--; + FIELDWIDTHS[i+1] = -1; update_PROCINFO("FS", "FIELDWIDTHS"); } @@ -1027,6 +1036,8 @@ lintwarn(_("null string for `FS' is a gawk extension")); } } else if (fs->stlen > 1) { + if (do_lint_old) + warning(_("old awk does not support regexps as value of `FS'")); parse_field = re_parse_field; } else if (RS_is_null) { /* we know that fs->stlen <= 1 */ diff -urN gawk-3.1.5/floatcomp.c gawk-3.1.6/floatcomp.c --- gawk-3.1.5/floatcomp.c 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/floatcomp.c 2007-08-11 22:39:49.000000000 +0300 @@ -0,0 +1,124 @@ +/* + * floatcomp.c - Isolate floating point details. + */ + +/* + * Copyright (C) 1986, 1988, 1989, 1991-2007 the Free Software Foundation, Inc. + * + * This file is part of GAWK, the GNU implementation of the + * AWK Programming Language. + * + * GAWK 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. + * + * GAWK 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "awk.h" +#include + +/* Assume IEEE-754 arithmetic on pre-C89 hosts. */ +#ifndef FLT_RADIX +#define FLT_RADIX 2 +#endif +#ifndef FLT_MANT_DIG +#define FLT_MANT_DIG 24 +#endif +#ifndef DBL_MANT_DIG +#define DBL_MANT_DIG 53 +#endif + +/* + * The number of base-FLT_RADIX digits in an AWKNUM fraction, assuming + * that AWKNUM is not long double. + */ +#define AWKSMALL_MANT_DIG \ + (sizeof (AWKNUM) == sizeof (double) ? DBL_MANT_DIG : FLT_MANT_DIG) + +/* + * The number of base-FLT_DIGIT digits in an AWKNUM fraction, even if + * AWKNUM is long double. Don't mention 'long double' unless + * LDBL_MANT_DIG is defined, for the sake of ancient compilers that + * lack 'long double'. + */ +#ifdef LDBL_MANT_DIG +#define AWKNUM_MANT_DIG \ + (sizeof (AWKNUM) == sizeof (long double) ? LDBL_MANT_DIG : AWKSMALL_MANT_DIG) +#else +#define AWKNUM_MANT_DIG AWKSMALL_MANT_DIG +#endif + +/* + * The number of bits in an AWKNUM fraction, assuming FLT_RADIX is + * either 2 or 16. IEEE and VAX formats use radix 2, and IBM + * mainframe format uses radix 16; we know of no other radices in + * practical use. + */ +#if FLT_RADIX != 2 && FLT_RADIX != 16 +Please port the following code to your weird host; +#endif +#define AWKNUM_FRACTION_BITS (AWKNUM_MANT_DIG * (FLT_RADIX == 2 ? 1 : 4)) +#define DBL_FRACTION_BITS (DBL_MANT_DIG * (FLT_RADIX == 2 ? 1 : 4)) + +/* + * Floor and Ceil --- Work around a problem in conversion of + * doubles to exact integers. + */ + +/* Floor --- do floor(), also for Cray */ + +AWKNUM +Floor(AWKNUM n) +{ + return floor(n +#if 0 +#ifdef _CRAY + * (1.0 + DBL_EPSILON) +#endif +#endif + ); +} + +/* Ceil --- do ceil(), also for Cray */ + +AWKNUM +Ceil(AWKNUM n) +{ + return ceil(n +#if 0 +#ifdef _CRAY + * (1.0 + DBL_EPSILON) +#endif +#endif + ); +} + +#ifdef HAVE_UINTMAX_T +/* adjust_uint --- fiddle with values, ask Paul Eggert to explain */ + +uintmax_t +adjust_uint(uintmax_t n) +{ + /* + * If uintmax_t is so wide that AWKNUM cannot represent all its + * values, strip leading nonzero bits of integers that are so large + * that they cannot be represented exactly as AWKNUMs, so that their + * low order bits are represented exactly, without rounding errors. + * This is more desirable in practice, since it means the user sees + * integers that are the same width as the AWKNUM fractions. + */ + if (AWKNUM_FRACTION_BITS < CHAR_BIT * sizeof n) + n &= ((uintmax_t) 1 << AWKNUM_FRACTION_BITS) - 1; + + return n; +} +#endif /* HAVE_UINTMAX_T */ diff -urN gawk-3.1.5/gawkmisc.c gawk-3.1.6/gawkmisc.c --- gawk-3.1.5/gawkmisc.c 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/gawkmisc.c 2007-08-11 22:39:49.000000000 +0300 @@ -10,7 +10,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/getopt.c gawk-3.1.6/getopt.c --- gawk-3.1.5/getopt.c 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/getopt.c 2007-01-12 13:56:48.000000000 +0200 @@ -18,8 +18,8 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. */ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ /* This tells Alpha OSF/1 not to define a getopt prototype in . Ditto for AIX 3.2 and . */ @@ -576,10 +576,7 @@ int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s", buf); - else - fputs (buf, stderr); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); @@ -654,10 +651,7 @@ ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s", buf); - else - fputs (buf, stderr); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); @@ -694,10 +688,7 @@ ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s", buf); - else - fputs (buf, stderr); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); @@ -771,10 +762,7 @@ int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s", buf); - else - fputs (buf, stderr); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); @@ -837,10 +825,7 @@ int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s", buf); - else - fputs (buf, stderr); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); @@ -888,10 +873,7 @@ int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s", buf); - else - fputs (buf, stderr); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); @@ -960,10 +942,7 @@ int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s", buf); - else - fputs (buf, stderr); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); @@ -1005,10 +984,7 @@ ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s", buf); - else - fputs (buf, stderr); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); @@ -1047,10 +1023,7 @@ ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s", buf); - else - fputs (buf, stderr); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); @@ -1121,10 +1094,7 @@ int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s", buf); - else - fputs (buf, stderr); + __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); diff -urN gawk-3.1.5/gettext.h gawk-3.1.6/gettext.h --- gawk-3.1.5/gettext.h 2005-07-26 21:24:49.000000000 +0300 +++ gawk-3.1.6/gettext.h 2007-01-12 12:20:58.000000000 +0200 @@ -1,5 +1,5 @@ /* Convenience header for conditional use of GNU . - Copyright (C) 1995-1998, 2000-2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1995-1998, 2000-2002, 2004-2006 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published @@ -30,6 +30,18 @@ /* Get declarations of GNU message catalog functions. */ # include +/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by + the gettext() and ngettext() macros. This is an alternative to calling + textdomain(), and is useful for libraries. */ +# ifdef DEFAULT_TEXT_DOMAIN +# undef gettext +# define gettext(Msgid) \ + dgettext (DEFAULT_TEXT_DOMAIN, Msgid) +# undef ngettext +# define ngettext(Msgid1, Msgid2, N) \ + dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N) +# endif + #else /* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which @@ -45,6 +57,16 @@ # include #endif +/* Many header files from the libstdc++ coming with g++ 3.3 or newer include + , which chokes if dcgettext is defined as a macro. So include + it now, to make later inclusions of a NOP. */ +#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3) +# include +# if (__GLIBC__ >= 2) || _GLIBCXX_HAVE_LIBINTL_H +# include +# endif +#endif + /* Disabled NLS. The casts to 'const char *' serve the purpose of producing warnings for invalid uses of the value returned from these functions. @@ -75,4 +97,178 @@ initializer for static 'char[]' or 'const char[]' variables. */ #define gettext_noop(String) String +/* The separator between msgctxt and msgid in a .mo file. */ +#define GETTEXT_CONTEXT_GLUE "\004" + +/* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a + MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be + short and rarely need to change. + The letter 'p' stands for 'particular' or 'special'. */ +#ifdef DEFAULT_TEXT_DOMAIN +# define pgettext(Msgctxt, Msgid) \ + pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) +#else +# define pgettext(Msgctxt, Msgid) \ + pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) +#endif +#define dpgettext(Domainname, Msgctxt, Msgid) \ + pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES) +#define dcpgettext(Domainname, Msgctxt, Msgid, Category) \ + pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category) +#ifdef DEFAULT_TEXT_DOMAIN +# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ + npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) +#else +# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \ + npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) +#endif +#define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ + npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES) +#define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \ + npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category) + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static const char * +pgettext_aux (const char *domain, + const char *msg_ctxt_id, const char *msgid, + int category) +{ + const char *translation = dcgettext (domain, msg_ctxt_id, category); + if (translation == msg_ctxt_id) + return msgid; + else + return translation; +} + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static const char * +npgettext_aux (const char *domain, + const char *msg_ctxt_id, const char *msgid, + const char *msgid_plural, unsigned long int n, + int category) +{ + const char *translation = + dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); + if (translation == msg_ctxt_id || translation == msgid_plural) + return (n == 1 ? msgid : msgid_plural); + else + return translation; +} + +/* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID + can be arbitrary expressions. But for string literals these macros are + less efficient than those above. */ + +#include + +#define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \ + (__GNUC__ >= 3 || __GNUG__ >= 2 /* || __STDC_VERSION__ >= 199901L */ ) + +#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS +#include +#endif + +#define pgettext_expr(Msgctxt, Msgid) \ + dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES) +#define dpgettext_expr(Domainname, Msgctxt, Msgid) \ + dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES) + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static const char * +dcpgettext_expr (const char *domain, + const char *msgctxt, const char *msgid, + int category) +{ + size_t msgctxt_len = strlen (msgctxt) + 1; + size_t msgid_len = strlen (msgid) + 1; + const char *translation; +#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS + char msg_ctxt_id[msgctxt_len + msgid_len]; +#else + char buf[1024]; + char *msg_ctxt_id = + (msgctxt_len + msgid_len <= sizeof (buf) + ? buf + : (char *) malloc (msgctxt_len + msgid_len)); + if (msg_ctxt_id != NULL) +#endif + { + memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); + msg_ctxt_id[msgctxt_len - 1] = '\004'; + memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); + translation = dcgettext (domain, msg_ctxt_id, category); +#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS + if (msg_ctxt_id != buf) + free (msg_ctxt_id); +#endif + if (translation != msg_ctxt_id) + return translation; + } + return msgid; +} + +#define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \ + dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) +#define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \ + dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES) + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static const char * +dcnpgettext_expr (const char *domain, + const char *msgctxt, const char *msgid, + const char *msgid_plural, unsigned long int n, + int category) +{ + size_t msgctxt_len = strlen (msgctxt) + 1; + size_t msgid_len = strlen (msgid) + 1; + const char *translation; +#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS + char msg_ctxt_id[msgctxt_len + msgid_len]; +#else + char buf[1024]; + char *msg_ctxt_id = + (msgctxt_len + msgid_len <= sizeof (buf) + ? buf + : (char *) malloc (msgctxt_len + msgid_len)); + if (msg_ctxt_id != NULL) +#endif + { + memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1); + msg_ctxt_id[msgctxt_len - 1] = '\004'; + memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); + translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category); +#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS + if (msg_ctxt_id != buf) + free (msg_ctxt_id); +#endif + if (!(translation == msg_ctxt_id || translation == msgid_plural)) + return translation; + } + return (n == 1 ? msgid : msgid_plural); +} + #endif /* _LIBGETTEXT_H */ diff -urN gawk-3.1.5/hard-locale.h gawk-3.1.6/hard-locale.h --- gawk-3.1.5/hard-locale.h 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/hard-locale.h 2006-08-11 15:49:40.000000000 +0300 @@ -21,6 +21,11 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +/* Declare at file scope for stupid compilers. */ +#if !( defined __GLIBC__ && __GLIBC__ >= 2 ) +static ptr_t xmalloc PARAMS ((size_t n)); +#endif + /* Return nonzero if the current CATEGORY locale is hard, i.e. if you can't get away with assuming traditional C or POSIX behavior. */ @@ -40,8 +45,6 @@ if (strcmp (p, "C") == 0 || strcmp (p, "POSIX") == 0) hard = 0; # else - static ptr_t xmalloc PARAMS ((size_t n)); - char *locale = xmalloc (strlen (p) + 1); strcpy (locale, p); diff -urN gawk-3.1.5/install-sh gawk-3.1.6/install-sh --- gawk-3.1.5/install-sh 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/install-sh 2007-01-12 12:20:58.000000000 +0200 @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2005-02-02.21 +scriptversion=2006-10-14.15 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -39,15 +39,24 @@ # when there is no Makefile. # # This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. +# from scratch. + +nl=' +' +IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi -# put in absolute paths if you don't have them in your path; or use env. vars. +# Put in absolute file names if you don't have them in your path; +# or use environment vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" @@ -58,7 +67,13 @@ rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" -chmodcmd="$chmodprog 0755" +posix_glob= +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chmodcmd=$chmodprog chowncmd= chgrpcmd= stripcmd= @@ -95,7 +110,7 @@ CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " -while test -n "$1"; do +while test $# -ne 0; do case $1 in -c) shift continue;; @@ -111,9 +126,15 @@ --help) echo "$usage"; exit $?;; - -m) chmodcmd="$chmodprog $2" + -m) mode=$2 shift shift + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac continue;; -o) chowncmd="$chownprog $2" @@ -136,25 +157,33 @@ --version) echo "$0 $scriptversion"; exit $?;; - *) # When -d is used, all remaining arguments are directories to create. - # When -t is used, the destination is already specified. - test -n "$dir_arg$dstarg" && break - # Otherwise, the last argument is the destination. Remove it from $@. - for arg - do - if test -n "$dstarg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dstarg" - shift # fnord - fi - shift # arg - dstarg=$arg - done + --) shift break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; esac done -if test -z "$1"; then +if test $# -ne 0 && test -z "$dir_arg$dstarg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dstarg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dstarg" + shift # fnord + fi + shift # arg + dstarg=$arg + done +fi + +if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 @@ -164,6 +193,33 @@ exit 0 fi +if test -z "$dir_arg"; then + trap '(exit $?); exit' 1 2 13 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + for src do # Protect names starting with `-'. @@ -173,15 +229,11 @@ if test -n "$dir_arg"; then dst=$src - src= - - if test -d "$dst"; then - mkdircmd=: - chmodcmd= - else - mkdircmd=$mkdirprog - fi + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? else + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. @@ -208,53 +260,188 @@ echo "$0: $dstarg: Is a directory" >&2 exit 1 fi - dst=$dst/`basename "$src"` + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? fi fi - # This sed command emulates the dirname command. - dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` - - # Make sure that the destination directory exists. + obsolete_mkdir_used=false - # Skip lots of stat calls in the usual case. - if test ! -d "$dstdir"; then - defaultIFS=' - ' - IFS="${IFS-$defaultIFS}" - - oIFS=$IFS - # Some sh's can't handle IFS=/ for some reason. - IFS='%' - set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` - shift - IFS=$oIFS + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writeable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac - pathcomp= + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else - while test $# -ne 0 ; do - pathcomp=$pathcomp$1 + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix=/ ;; + -*) prefix=./ ;; + *) prefix= ;; + esac + + case $posix_glob in + '') + if (set -f) 2>/dev/null; then + posix_glob=true + else + posix_glob=false + fi ;; + esac + + oIFS=$IFS + IFS=/ + $posix_glob && set -f + set fnord $dstdir shift - if test ! -d "$pathcomp"; then - $mkdirprog "$pathcomp" - # mkdir can fail with a `File exist' error in case several - # install-sh are creating the directory concurrently. This - # is OK. - test -d "$pathcomp" || exit + $posix_glob && set +f + IFS=$oIFS + + prefixes= + + for d + do + test -z "$d" && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true fi - pathcomp=$pathcomp/ - done + fi fi if test -n "$dir_arg"; then - $doit $mkdircmd "$dst" \ - && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ - && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ - && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ - && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } - + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else - dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ @@ -262,10 +449,9 @@ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 - trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. - $doit $cpprog "$src" "$dsttmp" && + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # @@ -276,10 +462,10 @@ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ - && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && + && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # Now rename the file to the real destination. - { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ + { $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not @@ -291,11 +477,12 @@ # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { - if test -f "$dstdir/$dstfile"; then - $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ - || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ + if test -f "$dst"; then + $doit $rmcmd -f "$dst" 2>/dev/null \ + || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \ + && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\ || { - echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 + echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } else @@ -304,16 +491,13 @@ } && # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" + $doit $mvcmd "$dsttmp" "$dst" } - } - fi || { (exit 1); exit 1; } -done + } || exit 1 -# The final little trick to "correctly" pass the exit status to the exit trap. -{ - (exit 0); exit 0 -} + trap '' 0 + fi +done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff -urN gawk-3.1.5/io.c gawk-3.1.6/io.c --- gawk-3.1.5/io.c 2005-07-26 21:07:43.000000000 +0300 +++ gawk-3.1.6/io.c 2007-08-11 22:39:49.000000000 +0300 @@ -3,14 +3,14 @@ */ /* - * Copyright (C) 1986, 1988, 1989, 1991-2005 the Free Software Foundation, Inc. + * Copyright (C) 1986, 1988, 1989, 1991-2007 the Free Software Foundation, Inc. * * This file is part of GAWK, the GNU implementation of the * AWK Programming Language. * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, @@ -45,21 +45,46 @@ #endif #ifdef HAVE_SOCKETS + #ifdef HAVE_SYS_SOCKET_H #include #else #include #endif /* HAVE_SYS_SOCKET_H */ + #ifdef HAVE_NETINET_IN_H #include -#else + +#ifdef HAVE_ARPA_INET_H +#include +#endif + +#else /* ! HAVE_NETINET_IN_H */ #include #endif /* HAVE_NETINET_IN_H */ + #ifdef HAVE_NETDB_H #include #endif /* HAVE_NETDB_H */ + +#ifndef HAVE_GETADDRINFO +#include "missing_d/getaddrinfo.h" +#endif + +#ifndef AI_ADDRCONFIG /* This is a recent symbol, not everyone has it */ +#define AI_ADDRCONFIG 0 +#endif /* AI_ADDRCONFIG */ + +#ifndef HAVE_SOCKADDR_STORAGE +#define sockaddr_storage sockaddr /* for older systems */ +#endif /* HAVE_SOCKADDR_STORAGE */ + #endif /* HAVE_SOCKETS */ +#ifdef HAVE_LIMITS_H +#include +#endif + #ifdef __EMX__ #include #endif @@ -71,7 +96,6 @@ extern int MRL; #ifdef HAVE_SOCKETS -enum inet_prot { INET_NONE, INET_TCP, INET_UDP, INET_RAW }; #ifndef SHUT_RD #define SHUT_RD 0 @@ -103,6 +127,9 @@ typedef enum { CLOSE_ALL, CLOSE_TO, CLOSE_FROM } two_way_close_type; +/* For internal files, /dev/pid, etc. */ +#define INTERNAL_HANDLE (-42) + /* Several macros make the code a bit clearer: */ /* */ /* */ @@ -110,6 +137,7 @@ #define at_eof(iop) ((iop->flag & IOP_AT_EOF) != 0) #define has_no_data(iop) (iop->dataend == NULL) #define no_data_left(iop) (iop->off >= iop->dataend) +#define is_internal(iop) ((iop->flag & IOP_IS_INTERNAL) != 0) /* The key point to the design is to split out the code that searches through */ /* a buffer looking for the record and the terminator into separate routines, */ /* with a higher-level routine doing the reading of data and buffer management. */ @@ -158,15 +186,15 @@ static int wait_any P((int interesting)); #endif static IOBUF *gawk_popen P((const char *cmd, struct redirect *rp)); -static IOBUF *iop_open P((const char *file, const char *how, IOBUF *buf)); +static IOBUF *iop_open P((const char *file, const char *how, IOBUF *buf, int *isdir)); static IOBUF *iop_alloc P((int fd, const char *name, IOBUF *buf)); static int gawk_pclose P((struct redirect *rp)); static int do_pathopen P((const char *file)); static int str2mode P((const char *mode)); -static void spec_setup P((IOBUF *iop, int len, int allocate)); -static int specfdopen P((IOBUF *iop, const char *name, const char *mode)); -static int pidopen P((IOBUF *iop, const char *name, const char *mode)); -static int useropen P((IOBUF *iop, const char *name, const char *mode)); +static void spec_setup P((IOBUF *iop, int len)); +static IOBUF *specfdopen P((IOBUF *iop, const char *name, const char *mode)); +static IOBUF *pidopen P((IOBUF *iop, const char *name, const char *mode)); +static IOBUF *useropen P((IOBUF *iop, const char *name, const char *mode)); static int two_way_open P((const char *str, struct redirect *rp)); static int pty_vs_pipe P((const char *command)); @@ -275,11 +303,21 @@ ARGIND_node->var_value = make_number((AWKNUM) i); } if (! arg_assign(arg->stptr, FALSE)) { + int isdir = FALSE; + files = TRUE; fname = arg->stptr; - curfile = iop_open(fname, binmode("r"), &mybuf); - if (curfile == NULL) + curfile = iop_open(fname, binmode("r"), &mybuf, & isdir); + if (curfile == NULL) { +#if NO_DIRECTORY_FATAL + if (isdir) + continue; +#else + if (isdir && do_traditional) + continue; +#endif goto give_up; + } curfile->flag |= IOP_NOFREE_OBJ; /* This is a kludge. */ unref(FILENAME_node->var_value); @@ -296,7 +334,7 @@ unref(FILENAME_node->var_value); FILENAME_node->var_value = make_string("-", 1); fname = "-"; - curfile = iop_open(fname, binmode("r"), &mybuf); + curfile = iop_open(fname, binmode("r"), &mybuf, NULL); if (curfile == NULL) goto give_up; curfile->flag |= IOP_NOFREE_OBJ; @@ -503,6 +541,7 @@ const char *mode; int fd; const char *what = NULL; + int isdir = FALSE; switch (tree->type) { case Node_redirect_append: @@ -654,7 +693,9 @@ break; case Node_redirect_input: direction = "from"; - rp->iop = iop_open(str, binmode("r"), NULL); + rp->iop = iop_open(str, binmode("r"), NULL, & isdir); + if (isdir) + fatal(_("file `%s' is a directory"), str); break; case Node_redirect_twoway: direction = "to/from"; @@ -1129,125 +1170,139 @@ } #ifdef HAVE_SOCKETS + /* socketopen --- open a socket and set it into connected state */ static int -socketopen(enum inet_prot type, int localport, int remoteport, const char *remotehostname) +socketopen(int type, const char *localpname, const char *remotepname, + const char *remotehostname) { - struct hostent *hp = gethostbyname(remotehostname); - struct sockaddr_in local_addr, remote_addr; - int socket_fd; - int any_remote_host = strcmp(remotehostname, "0"); - - socket_fd = INVALID_HANDLE; - switch (type) { - case INET_TCP: - if (localport != 0 || remoteport != 0) { - int on = 1; -#ifdef SO_LINGER - struct linger linger; + struct addrinfo *lres, *lres0; + struct addrinfo lhints; + struct addrinfo *rres, *rres0; + struct addrinfo rhints; + + int lerror; + int rerror; + + int socket_fd = INVALID_HANDLE; + int any_remote_host = (strcmp(remotehostname, "0") == 0); + + memset (&lhints, '\0', sizeof (lhints)); + lhints.ai_flags = AI_PASSIVE | AI_ADDRCONFIG; + lhints.ai_socktype = type; + + lerror = getaddrinfo (NULL, localpname, &lhints, &lres); + if (lerror) { + if (strcmp(localpname, "0") != 0) + fatal(_("local port %s invalid in `/inet'"), localpname); + lres0 = NULL; + lres = &lhints; + } else + lres0 = lres; - memset(& linger, '\0', sizeof(linger)); -#endif - socket_fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - setsockopt(socket_fd, SOL_SOCKET, SO_REUSEADDR, - (char *) & on, sizeof(on)); + while (lres != NULL) { + memset (&rhints, '\0', sizeof (rhints)); + rhints.ai_flags = lhints.ai_flags; + rhints.ai_socktype = lhints.ai_socktype; + rhints.ai_family = lhints.ai_family; + rhints.ai_protocol = lhints.ai_protocol; + + rerror = getaddrinfo (remotehostname, remotepname, &rhints, &rres); + if (rerror) { + if (lres0 != NULL) + freeaddrinfo(lres0); + fatal(_("remote host and port information (%s, %s) invalid"), remotehostname, remotepname); + } + rres0 = rres; + socket_fd = INVALID_HANDLE; + while (rres != NULL) { + socket_fd = socket (rres->ai_family, + rres->ai_socktype, rres->ai_protocol); + if (socket_fd < 0 || socket_fd == INVALID_HANDLE) + goto nextrres; + + if (type == SOCK_STREAM) { + int on = 1; #ifdef SO_LINGER - linger.l_onoff = 1; - linger.l_linger = 30; /* linger for 30/100 second */ - setsockopt(socket_fd, SOL_SOCKET, SO_LINGER, - (char *) & linger, sizeof(linger)); + struct linger linger; + memset(& linger, '\0', sizeof(linger)); #endif - } - break; - case INET_UDP: - if (localport != 0 || remoteport != 0) - socket_fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - break; - case INET_RAW: -#ifdef SOCK_RAW - if (localport == 0 && remoteport == 0) - socket_fd = socket(AF_INET, SOCK_RAW, IPPROTO_RAW); + setsockopt(socket_fd, SOL_SOCKET, SO_REUSEADDR, + (char *) & on, sizeof(on)); +#ifdef SO_LINGER + linger.l_onoff = 1; + linger.l_linger = 30; /* linger for 30/100 second */ + setsockopt(socket_fd, SOL_SOCKET, SO_LINGER, + (char *) & linger, sizeof(linger)); #endif - break; - case INET_NONE: - /* fall through */ - default: - cant_happen(); - break; - } + } + if (bind(socket_fd, lres->ai_addr, lres->ai_addrlen) != 0) + goto nextrres; - if (socket_fd < 0 || socket_fd == INVALID_HANDLE - || (hp == NULL && any_remote_host != 0)) - return INVALID_HANDLE; - - local_addr.sin_family = remote_addr.sin_family = AF_INET; - local_addr.sin_addr.s_addr = htonl(INADDR_ANY); - remote_addr.sin_addr.s_addr = htonl(INADDR_ANY); - local_addr.sin_port = htons(localport); - remote_addr.sin_port = htons(remoteport); - if (bind(socket_fd, (struct sockaddr *) &local_addr, sizeof(local_addr)) == 0) { - if (any_remote_host != 0) { /* not ANY => create a client */ - if (type == INET_TCP || type == INET_UDP) { - memcpy(&remote_addr.sin_addr, hp->h_addr, - sizeof(remote_addr.sin_addr)); - if (connect(socket_fd, - (struct sockaddr *) &remote_addr, - sizeof(remote_addr)) != 0) { - close(socket_fd); - if (localport == 0) - socket_fd = INVALID_HANDLE; - else - socket_fd = socketopen(type, localport, 0, "0"); + if (! any_remote_host) { /* not ANY => create a client */ + if (type != SOCK_RAW) { + if (connect(socket_fd, rres->ai_addr, + rres->ai_addrlen) == 0) + break; + } else { + /* /inet/raw client not ready yet */ + fatal(_("/inet/raw client not ready yet, sorry")); + if (geteuid() != 0) + /* FIXME: is this second fatal ever reached? */ + fatal(_("only root may use `/inet/raw'.")); } - } else { - /* /inet/raw client not ready yet */ - fatal(_("/inet/raw client not ready yet, sorry")); - if (geteuid() != 0) - fatal(_("only root may use `/inet/raw'.")); - } - } else { /* remote host is ANY => create a server */ - if (type == INET_TCP) { - int clientsocket_fd = INVALID_HANDLE; - socklen_t namelen = sizeof(remote_addr); + } else { /* remote host is ANY => create a server */ + if (type == SOCK_STREAM) { + int clientsocket_fd = INVALID_HANDLE; - if (listen(socket_fd, 1) >= 0 - && (clientsocket_fd = accept(socket_fd, + struct sockaddr_storage remote_addr; + socklen_t namelen = sizeof (remote_addr); + + if (listen(socket_fd, 1) >= 0 + && (clientsocket_fd = accept(socket_fd, (struct sockaddr *) &remote_addr, &namelen)) >= 0) { - close(socket_fd); - socket_fd = clientsocket_fd; - } else { - close(socket_fd); - socket_fd = INVALID_HANDLE; - } - } else if (type == INET_UDP) { + close(socket_fd); + socket_fd = clientsocket_fd; + break; + } + } else if (type == SOCK_DGRAM) { #ifdef MSG_PEEK - char buf[10]; - socklen_t readle; - - if (recvfrom(socket_fd, buf, 1, MSG_PEEK, - (struct sockaddr *) & remote_addr, - & readle) < 1 - || readle != sizeof(remote_addr) - || connect(socket_fd, - (struct sockaddr *)& remote_addr, - readle) != 0) { - close(socket_fd); - socket_fd = INVALID_HANDLE; - } + char buf[10]; + struct sockaddr_storage remote_addr; + socklen_t readle; + + if (recvfrom(socket_fd, buf, 1, MSG_PEEK, + (struct sockaddr *) & remote_addr, + & readle) >= 0 + && readle + && connect(socket_fd, + (struct sockaddr *)& remote_addr, + readle) == 0) + break; #endif - } else { - /* /inet/raw server not ready yet */ - fatal(_("/inet/raw server not ready yet, sorry")); - if (geteuid() != 0) - fatal(_("only root may use `/inet/raw'.")); + } else { + /* /inet/raw server not ready yet */ + fatal(_("/inet/raw server not ready yet, sorry")); + if (geteuid() != 0) + fatal(_("only root may use `/inet/raw'.")); + } } + +nextrres: + if (socket_fd != INVALID_HANDLE) + close(socket_fd); + socket_fd = INVALID_HANDLE; + rres = rres->ai_next; } - } else { - close(socket_fd); - socket_fd = INVALID_HANDLE; + freeaddrinfo(rres0); + if (socket_fd != INVALID_HANDLE) + break; + lres = lres->ai_next; } + if (lres0) + freeaddrinfo(lres0); return socket_fd; } @@ -1312,30 +1367,24 @@ } else if (STREQN(name, "/inet/", 6)) { #ifdef HAVE_SOCKETS /* /inet/protocol/localport/hostname/remoteport */ - enum inet_prot protocol = INET_NONE; - int localport, remoteport; + int protocol; char *hostname; char *hostnameslastcharp; char *localpname; - char proto[4]; - struct servent *service; + char *localpnamelastcharp; cp = (char *) name + 6; /* which protocol? */ if (STREQN(cp, "tcp/", 4)) - protocol = INET_TCP; + protocol = SOCK_STREAM; else if (STREQN(cp, "udp/", 4)) - protocol = INET_UDP; + protocol = SOCK_DGRAM; else if (STREQN(cp, "raw/", 4)) - protocol = INET_RAW; + protocol = SOCK_RAW; else fatal(_("no (known) protocol supplied in special filename `%s'"), name); - proto[0] = cp[0]; - proto[1] = cp[1]; - proto[2] = cp[2]; - proto[3] = '\0'; cp += 4; /* which localport? */ @@ -1353,25 +1402,17 @@ * By using atoi() the use of decimal numbers is enforced. */ *cp = '\0'; - - localport = atoi(localpname); - if (strcmp(localpname, "0") != 0 - && (localport <= 0 || localport > 65535)) { - service = getservbyname(localpname, proto); - if (service == NULL) - fatal(_("local port invalid in `%s'"), name); - else - localport = ntohs(service->s_port); - } - *cp = '/'; + localpnamelastcharp = cp; /* which hostname? */ cp++; hostname = cp; while (*cp != '/' && *cp != '\0') cp++; - if (*cp != '/' || cp == hostname) + if (*cp != '/' || cp == hostname) { + *localpnamelastcharp = '/'; fatal(_("must supply a remote hostname to `/inet'")); + } *cp = '\0'; hostnameslastcharp = cp; @@ -1385,22 +1426,15 @@ * Here too, require a port, let them explicitly put 0 if * they don't care. */ - if (*cp == '\0') + if (*cp == '\0') { + *localpnamelastcharp = '/'; + *hostnameslastcharp = '/'; fatal(_("must supply a remote port to `/inet'")); - remoteport = atoi(cp); - if (strcmp(cp, "0") != 0 - && (remoteport <= 0 || remoteport > 65535)) { - service = getservbyname(cp, proto); - if (service == NULL) - fatal(_("remote port invalid in `%s'"), name); - else - remoteport = ntohs(service->s_port); } - /* Open Sesame! */ - openfd = socketopen(protocol, localport, remoteport, hostname); + openfd = socketopen(protocol, localpname, cp, hostname); + *localpnamelastcharp = '/'; *hostnameslastcharp = '/'; - #else /* ! HAVE_SOCKETS */ fatal(_("TCP/IP communications are not supported")); #endif /* HAVE_SOCKETS */ @@ -1422,30 +1456,24 @@ /* spec_setup --- setup an IOBUF for a special internal file */ static void -spec_setup(IOBUF *iop, int len, int allocate) +spec_setup(IOBUF *iop, int len) { char *cp; - if (allocate) { - emalloc(cp, char *, len+2, "spec_setup"); - iop->buf = cp; - } else { - len = strlen(iop->buf); - iop->buf[len++] = '\n'; /* get_a_record clobbered it */ - iop->buf[len] = '\0'; /* just in case */ - } + emalloc(cp, char *, len+2, "spec_setup"); + iop->buf = cp; iop->off = iop->buf; iop->count = 0; iop->size = len; iop->end = iop->buf + len; iop->dataend = iop->end; iop->fd = -1; - iop->flag = IOP_IS_INTERNAL | IOP_AT_START; + iop->flag = IOP_IS_INTERNAL | IOP_AT_START | IOP_NO_FREE; } /* specfdopen --- open an fd special file */ -static int +static IOBUF * specfdopen(IOBUF *iop, const char *name, const char *mode) { int fd; @@ -1453,17 +1481,14 @@ fd = devopen(name, mode); if (fd == INVALID_HANDLE) - return INVALID_HANDLE; - tp = iop_alloc(fd, name, NULL); + return NULL; + tp = iop_alloc(fd, name, iop); if (tp == NULL) { /* don't leak fd's */ close(fd); - return INVALID_HANDLE; + return NULL; } - *iop = *tp; - iop->flag |= IOP_NO_FREE; - free(tp); - return 0; + return tp; } #ifdef GETPGRP_VOID @@ -1474,7 +1499,7 @@ /* pidopen --- "open" /dev/pid, /dev/ppid, and /dev/pgrpid */ -static int +static IOBUF * pidopen(IOBUF *iop, const char *name, const char *mode ATTRIBUTE_UNUSED) { char tbuf[BUFSIZ]; @@ -1483,6 +1508,12 @@ warning(_("use `PROCINFO[\"%s\"]' instead of `%s'"), cp, name); + if (iop == NULL) { + iop = iop_alloc(INTERNAL_HANDLE, name, iop); + if (iop == NULL) + return NULL; + } + if (name[6] == 'g') sprintf(tbuf, "%d\n", (int) getpgrp(getpgrp_arg())); else if (name[6] == 'i') @@ -1490,9 +1521,9 @@ else sprintf(tbuf, "%d\n", (int) getppid()); i = strlen(tbuf); - spec_setup(iop, i, TRUE); + spec_setup(iop, i); strcpy(iop->buf, tbuf); - return 0; + return iop; } /* useropen --- "open" /dev/user */ @@ -1507,7 +1538,7 @@ * supplementary group set. */ -static int +static IOBUF * useropen(IOBUF *iop, const char *name ATTRIBUTE_UNUSED, const char *mode ATTRIBUTE_UNUSED) { char tbuf[BUFSIZ], *cp; @@ -1515,6 +1546,12 @@ warning(_("use `PROCINFO[...]' instead of `/dev/user'")); + if (iop == NULL) { + iop = iop_alloc(INTERNAL_HANDLE, name, iop); + if (iop == NULL) + return NULL; + } + sprintf(tbuf, "%d %d %d %d", (int) getuid(), (int) geteuid(), (int) getgid(), (int) getegid()); cp = tbuf + strlen(tbuf); @@ -1529,23 +1566,22 @@ *cp++ = '\0'; i = strlen(tbuf); - spec_setup(iop, i, TRUE); + spec_setup(iop, i); strcpy(iop->buf, tbuf); - return 0; + return iop; } /* iop_open --- handle special and regular files for input */ static IOBUF * -iop_open(const char *name, const char *mode, IOBUF *iop) +iop_open(const char *name, const char *mode, IOBUF *iop, int *isdir) { int openfd = INVALID_HANDLE; int flag = 0; static struct internal { const char *name; int compare; - int (*fp) P((IOBUF *, const char *, const char *)); - IOBUF iob; + IOBUF *(*fp) P((IOBUF *, const char *, const char *)); } table[] = { { "/dev/fd/", 8, specfdopen }, { "/dev/stdin", 10, specfdopen }, @@ -1570,12 +1606,7 @@ for (i = 0; i < devcount; i++) { if (STREQN(name, table[i].name, table[i].compare)) { - iop = & table[i].iob; - - if (iop->buf != NULL) { - spec_setup(iop, 0, FALSE); - return iop; - } else if ((*table[i].fp)(iop, name, mode) == 0) + if ((iop = (*table[i].fp)(iop, name, mode)) != NULL) return iop; else { warning(_("could not open `%s', mode `%s'"), @@ -1591,8 +1622,12 @@ if (openfd == INVALID_HANDLE) openfd = open(name, flag, 0666); if (openfd != INVALID_HANDLE) { - if (os_isdir(openfd)) - fatal(_("file `%s' is a directory"), name); + if (os_isdir(openfd)) { + if (isdir) + *isdir = TRUE; + (void) close(openfd); /* don't leak fds */ + return NULL; + } } /* * At this point, fd could still be INVALID_HANDLE. @@ -2480,9 +2515,12 @@ { struct stat sbuf; struct open_hook *oh; + int iop_malloced = FALSE; - if (iop == NULL) + if (iop == NULL) { emalloc(iop, IOBUF *, sizeof(IOBUF), "iop_alloc"); + iop_malloced = TRUE; + } memset(iop, '\0', sizeof(IOBUF)); iop->flag = 0; iop->fd = fd; @@ -2494,8 +2532,12 @@ break; } + if (iop->fd == INTERNAL_HANDLE) + return iop; + if (iop->fd == INVALID_HANDLE) { - free(iop); + if (iop_malloced) + free(iop); return NULL; } if (isatty(iop->fd)) @@ -2503,7 +2545,7 @@ iop->readsize = iop->size = optimal_bufsize(iop->fd, & sbuf); iop->sbuf = sbuf; if (do_lint && S_ISREG(sbuf.st_mode) && sbuf.st_size == 0) - lintwarn(_("data file `%s' is empty"), name); + lintwarn(_("data file `%s' is empty"), name); errno = 0; iop->count = iop->scanoff = 0; emalloc(iop->buf, char *, iop->size += 2, "iop_alloc"); @@ -2886,7 +2928,7 @@ /* = */ /* get_a_record --- read a record from IOP into out, return length of EOF, set RT */ -int +static int get_a_record(char **out, /* pointer to pointer to data */ IOBUF *iop, /* input IOP */ int *errcode) /* pointer to error variable */ @@ -2906,6 +2948,10 @@ /* = */ if (has_no_data(iop) || no_data_left(iop)) { + if (is_internal(iop)) { + iop->flag |= IOP_AT_EOF; + return EOF; + } iop->count = read(iop->fd, iop->buf, iop->readsize); if (iop->count == 0) { iop->flag |= IOP_AT_EOF; @@ -2974,6 +3020,14 @@ while (amt_to_read + iop->readsize < room_left) amt_to_read += iop->readsize; +#ifdef SSIZE_MAX + /* + * POSIX limits read to SSIZE_MAX. There are (bizarre) + * systems where this amount is small. + */ + amt_to_read = min(amt_to_read, SSIZE_MAX); +#endif + iop->count = read(iop->fd, iop->dataend, amt_to_read); if (iop->count == -1) { if (! do_traditional && errcode != NULL) { @@ -3097,7 +3151,7 @@ RS_is_null = TRUE; matchrec = rsnullscan; } else if (RS->stlen > 1) { - static int warned = FALSE; + static short warned = FALSE; RS_re_yes_case = make_regexp(RS->stptr, RS->stlen, FALSE, TRUE); RS_re_no_case = make_regexp(RS->stptr, RS->stlen, TRUE, TRUE); diff -urN gawk-3.1.5/m4/ChangeLog gawk-3.1.6/m4/ChangeLog --- gawk-3.1.5/m4/ChangeLog 2005-07-26 21:46:51.000000000 +0300 +++ gawk-3.1.6/m4/ChangeLog 2007-10-22 08:49:39.000000000 +0200 @@ -1,3 +1,23 @@ +Mon Oct 22 08:49:05 2007 Arnold D. Robbins + + * Release 3.1.6: Release tar file made. + +Tue Mar 20 21:33:31 2007 Arnold D. Robbins + + * strtod.m4: Removed, not needed anymore. + +2007-01-08 gettextize + + * gettext.m4: Upgrade to gettext-0.16.1. + * lib-link.m4: Upgrade to gettext-0.16.1. + * lib-prefix.m4: Upgrade to gettext-0.16.1. + * nls.m4: Upgrade to gettext-0.16.1. + * po.m4: Upgrade to gettext-0.16.1. + * intl.m4: New file, copied in from move to current Autotools. + * intldir.m4: New file, copied in from move to current Autotools. + * lock.m4: New file, copied in from move to current Autotools. + * visibility.m4: New file, copied in from move to current Autotools. + Tue Jul 26 21:46:16 2005 Arnold D. Robbins * Release 3.1.5: Release tar file made. diff -urN gawk-3.1.5/m4/arch.m4 gawk-3.1.6/m4/arch.m4 --- gawk-3.1.5/m4/arch.m4 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/m4/arch.m4 2007-08-11 22:39:49.000000000 +0300 @@ -8,7 +8,7 @@ dnl dnl GAWK is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation; either version 2 of the License, or +dnl the Free Software Foundation; either version 3 of the License, or dnl (at your option) any later version. dnl dnl GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/m4/codeset.m4 gawk-3.1.6/m4/codeset.m4 --- gawk-3.1.5/m4/codeset.m4 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/m4/codeset.m4 2007-01-12 12:21:10.000000000 +0200 @@ -1,5 +1,5 @@ -# codeset.m4 serial AM1 (gettext-0.10.40) -dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. +# codeset.m4 serial 2 (gettext-0.16) +dnl Copyright (C) 2000-2002, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -10,7 +10,7 @@ [ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, [AC_TRY_LINK([#include ], - [char* cs = nl_langinfo(CODESET);], + [char* cs = nl_langinfo(CODESET); return !cs;], am_cv_langinfo_codeset=yes, am_cv_langinfo_codeset=no) ]) diff -urN gawk-3.1.5/m4/gettext.m4 gawk-3.1.6/m4/gettext.m4 --- gawk-3.1.5/m4/gettext.m4 2005-07-06 17:04:08.000000000 +0300 +++ gawk-3.1.6/m4/gettext.m4 2007-01-12 12:21:16.000000000 +0200 @@ -1,5 +1,5 @@ -# gettext.m4 serial 37 (gettext-0.14.4) -dnl Copyright (C) 1995-2005 Free Software Foundation, Inc. +# gettext.m4 serial 59 (gettext-0.16.1) +dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -15,7 +15,7 @@ dnl Authors: dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2003. +dnl Bruno Haible , 2000-2006. dnl Macro to add for using GNU gettext. @@ -63,8 +63,13 @@ ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) - define([gt_included_intl], ifelse([$1], [external], [no], [yes])) + define([gt_included_intl], + ifelse([$1], [external], + ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), + [yes])) define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) + gt_NEEDS_INIT + AM_GNU_GETTEXT_NEED([$2]) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ @@ -78,7 +83,7 @@ dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then - dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then + dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: @@ -94,7 +99,7 @@ gt_INTL_MACOSX dnl Set USE_NLS. - AM_NLS + AC_REQUIRE([AM_NLS]) ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no @@ -104,6 +109,15 @@ LTLIBINTL= POSUB= + dnl Add a version number to the cache macros. + case " $gt_needs " in + *" need-formatstring-macros "*) gt_api_version=3 ;; + *" need-ngettext "*) gt_api_version=2 ;; + *) gt_api_version=1 ;; + esac + gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" + gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no @@ -122,28 +136,35 @@ dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. - dnl Add a version number to the cache macros. - define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1))) - define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc]) - define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl]) - - AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, - [AC_TRY_LINK([#include -]ifelse([$2], [need-formatstring-macros], -[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION + if test $gt_api_version -ge 3; then + gt_revision_test_code=' +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl -], [])[extern int _nl_msg_cat_cntr; +' + else + gt_revision_test_code= + fi + if test $gt_api_version -ge 2; then + gt_expression_test_code=' + * ngettext ("", "", 0)' + else + gt_expression_test_code= + fi + + AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], + [AC_TRY_LINK([#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings;], [bindtextdomain ("", ""); -return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings], - gt_cv_func_gnugettext_libc=yes, - gt_cv_func_gnugettext_libc=no)]) +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings], + [eval "$gt_func_gnugettext_libc=yes"], + [eval "$gt_func_gnugettext_libc=no"])]) - if test "$gt_cv_func_gnugettext_libc" != "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK @@ -154,52 +175,40 @@ dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], - gt_cv_func_gnugettext_libintl, + [$gt_func_gnugettext_libintl], [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_TRY_LINK([#include -]ifelse([$2], [need-formatstring-macros], -[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) -#endif -changequote(,)dnl -typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; -changequote([,])dnl -], [])[extern int _nl_msg_cat_cntr; +$gt_revision_test_code +extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); -return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")], - gt_cv_func_gnugettext_libintl=yes, - gt_cv_func_gnugettext_libintl=no) +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], + [eval "$gt_func_gnugettext_libintl=yes"], + [eval "$gt_func_gnugettext_libintl=no"]) dnl Now see whether libintl exists and depends on libiconv. - if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include -]ifelse([$2], [need-formatstring-macros], -[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) -#endif -changequote(,)dnl -typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; -changequote([,])dnl -], [])[extern int _nl_msg_cat_cntr; +$gt_revision_test_code +extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); -return * gettext ("")]ifelse([$2], [need-ngettext], [ + * ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias ("")], +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" - gt_cv_func_gnugettext_libintl=yes + eval "$gt_func_gnugettext_libintl=yes" ]) fi CPPFLAGS="$gt_save_CPPFLAGS" @@ -210,8 +219,8 @@ dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) - if test "$gt_cv_func_gnugettext_libc" = "yes" \ - || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ + || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes @@ -234,8 +243,8 @@ dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes - LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV" - LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV" + LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" + LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi @@ -271,7 +280,7 @@ if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if test "$gt_cv_func_gnugettext_libintl" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" @@ -285,7 +294,7 @@ if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if test "$gt_cv_func_gnugettext_libintl" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) @@ -353,134 +362,6 @@ ]) -dnl Checks for all prerequisites of the intl subdirectory, -dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, -dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. -AC_DEFUN([AM_INTL_SUBDIR], -[ - AC_REQUIRE([AC_PROG_INSTALL])dnl - AC_REQUIRE([AM_MKINSTALLDIRS])dnl - AC_REQUIRE([AC_PROG_CC])dnl - AC_REQUIRE([AC_CANONICAL_HOST])dnl - AC_REQUIRE([gt_GLIBC2])dnl - AC_REQUIRE([AC_PROG_RANLIB])dnl - AC_REQUIRE([AC_ISC_POSIX])dnl - AC_REQUIRE([AC_HEADER_STDC])dnl - AC_REQUIRE([AC_C_CONST])dnl - AC_REQUIRE([bh_C_SIGNED])dnl - AC_REQUIRE([AC_C_INLINE])dnl - AC_REQUIRE([AC_TYPE_OFF_T])dnl - AC_REQUIRE([AC_TYPE_SIZE_T])dnl - AC_REQUIRE([gl_AC_TYPE_LONG_LONG])dnl - AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl - AC_REQUIRE([gt_TYPE_WCHAR_T])dnl - AC_REQUIRE([gt_TYPE_WINT_T])dnl - AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) - AC_REQUIRE([gl_AC_HEADER_STDINT_H]) - AC_REQUIRE([gt_TYPE_INTMAX_T]) - AC_REQUIRE([gt_PRINTF_POSIX]) - AC_REQUIRE([AC_FUNC_ALLOCA])dnl - AC_REQUIRE([AC_FUNC_MMAP])dnl - AC_REQUIRE([gl_GLIBC21])dnl - AC_REQUIRE([gt_INTDIV0])dnl - AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl - AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl - AC_REQUIRE([gt_INTTYPES_PRI])dnl - AC_REQUIRE([gl_XSIZE])dnl - AC_REQUIRE([gt_INTL_MACOSX])dnl - - AC_CHECK_TYPE([ptrdiff_t], , - [AC_DEFINE([ptrdiff_t], [long], - [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) - ]) - AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ -stdlib.h string.h unistd.h sys/param.h]) - AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \ -mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \ -strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \ -__fsetlocking]) - - dnl Use the _snprintf function only if it is declared (because on NetBSD it - dnl is defined as a weak alias of snprintf; we prefer to use the latter). - gt_CHECK_DECL(_snprintf, [#include ]) - gt_CHECK_DECL(_snwprintf, [#include ]) - - dnl Use the *_unlocked functions only if they are declared. - dnl (because some of them were defined without being declared in Solaris - dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built - dnl on Solaris 2.5.1 to run on Solaris 2.6). - dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. - gt_CHECK_DECL(feof_unlocked, [#include ]) - gt_CHECK_DECL(fgets_unlocked, [#include ]) - gt_CHECK_DECL(getc_unlocked, [#include ]) - - case $gt_cv_func_printf_posix in - *yes) HAVE_POSIX_PRINTF=1 ;; - *) HAVE_POSIX_PRINTF=0 ;; - esac - AC_SUBST([HAVE_POSIX_PRINTF]) - if test "$ac_cv_func_asprintf" = yes; then - HAVE_ASPRINTF=1 - else - HAVE_ASPRINTF=0 - fi - AC_SUBST([HAVE_ASPRINTF]) - if test "$ac_cv_func_snprintf" = yes; then - HAVE_SNPRINTF=1 - else - HAVE_SNPRINTF=0 - fi - AC_SUBST([HAVE_SNPRINTF]) - if test "$ac_cv_func_wprintf" = yes; then - HAVE_WPRINTF=1 - else - HAVE_WPRINTF=0 - fi - AC_SUBST([HAVE_WPRINTF]) - - AM_ICONV - AM_LANGINFO_CODESET - if test $ac_cv_header_locale_h = yes; then - gt_LC_MESSAGES - fi - - if test -n "$INTL_MACOSX_LIBS"; then - CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers" - fi - - dnl intl/plural.c is generated from intl/plural.y. It requires bison, - dnl because plural.y uses bison specific features. It requires at least - dnl bison-1.26 because earlier versions generate a plural.c that doesn't - dnl compile. - dnl bison is only needed for the maintainer (who touches plural.y). But in - dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put - dnl the rule in general Makefile. Now, some people carelessly touch the - dnl files or have a broken "make" program, hence the plural.c rule will - dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not - dnl present or too old. - AC_CHECK_PROGS([INTLBISON], [bison]) - if test -z "$INTLBISON"; then - ac_verc_fail=yes - else - dnl Found it, now check the version. - AC_MSG_CHECKING([version of bison]) -changequote(<<,>>)dnl - ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; - 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) -changequote([,])dnl - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; - esac - AC_MSG_RESULT([$ac_prog_version]) - fi - if test $ac_verc_fail = yes; then - INTLBISON=: - fi -]) - - dnl Checks for special options needed on MacOS X. dnl Defines INTL_MACOSX_LIBS. AC_DEFUN([gt_INTL_MACOSX], @@ -488,15 +369,12 @@ dnl Check for API introduced in MacOS X 10.2. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], gt_cv_func_CFPreferencesCopyAppValue, - [gt_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers" - gt_save_LIBS="$LIBS" - LIBS="$LIBS -framework CoreFoundation" - AC_TRY_LINK([#include ], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_TRY_LINK([#include ], [CFPreferencesCopyAppValue(NULL, NULL)], [gt_cv_func_CFPreferencesCopyAppValue=yes], [gt_cv_func_CFPreferencesCopyAppValue=no]) - CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1, @@ -504,14 +382,11 @@ fi dnl Check for API introduced in MacOS X 10.3. AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent, - [gt_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers" - gt_save_LIBS="$LIBS" - LIBS="$LIBS -framework CoreFoundation" - AC_TRY_LINK([#include ], [CFLocaleCopyCurrent();], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_TRY_LINK([#include ], [CFLocaleCopyCurrent();], [gt_cv_func_CFLocaleCopyCurrent=yes], [gt_cv_func_CFLocaleCopyCurrent=no]) - CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFLocaleCopyCurrent = yes; then AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1, @@ -525,23 +400,18 @@ ]) -dnl gt_CHECK_DECL(FUNC, INCLUDES) -dnl Check whether a function is declared. -AC_DEFUN([gt_CHECK_DECL], +dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. +m4_define([gt_NEEDS_INIT], [ - AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1, - [AC_TRY_COMPILE([$2], [ -#ifndef $1 - char *p = (char *) $1; -#endif -], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)]) - if test $ac_cv_have_decl_$1 = yes; then - gt_value=1 - else - gt_value=0 - fi - AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value], - [Define to 1 if you have the declaration of `$1', and to 0 if you don't.]) + m4_divert_text([DEFAULTS], [gt_needs=]) + m4_define([gt_NEEDS_INIT], []) +]) + + +dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) +AC_DEFUN([AM_GNU_GETTEXT_NEED], +[ + m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) ]) diff -urN gawk-3.1.5/m4/intl.m4 gawk-3.1.6/m4/intl.m4 --- gawk-3.1.5/m4/intl.m4 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/m4/intl.m4 2007-01-12 12:21:16.000000000 +0200 @@ -0,0 +1,259 @@ +# intl.m4 serial 3 (gettext-0.16) +dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +dnl Authors: +dnl Ulrich Drepper , 1995-2000. +dnl Bruno Haible , 2000-2006. + +AC_PREREQ(2.52) + +dnl Checks for all prerequisites of the intl subdirectory, +dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, +dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. +AC_DEFUN([AM_INTL_SUBDIR], +[ + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_CANONICAL_HOST])dnl + AC_REQUIRE([gt_GLIBC2])dnl + AC_REQUIRE([AC_PROG_RANLIB])dnl + AC_REQUIRE([gl_VISIBILITY])dnl + AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl + AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl + AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl + AC_REQUIRE([gt_TYPE_WCHAR_T])dnl + AC_REQUIRE([gt_TYPE_WINT_T])dnl + AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) + AC_REQUIRE([gt_TYPE_INTMAX_T]) + AC_REQUIRE([gt_PRINTF_POSIX]) + AC_REQUIRE([gl_GLIBC21])dnl + AC_REQUIRE([gl_XSIZE])dnl + AC_REQUIRE([gt_INTL_MACOSX])dnl + + AC_CHECK_TYPE([ptrdiff_t], , + [AC_DEFINE([ptrdiff_t], [long], + [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) + ]) + AC_CHECK_HEADERS([stddef.h stdlib.h string.h]) + AC_CHECK_FUNCS([asprintf fwprintf putenv setenv setlocale snprintf wcslen]) + + dnl Use the _snprintf function only if it is declared (because on NetBSD it + dnl is defined as a weak alias of snprintf; we prefer to use the latter). + gt_CHECK_DECL(_snprintf, [#include ]) + gt_CHECK_DECL(_snwprintf, [#include ]) + + dnl Use the *_unlocked functions only if they are declared. + dnl (because some of them were defined without being declared in Solaris + dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built + dnl on Solaris 2.5.1 to run on Solaris 2.6). + dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. + gt_CHECK_DECL(getc_unlocked, [#include ]) + + case $gt_cv_func_printf_posix in + *yes) HAVE_POSIX_PRINTF=1 ;; + *) HAVE_POSIX_PRINTF=0 ;; + esac + AC_SUBST([HAVE_POSIX_PRINTF]) + if test "$ac_cv_func_asprintf" = yes; then + HAVE_ASPRINTF=1 + else + HAVE_ASPRINTF=0 + fi + AC_SUBST([HAVE_ASPRINTF]) + if test "$ac_cv_func_snprintf" = yes; then + HAVE_SNPRINTF=1 + else + HAVE_SNPRINTF=0 + fi + AC_SUBST([HAVE_SNPRINTF]) + if test "$ac_cv_func_wprintf" = yes; then + HAVE_WPRINTF=1 + else + HAVE_WPRINTF=0 + fi + AC_SUBST([HAVE_WPRINTF]) + + AM_LANGINFO_CODESET + gt_LC_MESSAGES + + dnl Compilation on mingw and Cygwin needs special Makefile rules, because + dnl 1. when we install a shared library, we must arrange to export + dnl auxiliary pointer variables for every exported variable, + dnl 2. when we install a shared library and a static library simultaneously, + dnl the include file specifies __declspec(dllimport) and therefore we + dnl must arrange to define the auxiliary pointer variables for the + dnl exported variables _also_ in the static library. + if test "$enable_shared" = yes; then + case "$host_os" in + cygwin*) is_woe32dll=yes ;; + *) is_woe32dll=no ;; + esac + else + is_woe32dll=no + fi + WOE32DLL=$is_woe32dll + AC_SUBST([WOE32DLL]) + + dnl Rename some macros and functions used for locking. + AH_BOTTOM([ +#define __libc_lock_t gl_lock_t +#define __libc_lock_define gl_lock_define +#define __libc_lock_define_initialized gl_lock_define_initialized +#define __libc_lock_init gl_lock_init +#define __libc_lock_lock gl_lock_lock +#define __libc_lock_unlock gl_lock_unlock +#define __libc_lock_recursive_t gl_recursive_lock_t +#define __libc_lock_define_recursive gl_recursive_lock_define +#define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized +#define __libc_lock_init_recursive gl_recursive_lock_init +#define __libc_lock_lock_recursive gl_recursive_lock_lock +#define __libc_lock_unlock_recursive gl_recursive_lock_unlock +#define glthread_in_use libintl_thread_in_use +#define glthread_lock_init libintl_lock_init +#define glthread_lock_lock libintl_lock_lock +#define glthread_lock_unlock libintl_lock_unlock +#define glthread_lock_destroy libintl_lock_destroy +#define glthread_rwlock_init libintl_rwlock_init +#define glthread_rwlock_rdlock libintl_rwlock_rdlock +#define glthread_rwlock_wrlock libintl_rwlock_wrlock +#define glthread_rwlock_unlock libintl_rwlock_unlock +#define glthread_rwlock_destroy libintl_rwlock_destroy +#define glthread_recursive_lock_init libintl_recursive_lock_init +#define glthread_recursive_lock_lock libintl_recursive_lock_lock +#define glthread_recursive_lock_unlock libintl_recursive_lock_unlock +#define glthread_recursive_lock_destroy libintl_recursive_lock_destroy +#define glthread_once libintl_once +#define glthread_once_call libintl_once_call +#define glthread_once_singlethreaded libintl_once_singlethreaded +]) +]) + + +dnl Checks for the core files of the intl subdirectory: +dnl dcigettext.c +dnl eval-plural.h +dnl explodename.c +dnl finddomain.c +dnl gettextP.h +dnl gmo.h +dnl hash-string.h hash-string.c +dnl l10nflist.c +dnl libgnuintl.h.in (except the *printf stuff) +dnl loadinfo.h +dnl loadmsgcat.c +dnl localealias.c +dnl log.c +dnl plural-exp.h plural-exp.c +dnl plural.y +dnl Used by libglocale. +AC_DEFUN([gt_INTL_SUBDIR_CORE], +[ + AC_REQUIRE([AC_C_INLINE])dnl + AC_REQUIRE([AC_TYPE_SIZE_T])dnl + AC_REQUIRE([gl_AC_HEADER_STDINT_H]) + AC_REQUIRE([AC_FUNC_ALLOCA])dnl + AC_REQUIRE([AC_FUNC_MMAP])dnl + AC_REQUIRE([gt_INTDIV0])dnl + AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl + AC_REQUIRE([gt_INTTYPES_PRI])dnl + AC_REQUIRE([gl_LOCK])dnl + + AC_TRY_LINK( + [int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }], + [], + [AC_DEFINE([HAVE_BUILTIN_EXPECT], 1, + [Define to 1 if the compiler understands __builtin_expect.])]) + + AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h]) + AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \ + stpcpy strcasecmp strdup strtoul tsearch argz_count argz_stringify \ + argz_next __fsetlocking]) + + dnl Use the *_unlocked functions only if they are declared. + dnl (because some of them were defined without being declared in Solaris + dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built + dnl on Solaris 2.5.1 to run on Solaris 2.6). + dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. + gt_CHECK_DECL(feof_unlocked, [#include ]) + gt_CHECK_DECL(fgets_unlocked, [#include ]) + + AM_ICONV + + dnl glibc >= 2.4 has a NL_LOCALE_NAME macro when _GNU_SOURCE is defined, + dnl and a _NL_LOCALE_NAME macro always. + AC_CACHE_CHECK([for NL_LOCALE_NAME macro], gt_cv_nl_locale_name, + [AC_TRY_LINK([#include +#include ], + [char* cs = nl_langinfo(_NL_LOCALE_NAME(LC_MESSAGES));], + gt_cv_nl_locale_name=yes, + gt_cv_nl_locale_name=no) + ]) + if test $gt_cv_nl_locale_name = yes; then + AC_DEFINE(HAVE_NL_LOCALE_NAME, 1, + [Define if you have and it defines the NL_LOCALE_NAME macro if _GNU_SOURCE is defined.]) + fi + + dnl intl/plural.c is generated from intl/plural.y. It requires bison, + dnl because plural.y uses bison specific features. It requires at least + dnl bison-1.26 because earlier versions generate a plural.c that doesn't + dnl compile. + dnl bison is only needed for the maintainer (who touches plural.y). But in + dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put + dnl the rule in general Makefile. Now, some people carelessly touch the + dnl files or have a broken "make" program, hence the plural.c rule will + dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not + dnl present or too old. + AC_CHECK_PROGS([INTLBISON], [bison]) + if test -z "$INTLBISON"; then + ac_verc_fail=yes + else + dnl Found it, now check the version. + AC_MSG_CHECKING([version of bison]) +changequote(<<,>>)dnl + ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` + case $ac_prog_version in + '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; + 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) +changequote([,])dnl + ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; + *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; + esac + AC_MSG_RESULT([$ac_prog_version]) + fi + if test $ac_verc_fail = yes; then + INTLBISON=: + fi +]) + + +dnl gt_CHECK_DECL(FUNC, INCLUDES) +dnl Check whether a function is declared. +AC_DEFUN([gt_CHECK_DECL], +[ + AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1, + [AC_TRY_COMPILE([$2], [ +#ifndef $1 + char *p = (char *) $1; +#endif +], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)]) + if test $ac_cv_have_decl_$1 = yes; then + gt_value=1 + else + gt_value=0 + fi + AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value], + [Define to 1 if you have the declaration of `$1', and to 0 if you don't.]) +]) diff -urN gawk-3.1.5/m4/intldir.m4 gawk-3.1.6/m4/intldir.m4 --- gawk-3.1.5/m4/intldir.m4 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/m4/intldir.m4 2007-01-12 12:21:16.000000000 +0200 @@ -0,0 +1,19 @@ +# intldir.m4 serial 1 (gettext-0.16) +dnl Copyright (C) 2006 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl +dnl This file can can be used in projects which are not available under +dnl the GNU General Public License or the GNU Library General Public +dnl License but which still want to provide support for the GNU gettext +dnl functionality. +dnl Please note that the actual code of the GNU gettext library is covered +dnl by the GNU Library General Public License, and the rest of the GNU +dnl gettext package package is covered by the GNU General Public License. +dnl They are *not* in the public domain. + +AC_PREREQ(2.52) + +dnl Tells the AM_GNU_GETTEXT macro to consider an intl/ directory. +AC_DEFUN([AM_GNU_GETTEXT_INTL_SUBDIR], []) diff -urN gawk-3.1.5/m4/intmax.m4 gawk-3.1.6/m4/intmax.m4 --- gawk-3.1.5/m4/intmax.m4 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/m4/intmax.m4 2007-01-12 12:21:20.000000000 +0200 @@ -1,4 +1,4 @@ -# intmax.m4 serial 2 (gettext-0.14.2) +# intmax.m4 serial 3 (gettext-0.16) dnl Copyright (C) 2002-2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -22,7 +22,10 @@ #if HAVE_INTTYPES_H_WITH_UINTMAX #include #endif -], [intmax_t x = -1;], gt_cv_c_intmax_t=yes, gt_cv_c_intmax_t=no)]) +], [intmax_t x = -1; + return !x;], + gt_cv_c_intmax_t=yes, + gt_cv_c_intmax_t=no)]) if test $gt_cv_c_intmax_t = yes; then AC_DEFINE(HAVE_INTMAX_T, 1, [Define if you have the 'intmax_t' type in or .]) diff -urN gawk-3.1.5/m4/inttypes-pri.m4 gawk-3.1.6/m4/inttypes-pri.m4 --- gawk-3.1.5/m4/inttypes-pri.m4 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/m4/inttypes-pri.m4 2007-01-12 12:21:29.000000000 +0200 @@ -1,18 +1,20 @@ -# inttypes-pri.m4 serial 1 (gettext-0.11.4) -dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. +# inttypes-pri.m4 serial 4 (gettext-0.16) +dnl Copyright (C) 1997-2002, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. +AC_PREREQ(2.52) + # Define PRI_MACROS_BROKEN if exists and defines the PRI* # macros to non-string values. This is the case on AIX 4.3.3. AC_DEFUN([gt_INTTYPES_PRI], [ - AC_REQUIRE([gt_HEADER_INTTYPES_H]) - if test $gt_cv_header_inttypes_h = yes; then + AC_CHECK_HEADERS([inttypes.h]) + if test $ac_cv_header_inttypes_h = yes; then AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken], gt_cv_inttypes_pri_broken, [ @@ -26,5 +28,9 @@ if test "$gt_cv_inttypes_pri_broken" = yes; then AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1, [Define if exists and defines unusable PRI* macros.]) + PRI_MACROS_BROKEN=1 + else + PRI_MACROS_BROKEN=0 fi + AC_SUBST([PRI_MACROS_BROKEN]) ]) diff -urN gawk-3.1.5/m4/inttypes_h.m4 gawk-3.1.6/m4/inttypes_h.m4 --- gawk-3.1.5/m4/inttypes_h.m4 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/m4/inttypes_h.m4 2007-01-12 12:21:35.000000000 +0200 @@ -1,5 +1,5 @@ -# inttypes_h.m4 serial 6 -dnl Copyright (C) 1997-2004 Free Software Foundation, Inc. +# inttypes_h.m4 serial 7 +dnl Copyright (C) 1997-2004, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -15,7 +15,7 @@ [AC_TRY_COMPILE( [#include #include ], - [uintmax_t i = (uintmax_t) -1;], + [uintmax_t i = (uintmax_t) -1; return !i;], gl_cv_header_inttypes_h=yes, gl_cv_header_inttypes_h=no)]) if test $gl_cv_header_inttypes_h = yes; then diff -urN gawk-3.1.5/m4/lib-link.m4 gawk-3.1.6/m4/lib-link.m4 --- gawk-3.1.5/m4/lib-link.m4 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/m4/lib-link.m4 2007-01-12 12:21:40.000000000 +0200 @@ -1,5 +1,5 @@ -# lib-link.m4 serial 6 (gettext-0.14.3) -dnl Copyright (C) 2001-2005 Free Software Foundation, Inc. +# lib-link.m4 serial 9 (gettext-0.16) +dnl Copyright (C) 2001-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -126,6 +126,7 @@ dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl By default, look in $includedir and $libdir. @@ -148,7 +149,7 @@ ]) else additional_includedir="$withval/include" - additional_libdir="$withval/lib" + additional_libdir="$withval/$acl_libdirstem" fi fi ]) @@ -197,9 +198,16 @@ found_so= found_a= if test $use_additional = yes; then - if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then + if test -n "$shlibext" \ + && { test -f "$additional_libdir/lib$name.$shlibext" \ + || { test "$shlibext" = dll \ + && test -f "$additional_libdir/lib$name.dll.a"; }; }; then found_dir="$additional_libdir" - found_so="$additional_libdir/lib$name.$shlibext" + if test -f "$additional_libdir/lib$name.$shlibext"; then + found_so="$additional_libdir/lib$name.$shlibext" + else + found_so="$additional_libdir/lib$name.dll.a" + fi if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi @@ -219,9 +227,16 @@ case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then + if test -n "$shlibext" \ + && { test -f "$dir/lib$name.$shlibext" \ + || { test "$shlibext" = dll \ + && test -f "$dir/lib$name.dll.a"; }; }; then found_dir="$dir" - found_so="$dir/lib$name.$shlibext" + if test -f "$dir/lib$name.$shlibext"; then + found_so="$dir/lib$name.$shlibext" + else + found_so="$dir/lib$name.dll.a" + fi if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi @@ -248,7 +263,7 @@ dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. - if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else @@ -334,8 +349,8 @@ dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in - */lib | */lib/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` additional_includedir="$basedir/include" ;; esac @@ -396,9 +411,9 @@ dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. - if test "X$additional_libdir" != "X/usr/lib"; then + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= - if test "X$additional_libdir" = "X/usr/local/lib"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; @@ -551,3 +566,79 @@ fi done ]) + +dnl For those cases where a variable contains several -L and -l options +dnl referring to unknown libraries and directories, this macro determines the +dnl necessary additional linker options for the runtime path. +dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) +dnl sets LDADDVAR to linker options needed together with LIBSVALUE. +dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, +dnl otherwise linking without libtool is assumed. +AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], +[ + AC_REQUIRE([AC_LIB_RPATH]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + $1= + if test "$enable_rpath" != no; then + if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode directories into the resulting + dnl binary. + rpathdirs= + next= + for opt in $2; do + if test -n "$next"; then + dir="$next" + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem"; then + rpathdirs="$rpathdirs $dir" + fi + next= + else + case $opt in + -L) next=yes ;; + -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem"; then + rpathdirs="$rpathdirs $dir" + fi + next= ;; + *) next= ;; + esac + fi + done + if test "X$rpathdirs" != "X"; then + if test -n ""$3""; then + dnl libtool is used for linking. Use -R options. + for dir in $rpathdirs; do + $1="${$1}${$1:+ }-R$dir" + done + else + dnl The linker is used for linking directly. + if test -n "$hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user + dnl must pass all path elements in one option. + alldirs= + for dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="$flag" + else + dnl The -rpath options are cumulative. + for dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$dir" + eval flag=\"$hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="${$1}${$1:+ }$flag" + done + fi + fi + fi + fi + fi + AC_SUBST([$1]) +]) diff -urN gawk-3.1.5/m4/lib-prefix.m4 gawk-3.1.6/m4/lib-prefix.m4 --- gawk-3.1.5/m4/lib-prefix.m4 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/m4/lib-prefix.m4 2007-01-12 12:21:45.000000000 +0200 @@ -1,4 +1,4 @@ -# lib-prefix.m4 serial 4 (gettext-0.14.2) +# lib-prefix.m4 serial 5 (gettext-0.15) dnl Copyright (C) 2001-2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -24,6 +24,7 @@ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes @@ -45,7 +46,7 @@ ]) else additional_includedir="$withval/include" - additional_libdir="$withval/lib" + additional_libdir="$withval/$acl_libdirstem" fi fi ]) @@ -87,7 +88,7 @@ dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. - if test "X$additional_libdir" != "X/usr/lib"; then + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) @@ -97,7 +98,7 @@ fi done if test -z "$haveit"; then - if test "X$additional_libdir" = "X/usr/local/lib"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; @@ -151,3 +152,34 @@ exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) + +dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing +dnl the basename of the libdir, either "lib" or "lib64". +AC_DEFUN([AC_LIB_PREPARE_MULTILIB], +[ + dnl There is no formal standard regarding lib and lib64. The current + dnl practice is that on a system supporting 32-bit and 64-bit instruction + dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit + dnl libraries go under $prefix/lib. We determine the compiler's default + dnl mode by looking at the compiler's library search path. If at least + dnl of its elements ends in /lib64 or points to a directory whose absolute + dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the + dnl default, namely "lib". + acl_libdirstem=lib + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi +]) diff -urN gawk-3.1.5/m4/lock.m4 gawk-3.1.6/m4/lock.m4 --- gawk-3.1.5/m4/lock.m4 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/m4/lock.m4 2007-01-12 12:21:45.000000000 +0200 @@ -0,0 +1,311 @@ +# lock.m4 serial 6 (gettext-0.16) +dnl Copyright (C) 2005-2006 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl Tests for a multithreading library to be used. +dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS, +dnl USE_PTH_THREADS, USE_WIN32_THREADS +dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use +dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with +dnl libtool). +dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for +dnl programs that really need multithread functionality. The difference +dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak +dnl symbols, typically LIBTHREAD="" whereas LIBMULTITHREAD="-lpthread". +dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for +dnl multithread-safe programs. + +AC_DEFUN([gl_LOCK_EARLY], +[ + AC_REQUIRE([gl_LOCK_EARLY_BODY]) +]) + +dnl The guts of gl_LOCK_EARLY. Needs to be expanded only once. + +AC_DEFUN([gl_LOCK_EARLY_BODY], +[ + dnl Ordering constraints: This macro modifies CPPFLAGS in a way that + dnl influences the result of the autoconf tests that test for *_unlocked + dnl declarations, on AIX 5 at least. Therefore it must come early. + AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl + AC_BEFORE([$0], [gl_ARGP])dnl + + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_GNU_SOURCE]) dnl needed for pthread_rwlock_t on glibc systems + dnl Check for multithreading. + AC_ARG_ENABLE(threads, +AC_HELP_STRING([--enable-threads={posix|solaris|pth|win32}], [specify multithreading API]) +AC_HELP_STRING([--disable-threads], [build without multithread safety]), + [gl_use_threads=$enableval], + [case "$host_os" in + dnl Disable multithreading by default on OSF/1, because it interferes + dnl with fork()/exec(): When msgexec is linked with -lpthread, its child + dnl process gets an endless segmentation fault inside execvp(). + osf*) gl_use_threads=no ;; + *) gl_use_threads=yes ;; + esac + ]) + if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then + # For using : + case "$host_os" in + osf*) + # On OSF/1, the compiler needs the flag -D_REENTRANT so that it + # groks . cc also understands the flag -pthread, but + # we don't use it because 1. gcc-2.95 doesn't understand -pthread, + # 2. putting a flag into CPPFLAGS that has an effect on the linker + # causes the AC_TRY_LINK test below to succeed unexpectedly, + # leading to wrong values of LIBTHREAD and LTLIBTHREAD. + CPPFLAGS="$CPPFLAGS -D_REENTRANT" + ;; + esac + # Some systems optimize for single-threaded programs by default, and + # need special flags to disable these optimizations. For example, the + # definition of 'errno' in . + case "$host_os" in + aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; + solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; + esac + fi +]) + +dnl The guts of gl_LOCK. Needs to be expanded only once. + +AC_DEFUN([gl_LOCK_BODY], +[ + AC_REQUIRE([gl_LOCK_EARLY_BODY]) + gl_threads_api=none + LIBTHREAD= + LTLIBTHREAD= + LIBMULTITHREAD= + LTLIBMULTITHREAD= + if test "$gl_use_threads" != no; then + dnl Check whether the compiler and linker support weak declarations. + AC_MSG_CHECKING([whether imported symbols can be declared weak]) + gl_have_weak=no + AC_TRY_LINK([extern void xyzzy (); +#pragma weak xyzzy], [xyzzy();], [gl_have_weak=yes]) + AC_MSG_RESULT([$gl_have_weak]) + if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then + # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that + # it groks . It's added above, in gl_LOCK_EARLY_BODY. + AC_CHECK_HEADER(pthread.h, gl_have_pthread_h=yes, gl_have_pthread_h=no) + if test "$gl_have_pthread_h" = yes; then + # Other possible tests: + # -lpthreads (FSU threads, PCthreads) + # -lgthreads + gl_have_pthread= + # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist + # in libc. IRIX 6.5 has the first one in both libc and libpthread, but + # the second one only in libpthread, and lock.c needs it. + AC_TRY_LINK([#include ], + [pthread_mutex_lock((pthread_mutex_t*)0); + pthread_mutexattr_init((pthread_mutexattr_t*)0);], + [gl_have_pthread=yes]) + # Test for libpthread by looking for pthread_kill. (Not pthread_self, + # since it is defined as a macro on OSF/1.) + if test -n "$gl_have_pthread"; then + # The program links fine without libpthread. But it may actually + # need to link with libpthread in order to create multiple threads. + AC_CHECK_LIB(pthread, pthread_kill, + [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread + # On Solaris and HP-UX, most pthread functions exist also in libc. + # Therefore pthread_in_use() needs to actually try to create a + # thread: pthread_create from libc will fail, whereas + # pthread_create will actually create a thread. + case "$host_os" in + solaris* | hpux*) + AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], 1, + [Define if the pthread_in_use() detection is hard.]) + esac + ]) + else + # Some library is needed. Try libpthread and libc_r. + AC_CHECK_LIB(pthread, pthread_kill, + [gl_have_pthread=yes + LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread + LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread]) + if test -z "$gl_have_pthread"; then + # For FreeBSD 4. + AC_CHECK_LIB(c_r, pthread_kill, + [gl_have_pthread=yes + LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r + LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r]) + fi + fi + if test -n "$gl_have_pthread"; then + gl_threads_api=posix + AC_DEFINE([USE_POSIX_THREADS], 1, + [Define if the POSIX multithreading library can be used.]) + if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then + if test $gl_have_weak = yes; then + AC_DEFINE([USE_POSIX_THREADS_WEAK], 1, + [Define if references to the POSIX multithreading library should be made weak.]) + LIBTHREAD= + LTLIBTHREAD= + fi + fi + # OSF/1 4.0 and MacOS X 10.1 lack the pthread_rwlock_t type and the + # pthread_rwlock_* functions. + AC_CHECK_TYPE([pthread_rwlock_t], + [AC_DEFINE([HAVE_PTHREAD_RWLOCK], 1, + [Define if the POSIX multithreading library has read/write locks.])], + [], + [#include ]) + # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. + AC_TRY_COMPILE([#include ], + [#if __FreeBSD__ == 4 +error "No, in FreeBSD 4.0 recursive mutexes actually don't work." +#else +int x = (int)PTHREAD_MUTEX_RECURSIVE; +return !x; +#endif], + [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], 1, + [Define if the defines PTHREAD_MUTEX_RECURSIVE.])]) + fi + fi + fi + if test -z "$gl_have_pthread"; then + if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then + gl_have_solaristhread= + gl_save_LIBS="$LIBS" + LIBS="$LIBS -lthread" + AC_TRY_LINK([#include +#include ], + [thr_self();], + [gl_have_solaristhread=yes]) + LIBS="$gl_save_LIBS" + if test -n "$gl_have_solaristhread"; then + gl_threads_api=solaris + LIBTHREAD=-lthread + LTLIBTHREAD=-lthread + LIBMULTITHREAD="$LIBTHREAD" + LTLIBMULTITHREAD="$LTLIBTHREAD" + AC_DEFINE([USE_SOLARIS_THREADS], 1, + [Define if the old Solaris multithreading library can be used.]) + if test $gl_have_weak = yes; then + AC_DEFINE([USE_SOLARIS_THREADS_WEAK], 1, + [Define if references to the old Solaris multithreading library should be made weak.]) + LIBTHREAD= + LTLIBTHREAD= + fi + fi + fi + fi + if test "$gl_use_threads" = pth; then + gl_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_LINKFLAGS(pth) + gl_have_pth= + gl_save_LIBS="$LIBS" + LIBS="$LIBS -lpth" + AC_TRY_LINK([#include ], [pth_self();], gl_have_pth=yes) + LIBS="$gl_save_LIBS" + if test -n "$gl_have_pth"; then + gl_threads_api=pth + LIBTHREAD="$LIBPTH" + LTLIBTHREAD="$LTLIBPTH" + LIBMULTITHREAD="$LIBTHREAD" + LTLIBMULTITHREAD="$LTLIBTHREAD" + AC_DEFINE([USE_PTH_THREADS], 1, + [Define if the GNU Pth multithreading library can be used.]) + if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then + if test $gl_have_weak = yes; then + AC_DEFINE([USE_PTH_THREADS_WEAK], 1, + [Define if references to the GNU Pth multithreading library should be made weak.]) + LIBTHREAD= + LTLIBTHREAD= + fi + fi + else + CPPFLAGS="$gl_save_CPPFLAGS" + fi + fi + if test -z "$gl_have_pthread"; then + if test "$gl_use_threads" = yes || test "$gl_use_threads" = win32; then + if { case "$host_os" in + mingw*) true;; + *) false;; + esac + }; then + gl_threads_api=win32 + AC_DEFINE([USE_WIN32_THREADS], 1, + [Define if the Win32 multithreading API can be used.]) + fi + fi + fi + fi + AC_MSG_CHECKING([for multithread API to use]) + AC_MSG_RESULT([$gl_threads_api]) + AC_SUBST(LIBTHREAD) + AC_SUBST(LTLIBTHREAD) + AC_SUBST(LIBMULTITHREAD) + AC_SUBST(LTLIBMULTITHREAD) +]) + +AC_DEFUN([gl_LOCK], +[ + AC_REQUIRE([gl_LOCK_EARLY]) + AC_REQUIRE([gl_LOCK_BODY]) + gl_PREREQ_LOCK +]) + +# Prerequisites of lib/lock.c. +AC_DEFUN([gl_PREREQ_LOCK], [ + AC_REQUIRE([AC_C_INLINE]) +]) + +dnl Survey of platforms: +dnl +dnl Platform Available Compiler Supports test-lock +dnl flavours option weak result +dnl --------------- --------- --------- -------- --------- +dnl Linux 2.4/glibc posix -lpthread Y OK +dnl +dnl GNU Hurd/glibc posix +dnl +dnl FreeBSD 5.3 posix -lc_r Y +dnl posix -lkse ? Y +dnl posix -lpthread ? Y +dnl posix -lthr Y +dnl +dnl FreeBSD 5.2 posix -lc_r Y +dnl posix -lkse Y +dnl posix -lthr Y +dnl +dnl FreeBSD 4.0,4.10 posix -lc_r Y OK +dnl +dnl NetBSD 1.6 -- +dnl +dnl OpenBSD 3.4 posix -lpthread Y OK +dnl +dnl MacOS X 10.[123] posix -lpthread Y OK +dnl +dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK +dnl solaris -lthread Y Sol 7,8: 0.0; Sol 9: OK +dnl +dnl HP-UX 11 posix -lpthread N (cc) OK +dnl Y (gcc) +dnl +dnl IRIX 6.5 posix -lpthread Y 0.5 +dnl +dnl AIX 4.3,5.1 posix -lpthread N AIX 4: 0.5; AIX 5: OK +dnl +dnl OSF/1 4.0,5.1 posix -pthread (cc) N OK +dnl -lpthread (gcc) Y +dnl +dnl Cygwin posix -lpthread Y OK +dnl +dnl Any of the above pth -lpth 0.0 +dnl +dnl Mingw win32 N OK +dnl +dnl BeOS 5 -- +dnl +dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is +dnl turned off: +dnl OK if all three tests terminate OK, +dnl 0.5 if the first test terminates OK but the second one loops endlessly, +dnl 0.0 if the first test already loops endlessly. diff -urN gawk-3.1.5/m4/longdouble.m4 gawk-3.1.6/m4/longdouble.m4 --- gawk-3.1.5/m4/longdouble.m4 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/m4/longdouble.m4 2007-01-12 12:21:52.000000000 +0200 @@ -1,5 +1,5 @@ -# longdouble.m4 serial 1 (gettext-0.12) -dnl Copyright (C) 2002-2003 Free Software Foundation, Inc. +# longdouble.m4 serial 2 (gettext-0.15) +dnl Copyright (C) 2002-2003, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -8,6 +8,9 @@ dnl Test whether the compiler supports the 'long double' type. dnl Prerequisite: AC_PROG_CC +dnl This file is only needed in autoconf <= 2.59. Newer versions of autoconf +dnl have a macro AC_TYPE_LONG_DOUBLE with identical semantics. + AC_DEFUN([gt_TYPE_LONGDOUBLE], [ AC_CACHE_CHECK([for long double], gt_cv_c_long_double, diff -urN gawk-3.1.5/m4/longlong.m4 gawk-3.1.6/m4/longlong.m4 --- gawk-3.1.5/m4/longlong.m4 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/m4/longlong.m4 2007-01-12 12:21:57.000000000 +0200 @@ -1,21 +1,46 @@ -# longlong.m4 serial 5 -dnl Copyright (C) 1999-2004 Free Software Foundation, Inc. +# longlong.m4 serial 8 +dnl Copyright (C) 1999-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. -# Define HAVE_LONG_LONG if 'long long' works. +# Define HAVE_LONG_LONG_INT if 'long long int' works. +# This fixes a bug in Autoconf 2.60, but can be removed once we +# assume 2.61 everywhere. +# Note: If the type 'long long int' exists but is only 32 bits large +# (as on some very old compilers), AC_TYPE_LONG_LONG_INT will not be +# defined. In this case you can treat 'long long int' like 'long int'. + +AC_DEFUN([AC_TYPE_LONG_LONG_INT], +[ + AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[long long int ll = 9223372036854775807ll; + long long int nll = -9223372036854775807LL; + typedef int a[((-9223372036854775807LL < 0 + && 0 < 9223372036854775807ll) + ? 1 : -1)]; + int i = 63;]], + [[long long int llmax = 9223372036854775807ll; + return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) + | (llmax / ll) | (llmax % ll));]])], + [ac_cv_type_long_long_int=yes], + [ac_cv_type_long_long_int=no])]) + if test $ac_cv_type_long_long_int = yes; then + AC_DEFINE([HAVE_LONG_LONG_INT], 1, + [Define to 1 if the system has the type `long long int'.]) + fi +]) + +# This macro is obsolescent and should go away soon. AC_DEFUN([gl_AC_TYPE_LONG_LONG], [ - AC_CACHE_CHECK([for long long], ac_cv_type_long_long, - [AC_TRY_LINK([long long ll = 1LL; int i = 63;], - [long long llmax = (long long) -1; - return ll << i | ll >> i | llmax / ll | llmax % ll;], - ac_cv_type_long_long=yes, - ac_cv_type_long_long=no)]) + AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) + ac_cv_type_long_long=$ac_cv_type_long_long_int if test $ac_cv_type_long_long = yes; then AC_DEFINE(HAVE_LONG_LONG, 1, [Define if you have the 'long long' type.]) diff -urN gawk-3.1.5/m4/nls.m4 gawk-3.1.6/m4/nls.m4 --- gawk-3.1.5/m4/nls.m4 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/m4/nls.m4 2007-01-12 12:22:02.000000000 +0200 @@ -1,5 +1,5 @@ -# nls.m4 serial 2 (gettext-0.14.3) -dnl Copyright (C) 1995-2003, 2005 Free Software Foundation, Inc. +# nls.m4 serial 3 (gettext-0.15) +dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -29,23 +29,3 @@ AC_MSG_RESULT($USE_NLS) AC_SUBST(USE_NLS) ]) - -AC_DEFUN([AM_MKINSTALLDIRS], -[ - dnl Tell automake >= 1.10 to complain if mkinstalldirs is missing. - m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([mkinstalldirs])]) - dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly - dnl find the mkinstalldirs script in another subdir but $(top_srcdir). - dnl Try to locate it. - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - case "$ac_aux_dir" in - /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;; - *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;; - esac - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi - AC_SUBST(MKINSTALLDIRS) -]) diff -urN gawk-3.1.5/m4/po.m4 gawk-3.1.6/m4/po.m4 --- gawk-3.1.5/m4/po.m4 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/m4/po.m4 2007-01-12 12:22:07.000000000 +0200 @@ -1,5 +1,5 @@ -# po.m4 serial 7 (gettext-0.14.3) -dnl Copyright (C) 1995-2005 Free Software Foundation, Inc. +# po.m4 serial 13 (gettext-0.15) +dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -24,7 +24,7 @@ [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl - AC_REQUIRE([AM_MKINSTALLDIRS])dnl + AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake AC_REQUIRE([AM_NLS])dnl dnl Perform the following tests also if --disable-nls has been given, @@ -39,6 +39,22 @@ :) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + dnl Test whether it is GNU msgfmt >= 0.15. +changequote(,)dnl + case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; + *) MSGFMT_015=$MSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([MSGFMT_015]) +changequote(,)dnl + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac +changequote([,])dnl + AC_SUBST([GMSGFMT_015]) + dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. @@ -49,44 +65,26 @@ dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po + dnl Test whether it is GNU xgettext >= 0.15. +changequote(,)dnl + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac +changequote([,])dnl + AC_SUBST([XGETTEXT_015]) + dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) - dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. - dnl Test whether we really found GNU msgfmt. - if test "$GMSGFMT" != ":"; then - dnl If it is no GNU msgfmt we define it as : so that the - dnl Makefiles still can work. - if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && - (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` - AC_MSG_RESULT( - [found $GMSGFMT program is not GNU msgfmt; ignore it]) - GMSGFMT=":" - fi - fi - - dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. - dnl Test whether we really found GNU xgettext. - if test "$XGETTEXT" != ":"; then - dnl If it is no GNU xgettext we define it as : so that the - dnl Makefiles still can work. - if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && - (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - AC_MSG_RESULT( - [found xgettext program is not GNU xgettext; ignore it]) - XGETTEXT=":" - fi - dnl Remove leftover from FreeBSD xgettext call. - rm -f messages.po - fi + dnl Installation directories. + dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we + dnl have to define it here, so that it can be used in po/Makefile. + test -n "$localedir" || localedir='${datadir}/locale' + AC_SUBST([localedir]) - AC_OUTPUT_COMMANDS([ + AC_CONFIG_COMMANDS([po-directories], [[ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in @@ -123,11 +121,12 @@ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` - # Hide the ALL_LINGUAS assigment from automake. + # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. + # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES @@ -197,10 +196,10 @@ fi ;; esac - done], + done]], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it - # from automake. + # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" @@ -286,7 +285,7 @@ changequote([,])dnl # Set POTFILES to the value of the Makefile variable POTFILES. - sed_x_POTFILES="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`" + sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'` POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"` # Compute POTFILES_DEPS as # $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) @@ -305,10 +304,10 @@ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS. - sed_x_LINGUAS="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`" + sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'` ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"` fi - # Hide the ALL_LINGUAS assigment from automake. + # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) diff -urN gawk-3.1.5/m4/size_max.m4 gawk-3.1.6/m4/size_max.m4 --- gawk-3.1.5/m4/size_max.m4 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/m4/size_max.m4 2007-01-12 12:22:14.000000000 +0200 @@ -1,5 +1,5 @@ -# size_max.m4 serial 2 -dnl Copyright (C) 2003 Free Software Foundation, Inc. +# size_max.m4 serial 5 +dnl Copyright (C) 2003, 2005-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -11,8 +11,9 @@ AC_CHECK_HEADERS(stdint.h) dnl First test whether the system already has SIZE_MAX. AC_MSG_CHECKING([for SIZE_MAX]) - result= - AC_EGREP_CPP([Found it], [ + AC_CACHE_VAL([gl_cv_size_max], [ + gl_cv_size_max= + AC_EGREP_CPP([Found it], [ #include #if HAVE_STDINT_H #include @@ -20,40 +21,42 @@ #ifdef SIZE_MAX Found it #endif -], result=yes) - if test -z "$result"; then - dnl Define it ourselves. Here we assume that the type 'size_t' is not wider - dnl than the type 'unsigned long'. - dnl The _AC_COMPUTE_INT macro works up to LONG_MAX, since it uses 'expr', - dnl which is guaranteed to work from LONG_MIN to LONG_MAX. - _AC_COMPUTE_INT([~(size_t)0 / 10], res_hi, - [#include ], result=?) - _AC_COMPUTE_INT([~(size_t)0 % 10], res_lo, - [#include ], result=?) - _AC_COMPUTE_INT([sizeof (size_t) <= sizeof (unsigned int)], fits_in_uint, - [#include ], result=?) - if test "$fits_in_uint" = 1; then - dnl Even though SIZE_MAX fits in an unsigned int, it must be of type - dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'. - AC_TRY_COMPILE([#include - extern size_t foo; - extern unsigned long foo; - ], [], fits_in_uint=0) - fi - if test -z "$result"; then - if test "$fits_in_uint" = 1; then - result="$res_hi$res_lo"U +], gl_cv_size_max=yes) + if test -z "$gl_cv_size_max"; then + dnl Define it ourselves. Here we assume that the type 'size_t' is not wider + dnl than the type 'unsigned long'. Try hard to find a definition that can + dnl be used in a preprocessor #if, i.e. doesn't contain a cast. + _AC_COMPUTE_INT([sizeof (size_t) * CHAR_BIT - 1], size_t_bits_minus_1, + [#include +#include ], size_t_bits_minus_1=) + _AC_COMPUTE_INT([sizeof (size_t) <= sizeof (unsigned int)], fits_in_uint, + [#include ], fits_in_uint=) + if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then + if test $fits_in_uint = 1; then + dnl Even though SIZE_MAX fits in an unsigned int, it must be of type + dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'. + AC_TRY_COMPILE([#include + extern size_t foo; + extern unsigned long foo; + ], [], fits_in_uint=0) + fi + dnl We cannot use 'expr' to simplify this expression, because 'expr' + dnl works only with 'long' integers in the host environment, while we + dnl might be cross-compiling from a 32-bit platform to a 64-bit platform. + if test $fits_in_uint = 1; then + gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" + else + gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" + fi else - result="$res_hi$res_lo"UL + dnl Shouldn't happen, but who knows... + gl_cv_size_max='((size_t)~(size_t)0)' fi - else - dnl Shouldn't happen, but who knows... - result='~(size_t)0' fi - fi - AC_MSG_RESULT([$result]) - if test "$result" != yes; then - AC_DEFINE_UNQUOTED([SIZE_MAX], [$result], + ]) + AC_MSG_RESULT([$gl_cv_size_max]) + if test "$gl_cv_size_max" != yes; then + AC_DEFINE_UNQUOTED([SIZE_MAX], [$gl_cv_size_max], [Define as the maximum value of type 'size_t', if the system doesn't define it.]) fi ]) diff -urN gawk-3.1.5/m4/socket.m4 gawk-3.1.6/m4/socket.m4 --- gawk-3.1.5/m4/socket.m4 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/m4/socket.m4 2007-08-11 22:39:49.000000000 +0300 @@ -8,7 +8,7 @@ dnl dnl GAWK is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation; either version 2 of the License, or +dnl the Free Software Foundation; either version 3 of the License, or dnl (at your option) any later version. dnl dnl GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/m4/stdint_h.m4 gawk-3.1.6/m4/stdint_h.m4 --- gawk-3.1.5/m4/stdint_h.m4 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/m4/stdint_h.m4 2007-01-12 12:22:19.000000000 +0200 @@ -1,5 +1,5 @@ -# stdint_h.m4 serial 5 -dnl Copyright (C) 1997-2004 Free Software Foundation, Inc. +# stdint_h.m4 serial 6 +dnl Copyright (C) 1997-2004, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -15,7 +15,7 @@ [AC_TRY_COMPILE( [#include #include ], - [uintmax_t i = (uintmax_t) -1;], + [uintmax_t i = (uintmax_t) -1; return !i;], gl_cv_header_stdint_h=yes, gl_cv_header_stdint_h=no)]) if test $gl_cv_header_stdint_h = yes; then diff -urN gawk-3.1.5/m4/strtod.m4 gawk-3.1.6/m4/strtod.m4 --- gawk-3.1.5/m4/strtod.m4 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/m4/strtod.m4 1970-01-01 02:00:00.000000000 +0200 @@ -1,58 +0,0 @@ -dnl -dnl strtod.m4 --- autoconf input file for gawk -dnl -dnl Copyright (C) 2001, 2002, 2004 the Free Software Foundation, Inc. -dnl -dnl This file is part of GAWK, the GNU implementation of the -dnl AWK Progamming Language. -dnl -dnl GAWK is free software; you can redistribute it and/or modify -dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation; either version 2 of the License, or -dnl (at your option) any later version. -dnl -dnl GAWK is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -dnl GNU General Public License for more details. -dnl -dnl You should have received a copy of the GNU General Public License -dnl along with this program; if not, write to the Free Software -dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - -dnl Check for strtod with C89 semantics - -AC_DEFUN([GAWK_AC_FUNC_STRTOD_C89], [ -AC_CHECK_HEADERS(stdlib.h) -AC_CHECK_FUNCS(strtod) -AC_CACHE_CHECK([for strtod with C89 semantics], gawk_ac_cv_func_strtod_c89, -[AC_TRY_RUN( -[/* Test program from Arnold Robbins (arnold@skeeve.com) */ -#if HAVE_STDLIB_H -#include -#else -extern double strtod(); -#endif - -int -main () -{ -#if ! HAVE_STRTOD - exit(1); -#else - double d; - char *str = "0x345a"; - - d = strtod(str, 0); - if (d == 0) - exit (0); - else - exit (1); -#endif -}], -gawk_ac_cv_func_strtod_c89=yes, gawk_ac_cv_func_strtod_c89=no, -gawk_ac_cv_func_strtod_c89=no)]) -if test $gawk_ac_cv_func_strtod_c89 = no; then - AC_DEFINE(STRTOD_NOT_C89, 1, [strtod doesn't have C89 semantics]) -fi -])# GAWK_FUNC_STRTOD_C89 diff -urN gawk-3.1.5/m4/ulonglong.m4 gawk-3.1.6/m4/ulonglong.m4 --- gawk-3.1.5/m4/ulonglong.m4 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/m4/ulonglong.m4 2007-01-12 12:22:36.000000000 +0200 @@ -1,21 +1,46 @@ -# ulonglong.m4 serial 4 -dnl Copyright (C) 1999-2004 Free Software Foundation, Inc. +# ulonglong.m4 serial 6 +dnl Copyright (C) 1999-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. -# Define HAVE_UNSIGNED_LONG_LONG if 'unsigned long long' works. +# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. +# This fixes a bug in Autoconf 2.60, but can be removed once we +# assume 2.61 everywhere. +# Note: If the type 'unsigned long long int' exists but is only 32 bits +# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT +# will not be defined. In this case you can treat 'unsigned long long int' +# like 'unsigned long int'. + +AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], +[ + AC_CACHE_CHECK([for unsigned long long int], + [ac_cv_type_unsigned_long_long_int], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[unsigned long long int ull = 18446744073709551615ULL; + typedef int a[(18446744073709551615ULL <= (unsigned long long int) -1 + ? 1 : -1)]; + int i = 63;]], + [[unsigned long long int ullmax = 18446744073709551615ull; + return (ull << 63 | ull >> 63 | ull << i | ull >> i + | ullmax / ull | ullmax % ull);]])], + [ac_cv_type_unsigned_long_long_int=yes], + [ac_cv_type_unsigned_long_long_int=no])]) + if test $ac_cv_type_unsigned_long_long_int = yes; then + AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], 1, + [Define to 1 if the system has the type `unsigned long long int'.]) + fi +]) + +# This macro is obsolescent and should go away soon. AC_DEFUN([gl_AC_TYPE_UNSIGNED_LONG_LONG], [ - AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long, - [AC_TRY_LINK([unsigned long long ull = 1ULL; int i = 63;], - [unsigned long long ullmax = (unsigned long long) -1; - return ull << i | ull >> i | ullmax / ull | ullmax % ull;], - ac_cv_type_unsigned_long_long=yes, - ac_cv_type_unsigned_long_long=no)]) + AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) + ac_cv_type_unsigned_long_long=$ac_cv_type_unsigned_long_long_int if test $ac_cv_type_unsigned_long_long = yes; then AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, [Define if you have the 'unsigned long long' type.]) diff -urN gawk-3.1.5/m4/visibility.m4 gawk-3.1.6/m4/visibility.m4 --- gawk-3.1.5/m4/visibility.m4 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/m4/visibility.m4 2007-01-12 12:22:36.000000000 +0200 @@ -0,0 +1,52 @@ +# visibility.m4 serial 1 (gettext-0.15) +dnl Copyright (C) 2005 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl Tests whether the compiler supports the command-line option +dnl -fvisibility=hidden and the function and variable attributes +dnl __attribute__((__visibility__("hidden"))) and +dnl __attribute__((__visibility__("default"))). +dnl Does *not* test for __visibility__("protected") - which has tricky +dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on +dnl MacOS X. +dnl Does *not* test for __visibility__("internal") - which has processor +dnl dependent semantics. +dnl Does *not* test for #pragma GCC visibility push(hidden) - which is +dnl "really only recommended for legacy code". +dnl Set the variable CFLAG_VISIBILITY. +dnl Defines and sets the variable HAVE_VISIBILITY. + +AC_DEFUN([gl_VISIBILITY], +[ + AC_REQUIRE([AC_PROG_CC]) + CFLAG_VISIBILITY= + HAVE_VISIBILITY=0 + if test -n "$GCC"; then + AC_MSG_CHECKING([for simple visibility declarations]) + AC_CACHE_VAL(gl_cv_cc_visibility, [ + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fvisibility=hidden" + AC_TRY_COMPILE( + [extern __attribute__((__visibility__("hidden"))) int hiddenvar; + extern __attribute__((__visibility__("default"))) int exportedvar; + extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); + extern __attribute__((__visibility__("default"))) int exportedfunc (void);], + [], + gl_cv_cc_visibility=yes, + gl_cv_cc_visibility=no) + CFLAGS="$gl_save_CFLAGS"]) + AC_MSG_RESULT([$gl_cv_cc_visibility]) + if test $gl_cv_cc_visibility = yes; then + CFLAG_VISIBILITY="-fvisibility=hidden" + HAVE_VISIBILITY=1 + fi + fi + AC_SUBST([CFLAG_VISIBILITY]) + AC_SUBST([HAVE_VISIBILITY]) + AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], + [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) +]) diff -urN gawk-3.1.5/main.c gawk-3.1.6/main.c --- gawk-3.1.5/main.c 2005-07-06 17:05:14.000000000 +0300 +++ gawk-3.1.6/main.c 2007-09-30 21:55:18.000000000 +0200 @@ -3,14 +3,14 @@ */ /* - * Copyright (C) 1986, 1988, 1989, 1991-2005 the Free Software Foundation, Inc. + * Copyright (C) 1986, 1988, 1989, 1991-2007 the Free Software Foundation, Inc. * * This file is part of GAWK, the GNU implementation of the * AWK Programming Language. * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, @@ -24,7 +24,7 @@ */ /* FIX THIS BEFORE EVERY RELEASE: */ -#define UPDATE_YEAR 2005 +#define UPDATE_YEAR 2007 #include "awk.h" #include "getopt.h" @@ -139,8 +139,9 @@ int do_tidy_mem = FALSE; /* release vars when done */ int in_begin_rule = FALSE; /* we're in a BEGIN rule */ -int in_end_rule = FALSE; /* we're in a END rule */ +int in_end_rule = FALSE; /* we're in an END rule */ int whiny_users = FALSE; /* do things that whiny users want */ +int use_lc_numeric = FALSE; /* obey locale for decimal point */ #ifdef MBS_SUPPORT int gawk_mb_cur_max; /* MB_CUR_MAX value, see comment in main() */ #else @@ -162,7 +163,7 @@ #if _MSC_VER == 510 void (*lintfunc) P((va_list va_alist, ...)) = warning; #else -#if defined(HAVE_STDARG_H) && defined(__STDC__) && __STDC__ +#ifdef CAN_USE_STDARG_H void (*lintfunc) P((const char *mesg, ...)) = warning; #else void (*lintfunc) () = warning; @@ -191,7 +192,8 @@ { "usage", no_argument, NULL, 'u' }, { "help", no_argument, NULL, 'u' }, { "exec", required_argument, NULL, 'S' }, -#ifdef GAWKDEBUG + { "use-lc-numeric", no_argument, & use_lc_numeric, 1 }, +#if defined(YYDEBUG) || defined(GAWKDEBUG) { "parsedebug", no_argument, NULL, 'D' }, #endif { NULL, 0, NULL, '\0' } @@ -227,10 +229,12 @@ whiny_users = TRUE; #ifdef HAVE_MCHECK_H +#ifdef HAVE_MTRACE if (do_tidy_mem) mtrace(); +#endif /* HAVE_MTRACE */ #endif /* HAVE_MCHECK_H */ - + #if defined(LC_CTYPE) setlocale(LC_CTYPE, ""); #endif @@ -246,7 +250,16 @@ * point is used for parsing source code and for command-line * assignments and the locale value for processing input, * number to string conversion, and printing output. + * + * 10/2005 --- see below also; we now only use the locale's + * decimal point if do_posix in effect. + * + * 9/2007: + * This is a mess. We need to get the locale's numeric info for + * the thousands separator for the %'d flag. */ + setlocale(LC_NUMERIC, ""); + loc = *localeconv(); /* Make a local copy of locale numeric info, early on */ setlocale(LC_NUMERIC, "C"); #endif #if defined(LC_TIME) @@ -413,7 +426,7 @@ break; case 'D': -#ifdef GAWKDEBUG +#if defined(YYDEBUG) || defined(GAWKDEBUG) yydebug = 2; break; #endif @@ -468,6 +481,7 @@ } if (do_posix) { + use_lc_numeric = TRUE; if (do_traditional) /* both on command line */ warning(_("`--posix' overrides `--traditional'")); else @@ -577,12 +591,23 @@ init_profiling_signals(); #if defined(LC_NUMERIC) - /* See comment above. */ - setlocale(LC_NUMERIC, ""); -#endif - -#if defined(HAVE_LOCALE_H) - loc = *localeconv(); /* Make a local copy of locale numeric info */ + /* + * See comment above about using locale's decimal point. + * + * 10/2005: + * Bitter experience teaches us that most people the world over + * use period as the decimal point, not whatever their locale + * uses. Thus, only use the locale's decimal point if being + * posixly anal-retentive. + * + * 7/2007: + * Be a little bit kinder. Allow the --use-lc-numeric option + * to also use the local decimal point. This avoids the draconian + * strictness of POSIX mode if someone just wants to parse their + * data using the local decimal point. + */ + if (use_lc_numeric) + setlocale(LC_NUMERIC, ""); #endif /* Whew. Finally, run the program. */ @@ -696,10 +721,16 @@ fputs(_("\t-W source=program-text\t--source=program-text\n"), fp); fputs(_("\t-W traditional\t\t--traditional\n"), fp); fputs(_("\t-W usage\t\t--usage\n"), fp); + fputs(_("\t-W use-lc-numeric\t--use-lc-numeric\n"), fp); fputs(_("\t-W version\t\t--version\n"), fp); /* This is one string to make things easier on translators. */ + /* TRANSLATORS: --help output 5 (end) + TRANSLATORS: the placeholder indicates the bug-reporting address + for this application. Please add _another line_ with the + address for translation bugs. + no-wrap */ fputs(_("\nTo report bugs, see node `Bugs' in `gawk.info', which is\n\ section `Reporting Problems and Bugs' in the printed version.\n\n"), fp); @@ -732,7 +763,7 @@ \n\ This program is free software; you can redistribute it and/or modify\n\ it under the terms of the GNU General Public License as published by\n\ -the Free Software Foundation; either version 2 of the License, or\n\ +the Free Software Foundation; either version 3 of the License, or\n\ (at your option) any later version.\n\ \n"); static const char blurb_part2[] = @@ -742,9 +773,13 @@ GNU General Public License for more details.\n\ \n"); static const char blurb_part3[] = +/* N_("You should have received a copy of the GNU General Public License\n\ along with this program; if not, write to the Free Software\n\ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n"); +*/ + N_("You should have received a copy of the GNU General Public License\n\ +along with this program. If not, see http://www.gnu.org/licenses/.\n"); /* multiple blurbs are needed for some brain dead compilers. */ printf(_(blurb_part1), UPDATE_YEAR); /* Last update year */ @@ -910,9 +945,16 @@ * Put AWKPATH into ENVIRON if it's not there. * This allows querying it from within awk programs. */ - if (getenv("AWKPATH") == NULL) { + if (! in_array(ENVIRON_node, tmp_string("AWKPATH", 7))) { + /* + * On VMS, environ[] only holds a subset of what getenv() can + * find, so look AWKPATH up before resorting to default path. + */ + val = getenv("AWKPATH"); + if (val == NULL) + val = defpath; aptr = assoc_lookup(ENVIRON_node, tmp_string("AWKPATH", 7), FALSE); - *aptr = make_string(defpath, strlen(defpath)); + *aptr = make_string(val, strlen(val)); } #endif /* TANDEM */ return ENVIRON_node; @@ -1048,9 +1090,14 @@ it = make_str_node(cp, strlen(cp), SCAN); it->flags |= MAYBE_NUM; #ifdef LC_NUMERIC - setlocale(LC_NUMERIC, "C"); + /* + * See comment above about locale decimal point. + */ + if (do_posix) + setlocale(LC_NUMERIC, "C"); (void) force_number(it); - setlocale(LC_NUMERIC, ""); + if (do_posix) + setlocale(LC_NUMERIC, ""); #endif /* LC_NUMERIC */ var = variable(arg, FALSE, Node_var); lhs = get_lhs(var, &after_assign, FALSE); @@ -1060,7 +1107,8 @@ (*after_assign)(); } - *--cp = '='; /* restore original text of ARGV */ + if (! initing) + *--cp = '='; /* restore original text of ARGV */ return ! badvar; } diff -urN gawk-3.1.5/mbsupport.h gawk-3.1.6/mbsupport.h --- gawk-3.1.5/mbsupport.h 2005-07-26 21:07:43.000000000 +0300 +++ gawk-3.1.6/mbsupport.h 2007-08-11 22:39:49.000000000 +0300 @@ -10,7 +10,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/missing gawk-3.1.6/missing --- gawk-3.1.5/missing 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/missing 2007-01-12 12:22:36.000000000 +0200 @@ -1,9 +1,9 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -scriptversion=2005-02-08.22 +scriptversion=2006-05-10.23 -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 +# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. @@ -33,6 +33,8 @@ fi run=: +sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' +sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. @@ -44,7 +46,7 @@ msg="missing on your system" -case "$1" in +case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= @@ -77,6 +79,7 @@ aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' + autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c @@ -106,7 +109,7 @@ # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). -case "$1" in +case $1 in lex|yacc) # Not GNU programs, they don't have --version. ;; @@ -135,7 +138,7 @@ # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. -case "$1" in +case $1 in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if @@ -164,7 +167,7 @@ test -z "$files" && files="config.h" touch_files= for f in $files; do - case "$f" in + case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; @@ -192,8 +195,8 @@ You can get \`$1' as part of \`Autoconf' from any GNU archive site." - file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` - test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else @@ -214,25 +217,25 @@ in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then + if test $# -ne 1; then eval LASTARG="\${$#}" - case "$LASTARG" in + case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if [ -f "$SRCFILE" ]; then + if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if [ -f "$SRCFILE" ]; then + if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi - if [ ! -f y.tab.h ]; then + if test ! -f y.tab.h; then echo >y.tab.h fi - if [ ! -f y.tab.c ]; then + if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; @@ -244,18 +247,18 @@ in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c - if [ $# -ne 1 ]; then + if test $# -ne 1; then eval LASTARG="\${$#}" - case "$LASTARG" in + case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if [ -f "$SRCFILE" ]; then + if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi - if [ ! -f lex.yy.c ]; then + if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; @@ -267,11 +270,9 @@ \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` - fi - if [ -f "$file" ]; then + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` + if test -f "$file"; then touch $file else test -z "$file" || exec >$file @@ -289,14 +290,23 @@ DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` + file=`echo "$*" | sed -n "$sed_output"` + test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` + file=`sed -n ' + /^@setfilename/{ + s/.* \([^ ]*\) *$/\1/ + p + q + }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi + # If the file does not exist, the user really needs makeinfo; + # let's fail without touching anything. + test -f $file || exit 1 touch $file ;; @@ -314,13 +324,13 @@ fi firstarg="$1" if shift; then - case "$firstarg" in + case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac - case "$firstarg" in + case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 diff -urN gawk-3.1.5/missing_d/ChangeLog gawk-3.1.6/missing_d/ChangeLog --- gawk-3.1.5/missing_d/ChangeLog 2005-07-26 21:46:53.000000000 +0300 +++ gawk-3.1.6/missing_d/ChangeLog 2007-10-22 08:50:27.000000000 +0200 @@ -1,3 +1,65 @@ +Mon Oct 22 08:49:05 2007 Arnold D. Robbins + + * Release 3.1.6: Release tar file made. + +Sun Oct 14 19:37:33 2007 Arnold D. Robbins + + * snprintf.c (safe_tmpfile): If have `atexit', add call to a function + that closes the open fp and unlinks the file. Needed mainly for + PC which can't do Unix-style unlink-after-open. + +Tue Oct 2 22:12:13 2007 Arnold D. Robbins + + * snprintf.c (safe_tmpfile): Add use of TMPDIR and TEMP environment + variables for systems that may not have a /tmp. For MS systems + do unlink at close. Thanks to Eli Zaretskii and Scott Deifik + for motivating me to do the right thing. + +Fri Apr 13 06:05:05 2007 Arnold D. Robbins + + * getaddrinfo.c: Add test for HAVE_SOCKETS with error message + if not. Thanks to Pat Rankin. + +Sun Apr 8 16:15:27 2007 Arnold D. Robbins + + * getaddrinfo.c: Add include of , and . + +Fri Apr 6 13:23:04 2007 Arnold D. Robbins + + * memmove.c.BSD, strncasecmp.c.BSD: Removed so that they won't make + their way into a tarball; these were the original versions from BSD + that were in use until the Savannah CVS archive went into place; see + the entry from August 25, 2006. + +Thu Apr 5 17:01:15 2007 Arnold D. Robbins + + * sprintf.c (snprintf): Fix typo and call vsnprintf + instead of calling self recursively. Thanks to Pat Rankin. + +Tue Feb 27 20:58:01 2007 Arnold D. Robbins + + * snprintf.c: Change names from gawk_xxx to real xxx. + +Mon Jan 15 14:34:30 2007 Arnold D. Robbins + + * getaddrinfo.h, getaddrinfo.c: New files, based on + submission by Jan Pazdziora . + +Fri Sep 15 15:05:09 2006 Arnold D. Robbins + + * strncasecmp.c, memmove.c: Corrected the FSF's address. + +Fri Aug 25 13:21:57 2006 Arnold D. Robbins + + * README: New file. + * strncasecmp.c, memmove.c: Replaced with versions + from GLIBC, hacked unmercifully to work standalone. + +Fri Oct 21 11:18:10 2005 Arnold D. Robbins + + * strtod.c (gawk_strtod): Made check for locale's decimal + point conditional also upon do_posix. + Tue Jul 26 21:46:16 2005 Arnold D. Robbins * Release 3.1.5: Release tar file made. diff -urN gawk-3.1.5/missing_d/README gawk-3.1.6/missing_d/README --- gawk-3.1.5/missing_d/README 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/missing_d/README 2006-08-25 13:26:23.000000000 +0300 @@ -0,0 +1,14 @@ +Fri Aug 25 13:23:06 IDT 2006 +============================ + +The files memmove.c, mktime.c, snprintf.c, strerror.c, strftime.c, +strncasecmp.c, and system.c are copyright by the Free Software +Foundation. They are licensed under the GPL or the LGPL. See the +COPYING.LIB file in this directory and the COPYING file in the parent +directory for licensing information. + +All other files are public domain. + +Arnold Robbins +arnold@skeeve.com + diff -urN gawk-3.1.5/missing_d/getaddrinfo.c gawk-3.1.6/missing_d/getaddrinfo.c --- gawk-3.1.5/missing_d/getaddrinfo.c 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/missing_d/getaddrinfo.c 2007-04-13 06:04:32.000000000 +0300 @@ -0,0 +1,112 @@ +#ifndef HAVE_SOCKETS +#error getaddrinfo.c included by mistake! no socket support! +#else +#include +#include +#ifdef HAVE_NETDB_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#ifdef HAVE_ARPA_INET_H +#include +#endif + +#include "getaddrinfo.h" + +void +freeaddrinfo(struct addrinfo *res) +{ + if (res->ai_addr != NULL) + free(res->ai_addr); + free(res); +} + +int +getaddrinfo(const char *hostname, const char *portname, + struct addrinfo *hints, struct addrinfo **res) +{ + struct addrinfo *out; + if (res == NULL) + return -1; + + out = (struct addrinfo *) malloc(sizeof(*out)); + if (out == NULL) { + *res = NULL; + return -1; + } + memset(out, '\0', sizeof(*out)); + + out->ai_addr = (struct sockaddr *) malloc(sizeof(struct sockaddr_in)); + if (out->ai_addr == NULL) { + free(out); + *res = NULL; + return -1; + } + + out->ai_socktype = SOCK_STREAM; + if (hints != NULL) { + if (hints->ai_socktype) + out->ai_socktype = hints->ai_socktype; + if (hints->ai_protocol) + out->ai_protocol = hints->ai_protocol; + } + + if (out->ai_protocol == 0) { + switch (out->ai_socktype) { + case SOCK_STREAM: + out->ai_protocol = IPPROTO_TCP; + break; + case SOCK_DGRAM: + out->ai_protocol = IPPROTO_UDP; + break; + case SOCK_RAW: + out->ai_protocol = IPPROTO_RAW; + break; + } + } + + out->ai_addrlen = sizeof(struct sockaddr_in); + memset(out->ai_addr, '\0', sizeof(struct sockaddr_in)); + + if (hostname != NULL) { + struct hostent *he; + he = gethostbyname(hostname); + if (he != NULL && he->h_addr_list != NULL) { + ((struct sockaddr_in *)out->ai_addr)->sin_addr.s_addr + = ((struct in_addr *)he->h_addr_list[0])->s_addr; + } else { + freeaddrinfo(out); + return -1; + } + } else { + if (!(out->ai_flags & AI_PASSIVE)) + ((struct sockaddr_in *)out->ai_addr)->sin_addr.s_addr + = htonl(INADDR_ANY); + } + ((struct sockaddr_in *)out->ai_addr)->sin_family = AF_INET; + out->ai_family = AF_INET; + + if (portname != NULL && *portname) { + long portnum; + char *end; + portnum = strtol(portname, &end, 10); + if (*end == '\0' && portnum > 0 && portnum < 65536) { + ((struct sockaddr_in *)out->ai_addr)->sin_port + = htons(portnum); + } else { + struct servent *se; + se = getservbyname(portname, NULL); + if (se != NULL) { + ((struct sockaddr_in *)out->ai_addr)->sin_port + = se->s_port; + } + } + } + + *res = out; + + return 0; +} +#endif diff -urN gawk-3.1.5/missing_d/getaddrinfo.h gawk-3.1.6/missing_d/getaddrinfo.h --- gawk-3.1.5/missing_d/getaddrinfo.h 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/missing_d/getaddrinfo.h 2007-01-15 21:35:00.000000000 +0200 @@ -0,0 +1,26 @@ +#ifndef AI_ADDRCONFIG +#define AI_ADDRCONFIG 0 +#endif /* AI_ADDRCONFIG */ +#ifndef AI_PASSIVE +#define AI_PASSIVE 1 +#endif /* AI_PASSIVE */ + +#define addrinfo xaddrinfo +#define freeaddrinfo xfreeaddrinfo +#define getaddrinfo xgetaddrinfo + +struct addrinfo +{ + int ai_flags; + int ai_socktype; + int ai_family; + int ai_protocol; + socklen_t ai_addrlen; + struct sockaddr * ai_addr; + struct xaddrinfo * ai_next; +}; + +void freeaddrinfo(struct xaddrinfo * res); + +int getaddrinfo(const char * hostname, const char * portname, + struct xaddrinfo * hints, struct xaddrinfo ** res); diff -urN gawk-3.1.5/missing_d/memmove.c gawk-3.1.6/missing_d/memmove.c --- gawk-3.1.5/missing_d/memmove.c 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/missing_d/memmove.c 2007-04-06 13:00:03.000000000 +0300 @@ -0,0 +1,139 @@ +/* Copy memory to memory until the specified number of bytes + has been copied. Overlap is handled correctly. + Copyright (C) 1991, 1995, 1996, 1997, 2003 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Torbjorn Granlund (tege@sics.se). + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301 USA */ + +/* + * August 2006. For Gawk: Borrowed from GLIBC and hacked unmercifully. + * DON'T steal this for your own code, got straight to the GLIBC + * source for the original versions. + */ + + +/* This stuff from libc/sysdeps/generic/memcopy.h */ +typedef unsigned char byte; + +/* Copy exactly NBYTES bytes from SRC_BP to DST_BP, + without any assumptions about alignment of the pointers. */ +#define BYTE_COPY_FWD(dst_bp, src_bp, nbytes) \ + do \ + { \ + size_t __nbytes = (nbytes); \ + while (__nbytes > 0) \ + { \ + byte __x = ((byte *) src_bp)[0]; \ + src_bp += 1; \ + __nbytes -= 1; \ + ((byte *) dst_bp)[0] = __x; \ + dst_bp += 1; \ + } \ + } while (0) + +/* Copy exactly NBYTES_TO_COPY bytes from SRC_END_PTR to DST_END_PTR, + beginning at the bytes right before the pointers and continuing towards + smaller addresses. Don't assume anything about alignment of the + pointers. */ +#define BYTE_COPY_BWD(dst_ep, src_ep, nbytes) \ + do \ + { \ + size_t __nbytes = (nbytes); \ + while (__nbytes > 0) \ + { \ + byte __x; \ + src_ep -= 1; \ + __x = ((byte *) src_ep)[0]; \ + dst_ep -= 1; \ + __nbytes -= 1; \ + ((byte *) dst_ep)[0] = __x; \ + } \ + } while (0) + +/* end of stuff from memcopy.h */ + +void * +memmove (dest, src, len) + void *dest; + const void *src; + size_t len; +{ + unsigned long int dstp = (long int) dest; + unsigned long int srcp = (long int) src; + + /* This test makes the forward copying code be used whenever possible. + Reduces the working set. */ + if (dstp - srcp >= len) /* *Unsigned* compare! */ + { + /* Copy from the beginning to the end. */ +#if 0 /* screw all this */ + /* If there not too few bytes to copy, use word copy. */ + if (len >= OP_T_THRES) + { + /* Copy just a few bytes to make DSTP aligned. */ + len -= (-dstp) % OPSIZ; + BYTE_COPY_FWD (dstp, srcp, (-dstp) % OPSIZ); + + /* Copy whole pages from SRCP to DSTP by virtual address + manipulation, as much as possible. */ + + PAGE_COPY_FWD_MAYBE (dstp, srcp, len, len); + + /* Copy from SRCP to DSTP taking advantage of the known + alignment of DSTP. Number of bytes remaining is put + in the third argument, i.e. in LEN. This number may + vary from machine to machine. */ + + WORD_COPY_FWD (dstp, srcp, len, len); + + /* Fall out and copy the tail. */ + } + + /* There are just a few bytes to copy. Use byte memory operations. */ +#endif + BYTE_COPY_FWD (dstp, srcp, len); + } + else + { + /* Copy from the end to the beginning. */ + srcp += len; + dstp += len; + +#if 0 /* ditto */ + /* If there not too few bytes to copy, use word copy. */ + if (len >= OP_T_THRES) + { + /* Copy just a few bytes to make DSTP aligned. */ + len -= dstp % OPSIZ; + BYTE_COPY_BWD (dstp, srcp, dstp % OPSIZ); + + /* Copy from SRCP to DSTP taking advantage of the known + alignment of DSTP. Number of bytes remaining is put + in the third argument, i.e. in LEN. This number may + vary from machine to machine. */ + + WORD_COPY_BWD (dstp, srcp, len, len); + + /* Fall out and copy the tail. */ + } +#endif + /* There are just a few bytes to copy. Use byte memory operations. */ + BYTE_COPY_BWD (dstp, srcp, len); + } + + return (dest); +} diff -urN gawk-3.1.5/missing_d/mktime.c gawk-3.1.6/missing_d/mktime.c --- gawk-3.1.5/missing_d/mktime.c 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/missing_d/mktime.c 2007-08-11 22:40:06.000000000 +0300 @@ -4,7 +4,7 @@ The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the + published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/missing_d/snprintf.c gawk-3.1.6/missing_d/snprintf.c --- gawk-3.1.5/missing_d/snprintf.c 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/missing_d/snprintf.c 2007-10-14 23:18:21.000000000 +0200 @@ -0,0 +1,197 @@ +/* + * snprintf.c - Implement snprintf and vsnprintf on platforms that need them. + */ + +/* + * Copyright (C) 2006, 2007 the Free Software Foundation, Inc. + * + * This file is part of GAWK, the GNU implementation of the + * AWK Programming Language. + * + * GAWK 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. + * + * GAWK 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + + +/* If using in a multi-threaded context, then SNPRINTF_REENTRANT must be + defined. But in that case, performance will be much worse, since a + temporary file is created and closed for each call to snprintf. */ + +#if defined(HAVE_MKSTEMP) +/* If mkstemp is available, use it instead of tmpfile(), since some older + implementations of tmpfile() were not secure. */ + +static char *tmpfilename = NULL; +static FILE *safe_f = NULL; + +#ifdef HAVE_ATEXIT +static void close_safe_f() +{ + if (safe_f != NULL) { + fclose(safe_f); + safe_f = NULL; + } + if (tmpfilename != NULL) { + unlink(tmpfilename); + free(tmpfilename); + tmpfilename = NULL; + } +} +#endif + +static FILE * +safe_tmpfile (void) +{ + static short first = TRUE; + static const char template[] = "snprintfXXXXXX"; + int fd; + static char *tmpdir = NULL; + static int len = 0; + + if (first) { + first = FALSE; + /* + * First try Unix stanadard env var, then Windows var, + * then fall back to /tmp. + */ + if ((tmpdir = getenv("TMPDIR")) != NULL && *tmpdir != '\0') + ; /* got it */ + else if ((tmpdir = getenv("TEMP")) != NULL && *tmpdir != '\0') + ; /* got it */ + else + tmpdir = "/tmp"; + + len = strlen(tmpdir) + 1 + strlen(template) + 1; +#ifdef HAVE_ATEXIT + atexit(close_safe_f); +#endif /* HAVE_ATEXIT */ + } + + if ((tmpfilename = (char *) malloc(len)) == NULL) + return NULL; + else + sprintf(tmpfilename, "%s/%s", tmpdir, template); + + if ((fd = mkstemp (tmpfilename)) < 0) + return NULL; + +#if ! defined(DJGPP) && ! defined(MSDOS) && ! defined(_MSC_VER) \ + && ! defined(_WIN32) && ! defined(__CRTRSXNT__) && ! defined(__EMX__) \ + && ! defined(__MINGW32__) && ! defined(__WIN32__) + /* If not MS, unlink after opening. */ + unlink (tmpfilename); + free(tmpfilename); + tmpfilename = NULL; +#endif + + if ((safe_f = fdopen (fd, "w+b")) == NULL) { + close (fd); + return NULL; + } + /* setvbuf(f,NULL,_IOFBF,4*BUFSIZ); */ + return safe_f; +} + +#elif defined(HAVE_TMPFILE) +#define safe_tmpfile tmpfile +#else +#error Neither mkstemp() nor tmpfile() is available on this platform. +#endif + +int +vsnprintf (char *restrict buf, size_t len, + const char *restrict fmt, va_list args) +{ + int actual; + int nread; + size_t cnt = 0; +#ifndef SNPRINTF_REENTRANT + static +#endif + FILE *fp; + + if ((buf == NULL) || (len < 1)) + return -1; + + buf[0] = '\0'; /* in case the caller does not check the return code! */ + +#ifdef SNPRINTF_REENTRANT + if ((fp = safe_tmpfile ()) == NULL) + return -1; +#else + if ((fp == NULL) && ((fp = safe_tmpfile ()) == NULL)) + return -1; + rewind (fp); +#endif + actual = vfprintf (fp, fmt, args); + rewind (fp); + if (actual < 0) { +#ifdef SNPRINTF_REENTRANT + fclose (fp); + if (tmpfilename != NULL) { + unlink(tmpfilename); + free(tmpfilename); + tmpfilename = NULL; + } +#endif + return -1; + } + else if ((size_t) actual < len) + len = actual; + else + --len; + while (cnt < len && (nread = fread (buf + cnt, 1, len - cnt, fp)) > 0) + cnt += nread; + buf[cnt] = '\0'; +#ifdef SNPRINTF_REENTRANT + fclose (fp); + if (tmpfilename != NULL) { + unlink(tmpfilename); + free(tmpfilename); + tmpfilename = NULL; + } +#endif + if (cnt < len) + return -1; + + return actual; +} + +int +#if defined(HAVE_STDARG_H) && defined(__STDC__) && __STDC__ +snprintf (char *restrict buf, size_t len, const char *restrict fmt, ...) +#else +snprintf (va_alist) + va_dcl +#endif +{ + int rv; + va_list args; + +#if defined(HAVE_STDARG_H) && defined(__STDC__) && __STDC__ + va_start (args, fmt); +#else + char *buf; + size_t len; + char *fmt; + + va_start (args); + buf = va_arg (args, char *); + len = va_arg (args, size_t); + fmt = va_arg (args, char *); +#endif + rv = vsnprintf (buf, len, fmt, args); + va_end (args); + return rv; +} diff -urN gawk-3.1.5/missing_d/snprintf.c.save gawk-3.1.6/missing_d/snprintf.c.save --- gawk-3.1.5/missing_d/snprintf.c.save 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/missing_d/snprintf.c.save 2007-08-11 22:40:06.000000000 +0300 @@ -0,0 +1,136 @@ +/* + * snprintf.c - Implement snprintf and vsnprintf on platforms that need them. + */ + +/* + * Copyright (C) 2006 the Free Software Foundation, Inc. + * + * This file is part of GAWK, the GNU implementation of the + * AWK Programming Language. + * + * GAWK 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. + * + * GAWK 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + + +/* If using in a multi-threaded context, then SNPRINTF_REENTRANT must be + defined. But in that case, performance will be much worse, since a + temporary file is created and closed for each call to snprintf. */ + +#if defined(HAVE_MKSTEMP) +/* If mkstemp is available, use it instead of tmpfile(), since some older + implementations of tmpfile() were not secure. */ + +static FILE * +safe_tmpfile (void) +{ + static const char template[] = "/tmp/snprintfXXXXXX"; + FILE *f; + int fd; + char t[sizeof (template)]; + + strcpy (t, template); + if ((fd = mkstemp (t)) < 0) + return NULL; + unlink (t); + if ((f = fdopen (fd, "w+b")) == NULL) { + close (fd); + return NULL; + } + /* setvbuf(f,NULL,_IOFBF,4*BUFSIZ); */ + return f; +} + +#elif defined(HAVE_TMPFILE) +#define safe_tmpfile tmpfile +#else +#error Neither mkstemp() nor tmpfile() is available on this platform. +#endif + +int +vsnprintf (char *restrict buf, size_t len, + const char *restrict fmt, va_list args) +{ + int actual; + int nread; + size_t cnt = 0; +#ifndef SNPRINTF_REENTRANT + static +#endif + FILE *fp; + + if ((buf == NULL) || (len < 1)) + return -1; + + buf[0] = '\0'; /* in case the caller does not check the return code! */ + +#ifdef SNPRINTF_REENTRANT + if ((fp = safe_tmpfile ()) == NULL) + return -1; +#else + if ((fp == NULL) && ((fp = safe_tmpfile ()) == NULL)) + return -1; + rewind (fp); +#endif + actual = vfprintf (fp, fmt, args); + rewind (fp); + if (actual < 0) { +#ifdef SNPRINTF_REENTRANT + fclose (fp); +#endif + return -1; + } + else if ((size_t) actual < len) + len = actual; + else + --len; + while (cnt < len && (nread = fread (buf + cnt, 1, len - cnt, fp)) > 0) + cnt += nread; + buf[cnt] = '\0'; +#ifdef SNPRINTF_REENTRANT + fclose (fp); +#endif + if (cnt < len) + return -1; + + return actual; +} + +int +#if defined(HAVE_STDARG_H) && defined(__STDC__) && __STDC__ +snprintf (char *restrict buf, size_t len, const char *restrict fmt, ...) +#else +snprintf (va_alist) + va_dcl +#endif +{ + int rv; + va_list args; + +#if defined(HAVE_STDARG_H) && defined(__STDC__) && __STDC__ + va_start (args, fmt); +#else + char *buf; + size_t len; + char *fmt; + + va_start (args); + buf = va_arg (args, char *); + len = va_arg (args, size_t); + fmt = va_arg (args, char *); +#endif + rv = vsnprintf (buf, len, fmt, args); + va_end (args); + return rv; +} diff -urN gawk-3.1.5/missing_d/strncasecmp.c gawk-3.1.6/missing_d/strncasecmp.c --- gawk-3.1.5/missing_d/strncasecmp.c 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/missing_d/strncasecmp.c 2006-09-15 15:04:52.000000000 +0300 @@ -0,0 +1,97 @@ +/* Copyright (C) 1991,1992,1995,1996,1997,2001,2002, 2004 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301 USA */ + +/* + * August 2006. For Gawk: Borrowed from GLIBC to replace BSD licensed version. + * DON'T steal this for your own code, just go to the GLIBC sources. + * This version hacked unmercifully. + */ + + +/* Compare S1 and S2, ignoring case, returning less than, equal to or + greater than zero if S1 is lexicographically less than, + equal to or greater than S2. */ +int +strcasecmp (s1, s2) + const char *s1; + const char *s2; +{ + const unsigned char *p1 = (const unsigned char *) s1; + const unsigned char *p2 = (const unsigned char *) s2; + int result; + + if (p1 == p2) + return 0; + + while ((result = tolower (*p1) - tolower (*p2++)) == 0) + if (*p1++ == '\0') + break; + + return result; +} + +/* Compare at most N characters of two strings without taking care for + the case. + Copyright (C) 1992, 1996, 1997, 2001, 2004 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +/* + * August 2006, for gawk, same comment applies. See strncase.c + * in the GLIBC sources. + */ + + +/* Compare no more than N characters of S1 and S2, + ignoring case, returning less than, equal to or + greater than zero if S1 is lexicographically less + than, equal to or greater than S2. */ +int +strncasecmp (s1, s2, n) + const char *s1; + const char *s2; + size_t n; +{ + const unsigned char *p1 = (const unsigned char *) s1; + const unsigned char *p2 = (const unsigned char *) s2; + int result; + + if (p1 == p2 || n == 0) + return 0; + + while ((result = tolower (*p1) - tolower (*p2++)) == 0) + if (*p1++ == '\0' || --n == 0) + break; + + return result; +} diff -urN gawk-3.1.5/missing_d/strtod.c gawk-3.1.6/missing_d/strtod.c --- gawk-3.1.5/missing_d/strtod.c 2005-07-26 21:27:35.000000000 +0300 +++ gawk-3.1.6/missing_d/strtod.c 2006-08-11 15:49:52.000000000 +0300 @@ -70,7 +70,7 @@ if ( #if defined(HAVE_LOCALE_H) - loc.decimal_point != NULL + loc.decimal_point != NULL && do_posix ? *s == loc.decimal_point[0] : *s == '.' #else diff -urN gawk-3.1.5/mkinstalldirs gawk-3.1.6/mkinstalldirs --- gawk-3.1.5/mkinstalldirs 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/mkinstalldirs 2007-01-12 12:22:36.000000000 +0200 @@ -1,7 +1,7 @@ #! /bin/sh # mkinstalldirs --- make directory hierarchy -scriptversion=2004-02-15.20 +scriptversion=2006-05-11.19 # Original author: Noah Friedman # Created: 1993-05-16 @@ -11,8 +11,11 @@ # bugs to or send patches to # . +nl=' +' +IFS=" "" $nl" errstatus=0 -dirmode="" +dirmode= usage="\ Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... @@ -27,7 +30,7 @@ case $1 in -h | --help | --h*) # -h for help echo "$usage" - exit 0 + exit $? ;; -m) # -m PERM arg shift @@ -37,7 +40,7 @@ ;; --version) echo "$0 $scriptversion" - exit 0 + exit $? ;; --) # stop option processing shift @@ -103,13 +106,21 @@ for file do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + case $file in + /*) pathcomp=/ ;; + *) pathcomp= ;; + esac + oIFS=$IFS + IFS=/ + set fnord $file shift + IFS=$oIFS - pathcomp= for d do - pathcomp="$pathcomp$d" + test "x$d" = x && continue + + pathcomp=$pathcomp$d case $pathcomp in -*) pathcomp=./$pathcomp ;; esac @@ -124,7 +135,7 @@ else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" - lasterr="" + lasterr= chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then @@ -134,7 +145,7 @@ fi fi - pathcomp="$pathcomp/" + pathcomp=$pathcomp/ done done diff -urN gawk-3.1.5/msg.c gawk-3.1.6/msg.c --- gawk-3.1.5/msg.c 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/msg.c 2007-04-08 16:46:37.000000000 +0300 @@ -76,7 +76,7 @@ */ void -#if defined(HAVE_STDARG_H) && defined(__STDC__) && __STDC__ +#ifdef CAN_USE_STDARG_H msg(const char *mesg, ...) #else /*VARARGS0*/ @@ -85,7 +85,7 @@ #endif { va_list args; -#if defined(HAVE_STDARG_H) && defined(__STDC__) && __STDC__ +#ifdef CAN_USE_STDARG_H va_start(args, mesg); #else char *mesg; @@ -100,7 +100,7 @@ /* warning --- print a warning message */ void -#if defined(HAVE_STDARG_H) && defined(__STDC__) && __STDC__ +#ifdef CAN_USE_STDARG_H warning(const char *mesg, ...) #else /*VARARGS0*/ @@ -109,7 +109,7 @@ #endif { va_list args; -#if defined(HAVE_STDARG_H) && defined(__STDC__) && __STDC__ +#ifdef CAN_USE_STDARG_H va_start(args, mesg); #else char *mesg; @@ -122,7 +122,7 @@ } void -#if defined(HAVE_STDARG_H) && defined(__STDC__) && __STDC__ +#ifdef CAN_USE_STDARG_H error(const char *mesg, ...) #else /*VARARGS0*/ @@ -131,7 +131,7 @@ #endif { va_list args; -#if defined(HAVE_STDARG_H) && defined(__STDC__) && __STDC__ +#ifdef CAN_USE_STDARG_H va_start(args, mesg); #else char *mesg; @@ -158,7 +158,7 @@ /* fatal --- print an error message and die */ void -#if defined(HAVE_STDARG_H) && defined(__STDC__) && __STDC__ +#ifdef CAN_USE_STDARG_H r_fatal(const char *mesg, ...) #else /*VARARGS0*/ @@ -167,7 +167,7 @@ #endif { va_list args; -#if defined(HAVE_STDARG_H) && defined(__STDC__) && __STDC__ +#ifdef CAN_USE_STDARG_H va_start(args, mesg); #else char *mesg; diff -urN gawk-3.1.5/node.c gawk-3.1.6/node.c --- gawk-3.1.5/node.c 2005-07-26 21:07:43.000000000 +0300 +++ gawk-3.1.6/node.c 2007-08-11 22:39:49.000000000 +0300 @@ -3,14 +3,14 @@ */ /* - * Copyright (C) 1986, 1988, 1989, 1991-2001, 2003-2005 the Free Software Foundation, Inc. + * Copyright (C) 1986, 1988, 1989, 1991-2001, 2003-2007 the Free Software Foundation, Inc. * * This file is part of GAWK, the GNU implementation of the * AWK Programming Language. * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, @@ -24,6 +24,10 @@ */ #include "awk.h" +#include "math.h" + +static int is_ieee_magic_val P((const char *val)); +static AWKNUM get_ieee_magic_val P((const char *val)); /* r_force_number --- force a value to be numeric */ @@ -61,16 +65,42 @@ } cp = n->stptr; - if (ISALPHA(*cp)) { - if (0 && do_lint) - lintwarn(_("can't convert string to float")); - return 0.0; + /* + * 2/2007: + * POSIX, by way of severe language lawyering, seems to + * allow things like "inf" and "nan" to mean something. + * So if do_posix, the user gets what he deserves. + * This also allows hexadecimal floating point. Ugh. + */ + if (! do_posix) { + if (ISALPHA(*cp)) { + if (0 && do_lint) + lintwarn(_("can't convert string to float")); + return 0.0; + } else if (n->stlen == 4 && is_ieee_magic_val(n->stptr)) { + if (n->flags & MAYBE_NUM) + n->flags &= ~MAYBE_NUM; + n->flags |= NUMBER|NUMCUR; + n->numbr = get_ieee_magic_val(n->stptr); + + return n->numbr; + } + /* else + fall through */ } + /* else not POSIX, so + fall through */ cpend = cp + n->stlen; while (cp < cpend && ISSPACE(*cp)) cp++; - if (cp == cpend || ISALPHA(*cp)) { + + /* FIXME: Simplify this condition! */ + if ( cp == cpend + || (! do_posix + && (ISALPHA(*cp) + || (! do_non_decimal_data && cp[0] == '0' + && (cp[1] == 'x' || cp[1] == 'X'))))) { if (0 && do_lint) lintwarn(_("can't convert string to float")); return 0.0; @@ -81,6 +111,7 @@ n->flags &= ~MAYBE_NUM; } else newflags = 0; + if (cpend - cp == 1) { if (ISDIGIT(*cp)) { n->numbr = (AWKNUM)(*cp - '0'); @@ -91,11 +122,12 @@ return n->numbr; } - if (do_non_decimal_data) { + if (do_non_decimal_data) { /* main.c assures false if do_posix */ errno = 0; if (! do_traditional && isnondecimal(cp, TRUE)) { n->numbr = nondec2awknum(cp, cpend - cp); n->flags |= NUMCUR; + ptr = cpend; goto finish; } } @@ -123,35 +155,19 @@ return n->numbr; } -/* - * the following lookup table is used as an optimization in force_string - * (more complicated) variations on this theme didn't seem to pay off, but - * systematic testing might be in order at some point - */ -static const char *const values[] = { - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", -}; -#define NVAL (sizeof(values)/sizeof(values[0])) /* format_val --- format a numeric value based on format */ NODE * format_val(const char *format, int index, register NODE *s) { - char buf[BUFSIZ]; - register char *sp = buf; double val; char *orig, *trans, save; + NODE *dummy, *r; + unsigned short oflags; + extern NODE **fmt_list; /* declared in eval.c */ + if (! do_traditional && (s->flags & INTLSTR) != 0) { save = s->stptr[s->stlen]; s->stptr[s->stlen] = '\0'; @@ -163,68 +179,41 @@ return tmp_string(trans, strlen(trans)); } - /* not an integral value, or out of range */ - if ((val = double_to_int(s->numbr)) != s->numbr - || val < LONG_MIN || val > LONG_MAX) { - /* - * Once upon a time, if GFMT_WORKAROUND wasn't defined, - * we just blindly did this: - * sprintf(sp, format, s->numbr); - * s->stlen = strlen(sp); - * s->stfmt = (char) index; - * but that's no good if, e.g., OFMT is %s. So we punt, - * and just always format the value ourselves. - */ - - NODE *dummy, *r; - unsigned short oflags; - extern NODE **fmt_list; /* declared in eval.c */ - - /* create dummy node for a sole use of format_tree */ - getnode(dummy); - dummy->type = Node_expression_list; - dummy->lnode = s; - dummy->rnode = NULL; - oflags = s->flags; - s->flags |= PERM; /* prevent from freeing by format_tree() */ - r = format_tree(format, fmt_list[index]->stlen, dummy, 2); - s->flags = oflags; - s->stfmt = (char) index; - s->stlen = r->stlen; - if ((s->flags & STRCUR) != 0) - free(s->stptr); - s->stptr = r->stptr; - freenode(r); /* Do not free_temp(r)! We want */ - freenode(dummy); /* to keep s->stptr == r->stpr. */ + /* + * 2/2007: Simplify our lives here. Instead of worrying about + * whether or not the value will fit into a long just so we + * can use sprintf("%ld", val) on it, always format it ourselves. + * The only thing to worry about is that integral values always + * format as integers. %.0f does that very well. + */ - goto no_malloc; - } else { - /* integral value */ - /* force conversion to long only once */ - register long num = (long) val; - if (num < NVAL && num >= 0) { - sp = (char *) values[num]; - s->stlen = 1; - } else { - (void) sprintf(sp, "%ld", num); - s->stlen = strlen(sp); - } + val = double_to_int(s->numbr); + + /* create dummy node for a sole use of format_tree */ + getnode(dummy); + dummy->type = Node_expression_list; + dummy->lnode = s; + dummy->rnode = NULL; + oflags = s->flags; + s->flags |= PERM; /* prevent from freeing by format_tree() */ + if (val == s->numbr) { + r = format_tree("%.0f", 4, dummy, 2); s->stfmt = -1; + } else { + r = format_tree(format, fmt_list[index]->stlen, dummy, 2); + s->stfmt = (char) index; } - emalloc(s->stptr, char *, s->stlen + 2, "format_val"); - memcpy(s->stptr, sp, s->stlen+1); -no_malloc: + s->flags = oflags; + s->stlen = r->stlen; + if ((s->flags & STRCUR) != 0) + free(s->stptr); + s->stptr = r->stptr; + freenode(r); /* Do not free_temp(r)! We want */ + freenode(dummy); /* to keep s->stptr == r->stpr. */ + s->stref = 1; s->flags |= STRCUR; -#if defined MBS_SUPPORT - if ((s->flags & WSTRCUR) != 0) { - assert(s->wstptr != NULL); - free(s->wstptr); - s->wstptr = NULL; - s->wstlen = 0; - s->flags &= ~WSTRCUR; - } -#endif + free_wstr(s); return s; } @@ -287,8 +276,14 @@ *r = *n; r->flags &= ~(PERM|TEMP|FIELD); r->flags |= MALLOC; -#if defined MBS_SUPPORT +#ifdef MBS_SUPPORT + /* + * DON'T call free_wstr(r) here! + * r->wstptr still points at n->wstptr's value, and we + * don't want to free it! + */ r->wstptr = NULL; + r->wstlen = 0; #endif /* defined MBS_SUPPORT */ if (n->type == Node_val && (n->flags & STRCUR) != 0) { r->stref = 1; @@ -344,11 +339,7 @@ r->stref = 1; r->stptr = NULL; r->stlen = 0; -#if defined MBS_SUPPORT - r->wstptr = NULL; - r->wstlen = 0; - r->flags &= ~WSTRCUR; -#endif /* MBS_SUPPORT */ + free_wstr(r); #endif /* GAWKDEBUG */ return r; } @@ -363,10 +354,11 @@ getnode(r); r->type = Node_val; r->flags = (STRING|STRCUR|MALLOC); -#if defined MBS_SUPPORT +#ifdef MBS_SUPPORT r->wstptr = NULL; r->wstlen = 0; -#endif +#endif /* defined MBS_SUPPORT */ + if (flags & ALREADY_MALLOCED) r->stptr = s; else { @@ -510,20 +502,13 @@ return; } free(tmp->stptr); -#if defined MBS_SUPPORT - if (tmp->wstptr != NULL) { - assert((tmp->flags & WSTRCUR) != 0); - free(tmp->wstptr); - } - tmp->flags &= ~WSTRCUR; - tmp->wstptr = NULL; - tmp->wstlen = 0; -#endif + free_wstr(tmp); } freenode(tmp); return; } if ((tmp->flags & FIELD) != 0) { + free_wstr(tmp); freenode(tmp); return; } @@ -555,6 +540,16 @@ register int i; register int count; + if (do_lint_old) { + switch (c) { + case 'b': + case 'f': + case 'r': + warning(_("old awk does not support the `\\%c' escape sequence"), c); + break; + } + } + switch (c) { case 'a': return BELL; @@ -597,10 +592,10 @@ return i; case 'x': if (do_lint) { - static int didwarn = FALSE; + static short warned = FALSE; - if (! didwarn) { - didwarn = TRUE; + if (! warned) { + warned = TRUE; lintwarn(_("POSIX does not allow `\\x' escapes")); } } @@ -704,12 +699,7 @@ return n; /* otherwise fall through and recompute to fill in the array */ - } - - if (n->wstptr != NULL) { - free(n->wstptr); - n->wstptr = NULL; - n->wstlen = 0; + free_wstr(n); } /* @@ -749,9 +739,11 @@ switch (count) { case (size_t) -2: case (size_t) -1: - case 0: goto done; + case 0: + count = 1; + /* fall through */ default: *wsp++ = wc; src_count -= count; @@ -775,7 +767,22 @@ return n; } -#if 0 +/* free_wstr --- release the wide string part of a node */ + +void +free_wstr(NODE *n) +{ + assert(n->type == Node_val); + + if ((n->flags & WSTRCUR) != 0) { + assert(n->wstptr != NULL); + free(n->wstptr); + } + n->wstptr = NULL; + n->wstlen = 0; + n->flags &= ~WSTRCUR; +} + static void dump_wstr(FILE *fp, const wchar_t *str, size_t len) { @@ -783,9 +790,8 @@ return; for (; len--; str++) - putc((int) *str, fp); + putwc(*str, fp); } -#endif /* wstrstr --- walk haystack, looking for needle, wide char version */ @@ -847,3 +853,48 @@ return NULL; } #endif /* defined MBS_SUPPORT */ + +/* is_ieee_magic_val --- return true for +inf, -inf, +nan, -nan */ + +static int +is_ieee_magic_val(const char *val) +{ + /* + * Avoid strncasecmp: it mishandles ASCII bytes in some locales. + * Assume the length is 4, as the caller checks this. + */ + return ( (val[0] == '+' || val[0] == '-') + && ( ( (val[1] == 'i' || val[1] == 'I') + && (val[2] == 'n' || val[2] == 'N') + && (val[3] == 'f' || val[3] == 'F')) + || ( (val[1] == 'n' || val[1] == 'N') + && (val[2] == 'a' || val[2] == 'A') + && (val[3] == 'n' || val[3] == 'N')))); +} + +/* get_ieee_magic_val --- return magic value for string */ + +static AWKNUM +get_ieee_magic_val(const char *val) +{ + static short first = TRUE; + static AWKNUM inf; + static AWKNUM nan; + + char *ptr; + AWKNUM v = strtod(val, &ptr); + + if (val == ptr) { /* Older strtod implementations don't support inf or nan. */ + if (first) { + first = FALSE; + nan = sqrt(-1.0); + inf = -log(0.0); + } + + v = ((val[1] == 'i' || val[1] == 'I') ? inf : nan); + if (val[0] == '-') + v = -v; + } + + return v; +} diff -urN gawk-3.1.5/pc/ChangeLog gawk-3.1.6/pc/ChangeLog --- gawk-3.1.5/pc/ChangeLog 2005-07-26 21:46:58.000000000 +0300 +++ gawk-3.1.6/pc/ChangeLog 2007-10-22 08:50:48.000000000 +0200 @@ -1,3 +1,126 @@ +Mon Oct 22 08:49:05 2007 Arnold D. Robbins + + * Release 3.1.6: Release tar file made. + +Sat Oct 20 22:42:08 2007 Scott Deifik + + * Makefile.tst: Sync with mainline, Revise inftest. + +Fri Oct 19 05:37:37 2007 Scott Deifik + + * config.h: Add definition of HAVE_ATEXIT. Needed for replacement + sprintf. + +Thu Oct 4 21:19:54 2007 Juan M. Guerrero + + * Makefile.tst (fmtspcl.ok): Remove unneeded dependency on Makefile. + +Wed Sep 26 15:10:17 2007 Scott Deifik + + * Makefile.tst (poundbang): Fix path in call to gawk. + (nofile): Fix output message with sed to match what test suite wants. + +Wed Sep 26 14:46:34 2007 Eli Zaretskii + + * Makefile.tst (msg): Use $(CMP) instead a literal "cmp". + (nonl): Use NUL instead of /dev/null. + (devfd, pid, fmtspcl, nofile, rstest4, rstest5, getlnhd, clos1way): + Expect to fail on MinGW. + (fmtspcl.ok): Depend on Makefile, not Makefile.tst. + (pipeio2, hsprint, fmttest): Expect formatting or whitespace + differences. + (exitval2): Use exitval2.w32 instead of exitval2.awk. + + * config.h (HAVE_DECL_TZNAME) [__MINGW32__]: Define. + (HAVE_ALLOCA) [__MINGW32__]: Don't define. + (HAVE_SNPRINTF) [__MINGW32__]: Remove _MSC_VER condition. + +Tue Sep 25 08:22:11 2007 KIMURA Koichi + + * config.h: For Visual Studio, undef restrict, define HAVE_TMPFILE, + undef TIME_WITH_SYS_TIME. + +Mon May 21 05:46:46 2007 Scott Deifik + + * config.h (HAVE_MKTIME): Define. + +Wed May 16 22:12:55 2007 Scott Deifik + + * Makfile.tst: Changes for DJGPP, bring in sync with main + test/Makefile. + +Wed May 9 21:01:18 2007 Scott Deifik + + DJGPP changes: + + * config.h: Add HAVE_MKTME, HAVE_MKSTEMP, conditionalize + HAVE_SNPRINTF. (ADR: #define out restrict). + * Makefile: Add replace$0 to AWKOBJS2 and PAWKOBJS2. + +2007-03-19 Juan M. Guerrero + + * config.h: Undef HAVE_ALLOCA for DJGPP. + * Makefile: Add floatcomp$O to AWKOBJS1 and PAWKOBJS1. + +2007-02-25 Juan M. Guerrero + + * config.h: Let DEFPATH reflect DJGPP installation directory tree. + * Makefile: pkgdatadir variable defined to $(prefix)/lib/awk. + * Makefile: In DJGPP section use the DJGPP environment variable to + redefine the pkgdatadir variable. + +2006-07-22 Eli Zaretskii + + * Makefile.tst: Update copyright years. + (COMSPEC): If it's empty, use ComSpec instead. + (CMP): Ignore white space differences. + (BASIC_TESTS): Add concat4, nofile, ovrflow1, subi18n. + (GAWK_EXT_TESTS): Add binmode1, devfd1, devfd2, fwtest, nondec2. + (msg): Use $(CMP) instead of literal "cmp". + (inftest): Uncomment the test. + (nonl): Use NUL, so it works with any DOS/Windows shell. + (fsspcoln): Run `head' though the system shell. + (nondec2, nofile, binmode1, subi18n, concat4, devfd1, devfd2) + (ovrflow1, fwtest, mixed1): New tests. + (fmttest, hsprint, ovrflow1, posix): Run output through Sed to + adjust the number of leading zeros in the exponent produced by %e. + (longwrds): Set SORT to just "sort". + (exitval2): Use exitval2.w32. + +2006-07-01 Eli Zaretskii + + * popen.h (os_popen): Declare 1st argument "const char *". + + * popen.c (scriptify): Declare argument "const char *". + (os_system): Declare argument "const char *". Add a new local + variable cmd1 to hold the results of scriptify. + (os_popen): Declare 1st argument "const char *". Add a new local + variable cmd to hold the results of scriptify. + + * Makefile (mingw32): Update definitions for CF, LF, and LF2. Use + libmsvcrtp60 during linking (for multibyte and wide character + support). + (io$O): Depend on popen.h. + + * config.h (HAVE_BTOWC) [_WIN32]: Define. + (HAVE_INTMAX_T, HAVE_UINTMAX_T, HAVE_INTTYPES_H, HAVE_STDINT_H) + (HAVE_INTTYPES_H_WITH_UINTMAX, HAVE_ISASCII, HAVE_ISWCTYPE) + (HAVE_ISWLOWER, HAVE_ISWUPPER, HAVE_LONG_LONG, HAVE_MBRLEN) + (HAVE_MBRTOWC, HAVE_TOWLOWER, HAVE_TOWUPPER, HAVE_WCHAR_H) + (HAVE_WCRTOMB, HAVE_WCSCOLL, HAVE_WCTYPE, HAVE_WCTYPE_H) + (HAVE_WCTYPE_T, HAVE_WINT_T) [__MINGW32__]: Define. + (inline) [__GNUC__]: Define to __inline__. + (HAVE_MEMMOVE, HAVE_PUTENV, HAVE_SETLOCALE, HAVE_LOCALE_H) + (HAVE_SNPRINTF, HAVE_STRTOUL, HAVE_STDLIB_H, HAVE_SYS_STAT_H) + (HAVE_SYS_TIME_H, HAVE_UNSIGNED_LONG_LONG) [__MINGW32__]: Define. + (HAVE_UNISTD_H): Define also for __MINGW32__. + (PACKAGE_BUGREPORT, PACKAGE_NAME, PACKAGE_STRING) + (PACKAGE_TARNAME, PACKAGE_VERSION): Define. + (VERSION): Update. + [__MINGW32__]: Include . + (HAVE_POPEN_H): Define as 1. + (ssize_t, intmax_t, uintmax_t): Don't redefine for __MINGW32__. + Tue Jul 26 21:46:16 2005 Arnold D. Robbins * Release 3.1.5: Release tar file made. diff -urN gawk-3.1.5/pc/Makefile gawk-3.1.6/pc/Makefile --- gawk-3.1.5/pc/Makefile 2005-06-26 09:31:28.000000000 +0300 +++ gawk-3.1.6/pc/Makefile 2007-05-09 21:03:08.000000000 +0300 @@ -73,6 +73,7 @@ # edit config.h so that $(prefix)/lib/awk appears as part of DEFPATH. #prefix = prefix = c:/gnu +pkgdatadir = $(prefix)/lib/awk # # Define the install method. Method 1 is Unix-like (and requires cat, # cp, mkdir, sed, and sh); method 2 uses gawk and batch files. @@ -106,6 +107,10 @@ #========================== DJGPP ======================================= #======================================================================== +ifneq ($(DJGPP),) +prefix = $(DJDIR) +pkgdatadir = $(prefix)/share/awk +endif LDJG = $(CC) $(LF) -o gawk.exe $(LDRSP) $(LF2) PLDJG = $(CC) $(LF) -o pgawk.exe $(PLDRSP) $(LF2) BDJG = stubify -g awk.exe | stubedit awk.exe runfile=gawk @@ -185,8 +190,8 @@ mingw32: $(MAK) all \ - CC=gcc O=.o CF=-O OBJ=popen.o \ - LNK=LMINGW32 PLNK=PLMINGW32 LF=-s RSP= + CC=gcc O=.o CF="-O2 -gdwarf-2 -g3" OBJ=popen.o \ + LNK=LMINGW32 PLNK=PLMINGW32 LF="-gdwarf-2 -g3" LF2=-lmsvcp60 RSP= #======================================================================== #========================== MSC ========================================= @@ -313,10 +318,10 @@ CFLAGS = $(CF) -DGAWK -I. -DHAVE_CONFIG_H $(DYN_FLAGS) # object files -AWKOBJS1 = array$O builtin$O eval$O field$O gawkmisc$O io$O main$O -AWKOBJS2 = ext$O msg$O node$O profile$O re$O version$O $(DYN_OBJ) -PAWKOBJS1 = array$O builtin$O eval_p$O field$O gawkmisc$O io$O main$O -PAWKOBJS2 = ext$O msg$O node$O profile_p$O re$O version$O $(DYN_OBJ) +AWKOBJS1 = array$O builtin$O eval$O field$O floatcomp$O gawkmisc$O io$O main$O +AWKOBJS2 = ext$O msg$O node$O profile$O re$O replace$O version$O $(DYN_OBJ) +PAWKOBJS1 = array$O builtin$O eval_p$O field$O floatcomp$O gawkmisc$O io$O main$O +PAWKOBJS2 = ext$O msg$O node$O profile_p$O re$O replace$O version$O $(DYN_OBJ) AWKOBJS = $(AWKOBJS1) $(AWKOBJS2) ALLOBJS = $(AWKOBJS) awkgram$O getid$O $(OBJ) @@ -364,6 +369,8 @@ getopt1$O: getopt.h +io$O: popen.h + gawk.exp: gawkw32.def $(DYN_MAKEXP) @@ -389,9 +396,9 @@ cat pc/awklib/igawk >> igawk.cmd sed "s;igawk;$(prefix)/bin/igawk;" pc/awklib/igawk.bat > igawk.bat sh mkinstal.sh $(prefix)/bin - sh mkinstal.sh $(prefix)/lib/awk $(prefix)/man/man1 $(prefix)/info + sh mkinstal.sh $(pkgdatadir) $(prefix)/man/man1 $(prefix)/info cp *awk.exe igawk.bat igawk.cmd pc/awklib/igawk $(prefix)/bin - cp awklib/eg/lib/* pc/awklib/igawk.awk $(prefix)/lib/awk + cp awklib/eg/lib/* pc/awklib/igawk.awk $(pkgdatadir) cp doc/*.1 $(prefix)/man/man1 cp doc/gawk.info $(prefix)/info diff -urN gawk-3.1.5/pc/Makefile.tst gawk-3.1.6/pc/Makefile.tst --- gawk-3.1.5/pc/Makefile.tst 2005-06-26 09:32:30.000000000 +0300 +++ gawk-3.1.6/pc/Makefile.tst 2007-10-20 22:41:46.000000000 +0200 @@ -1,13 +1,13 @@ # Makefile for GNU Awk test suite. # -# Copyright (C) 1988-2004 the Free Software Foundation, Inc. +# Copyright (C) 1988-2007 the Free Software Foundation, Inc. # # This file is part of GAWK, the GNU implementation of the # AWK Programming Language. # # GAWK is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # GAWK is distributed in the hope that it will be useful, @@ -111,46 +111,50 @@ srcdir = . -# Get rid of core files when cleaning -CLEANFILES = core core.* +# Get rid of core files when cleaning and generated .ok file +CLEANFILES = core core.* fmtspcl.ok # try to keep these sorted BASIC_TESTS = addcomma anchgsub argarray arrayparm arrayref arrymem1 \ arrayprm2 arrayprm3 arryref2 arryref3 arryref4 arryref5 arynasty \ arynocls aryprm1 aryprm2 aryprm3 aryprm4 aryprm5 aryprm6 aryprm7 \ aryprm8 arysubnm asgext awkpath back89 backgsub childin clobber \ - clsflnam compare compare2 concat1 concat2 concat3 convfmt datanonl defref \ - delarprm delarpm2 delfunc dynlj eofsplit exitval1 exitval2 fldchg fldchgnf fmttest fnamedat \ + clsflnam compare compare2 concat1 concat2 concat3 concat4 convfmt datanonl defref \ + delarprm delarpm2 delfunc dynlj eofsplit exitval1 exitval2 fldchg fldchgnf fmtspcl fmttest fnamedat \ fnarray fnarray2 fnarydel fnaryscl fnasgnm fnmisc fnparydl \ fordel forsimp fsbs fsspcoln fsrs fstabplus funsemnl funsmnam funstack getline \ getline2 getline3 getlnbuf getnr2tb getnr2tm gsubasgn gsubtest \ - gsubtst2 gsubtst3 gsubtst4 gsubtst5 hex hsprint inputred intest \ + gsubtst2 gsubtst3 gsubtst4 gsubtst5 hex hsprint inputred intest intformat \ intprec iobug1 leaddig leadnl litoct longsub longwrds manglprm math membug1 \ - messages minusstr mmap8k nasty nasty2 negexp nested nfldstr \ - nfneg nfset nlfldsep nlinstr nlstrina noeffect nofmtch noloop1 \ + messages minusstr mmap8k mtchi18n nasty nasty2 negexp nested nfldstr \ + nfneg nfset nlfldsep nlinstr nlstrina noeffect nofile nofmtch noloop1 \ noloop2 nonl noparms nors nulrsend numindex numsubstr octsub ofmt \ - ofmtbig ofmtfidl ofmts onlynl opasnidx opasnslf paramdup paramtyp \ - parseme pcntplus prdupval prec printf0 printf1 prmarscl prmreuse \ + ofmtbig ofmtfidl ofmts onlynl opasnidx opasnslf ovrflow1 paramdup paramtyp \ + parse1 parsefld parseme pcntplus prdupval prec printf0 printf1 prmarscl prmreuse \ prt1eval prtoeval psx96sub rand rebt8b1 rebt8b2 redfilnm regeq \ reindops reparse resplit rs rsnul1nl rsnulbig rsnulbig2 rstest1 \ rstest2 rstest3 rstest4 rstest5 rswhite scalar sclforin sclifin \ sortempty splitargv splitarr splitdef splitvar splitwht sprintfc \ - strcat1 strtod subamp subsepnm subslash substr swaplns synerr1 tradanch \ - tweakfld uninit2 uninit3 uninit4 uninitialized unterm wjposer1 \ - zeroe0 zeroflag - -UNIX_TESTS = fflush getlnhd pid pipeio1 pipeio2 poundbang space strftlng -GAWK_EXT_TESTS = argtest asort asorti backw badargs clos1way fieldwdth fsfwfs \ - gensub gensub2 gnuops2 gnuops3 gnureops icasefs icasers igncdym igncfs ignrcase \ - ignrcas2 lint match1 match2 manyfiles nondec posix procinfs \ - printfbad1 regx8bit rebuf reint rsstart1 rsstart2 rsstart3 \ - rstest6 shadow sort1 strtonum strftime whiny + strcat1 strtod strnum1 subamp subi18n subsepnm subslash substr swaplns \ + synerr1 synerr2 tradanch \ + tweakfld uninit2 uninit3 uninit4 uninitialized unterm wideidx wideidx2 \ + widesub widesub2 widesub3 widesub4 wjposer1 zeroe0 zeroflag zero2 + +UNIX_TESTS = fflush getlnhd localenl pid pipeio1 pipeio2 poundbang space strftlng +GAWK_EXT_TESTS = argtest asort asorti backw badargs binmode1 clos1way devfd devfd1 devfd2 double1 double2 \ + fieldwdth fsfwfs fwtest fwtest2 gensub gensub2 gnuops2 gnuops3 gnureops icasefs \ + icasers igncdym igncfs ignrcase ignrcas2 lint lintold match1 match2 manyfiles \ + nondec nondec2 posix procinfs printfbad1 regx8bit rebuf reint reint2 rsstart1 \ + rsstart2 rsstart3 rstest6 shadow sort1 strtonum strftime whiny EXTRA_TESTS = regtest inftest INET_TESTS = inetechu inetecht inetdayu inetdayt # List of the tests which should be run with --lint option: -NEED_LINT = defref noeffect nofmtch shadow uninit2 uninit3 uninit4 uninitialized +NEED_LINT = defref fmtspcl noeffect nofmtch shadow uninit2 uninit3 uninit4 uninitialized + +# List of the tests which should be run with --lint-old option: +NEED_LINT_OLD = lintold # List of the files that appear in manual tests or are for reserve testing: GENTESTS_UNUSED = Makefile.in gtlnbufv.awk printfloat.awk switch2.awk @@ -177,11 +181,11 @@ inet: inetmesg $(INET_TESTS) msg:: - @echo '' - @echo 'Any output from "cmp" is bad news, although some differences' - @echo 'in floating point values are probably benign -- in particular,' - @echo 'some systems may omit a leading zero and the floating point' - @echo 'precision may lead to slightly different output in a few cases.' + @echo "" + @echo "Any output from $(CMP) is bad news, although some differences" + @echo "in floating point values are probably benign -- in particular," + @echo "some systems may omit a leading zero and the floating point" + @echo "precision may lead to slightly different output in a few cases." printlang:: @$(AWK) -f $(srcdir)/printlang.awk @@ -216,7 +220,7 @@ @if ./_pbd.awk $(srcdir)/poundbang.awk > _`basename $@` ; \ then : ; \ else \ - sed "s;/tmp/gawk;../$(AWKPROG);" < $(srcdir)/poundbang.awk > ./_pbd.awk ; \ + sed "s;/tmp/gawk;./$(AWKPROG);" < $(srcdir)/poundbang.awk > ./_pbd.awk ; \ chmod +x ./_pbd.awk ; \ LC_ALL=$${GAWKLOCALE:-C} LANG=$${GAWKLOCALE:-C} ./_pbd.awk $(srcdir)/poundbang.awk > _`basename $@`; \ fi @@ -244,7 +248,7 @@ @echo 'Some of the output from regtest is very system specific, do not' @echo 'be distressed if your output differs from that distributed.' @echo 'Manual inspection is called for.' - AWK=`pwd`/$(AWK) $(srcdir)/regtest.sh + AWK=$(AWKPROG) $(srcdir)/regtest.sh manyfiles:: @echo manyfiles @@ -263,10 +267,10 @@ inftest:: @echo $@ @echo This test is very machine specific... - @echo This sometimes seems to cause problems for MSC gawk, so do not - @echo run it. -# @$(AWK) -f $(srcdir)/inftest.awk | sed "s/inf/Inf/g" >_$@ -# @-$(CMP) $(srcdir)/inftest.ok _$@ && rm -f _$@ + @echo This sometimes seems to cause problems for MSC gawk. + @echo Expect inftest to fail with DJGPP. + @$(AWK) -f $(srcdir)/inftest.awk | sed "s/inf/Inf/g" >_$@ + @-$(CMP) $(srcdir)/inftest.ok _$@ && rm -f _$@ getline2:: @echo $@ @@ -290,7 +294,7 @@ nonl:: @echo $@ - @-AWKPATH=$(srcdir) $(AWK) --lint -f nonl.awk /dev/null >_$@ 2>&1 + @-AWKPATH=$(srcdir) $(AWK) --lint -f nonl.awk NUL >_$@ 2>&1 @-$(CMP) $(srcdir)/nonl.ok _$@ && rm -f _$@ strftime:: @@ -310,6 +314,12 @@ @echo ab | $(AWK) --traditional -f $(srcdir)/litoct.awk >_$@ @-$(CMP) $(srcdir)/litoct.ok _$@ && rm -f _$@ +devfd:: + @echo $@ + @echo Expect devfd to fail in MinGW + @$(AWK) 1 /dev/fd/4 /dev/fd/5 4<$(srcdir)/devfd.in4 5<$(srcdir)/devfd.in5 >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + fflush:: @echo $@ @$(srcdir)/fflush.sh >_$@ @@ -335,9 +345,9 @@ # command so that pid.sh is fork'ed as a child before being exec'ed. pid:: @echo pid - @echo Expect pid to fail with DJGPP. + @echo Expect pid to fail with DJGPP and MinGW. @AWKPATH=$(srcdir) AWK=$(AWKPROG) $(SHELL) $(srcdir)/pid.sh $$$$ > _`basename $@` ; : - @-$(CMP) $(srcdir)/pid.ok _`basename $@` && rm -f _`basename $@` _`basename $@`.in + @-$(CMP) $(srcdir)/pid.ok _`basename $@` && rm -f _`basename $@` strftlng:: @echo $@ @@ -352,6 +362,15 @@ @echo A B C D E | tr -d '\12\15' | $(AWK) '{ print $$NF }' - $(srcdir)/nors.in > _$@ @-$(CMP) $(srcdir)/nors.ok _$@ && rm -f _$@ +fmtspcl.ok: fmtspcl.tok + @$(AWK) -v "sd=$(srcdir)" 'BEGIN {pnan = sprintf("%g",sqrt(-1)); nnan = sprintf("%g",-sqrt(-1)); pinf = sprintf("%g",-log(0)); ninf = sprintf("%g",log(0))} {sub(/positive_nan/,pnan); sub(/negative_nan/,nnan); sub(/positive_infinity/,pinf); sub(/negative_infinity/,ninf); sub(/fmtspcl/,(sd"/fmtspcl")); print}' < $(srcdir)/fmtspcl.tok > $@ 2>/dev/null + +fmtspcl: fmtspcl.ok + @echo fmtspcl + @echo Expect $@ to fail with MinGW + @$(AWK) -f $(srcdir)/fmtspcl.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $@.ok _$@ && rm -f _$@ + reint:: @echo $@ @$(AWK) --re-interval -f $(srcdir)/reint.awk $(srcdir)/reint.in >_$@ @@ -359,6 +378,7 @@ pipeio1:: @echo $@ + @echo Expect $@ to produce insignificant whitespace differences @$(AWK) -f $(srcdir)/pipeio1.awk >_$@ @rm -f test1 test2 @-$(CMP) $(srcdir)/pipeio1.ok _$@ && rm -f _$@ @@ -455,6 +475,42 @@ @WHINY_USERS=1 $(AWK) -f $(srcdir)/$@.awk $(srcdir)/$@.in >_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +wideidx:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +wideidx2:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +widesub:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +widesub2:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +widesub3:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +widesub4:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + ignrcas2:: @echo $@ @GAWKLOCALE=en_US ; export GAWKLOCALE ; \ @@ -493,6 +549,68 @@ @echo $@ @head $(srcdir)/rsstart1.in | $(AWK) -f $(srcdir)/rsstart2.awk >_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +nondec2:: + @echo $@ + @$(AWK) --non-decimal-data -v a=0x1 -f $(srcdir)/$@.awk >_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +nofile:: + @echo $@ + @$(AWK) '{}' no/such/file >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @sed "s/ (ENOENT)//" _$@ > _$@.2 + @rm -f _$@ +# @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + @-$(CMP) $(srcdir)/$@.ok _$@.2 && rm -f _$@.2 + +binmode1:: + @echo $@ + @$(AWK) -v BINMODE=3 'BEGIN { print BINMODE }' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +subi18n:: + @echo $@ + @GAWKLOCALE=en_US.UTF-8 ; $(AWK) -f $(srcdir)/$@.awk > _$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +concat4:: + @echo $@ + @GAWKLOCALE=en_US.UTF-8 ; $(AWK) -f $(srcdir)/$@.awk $(srcdir)/$@.in > _$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +devfd1:: + @echo $@ + @echo Expect devfd1 to fail in MinGW + @$(AWK) -f $(srcdir)/$@.awk 4< $(srcdir)/devfd.in1 5< $(srcdir)/devfd.in2 >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +# The program text is the '1' which will print each record. How compact can you get? +devfd2:: + @echo $@ + @$(AWK) 1 /dev/fd/4 /dev/fd/5 4< $(srcdir)/devfd.in1 5< $(srcdir)/devfd.in2 >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +mixed1:: + @echo $@ + @$(AWK) -f /dev/null --source 'BEGIN {return junk}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +mtchi18n:: + @echo $@ + @GAWKLOCALE=ru_RU.UTF-8 ; export GAWKLOCALE ; \ + $(AWK) -f $(srcdir)/$@.awk $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +reint2:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) --re-interval -f $@.awk $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +localenl:: + @echo $@ + @$(srcdir)/$@.sh >_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ Gt-dummy: # file Maketests, generated from Makefile.am by the Gentests program addcomma: @@ -687,7 +805,7 @@ exitval2: @echo exitval2 - @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @AWKPATH=$(srcdir) $(AWK) -f $@.w32 >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ fldchg: @@ -702,7 +820,8 @@ fmttest: @echo fmttest - @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @echo Expect $@ to produce insignificant formatting differences + @AWKPATH=$(srcdir) $(AWK) -f $@.awk | sed -e "s/\([0-9]e[-+]\)0\([0-9]\)/\1\2/g" >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ fnamedat: @@ -837,7 +956,9 @@ hsprint: @echo hsprint - @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @echo Expect hsprint to produce insignificant formatting differences + @AWKPATH=$(srcdir) $(AWK) -f $@.awk | sed -e "s/\([0-9]e[-+]\)0\([0-9]\)/\1\2/g" -e "s/| 1/| 1/" >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ +# @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ inputred: @@ -850,6 +971,11 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +intformat: + @echo intformat + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + intprec: @echo intprec @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -872,7 +998,8 @@ longwrds: @echo longwrds - @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @AWKPATH=$(srcdir) $(AWK) -f $@.awk SORT=sort < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ +# @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ manglprm: @@ -1025,6 +1152,11 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +ovrflow1: + @echo ovrflow1 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + paramdup: @echo paramdup @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -1035,6 +1167,16 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +parse1: + @echo parse1 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +parsefld: + @echo parsefld + @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + parseme: @echo parseme @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -1147,11 +1289,13 @@ rstest4: @echo rstest4 + @echo Expect $@ to fail on DOS/Windows @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ rstest5: @echo rstest5 + @echo Expect $@ to fail on DOS/Windows @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ @@ -1221,6 +1365,11 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +strnum1: + @echo strnum1 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + subsepnm: @echo subsepnm @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -1246,6 +1395,11 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +synerr2: + @echo synerr2 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + uninit2: @echo uninit2 @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -1286,8 +1440,14 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +zero2: + @echo zero2 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + getlnhd: @echo getlnhd + @echo Expect getlnhd to fail if pipe does not use a Unixy shell @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ @@ -1308,7 +1468,17 @@ clos1way: @echo clos1way - @echo Expect clos1way to fail with DJGPP. + @echo Expect clos1way to fail with DJGPP and MinGW. + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +double1: + @echo double1 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +double2: + @echo double2 @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ @@ -1322,6 +1492,16 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +fwtest: + @echo fwtest + @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +fwtest2: + @echo fwtest2 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + gensub: @echo gensub @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -1377,6 +1557,11 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +lintold: + @echo lintold + @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint-old < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + match1: @echo match1 @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -1394,7 +1579,7 @@ posix: @echo posix - @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in | sed -e "s/e+000/e+00/" >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ procinfs: @@ -1442,10 +1627,11 @@ # Targets generated for other tests: $(srcdir)/Maketests: $(srcdir)/Makefile.am $(srcdir)/Gentests - $(AWK) -f $(srcdir)/Gentests "$(srcdir)/Makefile.am" *.awk *.in > $(srcdir)/Maketests + files=`cd "$(srcdir)" && echo *.awk *.in`; \ + $(AWK) -f $(srcdir)/Gentests "$(srcdir)/Makefile.am" $$files > $(srcdir)/Maketests clean: - rm -fr _* core core.* junk out1 out2 out3 strftime.ok test1 test2 seq *~ + rm -fr _* core core.* fmtspcl.ok junk out1 out2 out3 strftime.ok test1 test2 seq *~ # An attempt to print something that can be grepped for in build logs pass-fail: @@ -1459,10 +1645,31 @@ diffout: for i in _* ; \ do \ + if [ "$$i" != "_*" ]; then \ echo ============== $$i ============= ; \ + if [ -r $${i#_}.ok ]; then \ + diff -c $${i#_}.ok $$i ; \ + else \ diff -c $(srcdir)/$${i#_}.ok $$i ; \ + fi ; \ + fi ; \ done | more +# convenient way to scan valgrind results for errors +valgrind-scan: + @echo "Scanning valgrind log files for problems:" + @$(AWK) '\ + function show() {if (cmd) {printf "%s: %s\n",FILENAME,cmd; cmd = ""}; \ + printf "\t%s\n",$$0}; \ + {$$1 = ""}; \ + /Prog and args are:/ {incmd = 1; cmd = ""; next}; \ + incmd {if (NF == 1) incmd = 0; else {cmd = (cmd $$0); next}}; \ + /ERROR SUMMARY:/ && !/: 0 errors from 0 contexts/ {show()}; \ + /definitely lost:/ && !/: 0 bytes in 0 blocks/ {show()}; \ + /possibly lost:/ && !/: 0 bytes in 0 blocks/ {show()}; \ + / suppressed:/ && !/: 0 bytes in 0 blocks/ {show()}; \ + ' log.[0-9]* + # This target is for testing with electric fence. efence: for i in $$(ls _* | sed 's;_\(.*\);\1;') ; \ diff -urN gawk-3.1.5/pc/config.h gawk-3.1.6/pc/config.h --- gawk-3.1.5/pc/config.h 2005-07-26 21:07:43.000000000 +0300 +++ gawk-3.1.6/pc/config.h 2007-10-19 05:37:27.000000000 +0200 @@ -12,7 +12,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, @@ -55,12 +55,89 @@ /* Define if the `getpgrp' function takes no argument. */ #define GETPGRP_VOID 1 +/* Define to 1 if you have the `atexit' function. */ +# define HAVE_ATEXIT 1 + +/* Define to 1 if you have the `btowc' function. */ +#ifdef _WIN32 +#define HAVE_BTOWC 1 +#endif + +#ifdef __MINGW32__ +/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. + */ +#define HAVE_DECL_TZNAME 1 + +/* Define if you have the 'intmax_t' type in or . */ +#define HAVE_INTMAX_T 1 + +/* Define if you have the 'uintmax_t' type in or . */ +#define HAVE_UINTMAX_T 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define if exists, doesn't clash with , and + declares uintmax_t. */ +#define HAVE_INTTYPES_H_WITH_UINTMAX 1 +#endif + +#ifdef __MINGW32__ +/* Define to 1 if you have the `isascii' function. */ +#define HAVE_ISASCII 1 + +/* Define to 1 if you have the `iswctype' function. */ +#define HAVE_ISWCTYPE 1 + +/* Define to 1 if you have the `iswlower' function. */ +#define HAVE_ISWLOWER 1 + +/* Define to 1 if you have the `iswupper' function. */ +#define HAVE_ISWUPPER 1 + +/* Define if you have the 'long long' type. */ +#define HAVE_LONG_LONG 1 + +/* Define to 1 if you have the `mbrlen' function. */ +#define HAVE_MBRLEN 1 + +/* Define to 1 if mbrtowc and mbstate_t are properly declared. */ +#define HAVE_MBRTOWC 1 + +/* Define to 1 if you have the `towlower' function. */ +#define HAVE_TOWLOWER 1 + +/* Define to 1 if you have the `towupper' function. */ +#define HAVE_TOWUPPER 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_WCHAR_H 1 + +/* Define to 1 if you have the `wcrtomb' function. */ +#define HAVE_WCRTOMB 1 + +/* Define to 1 if you have the `wcscoll' function. */ +#define HAVE_WCSCOLL 1 + +/* Define to 1 if you have the `wctype' function. */ +#define HAVE_WCTYPE 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_WCTYPE_H 1 + +/* systems should define this type here */ +#define HAVE_WCTYPE_T 1 + +/* systems should define this type here */ +#define HAVE_WINT_T 1 +#endif + /* Define to `int' if doesn't define. */ /* #undef gid_t */ -/* Define if you have alloca, as a function or macro. */ -#define HAVE_ALLOCA 1 - /* Define if you have and it should be used (not on Ultrix). */ /* #undef HAVE_ALLOCA_H */ @@ -94,6 +171,12 @@ #define inline #endif +#ifdef __GNUC__ +#define inline __inline__ +/* Define to 1 if you have the header file. */ +#define HAVE_STDDEF_H 1 +#endif + /* Define if on MINIX. */ /* #undef _MINIX */ @@ -139,7 +222,7 @@ #define REGEX_MALLOC 1 /* use malloc instead of alloca in regex.c */ #define SPRINTF_RET int /* return type of sprintf */ -/* #undef HAVE_MKTIME */ /* we have the mktime function */ +#define HAVE_MKTIME /* we have the mktime function */ /* #undef HAVE_SOCKETS */ /* we have sockets on this system */ /* #undef HAVE_PORTALS */ /* we have portals on /p on this system */ /* #undef DYNAMIC */ /* allow dynamic addition of builtins */ @@ -175,21 +258,45 @@ /* Define if you have the memcpy function. */ #define HAVE_MEMCPY 1 +#ifdef __MINGW32__ +/* Define to 1 if you have the `memmove' function. */ +#define HAVE_MEMMOVE 1 +#endif + /* Define if you have the memset function. */ #define HAVE_MEMSET 1 /* Define if you have the munmap function. */ /* #undef HAVE_MUNMAP */ +#ifdef __MINGW32__ /* Define if you have the putenv function. */ -/* #undef HAVE_PUTENV */ +#define HAVE_PUTENV 1 + +/* Define if you have the setlocale function. */ +#define HAVE_SETLOCALE 1 + +/* Define if you have the header file. */ +#define HAVE_LOCALE_H 1 + +/* Define to 1 if you have the `snprintf' function. */ +#define HAVE_SNPRINTF 1 + +/* Define if you have the strcasecmp function. */ +#define HAVE_STRCASECMP 1 + +/* FIXME!! */ + +/* we have sockets on this system */ +#undef HAVE_SOCKETS + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SOCKET_H +#endif /* Define if you have the setenv function. */ /* #define HAVE_SETENV */ -/* Define if you have the setlocale function. */ -/* #undef HAVE_SETLOCALE */ - /* Define if you have the stpcpy function. */ /* #undef HAVE_STPCPY */ @@ -214,6 +321,12 @@ /* Define if you have the strtod function. */ #define HAVE_STRTOD 1 +#ifdef __MINGW32__ + +/* Define to 1 if you have the `strtoul' function. */ +#define HAVE_STRTOUL 1 +#endif + /* Define if you have the system function. */ #define HAVE_SYSTEM 1 @@ -232,9 +345,6 @@ /* Define if you have the header file. */ #define HAVE_LIMITS_H 1 -/* Define if you have the header file. */ -/* #undef HAVE_LOCALE_H */ - /* Define if you have the header file. */ /* #undef HAVE_MALLOC_H */ @@ -256,8 +366,19 @@ /* Define if you have the header file. */ #define HAVE_STDARG_H 1 +#ifdef __MINGW32__ /* Define if you have the header file. */ -/* #undef HAVE_STDLIB_H */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TIME_H 1 + +/* Define if you have the 'unsigned long long' type. */ +#define HAVE_UNSIGNED_LONG_LONG 1 +#endif /* Define if you have the header file. */ #define HAVE_STRING_H 1 @@ -280,7 +401,7 @@ #define HAVE_SYS_TYPES_H 1 /* Define if you have the header file. */ -#if defined(DJGPP) +#if defined(DJGPP) || defined(__MINGW32__) # define HAVE_UNISTD_H 1 #endif @@ -296,8 +417,23 @@ /* Name of package */ #define PACKAGE "gawk" +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "bug-gawk@gnu.org" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "GNU Awk" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "GNU Awk 3.1.5a" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "gawk" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "3.1.5a" + /* Version number of package */ -#define VERSION "3.0.89" +#define VERSION "3.1.5a" /* Number of bits in a file offset, on hosts where this is settable. */ /* #undef _FILE_OFFSET_BITS */ @@ -311,6 +447,9 @@ /* Define to make ftello visible on some hosts (e.g. glibc 2.1.3). */ /* #undef _XOPEN_SOURCE */ +/* Define to 1 if *printf supports %F format */ +/* #undef PRINTF_HAS_F_FORMAT */ + /* Define if compiler has function prototypes */ #define PROTOTYPES 1 @@ -330,7 +469,7 @@ /* #undef HAVE_CATGETS */ /* The size of `unsigned int' & `unsigned long', as computed by sizeof. */ -#if defined(DJGPP) || defined(_MSC_VER) +#if defined(DJGPP) || defined(_MSC_VER) || defined(__MINGW32__) # include #endif @@ -347,7 +486,11 @@ #endif /* Library search path */ -#define DEFPATH ".;c:/lib/awk;c:/gnu/lib/awk" +#if defined(__DJGPP__) && (__DJGPP__ > 2 || __DJGPP_MINOR__ >= 3) +# define DEFPATH ".;/dev/env/DJDIR/share/awk" +#else +# define DEFPATH ".;c:/lib/awk;c:/gnu/lib/awk" +#endif #if defined (_MSC_VER) #if !defined(__STDC__) @@ -362,13 +505,13 @@ #define altzone timezone #endif -# define HAVE_POPEN_H +#define HAVE_POPEN_H 1 #if defined(_MSC_VER) && defined(MSDOS) #define system(s) os_system(s) #endif -#if defined(_MSC_VER) || defined(__MINGW32__) +#ifdef _MSC_VER #define ssize_t long int /* DJGPP has ssize_t */ #define intmax_t long #define uintmax_t unsigned long @@ -382,8 +525,11 @@ #if defined(DJGPP) # define HAVE_LIMITS_H 1 # undef HAVE_POPEN_H +# undef HAVE_ALLOCA +# define HAVE_MKSTEMP 1 #define intmax_t long long #define uintmax_t unsigned long long +#define restrict /* nothing */ #endif #if defined(__WIN32__) && defined(__CRTRSXNT__) @@ -394,6 +540,12 @@ #if defined(WIN32) && defined(_MSC_VER) #define alloca _alloca #define system(s) os_system(s) +/* VC++ dosen't supprt restrict keyword */ +#define restrict +/* VC++ have tmpfile */ +#define HAVE_TMPFILE +/* sys/time.h is not exist in VC++? */ +#undef TIME_WITH_SYS_TIME #endif #if defined(__MINGW32__) diff -urN gawk-3.1.5/pc/dlfcn.c gawk-3.1.6/pc/dlfcn.c --- gawk-3.1.5/pc/dlfcn.c 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/pc/dlfcn.c 2007-08-11 22:40:06.000000000 +0300 @@ -10,7 +10,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/pc/dlfcn.h gawk-3.1.6/pc/dlfcn.h --- gawk-3.1.5/pc/dlfcn.h 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/pc/dlfcn.h 2007-08-11 22:40:06.000000000 +0300 @@ -10,7 +10,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/pc/gawkmisc.pc gawk-3.1.6/pc/gawkmisc.pc --- gawk-3.1.5/pc/gawkmisc.pc 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/pc/gawkmisc.pc 2007-08-11 22:40:06.000000000 +0300 @@ -10,7 +10,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/pc/popen.c gawk-3.1.6/pc/popen.c --- gawk-3.1.5/pc/popen.c 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/pc/popen.c 2006-08-11 15:50:00.000000000 +0300 @@ -71,7 +71,7 @@ } static char * -scriptify(char *command) +scriptify(const char *command) { FILE *fp; char *cmd, *name, *s, *p; @@ -119,22 +119,23 @@ } int -os_system(char *cmd) +os_system(const char *cmd) { char *s; int i; + char *cmd1; #if defined(OS2) if (_osmode == OS2_MODE) return(system(cmd)); #endif - if ((cmd = scriptify(cmd)) == NULL) return(1); + if ((cmd1 = scriptify(cmd)) == NULL) return(1); if (s = getenv("SHELL")) - i = spawnlp(P_WAIT, s, s, cmd + strlen(s), NULL); + i = spawnlp(P_WAIT, s, s, cmd1 + strlen(s), NULL); else - i = system(cmd); - unlink_and_free(cmd); + i = system(cmd1); + unlink_and_free(cmd1); return(i); } #else @@ -143,12 +144,15 @@ FILE * -os_popen( char *command, char *mode ) +os_popen(const char *command, char *mode ) { FILE *current; char *name; int cur; char curmode[4]; +#if defined(__MINGW32__) || (defined(_MSC_VER) && defined(WIN32)) + char *cmd; +#endif #if defined(OS2) && (_MSC_VER != 510) if (_osmode == OS2_MODE) @@ -160,10 +164,10 @@ strncpy(curmode, mode, 3); curmode[3] = '\0'; #if defined(__MINGW32__) || (defined(_MSC_VER) && defined(WIN32)) - current = popen(command = scriptify(command), mode); + current = popen(cmd = scriptify(command), mode); cur = fileno(current); strcpy(pipes[cur].pmode, curmode); - pipes[cur].command = command; + pipes[cur].command = cmd; return(current); #endif diff -urN gawk-3.1.5/pc/popen.h gawk-3.1.6/pc/popen.h --- gawk-3.1.5/pc/popen.h 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/pc/popen.h 2006-08-11 15:50:00.000000000 +0300 @@ -15,7 +15,7 @@ # endif # define popen(c, m) os_popen(c, m) # define pclose(f) os_pclose(f) - extern FILE *os_popen( char *, const char * ); + extern FILE *os_popen( const char *, const char * ); extern int os_pclose( FILE * ); # endif #endif diff -urN gawk-3.1.5/po/ChangeLog gawk-3.1.6/po/ChangeLog --- gawk-3.1.5/po/ChangeLog 2005-07-26 21:47:25.000000000 +0300 +++ gawk-3.1.6/po/ChangeLog 2007-10-22 08:49:34.000000000 +0200 @@ -1,3 +1,16 @@ +Mon Oct 22 08:49:05 2007 Arnold D. Robbins + + * Release 3.1.6: Release tar file made. + +Mon Sep 10 12:41:34 2007 Arnold D. Robbins + + * All .po files: Updated to GPL 3. + +2007-01-08 gettextize + + * Makefile.in.in: Upgrade to gettext-0.16.1. + * Makevar.template: New file, copied in from gettext-0.16.1. + Tue Jul 26 21:46:16 2005 Arnold D. Robbins * Release 3.1.5: Release tar file made. diff -urN gawk-3.1.5/po/LINGUAS gawk-3.1.6/po/LINGUAS --- gawk-3.1.5/po/LINGUAS 2005-06-27 12:21:37.000000000 +0300 +++ gawk-3.1.6/po/LINGUAS 2007-06-12 23:18:21.000000000 +0300 @@ -15,3 +15,4 @@ rw ga vi +zh_CN diff -urN gawk-3.1.5/po/Makefile.in.in gawk-3.1.6/po/Makefile.in.in --- gawk-3.1.5/po/Makefile.in.in 2005-05-11 18:28:16.000000000 +0300 +++ gawk-3.1.6/po/Makefile.in.in 2007-01-12 12:22:46.000000000 +0200 @@ -1,5 +1,5 @@ # Makefile for PO directory in any package using GNU gettext. -# Copyright (C) 1995-1997, 2000-2005 by Ulrich Drepper +# Copyright (C) 1995-1997, 2000-2006 by Ulrich Drepper # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public @@ -8,7 +8,7 @@ # Please note that the actual code of GNU gettext is covered by the GNU # General Public License and is *not* in the public domain. # -# Origin: gettext-0.14.4 +# Origin: gettext-0.16 PACKAGE = @PACKAGE@ VERSION = @VERSION@ @@ -23,18 +23,38 @@ prefix = @prefix@ exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ datadir = @datadir@ -localedir = $(datadir)/locale +localedir = @localedir@ gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -mkinstalldirs = $(SHELL) $(MKINSTALLDIRS) -GMSGFMT = @GMSGFMT@ -MSGFMT = @MSGFMT@ -XGETTEXT = @XGETTEXT@ +# We use $(mkdir_p). +# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as +# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, +# @install_sh@ does not start with $(SHELL), so we add it. +# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined +# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake +# versions, $(mkinstalldirs) and $(install_sh) are unused. +mkinstalldirs = $(SHELL) @install_sh@ -d +install_sh = $(SHELL) @install_sh@ +MKDIR_P = @MKDIR_P@ +mkdir_p = @mkdir_p@ + +GMSGFMT_ = @GMSGFMT@ +GMSGFMT_no = @GMSGFMT@ +GMSGFMT_yes = @GMSGFMT_015@ +GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) +MSGFMT_ = @MSGFMT@ +MSGFMT_no = @MSGFMT@ +MSGFMT_yes = @MSGFMT_015@ +MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) +XGETTEXT_ = @XGETTEXT@ +XGETTEXT_no = @XGETTEXT@ +XGETTEXT_yes = @XGETTEXT_015@ +XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) MSGMERGE = msgmerge MSGMERGE_UPDATE = @MSGMERGE@ --update MSGINIT = msginit @@ -158,7 +178,7 @@ install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ - $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ for file in $(DISTFILES.common) Makevars.template; do \ $(INSTALL_DATA) $(srcdir)/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ @@ -171,13 +191,13 @@ fi install-data-no: all install-data-yes: all - $(mkinstalldirs) $(DESTDIR)$(datadir) + $(mkdir_p) $(DESTDIR)$(datadir) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkinstalldirs) $(DESTDIR)$$dir; \ + $(mkdir_p) $(DESTDIR)$$dir; \ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ @@ -217,19 +237,19 @@ installdirs-exec: installdirs-data: installdirs-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ - $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ + $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ else \ : ; \ fi installdirs-data-no: installdirs-data-yes: - $(mkinstalldirs) $(DESTDIR)$(datadir) + $(mkdir_p) $(DESTDIR)$(datadir) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkinstalldirs) $(DESTDIR)$$dir; \ + $(mkdir_p) $(DESTDIR)$$dir; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ @@ -374,8 +394,7 @@ Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ - $(SHELL) ./config.status + && $(SHELL) ./config.status $(subdir)/$@.in po-directories force: diff -urN gawk-3.1.5/po/ca.po gawk-3.1.6/po/ca.po --- gawk-3.1.5/po/ca.po 2005-07-06 17:20:04.000000000 +0300 +++ gawk-3.1.6/po/ca.po 2007-09-30 22:33:27.000000000 +0200 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: gawk 3.1.31\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" -"POT-Creation-Date: 2005-07-06 17:20+0300\n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" "PO-Revision-Date: 2003-05-07 21:13+0100\n" "Last-Translator: Antoni Bella Perez \n" "Language-Team: Catalan \n" @@ -35,359 +35,374 @@ msgid "from %s" msgstr "%s (de %s)" -#: array.c:511 +#: array.c:514 #, c-format msgid "reference to uninitialized element `%s[\"%s\"]'" msgstr "referncia a un element sense valor inicial %s[\"%s\"]" -#: array.c:517 +#: array.c:520 #, c-format msgid "subscript of array `%s' is null string" msgstr "el subscript de la matriu %s s una cadena nulla" -#: array.c:621 +#: array.c:624 #, c-format msgid "delete: index `%s' not in array `%s'" msgstr "delete: l'ndex %s no est en la matriu %s" -#: array.c:791 +#: array.c:793 #, c-format msgid "%s: empty (null)\n" msgstr "%s: buit (nul)\n" -#: array.c:796 +#: array.c:798 #, c-format msgid "%s: empty (zero)\n" msgstr "%s: buit (zero)\n" -#: array.c:800 +#: array.c:802 #, c-format msgid "%s: table_size = %d, array_size = %d\n" msgstr "%s: mida_taula = %d, mida_matriu = %d\n" -#: array.c:829 +#: array.c:831 #, fuzzy, c-format msgid "%s: is parameter\n" msgstr "%s: s un parmetre\n" -#: array.c:834 +#: array.c:836 #, c-format msgid "%s: array_ref to %s\n" msgstr "%s: ref_matriu a %s\n" -#: awkgram.y:208 +#: awkgram.y:215 #, fuzzy, c-format msgid "%s blocks must have an action part" msgstr "Els blocs FINAL han de tindre una part d'acci" -#: awkgram.y:211 +#: awkgram.y:218 #, fuzzy msgid "each rule must have a pattern or an action part" msgstr "Els blocs FINAL han de tindre una part d'acci" -#: awkgram.y:267 +#: awkgram.y:254 awkgram.y:263 +#, fuzzy +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "l'antic awk no suporta l'operador **=" + +#: awkgram.y:282 #, c-format msgid "`%s' is a built-in function, it cannot be redefined" msgstr "%s s una funci interna, no pot ser redefinida" -#: awkgram.y:313 +#: awkgram.y:328 #, fuzzy msgid "regexp constant `//' looks like a C++ comment, but is not" msgstr "" "la constant d'expressi regular /%s/ sembla un comentari en C, per no ho " "s" -#: awkgram.y:316 +#: awkgram.y:331 #, c-format msgid "regexp constant `/%s/' looks like a C comment, but is not" msgstr "" "la constant d'expressi regular /%s/ sembla un comentari en C, per no ho " "s" -#: awkgram.y:343 awkgram.y:623 +#: awkgram.y:358 awkgram.y:653 msgid "statement may have no effect" msgstr "la declaraci podria no tindre efecte" -#: awkgram.y:440 awkgram.y:460 +#: awkgram.y:455 awkgram.y:479 #, fuzzy, c-format msgid "`%s' used in %s action" msgstr "next s usat dintre de l'acci BEGIN o END" -#: awkgram.y:453 awkgram.y:456 +#: awkgram.y:470 awkgram.y:474 msgid "`nextfile' is a gawk extension" msgstr "nextfile s una extensi de gawk" -#: awkgram.y:470 +#: awkgram.y:489 msgid "`return' used outside function context" msgstr "return s usat fora del context d'una funci" -#: awkgram.y:512 +#: awkgram.y:531 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" msgstr "" "el print simple en la regla BEGIN o END probablement ha de ser print \"\"" -#: awkgram.y:525 awkgram.y:532 +#: awkgram.y:547 awkgram.y:555 msgid "`delete array' is a gawk extension" msgstr "delete array s una extensi de gawk" -#: awkgram.y:540 awkgram.y:547 +#: awkgram.y:569 awkgram.y:577 #, fuzzy msgid "`delete(array)' is a non-portable tawk extension" msgstr "delete array s una extensi de gawk" -#: awkgram.y:591 +#: awkgram.y:621 #, c-format msgid "duplicate case values in switch body: %s" msgstr "" -#: awkgram.y:601 +#: awkgram.y:631 msgid "Duplicate `default' detected in switch body" msgstr "" -#: awkgram.y:690 +#: awkgram.y:720 msgid "multistage two-way pipelines don't work" msgstr "les canonades bidireccionals multi-etapes no funcionen" -#: awkgram.y:781 +#: awkgram.y:811 msgid "regular expression on right of assignment" msgstr "expressi regular a la dreta d'una assignaci" -#: awkgram.y:804 +#: awkgram.y:834 msgid "regular expression on left of `~' or `!~' operator" msgstr "expressi regular a l'esquerra de l'operador ~ o !~" -#: awkgram.y:812 +#: awkgram.y:840 awkgram.y:913 +#, fuzzy +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "l'antic awk no suporta l'operador **=" + +#: awkgram.y:846 msgid "regular expression on right of comparison" msgstr "expressi regular a la derta de la comparaci" -#: awkgram.y:879 +#: awkgram.y:903 msgid "non-redirected `getline' undefined inside END action" msgstr "getline no redirigit sense definir dintre de l'acci FINAL" -#: awkgram.y:906 +#: awkgram.y:914 +#, fuzzy +msgid "old awk does not support multidimensional arrays" +msgstr "l'antic awk no suporta l'operador **=" + +#: awkgram.y:960 msgid "call of `length' without parentheses is not portable" msgstr "la crida de length sense parntesis no s portable" -#: awkgram.y:909 +#: awkgram.y:965 msgid "call of `length' without parentheses is deprecated by POSIX" msgstr "la crida de length sense parntesis est desaprovada per POSIX" -#: awkgram.y:962 +#: awkgram.y:1019 msgid "use of non-array as array" msgstr "" -#: awkgram.y:964 +#: awkgram.y:1022 msgid "invalid subscript expression" msgstr "expressi de subscript no vlida" -#: awkgram.y:1171 +#: awkgram.y:1249 #, fuzzy msgid "unexpected newline or end of string" msgstr "nova lnia inesperada" -#: awkgram.y:1267 +#: awkgram.y:1366 msgid "empty program text on command line" msgstr "el text del programa en la lnia de comandaments est buit" -#: awkgram.y:1320 +#: awkgram.y:1422 #, c-format msgid "can't open source file `%s' for reading (%s)" msgstr "no es pot obrir el fitxer font %s per a lectura (%s)" -#: awkgram.y:1397 +#: awkgram.y:1520 #, c-format msgid "can't read sourcefile `%s' (%s)" msgstr "no es pot llegir el fitxer font %s (%s)" -#: awkgram.y:1405 +#: awkgram.y:1528 #, c-format msgid "source file `%s' is empty" msgstr "el fitxer font %s est buit" -#: awkgram.y:1596 awkgram.y:1718 awkgram.y:1736 awkgram.y:2107 awkgram.y:2194 +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 msgid "source file does not end in newline" msgstr "el fitxer font no finalitza amb un retorn de carro" -#: awkgram.y:1658 +#: awkgram.y:1782 msgid "unterminated regexp ends with `\\' at end of file" msgstr "expressi regular sense finalitzar acaba amb \\ al final del fitxer" -#: awkgram.y:1682 +#: awkgram.y:1806 #, c-format msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -#: awkgram.y:1686 +#: awkgram.y:1810 #, c-format msgid "tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -#: awkgram.y:1693 +#: awkgram.y:1817 msgid "unterminated regexp" msgstr "expressi regular sense finalitzar" -#: awkgram.y:1696 +#: awkgram.y:1820 msgid "unterminated regexp at end of file" msgstr "expressi regular sense finalitzar al final del fitxer" -#: awkgram.y:1762 +#: awkgram.y:1889 msgid "use of `\\ #...' line continuation is not portable" msgstr "l's de \\ #... com a continuaci de lnia no s portable" -#: awkgram.y:1774 +#: awkgram.y:1902 msgid "backslash not last character on line" msgstr "la barra invertida no s l'ltim carcter en la lnia" -#: awkgram.y:1819 +#: awkgram.y:1947 msgid "POSIX does not allow operator `**='" msgstr "POSIX no permet l'operador **=" -#: awkgram.y:1821 +#: awkgram.y:1949 msgid "old awk does not support operator `**='" msgstr "l'antic awk no suporta l'operador **=" -#: awkgram.y:1830 +#: awkgram.y:1958 msgid "POSIX does not allow operator `**'" msgstr "POSIX no permet l'operador **" -#: awkgram.y:1832 +#: awkgram.y:1960 msgid "old awk does not support operator `**'" msgstr "l'antic awk no suporta l'operador **=" -#: awkgram.y:1863 +#: awkgram.y:1991 msgid "operator `^=' is not supported in old awk" msgstr "l'operador ^= no est suportat en l'antic awk" -#: awkgram.y:1871 +#: awkgram.y:1999 msgid "operator `^' is not supported in old awk" msgstr "l'operador ^ no est suportat en l'antic awk" -#: awkgram.y:1955 awkgram.y:1970 +#: awkgram.y:2083 awkgram.y:2098 msgid "unterminated string" msgstr "cadena sense finalitzar" -#: awkgram.y:2155 +#: awkgram.y:2283 #, c-format msgid "invalid char '%c' in expression" msgstr "carcter %c no vlid en l'expressi" -#: awkgram.y:2203 +#: awkgram.y:2331 #, c-format msgid "`%s' is a gawk extension" msgstr "%s s una extensi de gawk" -#: awkgram.y:2206 +#: awkgram.y:2334 #, c-format msgid "`%s' is a Bell Labs extension" msgstr "%s s una extensi de Bell Labs" -#: awkgram.y:2209 +#: awkgram.y:2337 #, c-format msgid "POSIX does not allow `%s'" msgstr "POSIX no permet %s" -#: awkgram.y:2213 +#: awkgram.y:2341 #, c-format msgid "`%s' is not supported in old awk" msgstr "%s no est suportat en l'antic awk" -#: awkgram.y:2239 +#: awkgram.y:2367 msgid "`goto' considered harmful!\n" msgstr "goto se considera nefast!\n" -#: awkgram.y:2301 +#: awkgram.y:2429 #, c-format msgid "%d is invalid as number of arguments for %s" msgstr "%d no s vlid com a nombre d'arguments per a %s" -#: awkgram.y:2320 awkgram.y:2323 +#: awkgram.y:2448 awkgram.y:2451 msgid "match: third argument is a gawk extension" msgstr "match: el tercer argument s una extensi de gawk" -#: awkgram.y:2336 +#: awkgram.y:2464 #, c-format msgid "%s: string literal as last arg of substitute has no effect" msgstr "%s: la cadena literal com a ltim argument de substituci no t efecte" -#: awkgram.y:2339 +#: awkgram.y:2467 #, fuzzy, c-format msgid "%s third parameter is not a changeable object" msgstr "sub: el tercer argument no s un objecte intercanviable" -#: awkgram.y:2366 awkgram.y:2369 +#: awkgram.y:2494 awkgram.y:2497 msgid "close: second argument is a gawk extension" msgstr "close: el segon argument s una extensi de gawk" -#: awkgram.y:2379 +#: awkgram.y:2507 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" msgstr "" "l's de dcgettext(_\"...\") no s correcte: elimineu el gui baix inicial" -#: awkgram.y:2394 +#: awkgram.y:2522 #, fuzzy msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" msgstr "" "l's de dcgettext(_\"...\") no s correcte: elimineu el gui baix inicial" -#: awkgram.y:2465 +#: awkgram.y:2594 #, c-format msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" msgstr "funci %s: parmetre #%d, %s, duplica al parmetre #%d" -#: awkgram.y:2498 +#: awkgram.y:2627 #, c-format msgid "function `%s': parameter `%s' shadows global variable" msgstr "funci %s: parmetre %s ofusca la variable global" -#: awkgram.y:2610 +#: awkgram.y:2739 #, c-format msgid "could not open `%s' for writing (%s)" msgstr "no es pot obrir %s per a escriptura (%s)" -#: awkgram.y:2611 profile.c:93 +#: awkgram.y:2740 profile.c:94 msgid "sending profile to standard error" msgstr "enviant el perfil a l'eixida d'error estndard" -#: awkgram.y:2643 +#: awkgram.y:2772 #, c-format msgid "%s: close failed (%s)" msgstr "%s: tancament erroni (%s)" -#: awkgram.y:2764 +#: awkgram.y:2893 msgid "shadow_funcs() called twice!" msgstr "shadow_funcs() crida dos vegades!" -#: awkgram.y:2791 +#: awkgram.y:2920 msgid "there were shadowed variables." msgstr "" -#: awkgram.y:2864 +#: awkgram.y:2993 #, c-format msgid "function `%s': can't use function name as parameter name" msgstr "funci %s: no pot usar el nom de la funci com a parmetre" -#: awkgram.y:2874 +#: awkgram.y:3003 #, c-format msgid "function name `%s' previously defined" msgstr "nom de la funci %s definida prviament" -#: awkgram.y:3025 awkgram.y:3031 +#: awkgram.y:3154 awkgram.y:3160 #, c-format msgid "function `%s' called but never defined" msgstr "es crida a la funci %s per no s'ha definit" -#: awkgram.y:3034 +#: awkgram.y:3163 #, c-format msgid "function `%s' defined but never called" msgstr "es defineix la funci %s per no s'ha cridat mai" -#: awkgram.y:3061 +#: awkgram.y:3190 #, c-format msgid "regexp constant for parameter #%d yields boolean value" msgstr "" "l'expressi regular constant per al parmetre #%d condueix a un valor boole" -#: awkgram.y:3105 +#: awkgram.y:3234 #, fuzzy, c-format msgid "" "function `%s' called with space between name and `(',\n" @@ -396,202 +411,202 @@ "s'ha cridat a la funci %s amb espai entre el nom i el (,\n" "%s" -#: builtin.c:145 +#: builtin.c:119 #, c-format msgid "%s to \"%s\" failed (%s)" msgstr "%s a \"%s\" ha fallat (%s)" -#: builtin.c:146 +#: builtin.c:120 msgid "standard output" msgstr "eixida estndard" -#: builtin.c:147 +#: builtin.c:121 msgid "reason unknown" msgstr "motiu desconegut" -#: builtin.c:160 +#: builtin.c:134 msgid "exp: received non-numeric argument" msgstr "exp: s'ha rebut un argument que no s un nmero" -#: builtin.c:166 +#: builtin.c:140 #, c-format msgid "exp: argument %g is out of range" msgstr "exp: l'argument %g est fora de rang" -#: builtin.c:224 +#: builtin.c:198 #, c-format msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" msgstr "" "fflush: no es pot netejar: la canonada %s s'ha obert per a lectura, no per " "a escriptura" -#: builtin.c:227 +#: builtin.c:201 #, c-format msgid "fflush: cannot flush: file `%s' opened for reading, not writing" msgstr "" "fflush: no es pot netejar: el fitxer %s s'ha obert per a lectura, no per a " "escriptura" -#: builtin.c:239 +#: builtin.c:213 #, c-format msgid "fflush: `%s' is not an open file, pipe or co-process" msgstr "fflush: %s no s un fitxer obert, canonada o co-procs" -#: builtin.c:332 +#: builtin.c:306 msgid "index: received non-string first argument" msgstr "ndex: el primer argument rebut no s una cadena" -#: builtin.c:334 +#: builtin.c:308 msgid "index: received non-string second argument" msgstr "ndex: el segon argument rebut no s una cadena" -#: builtin.c:449 +#: builtin.c:423 msgid "int: received non-numeric argument" msgstr "int: s'ha rebut un argument no numric" -#: builtin.c:472 +#: builtin.c:448 #, fuzzy msgid "`length(array)' is a gawk extension" msgstr "delete array s una extensi de gawk" -#: builtin.c:481 +#: builtin.c:458 msgid "length: received non-string argument" msgstr "length: s'ha rebut un argument que no s una cadena" -#: builtin.c:506 +#: builtin.c:483 msgid "log: received non-numeric argument" msgstr "log: s'ha rebut un argument no numric" -#: builtin.c:509 +#: builtin.c:486 #, c-format msgid "log: received negative argument %g" msgstr "log: s'ha rebut l'argument negatiu %g" -#: builtin.c:673 builtin.c:676 +#: builtin.c:693 builtin.c:696 msgid "must use `count$' on all formats or none" msgstr "" -#: builtin.c:778 +#: builtin.c:799 msgid "`$' is not permitted in awk formats" msgstr "no es permeten $ en els formats awk" -#: builtin.c:784 +#: builtin.c:805 msgid "arg count with `$' must be > 0" msgstr "el compte d'arguments amb $ ha de ser > 0" -#: builtin.c:786 +#: builtin.c:807 #, fuzzy, c-format msgid "arg count %ld greater than total number of supplied arguments" msgstr "" "el comte d'arguments %d s major que el nombre total d'arguments " "proporcionats" -#: builtin.c:788 +#: builtin.c:809 msgid "`$' not permitted after period in format" msgstr "no es permet $ desprs d'un punt en el format" -#: builtin.c:801 +#: builtin.c:822 msgid "no `$' supplied for positional field width or precision" msgstr "no es proporciona $ per a l'ample o precisi del camp de posici" -#: builtin.c:867 +#: builtin.c:888 msgid "`l' is meaningless in awk formats; ignored" msgstr "l manca de significat en els formats awk; ser ignorat" -#: builtin.c:871 +#: builtin.c:892 msgid "`l' is not permitted in POSIX awk formats" msgstr "l no est perms en els formats POSIX de awk" -#: builtin.c:882 +#: builtin.c:903 msgid "`L' is meaningless in awk formats; ignored" msgstr "L manca de significat en els formats awk; ser ignorat" -#: builtin.c:886 +#: builtin.c:907 msgid "`L' is not permitted in POSIX awk formats" msgstr "L no est perms en els formats POSIX de awk" -#: builtin.c:897 +#: builtin.c:918 msgid "`h' is meaningless in awk formats; ignored" msgstr "h manca de significat en els formats awk; ser ignorat" -#: builtin.c:901 +#: builtin.c:922 msgid "`h' is not permitted in POSIX awk formats" msgstr "h no est perms en els formats POSIX de awk" -#: builtin.c:1132 +#: builtin.c:1182 #, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" msgstr "" -#: builtin.c:1198 +#: builtin.c:1266 msgid "not enough arguments to satisfy format string" msgstr "no hi ha prou arguments per a satisfer el format d'una cadena" -#: builtin.c:1200 +#: builtin.c:1268 msgid "^ ran out for this one" msgstr "^ desbordament per a aquest" -#: builtin.c:1205 +#: builtin.c:1274 msgid "[s]printf: format specifier does not have control letter" msgstr "[s]printf: l'especificador de format no cont lletra de control" -#: builtin.c:1208 +#: builtin.c:1277 msgid "too many arguments supplied for format string" msgstr "s'han proporcionat masses arguments per a la cadena de format" -#: builtin.c:1274 builtin.c:1277 +#: builtin.c:1352 builtin.c:1355 msgid "printf: no arguments" msgstr "printf: sense arguments" -#: builtin.c:1301 +#: builtin.c:1379 msgid "sqrt: received non-numeric argument" msgstr "sqrt: s'ha rebut un argument no numric" -#: builtin.c:1305 +#: builtin.c:1383 #, c-format msgid "sqrt: called with negative argument %g" msgstr "sqrt: cridat amb l'argument negatiu %g" -#: builtin.c:1329 +#: builtin.c:1407 #, c-format msgid "substr: start index %g is invalid, using 1" msgstr "substr: l'ndex d'inici %g no s vlid, usant 1" -#: builtin.c:1334 +#: builtin.c:1412 #, c-format msgid "substr: non-integer start index %g will be truncated" msgstr "substr: l'ndex d'inici no enter %g ser truncat" -#: builtin.c:1353 +#: builtin.c:1431 #, fuzzy, c-format msgid "substr: length %g is not >= 1" msgstr "substr: la longitud %g s <= 0" -#: builtin.c:1355 +#: builtin.c:1433 #, fuzzy, c-format msgid "substr: length %g is not >= 0" msgstr "substr: la longitud %g s <= 0" -#: builtin.c:1362 +#: builtin.c:1440 #, c-format msgid "substr: non-integer length %g will be truncated" msgstr "substr: la longitud sobre un nombre no enter %g ser truncada" -#: builtin.c:1367 +#: builtin.c:1445 #, c-format msgid "substr: length %g too big for string indexing, truncating to %g" msgstr "" -#: builtin.c:1379 +#: builtin.c:1457 msgid "substr: source string is zero length" msgstr "substr: la cadena font s de longitud zero" -#: builtin.c:1395 +#: builtin.c:1473 #, fuzzy, c-format msgid "substr: start index %g is past end of string" msgstr "substr: l'ndex d'inici %d sobrepassa l'acabament de la cadena" -#: builtin.c:1403 +#: builtin.c:1481 #, fuzzy, c-format msgid "" "substr: length %g at start index %g exceeds length of first argument (%lu)" @@ -599,196 +614,196 @@ "substr: la longitud %d a l'ndex d'inici %d excedeix la longitud del 1er " "argument (%d)" -#: builtin.c:1478 +#: builtin.c:1558 #, fuzzy msgid "strftime: received non-string first argument" msgstr "strftime: el primer argument rebut no s una cadena" -#: builtin.c:1484 +#: builtin.c:1564 msgid "strftime: received empty format string" msgstr "strftime: s'ha rebut una cadena de format buida" -#: builtin.c:1493 +#: builtin.c:1573 #, fuzzy msgid "strftime: received non-numeric second argument" msgstr "strftime: el segon argument rebut no s numric" -#: builtin.c:1556 +#: builtin.c:1650 msgid "mktime: received non-string argument" msgstr "mktime: s'ha rebut un argument que no s una cadena" -#: builtin.c:1601 +#: builtin.c:1695 #, fuzzy msgid "system: received non-string argument" msgstr "system: s'ha rebut un argument que no s una cadena" -#: builtin.c:1722 eval.c:2039 +#: builtin.c:1816 eval.c:2041 #, fuzzy, c-format msgid "reference to uninitialized field `$%d'" msgstr "referncia a una variable sense inicialitzar %s" -#: builtin.c:1827 +#: builtin.c:1921 #, fuzzy msgid "tolower: received non-string argument" msgstr "tolower: s'ha rebut un argument que no s una cadena" -#: builtin.c:1857 +#: builtin.c:1951 #, fuzzy msgid "toupper: received non-string argument" msgstr "toupper: s'ha rebut un argument que no s una cadena" -#: builtin.c:1890 +#: builtin.c:1984 msgid "atan2: received non-numeric first argument" msgstr "atan2: el primer argument rebut no s numric" -#: builtin.c:1892 +#: builtin.c:1986 msgid "atan2: received non-numeric second argument" msgstr "atan2: el segon argument rebut no s numric" -#: builtin.c:1911 +#: builtin.c:2005 msgid "sin: received non-numeric argument" msgstr "sin: s'ha rebut un argument que no s numric" -#: builtin.c:1927 +#: builtin.c:2021 msgid "cos: received non-numeric argument" msgstr "cos: s'ha rebut un argument que no s numric" -#: builtin.c:1977 +#: builtin.c:2071 msgid "srand: received non-numeric argument" msgstr "srand: s'ha rebut un argument que no s numric" -#: builtin.c:2012 +#: builtin.c:2106 msgid "match: third argument is not an array" msgstr "match: el tercer argument no s una matriu" -#: builtin.c:2555 +#: builtin.c:2650 msgid "gensub: third argument of 0 treated as 1" msgstr "gensub: el tercer argument de 0 s tractat com a 1" -#: builtin.c:2715 +#: builtin.c:2766 msgid "lshift: received non-numeric first argument" msgstr "lshift: el primer argument rebut no s numric" -#: builtin.c:2717 +#: builtin.c:2768 #, fuzzy msgid "lshift: received non-numeric second argument" msgstr "strftime: el segon argument rebut no s numric" -#: builtin.c:2723 +#: builtin.c:2774 #, c-format msgid "lshift(%lf, %lf): negative values will give strange results" msgstr "lshift(%lf, %lf): els valors negatius donaran resultats estranys" -#: builtin.c:2725 +#: builtin.c:2776 #, c-format msgid "lshift(%lf, %lf): fractional values will be truncated" msgstr "lshift(%lf, %lf): els valors fraccionaris sernn truncats" -#: builtin.c:2727 +#: builtin.c:2778 #, c-format msgid "lshift(%lf, %lf): too large shift value will give strange results" msgstr "" "lshift(%lf, %lf): un valor de desplaament massa gran donar resultats " "estranys" -#: builtin.c:2753 +#: builtin.c:2804 msgid "rshift: received non-numeric first argument" msgstr "rshift: el primer argument rebut no s numric" -#: builtin.c:2755 +#: builtin.c:2806 #, fuzzy msgid "rshift: received non-numeric second argument" msgstr "strftime: el segon argument rebut no s numric" -#: builtin.c:2761 +#: builtin.c:2812 #, c-format msgid "rshift(%lf, %lf): negative values will give strange results" msgstr "rshift(%lf, %lf): els valors negatius donaran resultats estranys" -#: builtin.c:2763 +#: builtin.c:2814 #, c-format msgid "rshift(%lf, %lf): fractional values will be truncated" msgstr "rshift(%lf, %lf): els valors fraccionaris seran truncats" -#: builtin.c:2765 +#: builtin.c:2816 #, c-format msgid "rshift(%lf, %lf): too large shift value will give strange results" msgstr "" "rshift(%lf, %lf): un valor de desplaament massa gran donar resultats " "estranys" -#: builtin.c:2791 +#: builtin.c:2842 msgid "and: received non-numeric first argument" msgstr "and: el primer argument rebut no s numric" -#: builtin.c:2793 +#: builtin.c:2844 #, fuzzy msgid "and: received non-numeric second argument" msgstr "atan2: el segon argument rebut no s numric" -#: builtin.c:2799 +#: builtin.c:2850 #, c-format msgid "and(%lf, %lf): negative values will give strange results" msgstr "and(%lf, %lf): els valors negatius donaran resultats estranys" -#: builtin.c:2801 +#: builtin.c:2852 #, c-format msgid "and(%lf, %lf): fractional values will be truncated" msgstr "and(%lf, %lf): els valors fraccionaris seran truncats" -#: builtin.c:2827 +#: builtin.c:2878 msgid "or: received non-numeric first argument" msgstr "or: el primer argument rebut no s numric" -#: builtin.c:2829 +#: builtin.c:2880 #, fuzzy msgid "or: received non-numeric second argument" msgstr "atan2: el segon argument rebut no s numric" -#: builtin.c:2835 +#: builtin.c:2886 #, c-format msgid "or(%lf, %lf): negative values will give strange results" msgstr "or(%lf, %lf): els valors negatius donaran resultats estranys" -#: builtin.c:2837 +#: builtin.c:2888 #, c-format msgid "or(%lf, %lf): fractional values will be truncated" msgstr "or(%lf, %lf): els valors fraccionaris seran truncats" -#: builtin.c:2863 +#: builtin.c:2914 msgid "xor: received non-numeric first argument" msgstr "xor: el primer argument rebut no s numric" -#: builtin.c:2865 +#: builtin.c:2916 #, fuzzy msgid "xor: received non-numeric second argument" msgstr "atan2: el segon argument rebut no s numric" -#: builtin.c:2871 +#: builtin.c:2922 #, c-format msgid "xor(%lf, %lf): negative values will give strange results" msgstr "xor(%lf, %lf): els valors negatius donaran resultats estranys" -#: builtin.c:2873 +#: builtin.c:2924 #, c-format msgid "xor(%lf, %lf): fractional values will be truncated" msgstr "xor(%lf, %lf): els valors fraccionaris seran truncats" -#: builtin.c:2897 +#: builtin.c:2948 msgid "compl: received non-numeric argument" msgstr "compl: s'ha rebut un argument que no s numric" -#: builtin.c:2903 +#: builtin.c:2954 #, c-format msgid "compl(%lf): negative value will give strange results" msgstr "compl(%lf): el valor negatiu donar resultats estranys" -#: builtin.c:2905 +#: builtin.c:2956 #, c-format msgid "compl(%lf): fractional value will be truncated" msgstr "compl(%lf): el valor fraccionari ser truncat" -#: builtin.c:3078 +#: builtin.c:3129 #, c-format msgid "dcgettext: `%s' is not a valid locale category" msgstr "dcgettext: %s no s una categoria local vlida" @@ -802,7 +817,7 @@ msgid "buffer overflow in genflags2str" msgstr "desbordament del cau temporal en genflags2str" -#: eval.c:385 eval.c:391 profile.c:838 +#: eval.c:385 eval.c:391 profile.c:817 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "s'ha intentat usar la matriu %s en un context escalar" @@ -850,7 +865,7 @@ msgid "statement has no effect" msgstr "la sentncia no t efecte" -#: eval.c:952 eval.c:1893 +#: eval.c:952 eval.c:1895 #, c-format msgid "can't use function name `%s' as variable or array" msgstr "no es pot usar el nom de la funci %s com a variable o matriu" @@ -860,7 +875,7 @@ msgid "reference to uninitialized argument `%s'" msgstr "referncia a un argument sense inicialitzar %s" -#: eval.c:974 eval.c:1902 +#: eval.c:974 eval.c:1904 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "referncia a una variable sense inicialitzar %s" @@ -873,44 +888,44 @@ "concatenaci: els efectes colaterals en una expressi han canviat la " "longitud d'una altra!" -#: eval.c:1200 +#: eval.c:1202 msgid "assignment used in conditional context" msgstr "assignaci usada en un context condicional" -#: eval.c:1278 +#: eval.c:1280 msgid "division by zero attempted" msgstr "s'ha intentat una divisi per zero" -#: eval.c:1293 +#: eval.c:1295 #, c-format msgid "division by zero attempted in `%%'" msgstr "s'ha intentat una divisi per zero en %%" -#: eval.c:1308 profile.c:714 +#: eval.c:1310 profile.c:693 #, c-format msgid "illegal type (%s) in tree_eval" msgstr "tipus illegal (%s) en tree_eval" -#: eval.c:1471 +#: eval.c:1473 msgid "division by zero attempted in `/='" msgstr "s'ha intentat una divisi per zero en /=" -#: eval.c:1493 +#: eval.c:1495 #, c-format msgid "division by zero attempted in `%%='" msgstr "s'ha intentat una divisi per zero en %%=" -#: eval.c:1758 +#: eval.c:1760 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "s'ha cridat a la funci %s amb ms arguments dels declarats" -#: eval.c:1802 +#: eval.c:1804 #, c-format msgid "function `%s' not defined" msgstr "la funci %s no est definida" -#: eval.c:1865 +#: eval.c:1867 #, c-format msgid "" "\n" @@ -921,673 +936,687 @@ "\t# Pila de Crides a les Funcions:\n" "\n" -#: eval.c:1868 +#: eval.c:1870 #, c-format msgid "\t# -- main --\n" msgstr "\t# -- principal --\n" -#: eval.c:2023 +#: eval.c:2025 msgid "attempt to field reference from non-numeric value" msgstr "s'ha intentat una referncia de camp a partir d'un valor no numric" -#: eval.c:2025 +#: eval.c:2027 msgid "attempt to reference from null string" msgstr "s'ha intentat una referncia a partir d'una cadena nulla" -#: eval.c:2031 +#: eval.c:2033 #, c-format msgid "attempt to access field %d" msgstr "s'ha intentat accedir al camp %d" -#: eval.c:2052 eval.c:2059 profile.c:935 +#: eval.c:2054 eval.c:2061 profile.c:914 msgid "assignment is not allowed to result of builtin function" msgstr "" "no es permet l'assignaci per a obtindre un resultat d'una funci interna" -#: eval.c:2123 +#: eval.c:2125 msgid "`IGNORECASE' is a gawk extension" msgstr "IGNORECASE s una extensi de gawk" -#: eval.c:2153 +#: eval.c:2155 msgid "`BINMODE' is a gawk extension" msgstr "BINMODE s una extensi de gawk" -#: eval.c:2275 +#: eval.c:2277 #, c-format msgid "bad `%sFMT' specification `%s'" msgstr "%sFMT especificaci errnia %s" -#: eval.c:2353 +#: eval.c:2355 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "desactivant --lint degut a una assignaci a LINT" -#: ext.c:60 ext.c:64 +#: ext.c:62 ext.c:67 msgid "`extension' is a gawk extension" msgstr "extension s una extensi gawk" -#: ext.c:74 +#: ext.c:77 #, c-format msgid "extension: cannot open `%s' (%s)\n" msgstr "extension: no es pot obrir %s (%s)\n" -#: ext.c:82 +#: ext.c:85 #, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "extension: biblioteca %s: no es pot cridar a la funci %s (%s)\n" -#: ext.c:102 +#: ext.c:105 msgid "extension: missing function name" msgstr "" -#: ext.c:107 +#: ext.c:110 #, fuzzy, c-format msgid "extension: illegal character `%c' in function name `%s'" msgstr "extension: biblioteca %s: no es pot cridar a la funci %s (%s)\n" -#: ext.c:113 +#: ext.c:116 #, fuzzy, c-format msgid "extension: can't redefine function `%s'" msgstr "extension: no es pot obrir %s (%s)\n" -#: ext.c:117 +#: ext.c:120 #, fuzzy, c-format msgid "extension: function `%s' already defined" msgstr "la funci %s no est definida" -#: ext.c:122 +#: ext.c:125 #, c-format msgid "extension: can't use gawk built-in `%s' as function name" msgstr "" -#: ext.c:124 +#: ext.c:127 #, fuzzy, c-format msgid "extension: function name `%s' previously defined" msgstr "nom de la funci %s definida prviament" -#: ext.c:201 +#: ext.c:204 #, fuzzy, c-format msgid "function `%s' defined to take no more than %d argument(s)" msgstr "es defineix la funci %s per no s'ha cridat mai" -#: ext.c:204 +#: ext.c:207 #, fuzzy, c-format msgid "function `%s': missing argument #%d" msgstr "la funci %s no est definida" -#: ext.c:214 +#: ext.c:217 #, fuzzy, c-format msgid "function `%s': argument #%d: attempt to use scalar as an array" msgstr "s'ha intentat usar la dada escalar %s com a una matriu" -#: ext.c:218 +#: ext.c:221 #, c-format msgid "function `%s': argument #%d: attempt to use array as a scalar" msgstr "" -#: ext.c:243 +#: ext.c:246 msgid "Operation Not Supported" msgstr "Operaci No Suportada" -#: field.c:326 +#: field.c:330 msgid "NF set to negative value" msgstr "NF s'inicialitza sobre un valor negatiu" -#: field.c:819 +#: field.c:823 msgid "split: second argument is not an array" msgstr "split: el segon argument no s una matriu" -#: field.c:853 +#: field.c:857 msgid "split: null string for third arg is a gawk extension" msgstr "split: la cadena nulla per al tercer argument s una extensi de gawk" -#: field.c:905 +#: field.c:909 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "FIELDWIDTHS s una extensi de gawk" -#: field.c:935 field.c:946 +#: field.c:939 field.c:953 #, c-format msgid "invalid FIELDWIDTHS value, near `%s'" msgstr "" -#: field.c:1027 +#: field.c:1036 msgid "null string for `FS' is a gawk extension" msgstr "la cadena nulla per a FS s una extensi de gawk" -#: getopt.c:571 getopt.c:590 +#: field.c:1040 +#, fuzzy +msgid "old awk does not support regexps as value of `FS'" +msgstr "l'antic awk no suporta l'operador **=" + +#: getopt.c:571 getopt.c:587 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: l'opci %s s ambigua\n" -#: getopt.c:623 getopt.c:627 +#: getopt.c:620 getopt.c:624 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: l'opci --%s no admet cap argument\n" -#: getopt.c:636 getopt.c:641 +#: getopt.c:633 getopt.c:638 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: l'opci %c%s no admet cap argument\n" -#: getopt.c:687 getopt.c:709 getopt.c:1040 getopt.c:1062 +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: l'opci %s requereix un argument\n" -#: getopt.c:747 getopt.c:750 +#: getopt.c:738 getopt.c:741 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: no es reconeix l'opci --%s\n" -#: getopt.c:758 getopt.c:761 +#: getopt.c:749 getopt.c:752 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: no es reconeix l'opci %c%s\n" -#: getopt.c:816 getopt.c:819 +#: getopt.c:804 getopt.c:807 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: opci illegal -- %c\n" -#: getopt.c:825 getopt.c:828 +#: getopt.c:813 getopt.c:816 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: opci no vlida -- %c\n" -#: getopt.c:883 getopt.c:902 getopt.c:1115 getopt.c:1136 main.c:448 +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: l'opci requereix un argument -- %c\n" -#: getopt.c:955 getopt.c:974 +#: getopt.c:937 getopt.c:953 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: l'opci -W %s s ambigua\n" -#: getopt.c:998 getopt.c:1019 +#: getopt.c:977 getopt.c:995 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: l'opci -W %s no admet cap argument\n" -#: io.c:307 +#: io.c:345 #, c-format msgid "cannot open file `%s' for reading (%s)" msgstr "no es pot obrir el fitxer %s per a lectura (%s)" -#: io.c:398 +#: io.c:436 #, c-format msgid "close of fd %d (`%s') failed (%s)" msgstr "la finalitzaci del descriptor fd %d (%s) ha fallat (%s)" -#: io.c:536 +#: io.c:575 #, c-format msgid "invalid tree type %s in redirect()" msgstr "tipus d'arbre %s no vlid dintre de redirect()" -#: io.c:542 +#: io.c:581 #, c-format msgid "expression in `%s' redirection only has numeric value" msgstr "l'expressi en la redirecci %s solt t un valor numric" -#: io.c:548 +#: io.c:587 #, c-format msgid "expression for `%s' redirection has null string value" msgstr "l'expressi per a la redirecci %s t un valor de cadena nulla" -#: io.c:553 +#: io.c:592 #, c-format msgid "filename `%s' for `%s' redirection may be result of logical expression" msgstr "" "el fitxer %s per a la redirecci %s pot ser resultat d'una expressi " "lgica" -#: io.c:591 +#: io.c:630 #, c-format msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" msgstr "mescla innecessria de > i >> per al fitxer %.*s" -#: io.c:643 +#: io.c:682 #, c-format msgid "can't open pipe `%s' for output (%s)" msgstr "no es pot obrir la canonada %s per a l'eixida (%s)" -#: io.c:652 +#: io.c:691 #, c-format msgid "can't open pipe `%s' for input (%s)" msgstr "no es pot obrir la canonada %s per a l'entrada (%s)" -#: io.c:665 +#: io.c:698 io.c:1448 +#, c-format +msgid "file `%s' is a directory" +msgstr "el fitxer %s s un directori" + +#: io.c:706 #, c-format msgid "can't open two way socket `%s' for input/output (%s)" msgstr "" "no es pot obrir un socket bidireccional %s per a les entrades/eixides (%s)" -#: io.c:669 +#: io.c:710 #, c-format msgid "can't open two way pipe `%s' for input/output (%s)" msgstr "" "no es pot obrir una canonada bidireccional %s per a les entrades/eixides (%" "s)" -#: io.c:745 +#: io.c:786 #, c-format msgid "can't redirect from `%s' (%s)" msgstr "no es pot redirigir des de %s (%s)" -#: io.c:748 +#: io.c:789 #, c-format msgid "can't redirect to `%s' (%s)" msgstr "no es pot redirigir cap a %s (%s)" -#: io.c:787 +#: io.c:828 msgid "" "reached system limit for open files: starting to multiplex file descriptors" msgstr "" "s'ha arribat al lmit del sistema per a fitxers oberts: es comenar a " "multiplexar els descriptors de fitxer" -#: io.c:803 +#: io.c:844 #, c-format msgid "close of `%s' failed (%s)." msgstr "la finalitzaci de %s ha fallat (%s)" -#: io.c:811 +#: io.c:852 msgid "too many pipes or input files open" msgstr "masses canonades o fitxers d'entrada oberts" -#: io.c:834 +#: io.c:875 msgid "close: second argument must be `to' or `from'" msgstr "close: el segon argument hauria de ser to o from" -#: io.c:848 +#: io.c:889 #, c-format msgid "close: `%.*s' is not an open file, pipe or co-process" msgstr "close: %.*s no s un fitxer obert, canonada o co-procs" -#: io.c:852 +#: io.c:893 msgid "close of redirection that was never opened" msgstr "finalitzaci d'una redirecci que no s'ha obert" -#: io.c:948 +#: io.c:989 #, c-format msgid "close: redirection `%s' not opened with `|&', second argument ignored" msgstr "" "close: la redirecci %s no s'obre amb |&, s'ignora el segon argument" -#: io.c:964 +#: io.c:1005 #, c-format msgid "failure status (%d) on pipe close of `%s' (%s)" msgstr "estaus de falla (%d) en la finalitzaci de la canonada %s (%s)" -#: io.c:967 +#: io.c:1008 #, c-format msgid "failure status (%d) on file close of `%s' (%s)" msgstr "estatus de falla (%d) en la finalitzaci del fitxer %s (%s)" -#: io.c:987 +#: io.c:1028 #, c-format msgid "no explicit close of socket `%s' provided" msgstr "no s'aporta la finalitzaci explcita del socket %s" -#: io.c:990 +#: io.c:1031 #, c-format msgid "no explicit close of co-process `%s' provided" msgstr "no s'aporta la finalitzaci explcita del co-procs %s" -#: io.c:993 +#: io.c:1034 #, c-format msgid "no explicit close of pipe `%s' provided" msgstr "no s'aporta la finalitzaci explcita de la canonada %s" -#: io.c:996 +#: io.c:1037 #, c-format msgid "no explicit close of file `%s' provided" msgstr "no s'aporta la finalitzaci explcita del fitxer %s" -#: io.c:1025 io.c:1080 main.c:718 main.c:756 +#: io.c:1066 io.c:1121 main.c:749 main.c:791 #, c-format msgid "error writing standard output (%s)" msgstr "error a l'escriure en l'eixida estndard (%s)" -#: io.c:1029 io.c:1085 +#: io.c:1070 io.c:1126 #, c-format msgid "error writing standard error (%s)" msgstr "error a l'escriure en l'eixida d'error estndard (%s)" -#: io.c:1037 +#: io.c:1078 #, c-format msgid "pipe flush of `%s' failed (%s)." msgstr "la neteja de la canonada de %sx ha fallat (%s)." -#: io.c:1040 +#: io.c:1081 #, c-format msgid "co-process flush of pipe to `%s' failed (%s)." msgstr "la neteja de la canonada per al co-procs de %sx ha fallat (%s)." -#: io.c:1043 +#: io.c:1084 #, c-format msgid "file flush of `%s' failed (%s)." msgstr "la neteja del fitxer %sx ha fallat (%s)." -#: io.c:1205 +#: io.c:1198 +#, fuzzy, c-format +msgid "local port %s invalid in `/inet'" +msgstr "port local no vlid en %s" + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "" + +#: io.c:1250 msgid "/inet/raw client not ready yet, sorry" msgstr "el client /inet/raw encara no est a punt, ho sento" -#: io.c:1207 io.c:1244 +#: io.c:1253 io.c:1289 msgid "only root may use `/inet/raw'." msgstr "sols el root pot usar /inet/raw." -#: io.c:1242 +#: io.c:1287 msgid "/inet/raw server not ready yet, sorry" msgstr "el servidor /inet/raw encara no est a punt, ho sento" -#: io.c:1332 +#: io.c:1385 #, c-format msgid "no (known) protocol supplied in special filename `%s'" msgstr "no s'aporta cap protocol (conegut) en el nom del fitxer especial %s" -#: io.c:1350 +#: io.c:1399 #, c-format msgid "special file name `%s' is incomplete" msgstr "el nom del fitxer especial %s est incomplet" -#: io.c:1362 -#, c-format -msgid "local port invalid in `%s'" -msgstr "port local no vlid en %s" - -#: io.c:1374 +#: io.c:1414 msgid "must supply a remote hostname to `/inet'" msgstr "s'ha de subministrar un nom de sistema remot a /inet" -#: io.c:1389 +#: io.c:1432 msgid "must supply a remote port to `/inet'" msgstr "s'ha de subministrar un port remot a /inet" -#: io.c:1395 -#, c-format -msgid "remote port invalid in `%s'" -msgstr "port remot no vlid en %s" - -#: io.c:1405 +#: io.c:1439 msgid "TCP/IP communications are not supported" msgstr "les comunicacions TCP/IP no estan suportades" -#: io.c:1414 io.c:1595 -#, c-format -msgid "file `%s' is a directory" -msgstr "el fitxer %s s un directori" - -#: io.c:1484 +#: io.c:1509 #, c-format msgid "use `PROCINFO[\"%s\"]' instead of `%s'" msgstr "useu PROCINFO[\"%s\"] en comptes de %s" -#: io.c:1516 +#: io.c:1547 msgid "use `PROCINFO[...]' instead of `/dev/user'" msgstr "useu PROCINFO[...] en comptes de /dev/user" -#: io.c:1581 io.c:1763 +#: io.c:1612 io.c:1798 #, c-format msgid "could not open `%s', mode `%s'" msgstr "no es pot obrir %s, mode %s" -#: io.c:1814 +#: io.c:1849 #, fuzzy, c-format msgid "close of master pty failed (%s)" msgstr "ha fallat la finalitzaci de la canonada (%s)" -#: io.c:1816 io.c:1968 io.c:2119 +#: io.c:1851 io.c:2003 io.c:2154 #, c-format msgid "close of stdout in child failed (%s)" msgstr "" "ha fallat la finalitzaci de l'eixida estndard en els processos fills (%s)" -#: io.c:1819 +#: io.c:1854 #, fuzzy, c-format msgid "moving slave pty to stdout in child failed (dup: %s)" msgstr "" "ha fallat la redirecci cap a l'eixida estndard dels processos fills (dup: %" "s)" -#: io.c:1821 io.c:1973 +#: io.c:1856 io.c:2008 #, c-format msgid "close of stdin in child failed (%s)" msgstr "" "ha fallat la finalitzaci de l'entrada estndard en els processos fills (%s)" -#: io.c:1824 +#: io.c:1859 #, fuzzy, c-format msgid "moving slave pty to stdin in child failed (dup: %s)" msgstr "" "ha fallat la redirecci cap a l'entrada estndard dels processos fills (dup: " "%s)" -#: io.c:1826 io.c:1845 +#: io.c:1861 io.c:1880 #, fuzzy, c-format msgid "close of slave pty failed (%s)" msgstr "ha fallat la finalitzaci de la canonada (%s)" -#: io.c:1919 io.c:1971 io.c:2100 io.c:2122 +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 #, c-format msgid "moving pipe to stdout in child failed (dup: %s)" msgstr "" "ha fallat la redirecci cap a l'eixida estndard dels processos fills (dup: %" "s)" -#: io.c:1923 io.c:1976 +#: io.c:1958 io.c:2011 #, c-format msgid "moving pipe to stdin in child failed (dup: %s)" msgstr "" "ha fallat la redirecci cap a l'entrada estndard dels processos fills (dup: " "%s)" -#: io.c:1940 io.c:2113 +#: io.c:1975 io.c:2148 msgid "restoring stdout in parent process failed\n" msgstr "ha fallat la restauraci de l'eixida estndard en el procs pare\n" -#: io.c:1945 +#: io.c:1980 msgid "restoring stdin in parent process failed\n" msgstr "ha fallat la restauraci de l'entrada estndard en el procs pare\n" -#: io.c:1979 io.c:2124 io.c:2135 +#: io.c:2014 io.c:2159 io.c:2170 #, c-format msgid "close of pipe failed (%s)" msgstr "ha fallat la finalitzaci de la canonada (%s)" -#: io.c:2024 +#: io.c:2059 msgid "`|&' not supported" msgstr "|& no est suportat" -#: io.c:2090 +#: io.c:2125 #, c-format msgid "cannot open pipe `%s' (%s)" msgstr "no es pot obrir la canonada %s (%s)" -#: io.c:2131 +#: io.c:2166 #, c-format msgid "cannot create child process for `%s' (fork: %s)" msgstr "no es pot crear el procs fill per a %s (fork: %s)" -#: io.c:2506 +#: io.c:2548 #, c-format msgid "data file `%s' is empty" msgstr "el fitxer de dades %s est buit" -#: io.c:2547 io.c:2555 +#: io.c:2589 io.c:2597 msgid "could not allocate more input memory" msgstr "" -#: io.c:2919 io.c:2984 +#: io.c:2965 io.c:3038 #, c-format msgid "error reading input file `%s': %s" msgstr "error en llegir el fitxer d'entrada %s: %s" -#: io.c:3109 +#: io.c:3163 msgid "multicharacter value of `RS' is a gawk extension" msgstr "el valor multicarcter de RS s una extensi de gawk" -#: main.c:338 +#: main.c:351 msgid "`-m[fr]' option irrelevant in gawk" msgstr "l'opcin -m[fr] s irrellevant en gawk" -#: main.c:340 +#: main.c:353 msgid "-m option usage: `-m[fr] nnn'" msgstr "s de l'opci -m: -m[fr] nnn" -#: main.c:357 +#: main.c:370 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: no es reconeix l'opci -W %s, ser ignorada\n" -#: main.c:394 +#: main.c:407 msgid "empty argument to `--source' ignored" msgstr "s'igonar l'argument buit per a l'opci --source" -#: main.c:467 +#: main.c:480 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" msgstr "" "la variable d'entorn POSIXLY_CORRECT est establerta: usant --posix" -#: main.c:472 +#: main.c:486 msgid "`--posix' overrides `--traditional'" msgstr "--posix solapa a --traditional" -#: main.c:483 +#: main.c:497 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" msgstr "--posix i --traditional solapen a --non-decimal-data" -#: main.c:487 +#: main.c:501 #, fuzzy, c-format msgid "running %s setuid root may be a security problem" msgstr "executar %s com a setuid root pot ser un problema de seguretat" -#: main.c:528 +#: main.c:542 #, fuzzy, c-format msgid "can't set binary mode on stdin (%s)" msgstr "no es pot establir el mode en l'entrada estndard (%s)" -#: main.c:531 +#: main.c:545 #, fuzzy, c-format msgid "can't set binary mode on stdout (%s)" msgstr "no es pot establir el mode en l'eixida estndard (%s)" -#: main.c:533 +#: main.c:547 #, fuzzy, c-format msgid "can't set binary mode on stderr (%s)" msgstr "no es pot establir el mode en l'eixida d'error estndard (%s)" -#: main.c:572 +#: main.c:586 msgid "no program text at all!" msgstr "no hi ha cap text per al programa!" -#: main.c:665 +#: main.c:690 #, c-format msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" msgstr "s: %s [opcions d'estil POSIX o GNU] -f fitx_prog [--] fitxer ...\n" -#: main.c:667 +#: main.c:692 #, c-format msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" msgstr "s: %s [opcions d'estil POSIX o GNU] [--] %cprograma%c fitxer ...\n" -#: main.c:672 +#: main.c:697 msgid "POSIX options:\t\tGNU long options:\n" msgstr "Opcions POSIX:\t\tOpcions llargues GNU:\n" -#: main.c:673 +#: main.c:698 msgid "\t-f progfile\t\t--file=progfile\n" msgstr "\t-f fitx_prog\t\t--file=fitx_prog\n" -#: main.c:674 +#: main.c:699 msgid "\t-F fs\t\t\t--field-separator=fs\n" msgstr "\t-F fs\t\t\t--field-separator=fs (fs=sep_camp)\n" -#: main.c:675 +#: main.c:700 msgid "\t-v var=val\t\t--assign=var=val\n" msgstr "\t-v var=valor\t\t--assign=var=valor\n" -#: main.c:676 +#: main.c:701 msgid "\t-m[fr] val\n" msgstr "\t-m[fr] valor\n" -#: main.c:677 +#: main.c:702 msgid "\t-W compat\t\t--compat\n" msgstr "\t-W compat\t\t--compat\n" -#: main.c:678 +#: main.c:703 msgid "\t-W copyleft\t\t--copyleft\n" msgstr "\t-W copyleft\t\t--copyleft\n" -#: main.c:679 +#: main.c:704 msgid "\t-W copyright\t\t--copyright\n" msgstr "\t-W copyright\t\t--copyright\n" -#: main.c:680 +#: main.c:705 msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" msgstr "\t-W dump-variables[=fitxer] --dump-variables[=fitxer]\n" -#: main.c:681 +#: main.c:706 #, fuzzy msgid "\t-W exec=file\t\t--exec=file\n" msgstr "\t-W profile[=fitxer]\t--profile[=fitxer]\n" -#: main.c:682 +#: main.c:707 msgid "\t-W gen-po\t\t--gen-po\n" msgstr "\t-W gen-po\t\t--gen-po\n" -#: main.c:683 +#: main.c:708 msgid "\t-W help\t\t\t--help\n" msgstr "\t-W help\t\t\t--help\n" -#: main.c:684 +#: main.c:709 msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" msgstr "\t-W lint[=fatal]\t\t--lint[=fatal]\n" -#: main.c:685 +#: main.c:710 msgid "\t-W lint-old\t\t--lint-old\n" msgstr "\t-W lint-old\t\t--lint-old\n" -#: main.c:686 +#: main.c:711 msgid "\t-W non-decimal-data\t--non-decimal-data\n" msgstr "\t-W non-decimal-data\t--non-decimal-data\n" -#: main.c:688 +#: main.c:713 msgid "\t-W nostalgia\t\t--nostalgia\n" msgstr "\t-W nostalgia\t\t--nostalgia\n" -#: main.c:691 +#: main.c:716 msgid "\t-W parsedebug\t\t--parsedebug\n" msgstr "\t-W parsedebug\t\t--parsedebug\n" -#: main.c:693 +#: main.c:718 msgid "\t-W profile[=file]\t--profile[=file]\n" msgstr "\t-W profile[=fitxer]\t--profile[=fitxer]\n" -#: main.c:694 +#: main.c:719 msgid "\t-W posix\t\t--posix\n" msgstr "\t-W posix\t\t--posix\n" -#: main.c:695 +#: main.c:720 msgid "\t-W re-interval\t\t--re-interval\n" msgstr "\t-W re-interval\t\t--re-interval\n" -#: main.c:696 +#: main.c:721 msgid "\t-W source=program-text\t--source=program-text\n" msgstr "\t-W source=text_prog\t--source=text_prog\n" -#: main.c:697 +#: main.c:722 msgid "\t-W traditional\t\t--traditional\n" msgstr "\t-W traditional\t\t--traditional\n" -#: main.c:698 +#: main.c:723 msgid "\t-W usage\t\t--usage\n" msgstr "\t-W usage\t\t--usage\n" -#: main.c:699 +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "" + +#: main.c:725 msgid "\t-W version\t\t--version\n" msgstr "\t-W version\t\t--version\n" -#: main.c:703 +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 #, fuzzy msgid "" "\n" @@ -1596,28 +1625,28 @@ "\n" msgstr "a la secci Reporting Problems and Bugs de la versi impresa.\n" -#: main.c:707 +#: main.c:738 msgid "" "gawk is a pattern scanning and processing language.\n" "By default it reads standard input and writes standard output.\n" "\n" msgstr "" -#: main.c:711 +#: main.c:742 msgid "" "Examples:\n" "\tgawk '{ sum += $1 }; END { print sum }' file\n" "\tgawk -F: '{ print $1 }' /etc/passwd\n" msgstr "" -#: main.c:731 +#: main.c:762 #, c-format msgid "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" +"the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" msgstr "" @@ -1625,11 +1654,11 @@ "\n" "Aquest programa s programari lliure; pot redistribuir-se i/o modificar-se\n" "sota els termes de la Llicncia Pblica General de GNU tal i como est\n" -"publicada per la Free Software Foundation; ja siga en la versi 2 de la\n" +"publicada per la Free Software Foundation; ja siga en la versi 3 de la\n" "Llicncia, o (a la vostra elecci) qualsevol versi posterior.\n" "\n" -#: main.c:739 +#: main.c:770 msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -1643,58 +1672,57 @@ "Per a ms detalls consulteu la Llicncia Pblica General de GNU.\n" "\n" -#: main.c:745 +#: main.c:781 +#, fuzzy msgid "" "You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" msgstr "" "Junt amb aquest programa haureu d'haber rebut una cpia de la Llicncia\n" "Pblica General de GNU; si no s aix, escriviu a la Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " "USA.\n" -#: main.c:781 +#: main.c:816 msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft no permet inicialitzar FS a un tabulador en la versi POSIX de awk" -#: main.c:1018 +#: main.c:1060 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" "\n" msgstr "" -#: main.c:1038 +#: main.c:1080 #, c-format msgid "`%s' is not a legal variable name" msgstr "" -#: main.c:1041 +#: main.c:1083 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "" -#: main.c:1074 +#: main.c:1122 msgid "floating point exception" msgstr "excepci de coma flotant" -#: main.c:1081 +#: main.c:1129 msgid "fatal error: internal error" msgstr "error fatal: error intern" -#: main.c:1132 +#: main.c:1180 #, c-format msgid "no pre-opened fd %d" msgstr "no s'ha pre-obert el descriptor fd per a %d" -#: main.c:1139 +#: main.c:1187 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "no es pot pre-obrir /dev/null per al descriptor fd %d" -#: main.c:1162 main.c:1171 +#: main.c:1210 main.c:1219 #, c-format msgid "could not find groups: %s" msgstr "no es poden trobar els grups: %s" @@ -1716,23 +1744,28 @@ msgid "fatal: " msgstr "Fatal: " -#: node.c:59 node.c:66 node.c:75 node.c:90 node.c:119 +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 msgid "can't convert string to float" msgstr "no es pot convertir la cadena a coma flotant" -#: node.c:414 +#: node.c:406 msgid "backslash at end of string" msgstr "barra invertida al final de la cadena" -#: node.c:604 +#: node.c:548 +#, fuzzy, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "l'antic awk no suporta l'operador **=" + +#: node.c:599 msgid "POSIX does not allow `\\x' escapes" msgstr "POSIX no permet seqncies d'escapada \\x" -#: node.c:610 +#: node.c:605 msgid "no hex digits in `\\x' escape sequence" msgstr "no hi ha dgits hexadecimals en la seqncia d'escapada \\x" -#: node.c:644 +#: node.c:639 #, c-format msgid "escape sequence `\\%c' treated as plain `%c'" msgstr "la seqncia d'escapada \\%c s tractada com a una simple %c" @@ -1742,31 +1775,31 @@ msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" msgstr "%s %s %s: no es pot inicialitzar close-on-exec: (fcntl: %s)" -#: profile.c:91 +#: profile.c:92 #, c-format msgid "could not open `%s' for writing: %s" msgstr "no es pot obrir %s per a escriptura: %s" -#: profile.c:467 +#: profile.c:450 #, fuzzy, c-format msgid "internal error: %s with null vname" msgstr "error intern: Node_var amb vname nul" -#: profile.c:531 +#: profile.c:514 msgid "# treated internally as `delete'" msgstr "" -#: profile.c:1168 +#: profile.c:1147 #, c-format msgid "# this is a dynamically loaded extension function" msgstr "" -#: profile.c:1199 +#: profile.c:1178 #, c-format msgid "\t# gawk profile, created %s\n" msgstr "\t# perfil gawk, creat %s\n" -#: profile.c:1202 +#: profile.c:1181 #, c-format msgid "" "\t# BEGIN block(s)\n" @@ -1775,7 +1808,7 @@ "\t# Bloc(s) INICI\n" "\n" -#: profile.c:1212 +#: profile.c:1191 #, c-format msgid "" "\t# Rule(s)\n" @@ -1784,7 +1817,7 @@ "\t# Regla(es)\n" "\n" -#: profile.c:1218 +#: profile.c:1197 #, c-format msgid "" "\t# END block(s)\n" @@ -1793,7 +1826,7 @@ "\t# Bloc(s) FINAL\n" "\n" -#: profile.c:1238 +#: profile.c:1217 #, c-format msgid "" "\n" @@ -1802,83 +1835,86 @@ "\n" "\t# Funcions, llistades alfabticament\n" -#: profile.c:1453 +#: profile.c:1470 #, c-format msgid "unexpected type %s in prec_level" msgstr "tipus %s inesperat en prec_level" -#: regcomp.c:160 +#: regcomp.c:132 msgid "Success" msgstr "xit" -#: regcomp.c:163 +#: regcomp.c:135 msgid "No match" msgstr "No hi ha concordana" -#: regcomp.c:166 +#: regcomp.c:138 msgid "Invalid regular expression" msgstr "Expressi regular no vlida" -#: regcomp.c:169 +#: regcomp.c:141 msgid "Invalid collation character" msgstr "Carcter de comparaci no vlid" -#: regcomp.c:172 +#: regcomp.c:144 msgid "Invalid character class name" msgstr "Nom de classe de carcters no vlid" -#: regcomp.c:175 +#: regcomp.c:147 msgid "Trailing backslash" msgstr "Barra invertida extra al final" -#: regcomp.c:178 +#: regcomp.c:150 msgid "Invalid back reference" msgstr "Referncia cap enradera no vlida" -#: regcomp.c:181 +#: regcomp.c:153 msgid "Unmatched [ or [^" msgstr "[ o [^ desemparellats" -#: regcomp.c:184 +#: regcomp.c:156 msgid "Unmatched ( or \\(" msgstr "( o \\( desemparellats" -#: regcomp.c:187 +#: regcomp.c:159 msgid "Unmatched \\{" msgstr "\\{ desemparellat" -#: regcomp.c:190 +#: regcomp.c:162 msgid "Invalid content of \\{\\}" msgstr "Contingut no vlid de \\{\\}" -#: regcomp.c:193 +#: regcomp.c:165 msgid "Invalid range end" msgstr "Final de rang no vlid" -#: regcomp.c:196 +#: regcomp.c:168 msgid "Memory exhausted" msgstr "Memria exhaurida" -#: regcomp.c:199 +#: regcomp.c:171 msgid "Invalid preceding regular expression" msgstr "Expressi regular precedent no vlida" -#: regcomp.c:202 +#: regcomp.c:174 msgid "Premature end of regular expression" msgstr "F prematura de l'expressi regular" -#: regcomp.c:205 +#: regcomp.c:177 msgid "Regular expression too big" msgstr "L'expressi regular s massa gran" -#: regcomp.c:208 +#: regcomp.c:180 msgid "Unmatched ) or \\)" msgstr ") o \\) desemparellats" -#: regcomp.c:688 +#: regcomp.c:664 msgid "No previous regular expression" msgstr "No hi ha una expressi regular prvia" +#~ msgid "remote port invalid in `%s'" +#~ msgstr "port remot no vlid en %s" + #~ msgid "function %s called\n" #~ msgstr "s'ha cridat a la funci %s\n" diff -urN gawk-3.1.5/po/da.po gawk-3.1.6/po/da.po --- gawk-3.1.5/po/da.po 2005-07-06 17:20:04.000000000 +0300 +++ gawk-3.1.6/po/da.po 2007-09-30 22:33:27.000000000 +0200 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: gawk 3.1.31\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" -"POT-Creation-Date: 2005-07-06 17:20+0300\n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" "PO-Revision-Date: 2002-11-09 10:09+0100\n" "Last-Translator: Keld Simonsen \n" "Language-Team: Danish \n" @@ -34,357 +34,372 @@ msgid "from %s" msgstr "%s (fra %s)" -#: array.c:511 +#: array.c:514 #, c-format msgid "reference to uninitialized element `%s[\"%s\"]'" msgstr "reference til ikke-initieret element \"%s[\"%s\"]\"" -#: array.c:517 +#: array.c:520 #, c-format msgid "subscript of array `%s' is null string" msgstr "indeks i vektoren \"%s\" er en tom streng" -#: array.c:621 +#: array.c:624 #, c-format msgid "delete: index `%s' not in array `%s'" msgstr "delete: indeks \"%s\" findes ikke i vektoren \"%s\"" -#: array.c:791 +#: array.c:793 #, c-format msgid "%s: empty (null)\n" msgstr "%s: tom (nil)\n" -#: array.c:796 +#: array.c:798 #, c-format msgid "%s: empty (zero)\n" msgstr "%s: tom (nul)\n" -#: array.c:800 +#: array.c:802 #, c-format msgid "%s: table_size = %d, array_size = %d\n" msgstr "%s: tabelstrrelse = %d, vektorstrrelse = %d\n" -#: array.c:829 +#: array.c:831 #, fuzzy, c-format msgid "%s: is parameter\n" msgstr "%s: er en parameter\n" -#: array.c:834 +#: array.c:836 #, c-format msgid "%s: array_ref to %s\n" msgstr "%s: vektorreference til %s\n" -#: awkgram.y:208 +#: awkgram.y:215 #, fuzzy, c-format msgid "%s blocks must have an action part" msgstr "END-blok skal have en handlingsdel" -#: awkgram.y:211 +#: awkgram.y:218 #, fuzzy msgid "each rule must have a pattern or an action part" msgstr "END-blok skal have en handlingsdel" -#: awkgram.y:267 +#: awkgram.y:254 awkgram.y:263 +#, fuzzy +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "gamle awk understtter ikke operatoren \"**\"" + +#: awkgram.y:282 #, c-format msgid "`%s' is a built-in function, it cannot be redefined" msgstr "\"%s\" er en indbygget funktion, den kan ikke omdefineres" -#: awkgram.y:313 +#: awkgram.y:328 #, fuzzy msgid "regexp constant `//' looks like a C++ comment, but is not" msgstr "regexp-konstanten \"/%s/\" ser ud som en C-kommentar, men er det ikke" -#: awkgram.y:316 +#: awkgram.y:331 #, c-format msgid "regexp constant `/%s/' looks like a C comment, but is not" msgstr "regexp-konstanten \"/%s/\" ser ud som en C-kommentar, men er det ikke" -#: awkgram.y:343 awkgram.y:623 +#: awkgram.y:358 awkgram.y:653 msgid "statement may have no effect" msgstr "kommandoen har mske ikke nogen effekt" -#: awkgram.y:440 awkgram.y:460 +#: awkgram.y:455 awkgram.y:479 #, fuzzy, c-format msgid "`%s' used in %s action" msgstr "\"next\" brugt i BEGIN- eller END-handling" -#: awkgram.y:453 awkgram.y:456 +#: awkgram.y:470 awkgram.y:474 msgid "`nextfile' is a gawk extension" msgstr "\"nextfile\" er en gawk-udvidelse" -#: awkgram.y:470 +#: awkgram.y:489 msgid "`return' used outside function context" msgstr "\"return\" brugt uden for funktion" -#: awkgram.y:512 +#: awkgram.y:531 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" msgstr "" "alenestende \"print\" i BEGIN eller END-regel br muligvis vre 'print \"\"'" -#: awkgram.y:525 awkgram.y:532 +#: awkgram.y:547 awkgram.y:555 msgid "`delete array' is a gawk extension" msgstr "\"delete array\" er en gawk-udvidelse" -#: awkgram.y:540 awkgram.y:547 +#: awkgram.y:569 awkgram.y:577 #, fuzzy msgid "`delete(array)' is a non-portable tawk extension" msgstr "\"delete array\" er en gawk-udvidelse" -#: awkgram.y:591 +#: awkgram.y:621 #, c-format msgid "duplicate case values in switch body: %s" msgstr "" -#: awkgram.y:601 +#: awkgram.y:631 msgid "Duplicate `default' detected in switch body" msgstr "" -#: awkgram.y:690 +#: awkgram.y:720 msgid "multistage two-way pipelines don't work" msgstr "flertrins dobbeltrettede datakanaler fungerer ikke" -#: awkgram.y:781 +#: awkgram.y:811 msgid "regular expression on right of assignment" msgstr "regulrt udtryk i hjreleddet af en tildeling" -#: awkgram.y:804 +#: awkgram.y:834 msgid "regular expression on left of `~' or `!~' operator" msgstr "regulrt udtryk p venstre side af en \"~\"- eller \"!~\"-operator" -#: awkgram.y:812 +#: awkgram.y:840 awkgram.y:913 +#, fuzzy +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "gamle awk understtter ikke operatoren \"**\"" + +#: awkgram.y:846 msgid "regular expression on right of comparison" msgstr "regulrt udtryk i hjreleddet af en sammenligning" -#: awkgram.y:879 +#: awkgram.y:903 msgid "non-redirected `getline' undefined inside END action" msgstr "ikke-omdirigeret \"getline\" udefineret inde i END-handling" -#: awkgram.y:906 +#: awkgram.y:914 +#, fuzzy +msgid "old awk does not support multidimensional arrays" +msgstr "gamle awk understtter ikke operatoren \"**\"" + +#: awkgram.y:960 msgid "call of `length' without parentheses is not portable" msgstr "kald af \"length\" uden parenteser er ikke portabelt" -#: awkgram.y:909 +#: awkgram.y:965 msgid "call of `length' without parentheses is deprecated by POSIX" msgstr "kald af \"length\" uden parenteser er forldet iflge POSIX" -#: awkgram.y:962 +#: awkgram.y:1019 msgid "use of non-array as array" msgstr "" -#: awkgram.y:964 +#: awkgram.y:1022 msgid "invalid subscript expression" msgstr "ugyldig indeksudtryk" -#: awkgram.y:1171 +#: awkgram.y:1249 #, fuzzy msgid "unexpected newline or end of string" msgstr "uventet nylinjetegn" -#: awkgram.y:1267 +#: awkgram.y:1366 msgid "empty program text on command line" msgstr "tom programtekst p kommandolinjen" -#: awkgram.y:1320 +#: awkgram.y:1422 #, c-format msgid "can't open source file `%s' for reading (%s)" msgstr "kan ikke bne kildefilen \"%s\" for lsning (%s)" -#: awkgram.y:1397 +#: awkgram.y:1520 #, c-format msgid "can't read sourcefile `%s' (%s)" msgstr "kan ikke lse kildefilen \"%s\" (%s)" -#: awkgram.y:1405 +#: awkgram.y:1528 #, c-format msgid "source file `%s' is empty" msgstr "kildefilen \"%s\" er tom" -#: awkgram.y:1596 awkgram.y:1718 awkgram.y:1736 awkgram.y:2107 awkgram.y:2194 +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 msgid "source file does not end in newline" msgstr "kildefilen slutter ikke med en ny linje" -#: awkgram.y:1658 +#: awkgram.y:1782 msgid "unterminated regexp ends with `\\' at end of file" msgstr "uafsluttet regulrt udtryk slutter med \"\\\" i slutningen af filen" -#: awkgram.y:1682 +#: awkgram.y:1806 #, c-format msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -#: awkgram.y:1686 +#: awkgram.y:1810 #, c-format msgid "tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -#: awkgram.y:1693 +#: awkgram.y:1817 msgid "unterminated regexp" msgstr "uafsluttet regulrt udtryk" -#: awkgram.y:1696 +#: awkgram.y:1820 msgid "unterminated regexp at end of file" msgstr "uafsluttet regulrt udtryk i slutningen af filen" -#: awkgram.y:1762 +#: awkgram.y:1889 msgid "use of `\\ #...' line continuation is not portable" msgstr "Brug af \"\\ #...\" for linjefortsttelse er ikke portabelt" -#: awkgram.y:1774 +#: awkgram.y:1902 msgid "backslash not last character on line" msgstr "sidste tegn p linjen er ikke en omvendt skrstreg" -#: awkgram.y:1819 +#: awkgram.y:1947 msgid "POSIX does not allow operator `**='" msgstr "POSIX tillader ikke operatoren \"**=\"" -#: awkgram.y:1821 +#: awkgram.y:1949 msgid "old awk does not support operator `**='" msgstr "gamle awk understtter ikke operatoren \"**=\"" -#: awkgram.y:1830 +#: awkgram.y:1958 msgid "POSIX does not allow operator `**'" msgstr "POSIX tillader ikke operatoren \"**\"" -#: awkgram.y:1832 +#: awkgram.y:1960 msgid "old awk does not support operator `**'" msgstr "gamle awk understtter ikke operatoren \"**\"" -#: awkgram.y:1863 +#: awkgram.y:1991 msgid "operator `^=' is not supported in old awk" msgstr "operatoren \"^=\" understttes ikke i gamle awk" -#: awkgram.y:1871 +#: awkgram.y:1999 msgid "operator `^' is not supported in old awk" msgstr "operatoren \"^\" understttes ikke i gamle awk" -#: awkgram.y:1955 awkgram.y:1970 +#: awkgram.y:2083 awkgram.y:2098 msgid "unterminated string" msgstr "uafsluttet streng" -#: awkgram.y:2155 +#: awkgram.y:2283 #, c-format msgid "invalid char '%c' in expression" msgstr "ugyldigt tegn \"%c\" i udtryk" -#: awkgram.y:2203 +#: awkgram.y:2331 #, c-format msgid "`%s' is a gawk extension" msgstr "\"%s\" er en gawk-udvidelse" -#: awkgram.y:2206 +#: awkgram.y:2334 #, c-format msgid "`%s' is a Bell Labs extension" msgstr "\"%s\" er en Bell Labs-udvidelse" -#: awkgram.y:2209 +#: awkgram.y:2337 #, c-format msgid "POSIX does not allow `%s'" msgstr "POSIX tillader ikke \"%s\"" -#: awkgram.y:2213 +#: awkgram.y:2341 #, c-format msgid "`%s' is not supported in old awk" msgstr "\"%s\" understttes ikke i gamle awk" -#: awkgram.y:2239 +#: awkgram.y:2367 msgid "`goto' considered harmful!\n" msgstr "\"goto\" anses for skadlig!\n" -#: awkgram.y:2301 +#: awkgram.y:2429 #, c-format msgid "%d is invalid as number of arguments for %s" msgstr "%d er et ugyldigt antal argumenter for %s" -#: awkgram.y:2320 awkgram.y:2323 +#: awkgram.y:2448 awkgram.y:2451 msgid "match: third argument is a gawk extension" msgstr "match: tredje argument er en gawk-udvidelse" -#: awkgram.y:2336 +#: awkgram.y:2464 #, c-format msgid "%s: string literal as last arg of substitute has no effect" msgstr "" "%s: bogstavelig streng som sidste argument til erstatning har ingen effekt" -#: awkgram.y:2339 +#: awkgram.y:2467 #, fuzzy, c-format msgid "%s third parameter is not a changeable object" msgstr "sub: tredje argument er ikke et ndringsbart objekt" -#: awkgram.y:2366 awkgram.y:2369 +#: awkgram.y:2494 awkgram.y:2497 msgid "close: second argument is a gawk extension" msgstr "close: andet argument er en gawk-udvidelse" -#: awkgram.y:2379 +#: awkgram.y:2507 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" msgstr "" "brug af dcgettext(_\"...\") er fejlagtigt: fjern det indledende " "understregningstegn" -#: awkgram.y:2394 +#: awkgram.y:2522 #, fuzzy msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" msgstr "" "brug af dcgettext(_\"...\") er fejlagtigt: fjern det indledende " "understregningstegn" -#: awkgram.y:2465 +#: awkgram.y:2594 #, c-format msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" msgstr "funktionen \"%s\": parameter %d, \"%s\", er samme som parameter %d" -#: awkgram.y:2498 +#: awkgram.y:2627 #, c-format msgid "function `%s': parameter `%s' shadows global variable" msgstr "funktionen \"%s\": parameteren \"%s\" overskygger en global variabel" -#: awkgram.y:2610 +#: awkgram.y:2739 #, c-format msgid "could not open `%s' for writing (%s)" msgstr "kunne ikke bne \"%s\" for skrivning (%s)" -#: awkgram.y:2611 profile.c:93 +#: awkgram.y:2740 profile.c:94 msgid "sending profile to standard error" msgstr "sender profilen til standard fejl" -#: awkgram.y:2643 +#: awkgram.y:2772 #, c-format msgid "%s: close failed (%s)" msgstr "%s: mislykkedes at lukke (%s)" -#: awkgram.y:2764 +#: awkgram.y:2893 msgid "shadow_funcs() called twice!" msgstr "shadow_funcs() kaldt to gange!" -#: awkgram.y:2791 +#: awkgram.y:2920 msgid "there were shadowed variables." msgstr "" -#: awkgram.y:2864 +#: awkgram.y:2993 #, c-format msgid "function `%s': can't use function name as parameter name" msgstr "funktionen \"%s\": kan ikke bruge funktionsnavn som parameternavn" -#: awkgram.y:2874 +#: awkgram.y:3003 #, c-format msgid "function name `%s' previously defined" msgstr "funktionsnavnet \"%s\" er allerede defineret" -#: awkgram.y:3025 awkgram.y:3031 +#: awkgram.y:3154 awkgram.y:3160 #, c-format msgid "function `%s' called but never defined" msgstr "funktionen \"%s\" kaldt, men aldrig defineret" -#: awkgram.y:3034 +#: awkgram.y:3163 #, c-format msgid "function `%s' defined but never called" msgstr "funktionen \"%s\" defineret, men aldrig kaldt" -#: awkgram.y:3061 +#: awkgram.y:3190 #, c-format msgid "regexp constant for parameter #%d yields boolean value" msgstr "konstant regulrt udtryk for parameter %d giver en boolesk vrdi" -#: awkgram.y:3105 +#: awkgram.y:3234 #, fuzzy, c-format msgid "" "function `%s' called with space between name and `(',\n" @@ -393,197 +408,197 @@ "funktionen \"%s\" kaldt med blanktegn mellem navnet og \"(\",\n" "%s" -#: builtin.c:145 +#: builtin.c:119 #, c-format msgid "%s to \"%s\" failed (%s)" msgstr "%s til \"%s\" mislykkedes (%s)" -#: builtin.c:146 +#: builtin.c:120 msgid "standard output" msgstr "standard ud" -#: builtin.c:147 +#: builtin.c:121 msgid "reason unknown" msgstr "ukendt rsag" -#: builtin.c:160 +#: builtin.c:134 msgid "exp: received non-numeric argument" msgstr "exp: fik et ikke-numerisk argument" -#: builtin.c:166 +#: builtin.c:140 #, c-format msgid "exp: argument %g is out of range" msgstr "exp: argumentet %g er uden for tilladt omrde" -#: builtin.c:224 +#: builtin.c:198 #, c-format msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" msgstr "" "fflush: kan ikke spole: datakanalen \"%s\" bnet for lsning, ikke skrivning" -#: builtin.c:227 +#: builtin.c:201 #, c-format msgid "fflush: cannot flush: file `%s' opened for reading, not writing" msgstr "fflush: kan ikke spole: filen \"%s\" bnet for lsning, ikke skrivning" -#: builtin.c:239 +#: builtin.c:213 #, c-format msgid "fflush: `%s' is not an open file, pipe or co-process" msgstr "fflush: \"%s\" er ikke en ben fil, datakanal eller ko proces" -#: builtin.c:332 +#: builtin.c:306 msgid "index: received non-string first argument" msgstr "indeks: frste argument er ikke en streng" -#: builtin.c:334 +#: builtin.c:308 msgid "index: received non-string second argument" msgstr "indeks: andet argument er ikke en streng" -#: builtin.c:449 +#: builtin.c:423 msgid "int: received non-numeric argument" msgstr "int: fik et ikke-numerisk argument" -#: builtin.c:472 +#: builtin.c:448 #, fuzzy msgid "`length(array)' is a gawk extension" msgstr "\"delete array\" er en gawk-udvidelse" -#: builtin.c:481 +#: builtin.c:458 msgid "length: received non-string argument" msgstr "length: fik et argument som ikke er en streng" -#: builtin.c:506 +#: builtin.c:483 msgid "log: received non-numeric argument" msgstr "log: fik et ikke-numerisk argument" -#: builtin.c:509 +#: builtin.c:486 #, c-format msgid "log: received negative argument %g" msgstr "log: fik et negativt argument %g" -#: builtin.c:673 builtin.c:676 +#: builtin.c:693 builtin.c:696 msgid "must use `count$' on all formats or none" msgstr "" -#: builtin.c:778 +#: builtin.c:799 msgid "`$' is not permitted in awk formats" msgstr "\"$\" tillades ikke i awkformat" -#: builtin.c:784 +#: builtin.c:805 msgid "arg count with `$' must be > 0" msgstr "argumentantallet med \"$\" skal vre > 0" -#: builtin.c:786 +#: builtin.c:807 #, fuzzy, c-format msgid "arg count %ld greater than total number of supplied arguments" msgstr "argumentantallet %d er strre end antal givne argumenter" -#: builtin.c:788 +#: builtin.c:809 msgid "`$' not permitted after period in format" msgstr "\"$\" tillades ikke efter et punktum i formatet" -#: builtin.c:801 +#: builtin.c:822 msgid "no `$' supplied for positional field width or precision" msgstr "intet \"$\" angivet for positionsangivet feltbredde eller prcision" -#: builtin.c:867 +#: builtin.c:888 msgid "`l' is meaningless in awk formats; ignored" msgstr "\"l\" er meningslst i awk-formater, ignoreret" -#: builtin.c:871 +#: builtin.c:892 msgid "`l' is not permitted in POSIX awk formats" msgstr "\"l\" tillades ikke i POSIX awk-formater" -#: builtin.c:882 +#: builtin.c:903 msgid "`L' is meaningless in awk formats; ignored" msgstr "\"L\" er meningslst i awk-formater, ignoreret" -#: builtin.c:886 +#: builtin.c:907 msgid "`L' is not permitted in POSIX awk formats" msgstr "\"L\" tillades ikke i POSIX awk-formater" -#: builtin.c:897 +#: builtin.c:918 msgid "`h' is meaningless in awk formats; ignored" msgstr "\"h\" er meningslst i awk-formater, ignoreret" -#: builtin.c:901 +#: builtin.c:922 msgid "`h' is not permitted in POSIX awk formats" msgstr "\"h\" tillades ikke i POSIX awk-formater" -#: builtin.c:1132 +#: builtin.c:1182 #, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" msgstr "" -#: builtin.c:1198 +#: builtin.c:1266 msgid "not enough arguments to satisfy format string" msgstr "for f argumenter til formatstrengen" -#: builtin.c:1200 +#: builtin.c:1268 msgid "^ ran out for this one" msgstr "^ sluttede her" -#: builtin.c:1205 +#: builtin.c:1274 msgid "[s]printf: format specifier does not have control letter" msgstr "[s]printf: formatspecifiereren har intet kommandobogstav" -#: builtin.c:1208 +#: builtin.c:1277 msgid "too many arguments supplied for format string" msgstr "for mange argumenter til formatstrengen" -#: builtin.c:1274 builtin.c:1277 +#: builtin.c:1352 builtin.c:1355 msgid "printf: no arguments" msgstr "printf: ingen argumenter" -#: builtin.c:1301 +#: builtin.c:1379 msgid "sqrt: received non-numeric argument" msgstr "sqrt: fik ikke-numerisk argument" -#: builtin.c:1305 +#: builtin.c:1383 #, c-format msgid "sqrt: called with negative argument %g" msgstr "sqrt: kaldt med negativt argument %g" -#: builtin.c:1329 +#: builtin.c:1407 #, c-format msgid "substr: start index %g is invalid, using 1" msgstr "substr: startindeks %g er ugyldigt, bruger 1" -#: builtin.c:1334 +#: builtin.c:1412 #, c-format msgid "substr: non-integer start index %g will be truncated" msgstr "substr: startindeks %g som ikke er et heltal bliver trunkeret" -#: builtin.c:1353 +#: builtin.c:1431 #, fuzzy, c-format msgid "substr: length %g is not >= 1" msgstr "substr: lngden %g er <= 0" -#: builtin.c:1355 +#: builtin.c:1433 #, fuzzy, c-format msgid "substr: length %g is not >= 0" msgstr "substr: lngden %g er <= 0" -#: builtin.c:1362 +#: builtin.c:1440 #, c-format msgid "substr: non-integer length %g will be truncated" msgstr "substr: lngden %g som ikke er et heltal bliver trunkeret" -#: builtin.c:1367 +#: builtin.c:1445 #, c-format msgid "substr: length %g too big for string indexing, truncating to %g" msgstr "" -#: builtin.c:1379 +#: builtin.c:1457 msgid "substr: source string is zero length" msgstr "substr: kildestrengen er tom" -#: builtin.c:1395 +#: builtin.c:1473 #, fuzzy, c-format msgid "substr: start index %g is past end of string" msgstr "substr: startindeks %d er forbi slutningen p strengen" -#: builtin.c:1403 +#: builtin.c:1481 #, fuzzy, c-format msgid "" "substr: length %g at start index %g exceeds length of first argument (%lu)" @@ -591,194 +606,194 @@ "substr: lngden %d ved startindeks %d overskrider lngden af frste argument " "(%d)" -#: builtin.c:1478 +#: builtin.c:1558 #, fuzzy msgid "strftime: received non-string first argument" msgstr "strftime: fik et frste argument som ikke er en streng" -#: builtin.c:1484 +#: builtin.c:1564 msgid "strftime: received empty format string" msgstr "strftime: fik en tom formatstreng" -#: builtin.c:1493 +#: builtin.c:1573 #, fuzzy msgid "strftime: received non-numeric second argument" msgstr "strftime: fik et ikke-numerisk andet argument" -#: builtin.c:1556 +#: builtin.c:1650 msgid "mktime: received non-string argument" msgstr "mktime: fik et argument som ikke er en streng" -#: builtin.c:1601 +#: builtin.c:1695 #, fuzzy msgid "system: received non-string argument" msgstr "system: fik et argument som ikke er en streng" -#: builtin.c:1722 eval.c:2039 +#: builtin.c:1816 eval.c:2041 #, fuzzy, c-format msgid "reference to uninitialized field `$%d'" msgstr "reference til ikke-initieret variabel \"%s\"" -#: builtin.c:1827 +#: builtin.c:1921 #, fuzzy msgid "tolower: received non-string argument" msgstr "tolower: fik et argument som ikke er en streng" -#: builtin.c:1857 +#: builtin.c:1951 #, fuzzy msgid "toupper: received non-string argument" msgstr "toupper: fik et argument som ikke er en streng" -#: builtin.c:1890 +#: builtin.c:1984 msgid "atan2: received non-numeric first argument" msgstr "atan2: fik et ikke-numerisk frste argument" -#: builtin.c:1892 +#: builtin.c:1986 msgid "atan2: received non-numeric second argument" msgstr "atan2: fik et ikke-numerisk andet argument" -#: builtin.c:1911 +#: builtin.c:2005 msgid "sin: received non-numeric argument" msgstr "sin: fik et ikke-numerisk argument" -#: builtin.c:1927 +#: builtin.c:2021 msgid "cos: received non-numeric argument" msgstr "cos: fik et ikke-numerisk argument" -#: builtin.c:1977 +#: builtin.c:2071 msgid "srand: received non-numeric argument" msgstr "srand: fik et ikke-numerisk argument" -#: builtin.c:2012 +#: builtin.c:2106 msgid "match: third argument is not an array" msgstr "match: tredje argument er ikke en vektor" -#: builtin.c:2555 +#: builtin.c:2650 msgid "gensub: third argument of 0 treated as 1" msgstr "gensub: Nullet i tredje argument behandlet som et t-tal" -#: builtin.c:2715 +#: builtin.c:2766 msgid "lshift: received non-numeric first argument" msgstr "lshift: fik et ikke-numerisk frste argument" -#: builtin.c:2717 +#: builtin.c:2768 #, fuzzy msgid "lshift: received non-numeric second argument" msgstr "strftime: fik et ikke-numerisk andet argument" -#: builtin.c:2723 +#: builtin.c:2774 #, c-format msgid "lshift(%lf, %lf): negative values will give strange results" msgstr "lshift(%lf, %lf): negative vrdier vil give mrkelige resultater" -#: builtin.c:2725 +#: builtin.c:2776 #, c-format msgid "lshift(%lf, %lf): fractional values will be truncated" msgstr "lshift(%lf, %lf): flydendetalsvrdier vil blive trunkeret" -#: builtin.c:2727 +#: builtin.c:2778 #, c-format msgid "lshift(%lf, %lf): too large shift value will give strange results" msgstr "" "lshift(%lf, %lf): for store skiftevrdier vil give mrkelige resultater" -#: builtin.c:2753 +#: builtin.c:2804 msgid "rshift: received non-numeric first argument" msgstr "rshift: fik et ikke-numerisk frste argument" -#: builtin.c:2755 +#: builtin.c:2806 #, fuzzy msgid "rshift: received non-numeric second argument" msgstr "strftime: fik et ikke-numerisk andet argument" -#: builtin.c:2761 +#: builtin.c:2812 #, c-format msgid "rshift(%lf, %lf): negative values will give strange results" msgstr "rshift(%lf, %lf): negative vrdier vil give mrkelige resultater" -#: builtin.c:2763 +#: builtin.c:2814 #, c-format msgid "rshift(%lf, %lf): fractional values will be truncated" msgstr "rshift(%lf, %lf): flydendetalsvrdier vil blive trunkeret" -#: builtin.c:2765 +#: builtin.c:2816 #, c-format msgid "rshift(%lf, %lf): too large shift value will give strange results" msgstr "" "rshift(%lf, %lf): for store skiftevrdier vil give mrkelige resultater" -#: builtin.c:2791 +#: builtin.c:2842 msgid "and: received non-numeric first argument" msgstr "and: fik et ikke-numerisk frste argument" -#: builtin.c:2793 +#: builtin.c:2844 #, fuzzy msgid "and: received non-numeric second argument" msgstr "atan2: fik et ikke-numerisk andet argument" -#: builtin.c:2799 +#: builtin.c:2850 #, c-format msgid "and(%lf, %lf): negative values will give strange results" msgstr "and(%lf, %lf): negative vrdier vil give mrkelige resultater" -#: builtin.c:2801 +#: builtin.c:2852 #, c-format msgid "and(%lf, %lf): fractional values will be truncated" msgstr "and(%lf, %lf): flydendetalsvrdier vil blive trunkeret" -#: builtin.c:2827 +#: builtin.c:2878 msgid "or: received non-numeric first argument" msgstr "or: fik et ikke-numerisk frste argument" -#: builtin.c:2829 +#: builtin.c:2880 #, fuzzy msgid "or: received non-numeric second argument" msgstr "atan2: fik et ikke-numerisk andet argument" -#: builtin.c:2835 +#: builtin.c:2886 #, c-format msgid "or(%lf, %lf): negative values will give strange results" msgstr "or(%lf, %lf): negative vrdier vil give mrkelige resultater" -#: builtin.c:2837 +#: builtin.c:2888 #, c-format msgid "or(%lf, %lf): fractional values will be truncated" msgstr "or(%lf, %lf): flydendetalsvrdier vil blive trunkeret" -#: builtin.c:2863 +#: builtin.c:2914 msgid "xor: received non-numeric first argument" msgstr "xor: fik et ikke-numerisk frste argument" -#: builtin.c:2865 +#: builtin.c:2916 #, fuzzy msgid "xor: received non-numeric second argument" msgstr "atan2: fik et ikke-numerisk andet argument" -#: builtin.c:2871 +#: builtin.c:2922 #, c-format msgid "xor(%lf, %lf): negative values will give strange results" msgstr "xor(%lf, %lf): negative vrdier vil give mrkelige resultater" -#: builtin.c:2873 +#: builtin.c:2924 #, c-format msgid "xor(%lf, %lf): fractional values will be truncated" msgstr "xor(%lf, %lf): flydendetalsvrdier vil blive trunkeret" -#: builtin.c:2897 +#: builtin.c:2948 msgid "compl: received non-numeric argument" msgstr "compl: fik et ikke-numerisk argument" -#: builtin.c:2903 +#: builtin.c:2954 #, c-format msgid "compl(%lf): negative value will give strange results" msgstr "compl(%lf): negative vrdier vil give mrkelige resultater" -#: builtin.c:2905 +#: builtin.c:2956 #, c-format msgid "compl(%lf): fractional value will be truncated" msgstr "compl(%lf): flydendetalsvrdier vil blive trunkeret" -#: builtin.c:3078 +#: builtin.c:3129 #, c-format msgid "dcgettext: `%s' is not a valid locale category" msgstr "dcgettext: \"%s\" er ikke en gyldig lokalekategori" @@ -792,7 +807,7 @@ msgid "buffer overflow in genflags2str" msgstr "bufferoverlb i genflags2str" -#: eval.c:385 eval.c:391 profile.c:838 +#: eval.c:385 eval.c:391 profile.c:817 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "forsg p at bruge vektoren \"%s\" i skalarsammenhng" @@ -840,7 +855,7 @@ msgid "statement has no effect" msgstr "kommandoen har ingen effekt" -#: eval.c:952 eval.c:1893 +#: eval.c:952 eval.c:1895 #, c-format msgid "can't use function name `%s' as variable or array" msgstr "kan ikke bruge funktionsnavnet \"%s\" som variabel eller vektor" @@ -850,7 +865,7 @@ msgid "reference to uninitialized argument `%s'" msgstr "reference til ikke-initieret argument \"%s\"" -#: eval.c:974 eval.c:1902 +#: eval.c:974 eval.c:1904 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "reference til ikke-initieret variabel \"%s\"" @@ -862,44 +877,44 @@ msgstr "" "concatenation: sideeffekter i et udtryk har ndret lngden af et andet!" -#: eval.c:1200 +#: eval.c:1202 msgid "assignment used in conditional context" msgstr "tildeling brugt i sammenligningsammenhng" -#: eval.c:1278 +#: eval.c:1280 msgid "division by zero attempted" msgstr "forsgte at dividere med nul" -#: eval.c:1293 +#: eval.c:1295 #, c-format msgid "division by zero attempted in `%%'" msgstr "forsgte at dividere med nul i \"%%\"" -#: eval.c:1308 profile.c:714 +#: eval.c:1310 profile.c:693 #, c-format msgid "illegal type (%s) in tree_eval" msgstr "ikke tilladt type (%s) i tree_eval" -#: eval.c:1471 +#: eval.c:1473 msgid "division by zero attempted in `/='" msgstr "forsgte at dividere med nul i \"/=\"" -#: eval.c:1493 +#: eval.c:1495 #, c-format msgid "division by zero attempted in `%%='" msgstr "forsgte at dividere med nul i \"%%=\"" -#: eval.c:1758 +#: eval.c:1760 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "funktionen \"%s\" kaldt med flere argumenter end deklareret" -#: eval.c:1802 +#: eval.c:1804 #, c-format msgid "function `%s' not defined" msgstr "funktionen \"%s\" er ikke defineret" -#: eval.c:1865 +#: eval.c:1867 #, c-format msgid "" "\n" @@ -910,659 +925,673 @@ "\t# Funktionskaldsstak:\n" "\n" -#: eval.c:1868 +#: eval.c:1870 #, c-format msgid "\t# -- main --\n" msgstr "\t# -- main --\n" -#: eval.c:2023 +#: eval.c:2025 msgid "attempt to field reference from non-numeric value" msgstr "forsg p at feltreferere fra ikke-numerisk vrdi" -#: eval.c:2025 +#: eval.c:2027 msgid "attempt to reference from null string" msgstr "forsg p at referere fra tom streng" -#: eval.c:2031 +#: eval.c:2033 #, c-format msgid "attempt to access field %d" msgstr "forsg p at f adgang til felt nummer %d" -#: eval.c:2052 eval.c:2059 profile.c:935 +#: eval.c:2054 eval.c:2061 profile.c:914 msgid "assignment is not allowed to result of builtin function" msgstr "tildeling er ikke tilladt til resultatet fra en indbygget funktion" -#: eval.c:2123 +#: eval.c:2125 msgid "`IGNORECASE' is a gawk extension" msgstr "\"IGNORECASE\" er en gawk-udvidelse" -#: eval.c:2153 +#: eval.c:2155 msgid "`BINMODE' is a gawk extension" msgstr "\"BINMODE\" er en gawk-udvidelse" -#: eval.c:2275 +#: eval.c:2277 #, c-format msgid "bad `%sFMT' specification `%s'" msgstr "fejlagtig \"%sFMT\"-specifikation \"%s\"" -#: eval.c:2353 +#: eval.c:2355 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "deaktiverer \"--lint\" p grund af en tildeling til \"LINT\"" -#: ext.c:60 ext.c:64 +#: ext.c:62 ext.c:67 msgid "`extension' is a gawk extension" msgstr "\"extension\" er en gawk-udvidelse" -#: ext.c:74 +#: ext.c:77 #, c-format msgid "extension: cannot open `%s' (%s)\n" msgstr "extension: kan ikke bne \"%s\" (%s)\n" -#: ext.c:82 +#: ext.c:85 #, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "extension: bibliotek \"%s\": kan ikke kalde funktionen \"%s\" (%s)\n" -#: ext.c:102 +#: ext.c:105 msgid "extension: missing function name" msgstr "" -#: ext.c:107 +#: ext.c:110 #, fuzzy, c-format msgid "extension: illegal character `%c' in function name `%s'" msgstr "extension: bibliotek \"%s\": kan ikke kalde funktionen \"%s\" (%s)\n" -#: ext.c:113 +#: ext.c:116 #, fuzzy, c-format msgid "extension: can't redefine function `%s'" msgstr "extension: kan ikke bne \"%s\" (%s)\n" -#: ext.c:117 +#: ext.c:120 #, fuzzy, c-format msgid "extension: function `%s' already defined" msgstr "funktionen \"%s\" er ikke defineret" -#: ext.c:122 +#: ext.c:125 #, c-format msgid "extension: can't use gawk built-in `%s' as function name" msgstr "" -#: ext.c:124 +#: ext.c:127 #, fuzzy, c-format msgid "extension: function name `%s' previously defined" msgstr "funktionsnavnet \"%s\" er allerede defineret" -#: ext.c:201 +#: ext.c:204 #, fuzzy, c-format msgid "function `%s' defined to take no more than %d argument(s)" msgstr "funktionen \"%s\" defineret, men aldrig kaldt" -#: ext.c:204 +#: ext.c:207 #, fuzzy, c-format msgid "function `%s': missing argument #%d" msgstr "funktionen \"%s\" er ikke defineret" -#: ext.c:214 +#: ext.c:217 #, fuzzy, c-format msgid "function `%s': argument #%d: attempt to use scalar as an array" msgstr "forsg p at bruge skalaren \"%s\" som vektor" -#: ext.c:218 +#: ext.c:221 #, c-format msgid "function `%s': argument #%d: attempt to use array as a scalar" msgstr "" -#: ext.c:243 +#: ext.c:246 msgid "Operation Not Supported" msgstr "Operationen understttes ikke" -#: field.c:326 +#: field.c:330 msgid "NF set to negative value" msgstr "NF sat til en negativ vrdi" -#: field.c:819 +#: field.c:823 msgid "split: second argument is not an array" msgstr "split: andet argument er ikke en vektor" -#: field.c:853 +#: field.c:857 msgid "split: null string for third arg is a gawk extension" msgstr "split: tom streng som tredje argument er en gawk-udvidelse" -#: field.c:905 +#: field.c:909 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "\"FIELDWIDTHS\" er en gawk-udvidelse" -#: field.c:935 field.c:946 +#: field.c:939 field.c:953 #, c-format msgid "invalid FIELDWIDTHS value, near `%s'" msgstr "" -#: field.c:1027 +#: field.c:1036 msgid "null string for `FS' is a gawk extension" msgstr "tom streng som \"FS\" er en gawk-udvidelse" -#: getopt.c:571 getopt.c:590 +#: field.c:1040 +#, fuzzy +msgid "old awk does not support regexps as value of `FS'" +msgstr "gamle awk understtter ikke operatoren \"**\"" + +#: getopt.c:571 getopt.c:587 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: flaget \"%s\" er flertydigt\n" -#: getopt.c:623 getopt.c:627 +#: getopt.c:620 getopt.c:624 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: flaget \"--%s\" tillader ikke noget argument\n" -#: getopt.c:636 getopt.c:641 +#: getopt.c:633 getopt.c:638 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: flaget \"%c%s\" tillader ikke noget argument\n" -#: getopt.c:687 getopt.c:709 getopt.c:1040 getopt.c:1062 +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: flaget \"%s\" krver et argument\n" -#: getopt.c:747 getopt.c:750 +#: getopt.c:738 getopt.c:741 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: ukendt flag \"--%s\"\n" -#: getopt.c:758 getopt.c:761 +#: getopt.c:749 getopt.c:752 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: ukendt flag \"%c%s\"\n" -#: getopt.c:816 getopt.c:819 +#: getopt.c:804 getopt.c:807 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: ikke tilladt flag -- %c\n" -#: getopt.c:825 getopt.c:828 +#: getopt.c:813 getopt.c:816 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: ugyldig flag -- %c\n" -#: getopt.c:883 getopt.c:902 getopt.c:1115 getopt.c:1136 main.c:448 +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: flaget krver et argument -- %c\n" -#: getopt.c:955 getopt.c:974 +#: getopt.c:937 getopt.c:953 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: flaget \"-W %s\" er flertydigt\n" -#: getopt.c:998 getopt.c:1019 +#: getopt.c:977 getopt.c:995 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: flaget \"-W %s\" tillader ikke noget argument\n" -#: io.c:307 +#: io.c:345 #, c-format msgid "cannot open file `%s' for reading (%s)" msgstr "kan ikke bne filen \"%s\" for lsning (%s)" -#: io.c:398 +#: io.c:436 #, c-format msgid "close of fd %d (`%s') failed (%s)" msgstr "lukning af fd %d (\"%s\") mislykkedes (%s)" -#: io.c:536 +#: io.c:575 #, c-format msgid "invalid tree type %s in redirect()" msgstr "ugyldig trtype %s i redirect()" -#: io.c:542 +#: io.c:581 #, c-format msgid "expression in `%s' redirection only has numeric value" msgstr "udtrykket i \"%s\"-omdirigering har kun numerisk vrdi" -#: io.c:548 +#: io.c:587 #, c-format msgid "expression for `%s' redirection has null string value" msgstr "udtrykket for \"%s\"-omdirigering har en tom streng som vrdi" -#: io.c:553 +#: io.c:592 #, c-format msgid "filename `%s' for `%s' redirection may be result of logical expression" msgstr "" "filnavnet \"%s\" for \"%s\"-omdirigering kan vre resultatet af et logisk " "udtryk" -#: io.c:591 +#: io.c:630 #, c-format msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" msgstr "undig blanding af \">\" og \">>\" for filen \"%.*s\"" -#: io.c:643 +#: io.c:682 #, c-format msgid "can't open pipe `%s' for output (%s)" msgstr "kan ikke bne rret \"%s\" for udskrivning (%s)" -#: io.c:652 +#: io.c:691 #, c-format msgid "can't open pipe `%s' for input (%s)" msgstr "kan ikke bne rret \"%s\" for indtastning (%s)" -#: io.c:665 +#: io.c:698 io.c:1448 +#, c-format +msgid "file `%s' is a directory" +msgstr "filen \"%s\" er et katalog" + +#: io.c:706 #, c-format msgid "can't open two way socket `%s' for input/output (%s)" msgstr "kan ikke bne tovejssoklen \"%s\" for ind-/uddata (%s)" -#: io.c:669 +#: io.c:710 #, c-format msgid "can't open two way pipe `%s' for input/output (%s)" msgstr "kan ikke bne tovejsrret \"%s\" for ind-/uddata (%s)" -#: io.c:745 +#: io.c:786 #, c-format msgid "can't redirect from `%s' (%s)" msgstr "kan ikke omdirigere fra \"%s\" (%s)" -#: io.c:748 +#: io.c:789 #, c-format msgid "can't redirect to `%s' (%s)" msgstr "kan ikke omdirigere til \"%s\" (%s)" -#: io.c:787 +#: io.c:828 msgid "" "reached system limit for open files: starting to multiplex file descriptors" msgstr "" "nede systembegrnsningen for bne filer: begynder at multiplekse " "fildeskriptorer" -#: io.c:803 +#: io.c:844 #, c-format msgid "close of `%s' failed (%s)." msgstr "lukning af \"%s\" mislykkedes (%s)" -#: io.c:811 +#: io.c:852 msgid "too many pipes or input files open" msgstr "for mange rr eller inddatafiler bne" -#: io.c:834 +#: io.c:875 msgid "close: second argument must be `to' or `from'" msgstr "close: andet argument skal vre \"to\" eller \"from\"" -#: io.c:848 +#: io.c:889 #, c-format msgid "close: `%.*s' is not an open file, pipe or co-process" msgstr "close: \"%.*s\" er ikke en ben fil, datakanal eller ko-proces" -#: io.c:852 +#: io.c:893 msgid "close of redirection that was never opened" msgstr "lukning af omdirigering som aldrig bnedes" -#: io.c:948 +#: io.c:989 #, c-format msgid "close: redirection `%s' not opened with `|&', second argument ignored" msgstr "" "close: omdirigeringen \"%s\" bnedes ikke med \"|&\", andet argument " "ignoreret" -#: io.c:964 +#: io.c:1005 #, c-format msgid "failure status (%d) on pipe close of `%s' (%s)" msgstr "fejlstatus (%d) fra rrlukning af \"%s\" (%s)" -#: io.c:967 +#: io.c:1008 #, c-format msgid "failure status (%d) on file close of `%s' (%s)" msgstr "fejlstatus (%d) fra fillukning af \"%s\" (%s)" -#: io.c:987 +#: io.c:1028 #, c-format msgid "no explicit close of socket `%s' provided" msgstr "ingen eksplicit lukning af soklen \"%s\" angivet" -#: io.c:990 +#: io.c:1031 #, c-format msgid "no explicit close of co-process `%s' provided" msgstr "ingen eksplicit lukning af ko-processen \"%s\" angivet" -#: io.c:993 +#: io.c:1034 #, c-format msgid "no explicit close of pipe `%s' provided" msgstr "ingen eksplicit lukning af rret \"%s\" angivet" -#: io.c:996 +#: io.c:1037 #, c-format msgid "no explicit close of file `%s' provided" msgstr "ingen eksplicit lukning af filen \"%s\" angivet" -#: io.c:1025 io.c:1080 main.c:718 main.c:756 +#: io.c:1066 io.c:1121 main.c:749 main.c:791 #, c-format msgid "error writing standard output (%s)" msgstr "fejl ved skrivning til standard ud (%s)" -#: io.c:1029 io.c:1085 +#: io.c:1070 io.c:1126 #, c-format msgid "error writing standard error (%s)" msgstr "fejl ved skrivning til standard fejl (%s)" -#: io.c:1037 +#: io.c:1078 #, c-format msgid "pipe flush of `%s' failed (%s)." msgstr "rrspuling af \"%s\" mislykkedes (%s)" -#: io.c:1040 +#: io.c:1081 #, c-format msgid "co-process flush of pipe to `%s' failed (%s)." msgstr "ko-processpuling af rret til \"%s\" mislykkedes (%s)" -#: io.c:1043 +#: io.c:1084 #, c-format msgid "file flush of `%s' failed (%s)." msgstr "filspuling af \"%s\" mislykkedes (%s)" -#: io.c:1205 +#: io.c:1198 +#, fuzzy, c-format +msgid "local port %s invalid in `/inet'" +msgstr "lokal port ugyldig i \"%s\"" + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "" + +#: io.c:1250 msgid "/inet/raw client not ready yet, sorry" msgstr "/inet/raw-klient er desvrre ikke klar endnu" -#: io.c:1207 io.c:1244 +#: io.c:1253 io.c:1289 msgid "only root may use `/inet/raw'." msgstr "kun root kan bruge \"/inet/raw\"." -#: io.c:1242 +#: io.c:1287 msgid "/inet/raw server not ready yet, sorry" msgstr "/inet/raw-server er desvrre ikke klar endnu" -#: io.c:1332 +#: io.c:1385 #, c-format msgid "no (known) protocol supplied in special filename `%s'" msgstr "ingen (kendt) protokol opgivet i special-filnavn \"%s\"" -#: io.c:1350 +#: io.c:1399 #, c-format msgid "special file name `%s' is incomplete" msgstr "special-filnavn \"%s\" er ufuldstndigt" -#: io.c:1362 -#, c-format -msgid "local port invalid in `%s'" -msgstr "lokal port ugyldig i \"%s\"" - -#: io.c:1374 +#: io.c:1414 msgid "must supply a remote hostname to `/inet'" msgstr "skal angive et fjernmaskinenavn til \"/inet\"" -#: io.c:1389 +#: io.c:1432 msgid "must supply a remote port to `/inet'" msgstr "skal angive en fjernport til \"/inet\"" -#: io.c:1395 -#, c-format -msgid "remote port invalid in `%s'" -msgstr "fjernporten ugyldig i \"%s\"" - -#: io.c:1405 +#: io.c:1439 msgid "TCP/IP communications are not supported" msgstr "TCP/IP-kommunikation understttes ikke" -#: io.c:1414 io.c:1595 -#, c-format -msgid "file `%s' is a directory" -msgstr "filen \"%s\" er et katalog" - -#: io.c:1484 +#: io.c:1509 #, c-format msgid "use `PROCINFO[\"%s\"]' instead of `%s'" msgstr "brug \"PROCINFO[\"%s\"]\" i stedet for \"%s\"" -#: io.c:1516 +#: io.c:1547 msgid "use `PROCINFO[...]' instead of `/dev/user'" msgstr "brug \"PROCINFO[...]\" i stedet for \"dev/user\"" -#: io.c:1581 io.c:1763 +#: io.c:1612 io.c:1798 #, c-format msgid "could not open `%s', mode `%s'" msgstr "kunne ikke bne \"%s\", tilstand \"%s\"" -#: io.c:1814 +#: io.c:1849 #, fuzzy, c-format msgid "close of master pty failed (%s)" msgstr "lukning af rret mislykkedes (%s)" -#: io.c:1816 io.c:1968 io.c:2119 +#: io.c:1851 io.c:2003 io.c:2154 #, c-format msgid "close of stdout in child failed (%s)" msgstr "lukning af standard ud i barnet mislykkedes (%s)" -#: io.c:1819 +#: io.c:1854 #, fuzzy, c-format msgid "moving slave pty to stdout in child failed (dup: %s)" msgstr "flytning af rr til standard ud i barnet mislykkedes (dup: %s)" -#: io.c:1821 io.c:1973 +#: io.c:1856 io.c:2008 #, c-format msgid "close of stdin in child failed (%s)" msgstr "lukning af standard ind i barnet mislykkedes (%s)" -#: io.c:1824 +#: io.c:1859 #, fuzzy, c-format msgid "moving slave pty to stdin in child failed (dup: %s)" msgstr "flytning af rr til standard ind i barnet mislykkedes (dup: %s)" -#: io.c:1826 io.c:1845 +#: io.c:1861 io.c:1880 #, fuzzy, c-format msgid "close of slave pty failed (%s)" msgstr "lukning af rret mislykkedes (%s)" -#: io.c:1919 io.c:1971 io.c:2100 io.c:2122 +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 #, c-format msgid "moving pipe to stdout in child failed (dup: %s)" msgstr "flytning af rr til standard ud i barnet mislykkedes (dup: %s)" -#: io.c:1923 io.c:1976 +#: io.c:1958 io.c:2011 #, c-format msgid "moving pipe to stdin in child failed (dup: %s)" msgstr "flytning af rr til standard ind i barnet mislykkedes (dup: %s)" -#: io.c:1940 io.c:2113 +#: io.c:1975 io.c:2148 msgid "restoring stdout in parent process failed\n" msgstr "genskabelse af standard ud i forlderprocessen mislykkedes\n" -#: io.c:1945 +#: io.c:1980 msgid "restoring stdin in parent process failed\n" msgstr "genskabelse af standard ind i forlderprocessen mislykkedes\n" -#: io.c:1979 io.c:2124 io.c:2135 +#: io.c:2014 io.c:2159 io.c:2170 #, c-format msgid "close of pipe failed (%s)" msgstr "lukning af rret mislykkedes (%s)" -#: io.c:2024 +#: io.c:2059 msgid "`|&' not supported" msgstr "\"|&\" understttes ikke" -#: io.c:2090 +#: io.c:2125 #, c-format msgid "cannot open pipe `%s' (%s)" msgstr "kan ikke bne rret \"%s\" (%s)" -#: io.c:2131 +#: io.c:2166 #, c-format msgid "cannot create child process for `%s' (fork: %s)" msgstr "kan ikke oprette barneproces for \"%s\" (fork: %s)" -#: io.c:2506 +#: io.c:2548 #, c-format msgid "data file `%s' is empty" msgstr "datafilen \"%s\" er tom" -#: io.c:2547 io.c:2555 +#: io.c:2589 io.c:2597 msgid "could not allocate more input memory" msgstr "" -#: io.c:2919 io.c:2984 +#: io.c:2965 io.c:3038 #, c-format msgid "error reading input file `%s': %s" msgstr "fejl ved lsning af inddatafilen \"%s\": %s" -#: io.c:3109 +#: io.c:3163 msgid "multicharacter value of `RS' is a gawk extension" msgstr "flertegnsvrdien af \"RS\" er en gawk-udvidelse" -#: main.c:338 +#: main.c:351 msgid "`-m[fr]' option irrelevant in gawk" msgstr "\"-m[fr]\"-flaget er irrelevant i gawk" -#: main.c:340 +#: main.c:353 msgid "-m option usage: `-m[fr] nnn'" msgstr "-m-flagets brug: \"-m[fr] nnn\"" -#: main.c:357 +#: main.c:370 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: flaget \"-W %s\" ukendt, ignoreret\n" -#: main.c:394 +#: main.c:407 msgid "empty argument to `--source' ignored" msgstr "tomt argument til \"--source\" ignoreret" -#: main.c:467 +#: main.c:480 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" msgstr "miljvariablen \"POSIXLY_CORRECT\" sat: aktiverer \"--posix\"" -#: main.c:472 +#: main.c:486 msgid "`--posix' overrides `--traditional'" msgstr "\"--posix\" tilsidestter \"--traditional\"" -#: main.c:483 +#: main.c:497 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" msgstr "\"--posix\"/\"--traditional\" tilsidestter \"--non-decimal-data\"" -#: main.c:487 +#: main.c:501 #, fuzzy, c-format msgid "running %s setuid root may be a security problem" msgstr "at kre %s setuid root kan vre et sikkerhedsproblem" -#: main.c:528 +#: main.c:542 #, fuzzy, c-format msgid "can't set binary mode on stdin (%s)" msgstr "kan ikke stte tilstand p standard ind (%s)" -#: main.c:531 +#: main.c:545 #, fuzzy, c-format msgid "can't set binary mode on stdout (%s)" msgstr "kan ikke stte tilstand p standard ud (%s)" -#: main.c:533 +#: main.c:547 #, fuzzy, c-format msgid "can't set binary mode on stderr (%s)" msgstr "kan ikke stte tilstand p standard fejl (%s)" -#: main.c:572 +#: main.c:586 msgid "no program text at all!" msgstr "ingen programtekst overhovedet!" -#: main.c:665 +#: main.c:690 #, c-format msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" msgstr "Brug: %s [POSIX- eller GNU-stilflag] -f progfil [--] fil ...\n" -#: main.c:667 +#: main.c:692 #, c-format msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" msgstr "Brug: %s [POSIX- eller GNU-stilflag] %cprogram%c fil ...\n" -#: main.c:672 +#: main.c:697 msgid "POSIX options:\t\tGNU long options:\n" msgstr "POSIX-flag:\t\tGNU lange flag:\n" -#: main.c:673 +#: main.c:698 msgid "\t-f progfile\t\t--file=progfile\n" msgstr "\t-f progfil\t\t--file=progfil\n" -#: main.c:674 +#: main.c:699 msgid "\t-F fs\t\t\t--field-separator=fs\n" msgstr "\t-F fs\t\t\t--field-separator=fs\n" -#: main.c:675 +#: main.c:700 msgid "\t-v var=val\t\t--assign=var=val\n" msgstr "\t-v var=vrdi\t\t--assign=var=vrdi\n" -#: main.c:676 +#: main.c:701 msgid "\t-m[fr] val\n" msgstr "\t-m[fr] vrdi\n" -#: main.c:677 +#: main.c:702 msgid "\t-W compat\t\t--compat\n" msgstr "\t-W compat\t\t--compat\n" -#: main.c:678 +#: main.c:703 msgid "\t-W copyleft\t\t--copyleft\n" msgstr "\t-W copyleft\t\t--copyleft\n" -#: main.c:679 +#: main.c:704 msgid "\t-W copyright\t\t--copyright\n" msgstr "\t-W copyright\t\t--copyright\n" -#: main.c:680 +#: main.c:705 msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" msgstr "\t-W dump-variables[=fil]\t--dump-variables[=fil]\n" -#: main.c:681 +#: main.c:706 #, fuzzy msgid "\t-W exec=file\t\t--exec=file\n" msgstr "\t-W profile[=fil]\t--profile[=fil]\n" -#: main.c:682 +#: main.c:707 msgid "\t-W gen-po\t\t--gen-po\n" msgstr "\t-W gen-po\t\t--gen-po\n" -#: main.c:683 +#: main.c:708 msgid "\t-W help\t\t\t--help\n" msgstr "\t-W help\t\t\t--help\n" -#: main.c:684 +#: main.c:709 msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" msgstr "\t-W lint[=fatal]\t\t--lint[=fatal]\n" -#: main.c:685 +#: main.c:710 msgid "\t-W lint-old\t\t--lint-old\n" msgstr "\t-W lint-old\t\t--lint-old\n" -#: main.c:686 +#: main.c:711 msgid "\t-W non-decimal-data\t--non-decimal-data\n" msgstr "\t-W non-decimal-data\t--non-decimal-data\n" -#: main.c:688 +#: main.c:713 msgid "\t-W nostalgia\t\t--nostalgia\n" msgstr "\t-W nostalgia\t\t--nostalgia\n" -#: main.c:691 +#: main.c:716 msgid "\t-W parsedebug\t\t--parsedebug\n" msgstr "\t-W parsedebug\t\t--parsedebug\n" -#: main.c:693 +#: main.c:718 msgid "\t-W profile[=file]\t--profile[=file]\n" msgstr "\t-W profile[=fil]\t--profile[=fil]\n" -#: main.c:694 +#: main.c:719 msgid "\t-W posix\t\t--posix\n" msgstr "\t-W posix\t\t--posix\n" -#: main.c:695 +#: main.c:720 msgid "\t-W re-interval\t\t--re-interval\n" msgstr "\t-W re-interval\t\t--re-interval\n" -#: main.c:696 +#: main.c:721 msgid "\t-W source=program-text\t--source=program-text\n" msgstr "\t-W source=programtekst\t--source=programtekst\n" -#: main.c:697 +#: main.c:722 msgid "\t-W traditional\t\t--traditional\n" msgstr "\t-W traditional\t\t--traditional\n" -#: main.c:698 +#: main.c:723 msgid "\t-W usage\t\t--usage\n" msgstr "\t-W usage\t\t--usage\n" -#: main.c:699 +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "" + +#: main.c:725 msgid "\t-W version\t\t--version\n" msgstr "\t-W version\t\t--version\n" -#: main.c:703 +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 #, fuzzy msgid "" "\n" @@ -1573,28 +1602,28 @@ "sektionen \"Reporting Problems and Bugs\" i den trykte version.\n" "Rapportr synpunkter p oversttelsen til .\n" -#: main.c:707 +#: main.c:738 msgid "" "gawk is a pattern scanning and processing language.\n" "By default it reads standard input and writes standard output.\n" "\n" msgstr "" -#: main.c:711 +#: main.c:742 msgid "" "Examples:\n" "\tgawk '{ sum += $1 }; END { print sum }' file\n" "\tgawk -F: '{ print $1 }' /etc/passwd\n" msgstr "" -#: main.c:731 +#: main.c:762 #, c-format msgid "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" +"the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" msgstr "" @@ -1602,11 +1631,11 @@ "\n" "Dette program er frit programmel. Du kan distribuere det og/eller\n" "ndre det under betingelserne i GNU General Public License, offentliggjort\n" -"af Free Software Foundation, enten version 2 eller (hvis du vil)\n" +"af Free Software Foundation, enten version 3 eller (hvis du vil)\n" "enhver senere version.\n" "\n" -#: main.c:739 +#: main.c:770 msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -1620,57 +1649,56 @@ "General Public License for yderligere information.\n" "\n" -#: main.c:745 +#: main.c:781 +#, fuzzy msgid "" "You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" msgstr "" "Du br have fet en kopi af GNU General Public License sammen\n" "med dette program. Hvis ikke, s skriv til Free Software Foundation,\n" "Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" -#: main.c:781 +#: main.c:816 msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft stter ikke FS til tab i POSIX-awk" -#: main.c:1018 +#: main.c:1060 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" "\n" msgstr "" -#: main.c:1038 +#: main.c:1080 #, c-format msgid "`%s' is not a legal variable name" msgstr "" -#: main.c:1041 +#: main.c:1083 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "" -#: main.c:1074 +#: main.c:1122 msgid "floating point exception" msgstr "flydendetalsundtagelse" -#: main.c:1081 +#: main.c:1129 msgid "fatal error: internal error" msgstr "fatal fejl: intern fejl" -#: main.c:1132 +#: main.c:1180 #, c-format msgid "no pre-opened fd %d" msgstr "ingen for-bnet fd %d" -#: main.c:1139 +#: main.c:1187 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "kunne ikke for-bne /dev/null for fd %d" -#: main.c:1162 main.c:1171 +#: main.c:1210 main.c:1219 #, c-format msgid "could not find groups: %s" msgstr "kunne ikke finde grupper: %s" @@ -1692,23 +1720,28 @@ msgid "fatal: " msgstr "fatal: " -#: node.c:59 node.c:66 node.c:75 node.c:90 node.c:119 +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 msgid "can't convert string to float" msgstr "kan ikke konvertere en streng til flydende tal" -#: node.c:414 +#: node.c:406 msgid "backslash at end of string" msgstr "omvendt skrstreg i slutningen af strengen" -#: node.c:604 +#: node.c:548 +#, fuzzy, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "gamle awk understtter ikke operatoren \"**\"" + +#: node.c:599 msgid "POSIX does not allow `\\x' escapes" msgstr "POSIX tillader ikke \"\\x\"-kontrolsekvenser" -#: node.c:610 +#: node.c:605 msgid "no hex digits in `\\x' escape sequence" msgstr "ingen heksadecimale cifre i \"\\x\"-kontrolsekvenser" -#: node.c:644 +#: node.c:639 #, c-format msgid "escape sequence `\\%c' treated as plain `%c'" msgstr "kontrolsekvensen \"\\%c\" behandlet som kun \"%c\"" @@ -1718,31 +1751,31 @@ msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" msgstr "%s %s \"%s\": kunne ikke stte luk-ved-exec (fcntl: %s)" -#: profile.c:91 +#: profile.c:92 #, c-format msgid "could not open `%s' for writing: %s" msgstr "kunne ikke bne \"%s\" for skrivning: %s" -#: profile.c:467 +#: profile.c:450 #, fuzzy, c-format msgid "internal error: %s with null vname" msgstr "intern fejl: Node_var med null vname" -#: profile.c:531 +#: profile.c:514 msgid "# treated internally as `delete'" msgstr "" -#: profile.c:1168 +#: profile.c:1147 #, c-format msgid "# this is a dynamically loaded extension function" msgstr "" -#: profile.c:1199 +#: profile.c:1178 #, c-format msgid "\t# gawk profile, created %s\n" msgstr "\t# gawkprofil, oprettet %s\n" -#: profile.c:1202 +#: profile.c:1181 #, c-format msgid "" "\t# BEGIN block(s)\n" @@ -1751,7 +1784,7 @@ "\t# BEGIN-blok\n" "\n" -#: profile.c:1212 +#: profile.c:1191 #, c-format msgid "" "\t# Rule(s)\n" @@ -1760,7 +1793,7 @@ "\t# Regel/regler\n" "\n" -#: profile.c:1218 +#: profile.c:1197 #, c-format msgid "" "\t# END block(s)\n" @@ -1769,7 +1802,7 @@ "\t# END-blok\n" "\n" -#: profile.c:1238 +#: profile.c:1217 #, c-format msgid "" "\n" @@ -1778,83 +1811,86 @@ "\n" "\t# Funktioner, listede alfabetisk\n" -#: profile.c:1453 +#: profile.c:1470 #, c-format msgid "unexpected type %s in prec_level" msgstr "uventet type %s i prec_level" -#: regcomp.c:160 +#: regcomp.c:132 msgid "Success" msgstr "Lykkedes" -#: regcomp.c:163 +#: regcomp.c:135 msgid "No match" msgstr "Mislykkedes" -#: regcomp.c:166 +#: regcomp.c:138 msgid "Invalid regular expression" msgstr "Ugyldigt regulrt udtryk" -#: regcomp.c:169 +#: regcomp.c:141 msgid "Invalid collation character" msgstr "Ugyldigt kollationeringstegn" -#: regcomp.c:172 +#: regcomp.c:144 msgid "Invalid character class name" msgstr "Ugyldigt tegnklassenavn" -#: regcomp.c:175 +#: regcomp.c:147 msgid "Trailing backslash" msgstr "Efterflgende omvendt skrstreg" -#: regcomp.c:178 +#: regcomp.c:150 msgid "Invalid back reference" msgstr "Ugyldig bagudreference" -#: regcomp.c:181 +#: regcomp.c:153 msgid "Unmatched [ or [^" msgstr "Ubalanceret [ eller [^" -#: regcomp.c:184 +#: regcomp.c:156 msgid "Unmatched ( or \\(" msgstr "Ubalanceret ( eller \\(" -#: regcomp.c:187 +#: regcomp.c:159 msgid "Unmatched \\{" msgstr "Ubalanceret \\{" -#: regcomp.c:190 +#: regcomp.c:162 msgid "Invalid content of \\{\\}" msgstr "Ugyldigt indhold i \\{\\}" -#: regcomp.c:193 +#: regcomp.c:165 msgid "Invalid range end" msgstr "Ugyldig intervalslutning" -#: regcomp.c:196 +#: regcomp.c:168 msgid "Memory exhausted" msgstr "Hukommelsen opbrugt" -#: regcomp.c:199 +#: regcomp.c:171 msgid "Invalid preceding regular expression" msgstr "Ugyldigt foregende regulrt udtryk" -#: regcomp.c:202 +#: regcomp.c:174 msgid "Premature end of regular expression" msgstr "For tidligt slut p regulrt udtryk" -#: regcomp.c:205 +#: regcomp.c:177 msgid "Regular expression too big" msgstr "Regulrt udtryk for stort" -#: regcomp.c:208 +#: regcomp.c:180 msgid "Unmatched ) or \\)" msgstr "Ubalanceret ) eller \\)" -#: regcomp.c:688 +#: regcomp.c:664 msgid "No previous regular expression" msgstr "Intet foregende regulrt udtryk" +#~ msgid "remote port invalid in `%s'" +#~ msgstr "fjernporten ugyldig i \"%s\"" + #~ msgid "function %s called\n" #~ msgstr "funktionen %s kaldt\n" diff -urN gawk-3.1.5/po/de.po gawk-3.1.6/po/de.po --- gawk-3.1.5/po/de.po 2005-07-06 17:20:04.000000000 +0300 +++ gawk-3.1.6/po/de.po 2007-09-30 22:33:27.000000000 +0200 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: gawk 3.1.0\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" -"POT-Creation-Date: 2005-07-06 17:20+0300\n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" "PO-Revision-Date: 2002-04-03 18:55+02:00\n" "Last-Translator: Christian Kirsch \n" "Language-Team: German \n" @@ -34,364 +34,379 @@ msgid "from %s" msgstr "%s (von %s)" -#: array.c:511 +#: array.c:514 #, c-format msgid "reference to uninitialized element `%s[\"%s\"]'" msgstr "Bezug auf nicht-initialisiertes Element %s[\"%s\"]" -#: array.c:517 +#: array.c:520 #, c-format msgid "subscript of array `%s' is null string" msgstr "Index in Array %s ist Nullstring." -#: array.c:621 +#: array.c:624 #, c-format msgid "delete: index `%s' not in array `%s'" msgstr "delete: Index %s nicht in Feld %s vorhanden." -#: array.c:791 +#: array.c:793 #, c-format msgid "%s: empty (null)\n" msgstr "%s: leer (Null)\n" -#: array.c:796 +#: array.c:798 #, c-format msgid "%s: empty (zero)\n" msgstr "%s: leer (0)\n" -#: array.c:800 +#: array.c:802 #, c-format msgid "%s: table_size = %d, array_size = %d\n" msgstr "%s: Table_size = %d, array_size = %d\n" -#: array.c:829 +#: array.c:831 #, fuzzy, c-format msgid "%s: is parameter\n" msgstr "%s: ist ein Parameter\n" -#: array.c:834 +#: array.c:836 #, c-format msgid "%s: array_ref to %s\n" msgstr "%s: Array-Referenz auf %s\n" -#: awkgram.y:208 +#: awkgram.y:215 #, fuzzy, c-format msgid "%s blocks must have an action part" msgstr "END-Blcke mssen einen Aktionsteil haben." -#: awkgram.y:211 +#: awkgram.y:218 #, fuzzy msgid "each rule must have a pattern or an action part" msgstr "END-Blcke mssen einen Aktionsteil haben." -#: awkgram.y:267 +#: awkgram.y:254 awkgram.y:263 +#, fuzzy +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "Das alte awk erlaubt den Operator '**' nicht." + +#: awkgram.y:282 #, c-format msgid "`%s' is a built-in function, it cannot be redefined" msgstr "'%s' ist eine eingebaute Funktion und kann nicht umdefiniert werden." -#: awkgram.y:313 +#: awkgram.y:328 #, fuzzy msgid "regexp constant `//' looks like a C++ comment, but is not" msgstr "" "Konstanter Regulrer Ausdruck '/%s' sieht wie ein C-Kommentar aus, ist aber " "keiner." -#: awkgram.y:316 +#: awkgram.y:331 #, c-format msgid "regexp constant `/%s/' looks like a C comment, but is not" msgstr "" "Konstanter Regulrer Ausdruck '/%s' sieht wie ein C-Kommentar aus, ist aber " "keiner." -#: awkgram.y:343 awkgram.y:623 +#: awkgram.y:358 awkgram.y:653 msgid "statement may have no effect" msgstr "Statement mglicherweise ohne Effekt." -#: awkgram.y:440 awkgram.y:460 +#: awkgram.y:455 awkgram.y:479 #, fuzzy, c-format msgid "`%s' used in %s action" msgstr "'next' in BEGIN- oder END-Aktion benutzt." -#: awkgram.y:453 awkgram.y:456 +#: awkgram.y:470 awkgram.y:474 msgid "`nextfile' is a gawk extension" msgstr "'nextfile' ist eine gawk-Erweiterung." -#: awkgram.y:470 +#: awkgram.y:489 msgid "`return' used outside function context" msgstr "'return' auerhalb einer Funktion benutzt." -#: awkgram.y:512 +#: awkgram.y:531 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" msgstr "" "Einfaches 'print' in BEGIN- oder END-Regel soll vermutlich 'print \"\"' sein." -#: awkgram.y:525 awkgram.y:532 +#: awkgram.y:547 awkgram.y:555 msgid "`delete array' is a gawk extension" msgstr "'delete array' ist eine gawk-Erweiterung." -#: awkgram.y:540 awkgram.y:547 +#: awkgram.y:569 awkgram.y:577 #, fuzzy msgid "`delete(array)' is a non-portable tawk extension" msgstr "'delete array' ist eine gawk-Erweiterung." -#: awkgram.y:591 +#: awkgram.y:621 #, c-format msgid "duplicate case values in switch body: %s" msgstr "" -#: awkgram.y:601 +#: awkgram.y:631 msgid "Duplicate `default' detected in switch body" msgstr "" -#: awkgram.y:690 +#: awkgram.y:720 msgid "multistage two-way pipelines don't work" msgstr "'multistage' Zweiwege-Pipes funktionieren nicht." -#: awkgram.y:781 +#: awkgram.y:811 msgid "regular expression on right of assignment" msgstr "Regulrer Ausdruck auf der rechten Seite einer Zuweisung." -#: awkgram.y:804 +#: awkgram.y:834 msgid "regular expression on left of `~' or `!~' operator" msgstr "Regulrer Ausdruck links vom '~'- oder '!~'-Operator." -#: awkgram.y:812 +#: awkgram.y:840 awkgram.y:913 +#, fuzzy +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "Das alte awk erlaubt den Operator '**' nicht." + +#: awkgram.y:846 msgid "regular expression on right of comparison" msgstr "Regulrer Ausdruck rechts von einem Vergleich." -#: awkgram.y:879 +#: awkgram.y:903 msgid "non-redirected `getline' undefined inside END action" msgstr "" "Nicht-umgelenktes 'getline' ist innerhalb der END-Aktion nicht definiert." -#: awkgram.y:906 +#: awkgram.y:914 +#, fuzzy +msgid "old awk does not support multidimensional arrays" +msgstr "Das alte awk erlaubt den Operator '**' nicht." + +#: awkgram.y:960 msgid "call of `length' without parentheses is not portable" msgstr "Aufruf von 'length' ohne Klammern ist nicht portabel." -#: awkgram.y:909 +#: awkgram.y:965 msgid "call of `length' without parentheses is deprecated by POSIX" msgstr "Aufruf von 'length' ohne Klammern ist in POSIX-Mode veraltet." -#: awkgram.y:962 +#: awkgram.y:1019 msgid "use of non-array as array" msgstr "" -#: awkgram.y:964 +#: awkgram.y:1022 msgid "invalid subscript expression" msgstr "Ungltiger Index-Ausdruck." -#: awkgram.y:1171 +#: awkgram.y:1249 #, fuzzy msgid "unexpected newline or end of string" msgstr "Unerwartetes Zeilenende" -#: awkgram.y:1267 +#: awkgram.y:1366 msgid "empty program text on command line" msgstr "Kein Programmtext auf der Kommandozeile." -#: awkgram.y:1320 +#: awkgram.y:1422 #, c-format msgid "can't open source file `%s' for reading (%s)" msgstr "Kann Quelldatei '%s' nicht zum Lesen ffnen (%s)." -#: awkgram.y:1397 +#: awkgram.y:1520 #, c-format msgid "can't read sourcefile `%s' (%s)" msgstr "Kann Quelldatei '%s' nicht lesen (%s)." -#: awkgram.y:1405 +#: awkgram.y:1528 #, c-format msgid "source file `%s' is empty" msgstr "Quelldatei '%s' ist leer." -#: awkgram.y:1596 awkgram.y:1718 awkgram.y:1736 awkgram.y:2107 awkgram.y:2194 +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 msgid "source file does not end in newline" msgstr "Quelldatei hrt nicht mit Zeilenende auf." -#: awkgram.y:1658 +#: awkgram.y:1782 msgid "unterminated regexp ends with `\\' at end of file" msgstr "" "Nicht-beendeter Regulrer Ausdruck (hrt mit '\\' auf) am Ende der Datei." -#: awkgram.y:1682 +#: awkgram.y:1806 #, c-format msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -#: awkgram.y:1686 +#: awkgram.y:1810 #, c-format msgid "tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -#: awkgram.y:1693 +#: awkgram.y:1817 msgid "unterminated regexp" msgstr "Nicht-beendeter Regulrer Ausdruck" -#: awkgram.y:1696 +#: awkgram.y:1820 msgid "unterminated regexp at end of file" msgstr "Nicht-beendeter Regulrer Ausdruck am Dateiende." -#: awkgram.y:1762 +#: awkgram.y:1889 msgid "use of `\\ #...' line continuation is not portable" msgstr "" "Die Verwendung von '\\#...' zur Fortsetzung von Zeilen ist nicht portabel." -#: awkgram.y:1774 +#: awkgram.y:1902 msgid "backslash not last character on line" msgstr "Backslash ist nicht letztes Zeichen auf der Zeile." -#: awkgram.y:1819 +#: awkgram.y:1947 msgid "POSIX does not allow operator `**='" msgstr "POSIX erlaubt den Operator '**=' nicht." -#: awkgram.y:1821 +#: awkgram.y:1949 msgid "old awk does not support operator `**='" msgstr "Das alte awk erlaubt den Operator '**=' nicht." -#: awkgram.y:1830 +#: awkgram.y:1958 msgid "POSIX does not allow operator `**'" msgstr "POSIX erlaubt den Operator '**' nicht." -#: awkgram.y:1832 +#: awkgram.y:1960 msgid "old awk does not support operator `**'" msgstr "Das alte awk erlaubt den Operator '**' nicht." -#: awkgram.y:1863 +#: awkgram.y:1991 msgid "operator `^=' is not supported in old awk" msgstr "Das alte awk kennt den Operator '^=' nicht." -#: awkgram.y:1871 +#: awkgram.y:1999 msgid "operator `^' is not supported in old awk" msgstr "Das alte awk kennt den Operator '^' nicht." -#: awkgram.y:1955 awkgram.y:1970 +#: awkgram.y:2083 awkgram.y:2098 msgid "unterminated string" msgstr "Nicht-beendeter String" -#: awkgram.y:2155 +#: awkgram.y:2283 #, c-format msgid "invalid char '%c' in expression" msgstr "Ungltiges Zeichen '%c' in einem Ausdruck." -#: awkgram.y:2203 +#: awkgram.y:2331 #, c-format msgid "`%s' is a gawk extension" msgstr "'%s' ist eine gawk-Erweiterung" -#: awkgram.y:2206 +#: awkgram.y:2334 #, c-format msgid "`%s' is a Bell Labs extension" msgstr "'%s' ist eine Erweiterung der Bell Labs." -#: awkgram.y:2209 +#: awkgram.y:2337 #, c-format msgid "POSIX does not allow `%s'" msgstr "POSIX gestattet '%s' nicht." -#: awkgram.y:2213 +#: awkgram.y:2341 #, c-format msgid "`%s' is not supported in old awk" msgstr "Das alte awk gestattet '%s' nicht." -#: awkgram.y:2239 +#: awkgram.y:2367 msgid "`goto' considered harmful!\n" msgstr "'goto' gilt als schlechter Stil!\n" -#: awkgram.y:2301 +#: awkgram.y:2429 #, c-format msgid "%d is invalid as number of arguments for %s" msgstr "Unzulssige Argumentzahl %d fr %s." -#: awkgram.y:2320 awkgram.y:2323 +#: awkgram.y:2448 awkgram.y:2451 msgid "match: third argument is a gawk extension" msgstr "match: Das dritte Argument ist eine gawk-Erweiterung." -#: awkgram.y:2336 +#: awkgram.y:2464 #, c-format msgid "%s: string literal as last arg of substitute has no effect" msgstr "%s: Ein String als letztes Argument von substitute hat keinen Effekt." -#: awkgram.y:2339 +#: awkgram.y:2467 #, fuzzy, c-format msgid "%s third parameter is not a changeable object" msgstr "Der dritte Parameter von sub ist ein unvernderliches Objekt." -#: awkgram.y:2366 awkgram.y:2369 +#: awkgram.y:2494 awkgram.y:2497 msgid "close: second argument is a gawk extension" msgstr "close: Das zweite Argument ist eine gawk-Erweiterung." -#: awkgram.y:2379 +#: awkgram.y:2507 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" msgstr "" "Fehlerhafte Verwendung von dcgettext(_\"...\"): \n" "Entfernen Sie den fhrenden Unterstrich." -#: awkgram.y:2394 +#: awkgram.y:2522 #, fuzzy msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" msgstr "" "Fehlerhafte Verwendung von dcgettext(_\"...\"): \n" "Entfernen Sie den fhrenden Unterstrich." -#: awkgram.y:2465 +#: awkgram.y:2594 #, c-format msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" msgstr "Funktion '%s': Parameter #%d, '%s' wiederholt Parameter #%d." -#: awkgram.y:2498 +#: awkgram.y:2627 #, c-format msgid "function `%s': parameter `%s' shadows global variable" msgstr "Funktion '%s': Parameter '%s' verdeckt eine globale Variable." -#: awkgram.y:2610 +#: awkgram.y:2739 #, c-format msgid "could not open `%s' for writing (%s)" msgstr "Kann '%s' nicht zum Schreiben ffnen (%s)." -#: awkgram.y:2611 profile.c:93 +#: awkgram.y:2740 profile.c:94 msgid "sending profile to standard error" msgstr "Schicke Profile auf Stadard-Fehlerausgabe." -#: awkgram.y:2643 +#: awkgram.y:2772 #, c-format msgid "%s: close failed (%s)" msgstr "%s: close gescheitert (%s)." -#: awkgram.y:2764 +#: awkgram.y:2893 msgid "shadow_funcs() called twice!" msgstr "shadow_funcs() zweimal aufgerufen!" -#: awkgram.y:2791 +#: awkgram.y:2920 msgid "there were shadowed variables." msgstr "" -#: awkgram.y:2864 +#: awkgram.y:2993 #, c-format msgid "function `%s': can't use function name as parameter name" msgstr "Funktion '%s': Kann Funktionsnamen nicht als Parameternamen benutzen." -#: awkgram.y:2874 +#: awkgram.y:3003 #, c-format msgid "function name `%s' previously defined" msgstr "Funktion '%s' ist bereits definiert." -#: awkgram.y:3025 awkgram.y:3031 +#: awkgram.y:3154 awkgram.y:3160 #, c-format msgid "function `%s' called but never defined" msgstr "Aufgerufene funktion '%s' ist nirgends definiert." -#: awkgram.y:3034 +#: awkgram.y:3163 #, c-format msgid "function `%s' defined but never called" msgstr "Funktion '%s' wird nirgends aufgerufen." -#: awkgram.y:3061 +#: awkgram.y:3190 #, c-format msgid "regexp constant for parameter #%d yields boolean value" msgstr "" "Konstanter Regulrer Ausdruck fr Parameter #%d ergibt einen logischen Wert." -#: awkgram.y:3105 +#: awkgram.y:3234 #, fuzzy, c-format msgid "" "function `%s' called with space between name and `(',\n" @@ -400,201 +415,201 @@ "Funktion '%s' mit Leerzeichen zwischen Name und '(' aufgerufen, \n" "%s" -#: builtin.c:145 +#: builtin.c:119 #, c-format msgid "%s to \"%s\" failed (%s)" msgstr "%s to \"%s\" fehlgeschlagen (%s)" -#: builtin.c:146 +#: builtin.c:120 msgid "standard output" msgstr "Standardausgabe" -#: builtin.c:147 +#: builtin.c:121 msgid "reason unknown" msgstr "Unbekannte Ursache" -#: builtin.c:160 +#: builtin.c:134 msgid "exp: received non-numeric argument" msgstr "exp: Argument ist keine Zahl." -#: builtin.c:166 +#: builtin.c:140 #, c-format msgid "exp: argument %g is out of range" msgstr "exp: Argument %g auerhalb des gltigen Zahlenbereichs." -#: builtin.c:224 +#: builtin.c:198 #, c-format msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" msgstr "" "fflush: Leeren der Puffer nicht mglich, Pipe %s ist nur zum Lesen " "geffnet." -#: builtin.c:227 +#: builtin.c:201 #, c-format msgid "fflush: cannot flush: file `%s' opened for reading, not writing" msgstr "" "fflush: Leeren der Puffer nicht mglich, Datei %s ist nur zum Lesen " "geffnet." -#: builtin.c:239 +#: builtin.c:213 #, c-format msgid "fflush: `%s' is not an open file, pipe or co-process" msgstr "fflush: %s ist keine geffnete Datei, Pipe oder Prozess." -#: builtin.c:332 +#: builtin.c:306 msgid "index: received non-string first argument" msgstr "index: Erstes Argument ist kein String." -#: builtin.c:334 +#: builtin.c:308 msgid "index: received non-string second argument" msgstr "index: Zweites Argument ist kein string." -#: builtin.c:449 +#: builtin.c:423 msgid "int: received non-numeric argument" msgstr "Argument ist keine Zahl." -#: builtin.c:472 +#: builtin.c:448 #, fuzzy msgid "`length(array)' is a gawk extension" msgstr "'delete array' ist eine gawk-Erweiterung." -#: builtin.c:481 +#: builtin.c:458 msgid "length: received non-string argument" msgstr "length: Argument ist kein String." -#: builtin.c:506 +#: builtin.c:483 msgid "log: received non-numeric argument" msgstr "log: Argument ist keine Zahl." -#: builtin.c:509 +#: builtin.c:486 #, c-format msgid "log: received negative argument %g" msgstr "log: Negatives Argument %g." -#: builtin.c:673 builtin.c:676 +#: builtin.c:693 builtin.c:696 msgid "must use `count$' on all formats or none" msgstr "" -#: builtin.c:778 +#: builtin.c:799 msgid "`$' is not permitted in awk formats" msgstr "$ ist in awk-Formaten nicht zulssig." -#: builtin.c:784 +#: builtin.c:805 msgid "arg count with `$' must be > 0" msgstr "Argumentnummer bei $ muss > 0 sein." -#: builtin.c:786 +#: builtin.c:807 #, fuzzy, c-format msgid "arg count %ld greater than total number of supplied arguments" msgstr "Argumentnummer %d ist grer als Anzahl angegebener Argumente." -#: builtin.c:788 +#: builtin.c:809 msgid "`$' not permitted after period in format" msgstr "$ nach Punkt in Formatangabe nicht zulssig." -#: builtin.c:801 +#: builtin.c:822 msgid "no `$' supplied for positional field width or precision" msgstr "$ fehlt in positionsabhngiger Feldbreite oder Genauigkeit." # -#: builtin.c:867 +#: builtin.c:888 msgid "`l' is meaningless in awk formats; ignored" msgstr "l ist in awk-Formaten bedeutungslos, ignoriert." -#: builtin.c:871 +#: builtin.c:892 msgid "`l' is not permitted in POSIX awk formats" msgstr "l in POSIX-awk-Formaten nicht zulssig." -#: builtin.c:882 +#: builtin.c:903 msgid "`L' is meaningless in awk formats; ignored" msgstr "L ist in awk-Formaten bedeutungslos, ignoriert." -#: builtin.c:886 +#: builtin.c:907 msgid "`L' is not permitted in POSIX awk formats" msgstr "L in POSIX-awk-Formaten nicht zulssig." -#: builtin.c:897 +#: builtin.c:918 msgid "`h' is meaningless in awk formats; ignored" msgstr "h ist in awk-Formaten bedeutungslos, ignoriert." -#: builtin.c:901 +#: builtin.c:922 msgid "`h' is not permitted in POSIX awk formats" msgstr "h in POSIX-awk-Formaten nicht zulssig.<" -#: builtin.c:1132 +#: builtin.c:1182 #, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" msgstr "" -#: builtin.c:1198 +#: builtin.c:1266 msgid "not enough arguments to satisfy format string" msgstr "Nicht gengend Argumente fr Formatangabe." -#: builtin.c:1200 +#: builtin.c:1268 msgid "^ ran out for this one" msgstr "^ ran out for this one" -#: builtin.c:1205 +#: builtin.c:1274 msgid "[s]printf: format specifier does not have control letter" msgstr "[s]printf: Format-Specifier hat keinen Controlcode." -#: builtin.c:1208 +#: builtin.c:1277 msgid "too many arguments supplied for format string" msgstr "Zu viele Argumente fr Formatstring." -#: builtin.c:1274 builtin.c:1277 +#: builtin.c:1352 builtin.c:1355 msgid "printf: no arguments" msgstr "printf: Keine Argumente" -#: builtin.c:1301 +#: builtin.c:1379 msgid "sqrt: received non-numeric argument" msgstr "sqrt: Argument ist keine Zahl." -#: builtin.c:1305 +#: builtin.c:1383 #, c-format msgid "sqrt: called with negative argument %g" msgstr "sqrt: Argument %g ist negativ." -#: builtin.c:1329 +#: builtin.c:1407 #, c-format msgid "substr: start index %g is invalid, using 1" msgstr "substr: Start-Index %g ist ungltig, 1 wird benutzt." -#: builtin.c:1334 +#: builtin.c:1412 #, c-format msgid "substr: non-integer start index %g will be truncated" msgstr "substr: Start-Wert %g wird abgeschnitten." -#: builtin.c:1353 +#: builtin.c:1431 #, fuzzy, c-format msgid "substr: length %g is not >= 1" msgstr "substr: Lnge %g ist kleiner oder gleich 0." -#: builtin.c:1355 +#: builtin.c:1433 #, fuzzy, c-format msgid "substr: length %g is not >= 0" msgstr "substr: Lnge %g ist kleiner oder gleich 0." -#: builtin.c:1362 +#: builtin.c:1440 #, c-format msgid "substr: non-integer length %g will be truncated" msgstr "substr: Lnge %g wird abgeschnitten." -#: builtin.c:1367 +#: builtin.c:1445 #, c-format msgid "substr: length %g too big for string indexing, truncating to %g" msgstr "" -#: builtin.c:1379 +#: builtin.c:1457 msgid "substr: source string is zero length" msgstr "substr: String ist leer." -#: builtin.c:1395 +#: builtin.c:1473 #, fuzzy, c-format msgid "substr: start index %g is past end of string" msgstr "substr: Start-Wert %d liegt hinter dem Ende des Strings." -#: builtin.c:1403 +#: builtin.c:1481 #, fuzzy, c-format msgid "" "substr: length %g at start index %g exceeds length of first argument (%lu)" @@ -602,196 +617,196 @@ "substr: Lnge %d am Start-Wert %d berschreitet Lnge des ersten Arguments (%" "d)." -#: builtin.c:1478 +#: builtin.c:1558 #, fuzzy msgid "strftime: received non-string first argument" msgstr "strftime: Erstes Argument ist kein String." -#: builtin.c:1484 +#: builtin.c:1564 msgid "strftime: received empty format string" msgstr "strftime: Format-String ist leer." -#: builtin.c:1493 +#: builtin.c:1573 #, fuzzy msgid "strftime: received non-numeric second argument" msgstr "strftime. Zweites Argument ist keine Zahl." -#: builtin.c:1556 +#: builtin.c:1650 msgid "mktime: received non-string argument" msgstr "mktime: Argument ist kein String." -#: builtin.c:1601 +#: builtin.c:1695 #, fuzzy msgid "system: received non-string argument" msgstr "system: Argument ist kein String." -#: builtin.c:1722 eval.c:2039 +#: builtin.c:1816 eval.c:2041 #, fuzzy, c-format msgid "reference to uninitialized field `$%d'" msgstr "Referenz auf die nicht-initialisierte Variable '%s'." -#: builtin.c:1827 +#: builtin.c:1921 #, fuzzy msgid "tolower: received non-string argument" msgstr "tolower: Argument ist kein String." -#: builtin.c:1857 +#: builtin.c:1951 #, fuzzy msgid "toupper: received non-string argument" msgstr "toupper: Argument ist kein String." -#: builtin.c:1890 +#: builtin.c:1984 msgid "atan2: received non-numeric first argument" msgstr "atan2: Erstes Argument ist keine Zahl." -#: builtin.c:1892 +#: builtin.c:1986 msgid "atan2: received non-numeric second argument" msgstr "atan2: Zweites Argument ist keine Zahl." -#: builtin.c:1911 +#: builtin.c:2005 msgid "sin: received non-numeric argument" msgstr "sin: Argument istk eine Zahl." -#: builtin.c:1927 +#: builtin.c:2021 msgid "cos: received non-numeric argument" msgstr "cos: Argument ist keine Zahl." -#: builtin.c:1977 +#: builtin.c:2071 msgid "srand: received non-numeric argument" msgstr "srand: Argument ist keine Zahl." -#: builtin.c:2012 +#: builtin.c:2106 msgid "match: third argument is not an array" msgstr "match: Drittes Argument ist kein Array." -#: builtin.c:2555 +#: builtin.c:2650 msgid "gensub: third argument of 0 treated as 1" msgstr "gensub: Drittes Argument 0 als 1 interpretiert" -#: builtin.c:2715 +#: builtin.c:2766 msgid "lshift: received non-numeric first argument" msgstr "lshift: Erstes Argument ist keine Zahl." -#: builtin.c:2717 +#: builtin.c:2768 #, fuzzy msgid "lshift: received non-numeric second argument" msgstr "strftime. Zweites Argument ist keine Zahl." -#: builtin.c:2723 +#: builtin.c:2774 #, c-format msgid "lshift(%lf, %lf): negative values will give strange results" msgstr "" "lshift(%lf, %lf): Negative Werte werden merkwrdige Ergebnisse liefern." -#: builtin.c:2725 +#: builtin.c:2776 #, c-format msgid "lshift(%lf, %lf): fractional values will be truncated" msgstr "lshift(%lf, %lf): Dezimalteil wird abgeschnitten." -#: builtin.c:2727 +#: builtin.c:2778 #, c-format msgid "lshift(%lf, %lf): too large shift value will give strange results" msgstr "" "lshift(%lf, %lf): Zu groe Shift-Werte werden merkwrdige Ergebnisse liefern." -#: builtin.c:2753 +#: builtin.c:2804 msgid "rshift: received non-numeric first argument" msgstr "rshift: Erstes Argument ist keine Zahl." -#: builtin.c:2755 +#: builtin.c:2806 #, fuzzy msgid "rshift: received non-numeric second argument" msgstr "strftime. Zweites Argument ist keine Zahl." -#: builtin.c:2761 +#: builtin.c:2812 #, c-format msgid "rshift(%lf, %lf): negative values will give strange results" msgstr "" "rshift (%lf, %lf): Negative Werte werden merkwrdige Ergebnisse liefern." -#: builtin.c:2763 +#: builtin.c:2814 #, c-format msgid "rshift(%lf, %lf): fractional values will be truncated" msgstr "rshift(%lf, %lf): Dezimalteil wird abgeschnitten." -#: builtin.c:2765 +#: builtin.c:2816 #, c-format msgid "rshift(%lf, %lf): too large shift value will give strange results" msgstr "" "rshift(%lf, %lf): Zu groe Shift-Werte werden merkwrdige Ergebnisse liefern." -#: builtin.c:2791 +#: builtin.c:2842 msgid "and: received non-numeric first argument" msgstr "and: Erstes Argument ist keine Zahl." -#: builtin.c:2793 +#: builtin.c:2844 #, fuzzy msgid "and: received non-numeric second argument" msgstr "atan2: Zweites Argument ist keine Zahl." -#: builtin.c:2799 +#: builtin.c:2850 #, c-format msgid "and(%lf, %lf): negative values will give strange results" msgstr "and(%lf, %lf): Negative Werte werden merkwrdige Ergebnisse liefern." -#: builtin.c:2801 +#: builtin.c:2852 #, c-format msgid "and(%lf, %lf): fractional values will be truncated" msgstr "and(%lf, %lf): Dezimalteil wird abgeschnitten." -#: builtin.c:2827 +#: builtin.c:2878 msgid "or: received non-numeric first argument" msgstr "or: Erstes Argument ist keine Zahl." -#: builtin.c:2829 +#: builtin.c:2880 #, fuzzy msgid "or: received non-numeric second argument" msgstr "atan2: Zweites Argument ist keine Zahl." -#: builtin.c:2835 +#: builtin.c:2886 #, c-format msgid "or(%lf, %lf): negative values will give strange results" msgstr "or(%lf, %lf): Negative Werte werden merkwrdige Ergebnisse liefern." -#: builtin.c:2837 +#: builtin.c:2888 #, c-format msgid "or(%lf, %lf): fractional values will be truncated" msgstr "or(%lf, %lf): Dezimalteil wird abgeschnitten." -#: builtin.c:2863 +#: builtin.c:2914 msgid "xor: received non-numeric first argument" msgstr "xor: Erstes Argument ist keine Zahl." -#: builtin.c:2865 +#: builtin.c:2916 #, fuzzy msgid "xor: received non-numeric second argument" msgstr "atan2: Zweites Argument ist keine Zahl." -#: builtin.c:2871 +#: builtin.c:2922 #, c-format msgid "xor(%lf, %lf): negative values will give strange results" msgstr "xor(%lf, %lf: Negative Werte werden merkwrdige Ergebnisse liefern." -#: builtin.c:2873 +#: builtin.c:2924 #, c-format msgid "xor(%lf, %lf): fractional values will be truncated" msgstr "xor(%lf, %lf): Dezimalteil wird abgeschnitten." -#: builtin.c:2897 +#: builtin.c:2948 msgid "compl: received non-numeric argument" msgstr "compl: Erstes Argument ist keine Zahl." -#: builtin.c:2903 +#: builtin.c:2954 #, c-format msgid "compl(%lf): negative value will give strange results" msgstr "compl(%lf): Negativer Wert wird merkwrdige Ergebnisse liefern." -#: builtin.c:2905 +#: builtin.c:2956 #, c-format msgid "compl(%lf): fractional value will be truncated" msgstr "compl(%lf): Dezimalteil wird abgeschnitten." -#: builtin.c:3078 +#: builtin.c:3129 #, c-format msgid "dcgettext: `%s' is not a valid locale category" msgstr "dcgettext: '%s' ist keine gltige Locale-Kategorie." @@ -805,7 +820,7 @@ msgid "buffer overflow in genflags2str" msgstr "Pufferberlauf in genflags2str." -#: eval.c:385 eval.c:391 profile.c:838 +#: eval.c:385 eval.c:391 profile.c:817 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "Versuch, das Array '%s' in Skalarkontext zu verwenden." @@ -852,7 +867,7 @@ msgid "statement has no effect" msgstr "Anweisung hat keinen Effekt." -#: eval.c:952 eval.c:1893 +#: eval.c:952 eval.c:1895 #, c-format msgid "can't use function name `%s' as variable or array" msgstr "Kann Funktion '%s' nicht als Variable oder Array verwenden." @@ -862,7 +877,7 @@ msgid "reference to uninitialized argument `%s'" msgstr "Referenz auf nicht-initialisiertes Argument '%s'." -#: eval.c:974 eval.c:1902 +#: eval.c:974 eval.c:1904 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "Referenz auf die nicht-initialisierte Variable '%s'." @@ -875,44 +890,44 @@ "Konkatenierung: Seiteneffekte in einem Ausdruck haben die Lnge des anderen\n" "gendert!" -#: eval.c:1200 +#: eval.c:1202 msgid "assignment used in conditional context" msgstr "Zuweisung in einer Bedingung." -#: eval.c:1278 +#: eval.c:1280 msgid "division by zero attempted" msgstr "Division durch Null versucht." -#: eval.c:1293 +#: eval.c:1295 #, c-format msgid "division by zero attempted in `%%'" msgstr "Division durch Null versucht in '%%'." -#: eval.c:1308 profile.c:714 +#: eval.c:1310 profile.c:693 #, c-format msgid "illegal type (%s) in tree_eval" msgstr "Illegaler Typ (%s) in tree_eval" -#: eval.c:1471 +#: eval.c:1473 msgid "division by zero attempted in `/='" msgstr "Division durch Null versucht in '/='." -#: eval.c:1493 +#: eval.c:1495 #, c-format msgid "division by zero attempted in `%%='" msgstr "Division durch Null versucht in '%%='." -#: eval.c:1758 +#: eval.c:1760 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "Funktion '%s' mit zu vielen Argumenten aufgerufen." -#: eval.c:1802 +#: eval.c:1804 #, c-format msgid "function `%s' not defined" msgstr "Funktion '%s' ist nicht definiert." -#: eval.c:1865 +#: eval.c:1867 #, c-format msgid "" "\n" @@ -923,661 +938,675 @@ "\t# Funktion Aufruf-Stack\n" "\n" -#: eval.c:1868 +#: eval.c:1870 #, c-format msgid "\t# -- main --\n" msgstr "\t# -- main --\n" -#: eval.c:2023 +#: eval.c:2025 msgid "attempt to field reference from non-numeric value" msgstr "Nicht-numerischer Wert fr Feldreferenz verwendet." -#: eval.c:2025 +#: eval.c:2027 msgid "attempt to reference from null string" msgstr "Referenz von einem Null-String" -#: eval.c:2031 +#: eval.c:2033 #, c-format msgid "attempt to access field %d" msgstr "Versuch des Zugriffs auf Feld %d." -#: eval.c:2052 eval.c:2059 profile.c:935 +#: eval.c:2054 eval.c:2061 profile.c:914 msgid "assignment is not allowed to result of builtin function" msgstr "" "Zuweisungen an das Ergebnis einer eingebauten Funktion sind nicht erlaubt." -#: eval.c:2123 +#: eval.c:2125 msgid "`IGNORECASE' is a gawk extension" msgstr "'IGNORECASE' ist eine gawk-Erweiterung" -#: eval.c:2153 +#: eval.c:2155 msgid "`BINMODE' is a gawk extension" msgstr "'BINMODE' ist eine gawk-Erweiterung." -#: eval.c:2275 +#: eval.c:2277 #, c-format msgid "bad `%sFMT' specification `%s'" msgstr "Falsche '%sFMT'-Angabe '%s'" -#: eval.c:2353 +#: eval.c:2355 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "'--lint' wird abgeschaltet, da 'LINT' gesetzt ist." -#: ext.c:60 ext.c:64 +#: ext.c:62 ext.c:67 msgid "`extension' is a gawk extension" msgstr "'extension' ist eine gawk-Erweiterung." -#: ext.c:74 +#: ext.c:77 #, c-format msgid "extension: cannot open `%s' (%s)\n" msgstr "extension: Kann '%s' nicht ffnen (%s)\n" -#: ext.c:82 +#: ext.c:85 #, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "extension: Bibliothek '%s': kann Funktion '%s' nicht aufrufen (%s)\n" -#: ext.c:102 +#: ext.c:105 msgid "extension: missing function name" msgstr "" -#: ext.c:107 +#: ext.c:110 #, fuzzy, c-format msgid "extension: illegal character `%c' in function name `%s'" msgstr "extension: Bibliothek '%s': kann Funktion '%s' nicht aufrufen (%s)\n" -#: ext.c:113 +#: ext.c:116 #, fuzzy, c-format msgid "extension: can't redefine function `%s'" msgstr "extension: Kann '%s' nicht ffnen (%s)\n" -#: ext.c:117 +#: ext.c:120 #, fuzzy, c-format msgid "extension: function `%s' already defined" msgstr "Funktion '%s' ist nicht definiert." -#: ext.c:122 +#: ext.c:125 #, c-format msgid "extension: can't use gawk built-in `%s' as function name" msgstr "" -#: ext.c:124 +#: ext.c:127 #, fuzzy, c-format msgid "extension: function name `%s' previously defined" msgstr "Funktion '%s' ist bereits definiert." -#: ext.c:201 +#: ext.c:204 #, fuzzy, c-format msgid "function `%s' defined to take no more than %d argument(s)" msgstr "Funktion '%s' wird nirgends aufgerufen." -#: ext.c:204 +#: ext.c:207 #, fuzzy, c-format msgid "function `%s': missing argument #%d" msgstr "Funktion '%s' ist nicht definiert." -#: ext.c:214 +#: ext.c:217 #, fuzzy, c-format msgid "function `%s': argument #%d: attempt to use scalar as an array" msgstr "Versuch, Skalar '%s' als Array zu verwenden." -#: ext.c:218 +#: ext.c:221 #, c-format msgid "function `%s': argument #%d: attempt to use array as a scalar" msgstr "" -#: ext.c:243 +#: ext.c:246 msgid "Operation Not Supported" msgstr "Operation nicht mglich." -#: field.c:326 +#: field.c:330 msgid "NF set to negative value" msgstr "" -#: field.c:819 +#: field.c:823 msgid "split: second argument is not an array" msgstr "split: Zweites Argument ist kein Array." -#: field.c:853 +#: field.c:857 msgid "split: null string for third arg is a gawk extension" msgstr "split: Null-String als drittes Argument ist eine gawk-Erweiterung." -#: field.c:905 +#: field.c:909 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "'FIELDWIDTHS' ist eine gawk-Erweiterung." -#: field.c:935 field.c:946 +#: field.c:939 field.c:953 #, c-format msgid "invalid FIELDWIDTHS value, near `%s'" msgstr "" -#: field.c:1027 +#: field.c:1036 msgid "null string for `FS' is a gawk extension" msgstr "Null-String fr 'FS' ist eine gawk-Erweiterung." -#: getopt.c:571 getopt.c:590 +#: field.c:1040 +#, fuzzy +msgid "old awk does not support regexps as value of `FS'" +msgstr "Das alte awk erlaubt den Operator '**' nicht." + +#: getopt.c:571 getopt.c:587 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: Option '%s' ist mehrdeutig.\n" -#: getopt.c:623 getopt.c:627 +#: getopt.c:620 getopt.c:624 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: Option '--%s' erlaubt kein Argument.\n" -#: getopt.c:636 getopt.c:641 +#: getopt.c:633 getopt.c:638 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: Option '%c%s\" erlaubt kein Argument.\n" -#: getopt.c:687 getopt.c:709 getopt.c:1040 getopt.c:1062 +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: Option '%s' erfordert ein Argument.\n" -#: getopt.c:747 getopt.c:750 +#: getopt.c:738 getopt.c:741 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: Unbekannte Option '--%s'.\n" -#: getopt.c:758 getopt.c:761 +#: getopt.c:749 getopt.c:752 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: Unbekannte Option '%c%s'.\n" -#: getopt.c:816 getopt.c:819 +#: getopt.c:804 getopt.c:807 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: Illegale Option -- %c.\n" -#: getopt.c:825 getopt.c:828 +#: getopt.c:813 getopt.c:816 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: Ungltige Option -- %c.\n" -#: getopt.c:883 getopt.c:902 getopt.c:1115 getopt.c:1136 main.c:448 +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s Option erfordert ein Argument -- %c.\n" -#: getopt.c:955 getopt.c:974 +#: getopt.c:937 getopt.c:953 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: Option '-W %s' ist mehrdeutig.\n" -#: getopt.c:998 getopt.c:1019 +#: getopt.c:977 getopt.c:995 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s. Option '-W %s' erlaubt kein Argument.\n" -#: io.c:307 +#: io.c:345 #, c-format msgid "cannot open file `%s' for reading (%s)" msgstr "Kann Datei '%s' nicht zum Lesen ffnen (%s)." -#: io.c:398 +#: io.c:436 #, c-format msgid "close of fd %d (`%s') failed (%s)" msgstr "Schlieen von Dateideskriptor %d ('%s') gescheitert (%s)." -#: io.c:536 +#: io.c:575 #, c-format msgid "invalid tree type %s in redirect()" msgstr "Ungltiger Tree-Typ %s in redirect()." -#: io.c:542 +#: io.c:581 #, c-format msgid "expression in `%s' redirection only has numeric value" msgstr "Ausdruck in '%s' Umlenkung hat nur einen numerischen Wert." -#: io.c:548 +#: io.c:587 #, c-format msgid "expression for `%s' redirection has null string value" msgstr "Ausdruck fr '%s' Umlenkung ist ein leerer String." -#: io.c:553 +#: io.c:592 #, c-format msgid "filename `%s' for `%s' redirection may be result of logical expression" msgstr "" "Dateiname '%s' fr '%s' Umlenkung kann Ergebnis eines logischen Ausdrucks " "sein." -#: io.c:591 +#: io.c:630 #, c-format msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" msgstr "Unntige Kombination von '>' und '>>' fr Datei '%.*s'." -#: io.c:643 +#: io.c:682 #, c-format msgid "can't open pipe `%s' for output (%s)" msgstr "Kann Pipe '%s' nicht fr Ausgabe ffnen (%s)." -#: io.c:652 +#: io.c:691 #, c-format msgid "can't open pipe `%s' for input (%s)" msgstr "Kann Pipe '%s' nicht fr Eingabe ffnen (%s)." -#: io.c:665 +#: io.c:698 io.c:1448 +#, c-format +msgid "file `%s' is a directory" +msgstr "Datei '%s' ist ein Verzeichnis." + +#: io.c:706 #, c-format msgid "can't open two way socket `%s' for input/output (%s)" msgstr "Kann bidirektionalen Socket '%s' nicht fr Ein-/Ausgabe ffnen (%s)." -#: io.c:669 +#: io.c:710 #, c-format msgid "can't open two way pipe `%s' for input/output (%s)" msgstr "Kann bidirektionale Pipe '%s' nicht fr Ein-/Ausgabe ffnen (%s)." -#: io.c:745 +#: io.c:786 #, c-format msgid "can't redirect from `%s' (%s)" msgstr "Kann nicht von '%s' umlenken (%s)." -#: io.c:748 +#: io.c:789 #, c-format msgid "can't redirect to `%s' (%s)" msgstr "Kann nicht auf '%s' umlenken (%s)." -#: io.c:787 +#: io.c:828 msgid "" "reached system limit for open files: starting to multiplex file descriptors" msgstr "" "Systemgrenze offener Dateien erreicht; beginne mit Multiplexing von " "Dateideskriptoren." -#: io.c:803 +#: io.c:844 #, c-format msgid "close of `%s' failed (%s)." msgstr "Schlieen von '%s' gescheitert (%s)." -#: io.c:811 +#: io.c:852 msgid "too many pipes or input files open" msgstr "Zu viele Pipes oder Eingabedateien offen." -#: io.c:834 +#: io.c:875 msgid "close: second argument must be `to' or `from'" msgstr "close: Zweites Argument muss 'to' oder 'from' sein." -#: io.c:848 +#: io.c:889 #, c-format msgid "close: `%.*s' is not an open file, pipe or co-process" msgstr "close: '%.*s' ist keine offene Datei, Pipe oder Ko-Prozess." -#: io.c:852 +#: io.c:893 msgid "close of redirection that was never opened" msgstr "'close' fr eine Umlenkung, die nie geffnet wurde." -#: io.c:948 +#: io.c:989 #, c-format msgid "close: redirection `%s' not opened with `|&', second argument ignored" msgstr "" "close: Umlenkung '%s' nicht mit '[&' geffnet, zweites Argument wird " "ignoriert." -#: io.c:964 +#: io.c:1005 #, c-format msgid "failure status (%d) on pipe close of `%s' (%s)" msgstr "Fehlerstatus (%d) beim Schlieen der Pipe '%s' (%s)." -#: io.c:967 +#: io.c:1008 #, c-format msgid "failure status (%d) on file close of `%s' (%s)" msgstr "Fehlerstatus (%d) beim Schlieen de rDatei '%s' (%s)." -#: io.c:987 +#: io.c:1028 #, c-format msgid "no explicit close of socket `%s' provided" msgstr "Das explizite des Sockets '%s' fehlt." -#: io.c:990 +#: io.c:1031 #, c-format msgid "no explicit close of co-process `%s' provided" msgstr "Das explizite Schlieen des Ko-Prozesses '%s' fehlt." -#: io.c:993 +#: io.c:1034 #, c-format msgid "no explicit close of pipe `%s' provided" msgstr "Das explizite Schlieen der Pipe '%s' fehlt." -#: io.c:996 +#: io.c:1037 #, c-format msgid "no explicit close of file `%s' provided" msgstr "Das explizite Schlieen der Datei '%s' fehlt." -#: io.c:1025 io.c:1080 main.c:718 main.c:756 +#: io.c:1066 io.c:1121 main.c:749 main.c:791 #, c-format msgid "error writing standard output (%s)" msgstr "Fehler beim Schreiben auf stdout (%s)." -#: io.c:1029 io.c:1085 +#: io.c:1070 io.c:1126 #, c-format msgid "error writing standard error (%s)" msgstr "Fehler beim Schreiben auf stderr (%s)." -#: io.c:1037 +#: io.c:1078 #, c-format msgid "pipe flush of `%s' failed (%s)." msgstr "Leeren der Pipe '%s' gescheitert (%s)." -#: io.c:1040 +#: io.c:1081 #, c-format msgid "co-process flush of pipe to `%s' failed (%s)." msgstr "Ko-Prozess: Leeren der Pipe zu '%s' gescheitert (%s)." -#: io.c:1043 +#: io.c:1084 #, c-format msgid "file flush of `%s' failed (%s)." msgstr "Flush der Datei '%s' gescheitert (%s)." -#: io.c:1205 +#: io.c:1198 +#, fuzzy, c-format +msgid "local port %s invalid in `/inet'" +msgstr "Lokaler Port in '%s' ist ungltig." + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "" + +#: io.c:1250 msgid "/inet/raw client not ready yet, sorry" msgstr "/inet/raw Client noch nicht fertig." -#: io.c:1207 io.c:1244 +#: io.c:1253 io.c:1289 msgid "only root may use `/inet/raw'." msgstr "Nur root darf '/inet/raw' benutzen" -#: io.c:1242 +#: io.c:1287 msgid "/inet/raw server not ready yet, sorry" msgstr "'/inet/raw'-Server noch nicht fertig." -#: io.c:1332 +#: io.c:1385 #, c-format msgid "no (known) protocol supplied in special filename `%s'" msgstr "Kein bekanntes Protokoll in Dateinamen '%s' angegeben." -#: io.c:1350 +#: io.c:1399 #, c-format msgid "special file name `%s' is incomplete" msgstr "Dateiname '%s' ist unvollstndig." -#: io.c:1362 -#, c-format -msgid "local port invalid in `%s'" -msgstr "Lokaler Port in '%s' ist ungltig." - -#: io.c:1374 +#: io.c:1414 msgid "must supply a remote hostname to `/inet'" msgstr "Sie mssen einen Rechnernamen in '/inet' angeben." -#: io.c:1389 +#: io.c:1432 msgid "must supply a remote port to `/inet'" msgstr "Sie mssen einen Port in '/inet' angeben." -#: io.c:1395 -#, c-format -msgid "remote port invalid in `%s'" -msgstr "Port-Angabe in '%s' ist ungltig." - -#: io.c:1405 +#: io.c:1439 msgid "TCP/IP communications are not supported" msgstr "TCP/IP-Verbindungen sind nicht mglich." -#: io.c:1414 io.c:1595 -#, c-format -msgid "file `%s' is a directory" -msgstr "Datei '%s' ist ein Verzeichnis." - -#: io.c:1484 +#: io.c:1509 #, c-format msgid "use `PROCINFO[\"%s\"]' instead of `%s'" msgstr "Benutzen Sie 'PROCINFO[\"%s\"]' statt '%s'" -#: io.c:1516 +#: io.c:1547 msgid "use `PROCINFO[...]' instead of `/dev/user'" msgstr "Benutzen Sie 'PROCINFO[...] statt '/dev/user'." -#: io.c:1581 io.c:1763 +#: io.c:1612 io.c:1798 #, c-format msgid "could not open `%s', mode `%s'" msgstr "Konnte '%s' nicht ffnen, Mode '%s'." -#: io.c:1814 +#: io.c:1849 #, fuzzy, c-format msgid "close of master pty failed (%s)" msgstr "Schlieen der Pipe gescheitert (%s)." -#: io.c:1816 io.c:1968 io.c:2119 +#: io.c:1851 io.c:2003 io.c:2154 #, c-format msgid "close of stdout in child failed (%s)" msgstr "Schlieen von stdout in Kindprozess gescheitert (%s)." -#: io.c:1819 +#: io.c:1854 #, fuzzy, c-format msgid "moving slave pty to stdout in child failed (dup: %s)" msgstr "Verschieben der Pipe zu stdout in Kindprozess gescheitert (dup: %s)." -#: io.c:1821 io.c:1973 +#: io.c:1856 io.c:2008 #, c-format msgid "close of stdin in child failed (%s)" msgstr "Schlieen von stdin im Kindprozess gescheitert (%s)." -#: io.c:1824 +#: io.c:1859 #, fuzzy, c-format msgid "moving slave pty to stdin in child failed (dup: %s)" msgstr "Verschieben der Pipe zu stdin in Kindprozess gescheitert (dup: %s)." -#: io.c:1826 io.c:1845 +#: io.c:1861 io.c:1880 #, fuzzy, c-format msgid "close of slave pty failed (%s)" msgstr "Schlieen der Pipe gescheitert (%s)." -#: io.c:1919 io.c:1971 io.c:2100 io.c:2122 +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 #, c-format msgid "moving pipe to stdout in child failed (dup: %s)" msgstr "Verschieben der Pipe zu stdout in Kindprozess gescheitert (dup: %s)." -#: io.c:1923 io.c:1976 +#: io.c:1958 io.c:2011 #, c-format msgid "moving pipe to stdin in child failed (dup: %s)" msgstr "Verschieben der Pipe zu stdin in Kindprozess gescheitert (dup: %s)." -#: io.c:1940 io.c:2113 +#: io.c:1975 io.c:2148 msgid "restoring stdout in parent process failed\n" msgstr "" -#: io.c:1945 +#: io.c:1980 msgid "restoring stdin in parent process failed\n" msgstr "" -#: io.c:1979 io.c:2124 io.c:2135 +#: io.c:2014 io.c:2159 io.c:2170 #, c-format msgid "close of pipe failed (%s)" msgstr "Schlieen der Pipe gescheitert (%s)." -#: io.c:2024 +#: io.c:2059 msgid "`|&' not supported" msgstr "'|&' nicht mglich." -#: io.c:2090 +#: io.c:2125 #, c-format msgid "cannot open pipe `%s' (%s)" msgstr "Kann Pipe '%s' nicht ffnen (%s)." -#: io.c:2131 +#: io.c:2166 #, c-format msgid "cannot create child process for `%s' (fork: %s)" msgstr "Kann Kindprozess fr '%s' nicht erzeugen (fork: %s)." -#: io.c:2506 +#: io.c:2548 #, c-format msgid "data file `%s' is empty" msgstr "Datei '%s' ist leer." -#: io.c:2547 io.c:2555 +#: io.c:2589 io.c:2597 msgid "could not allocate more input memory" msgstr "" -#: io.c:2919 io.c:2984 +#: io.c:2965 io.c:3038 #, c-format msgid "error reading input file `%s': %s" msgstr "Fehler beim Lesen der Eingabedatei '%s': %s." -#: io.c:3109 +#: io.c:3163 msgid "multicharacter value of `RS' is a gawk extension" msgstr "Multicharacter-Wert von 'RS' ist eine gawk-Erweiterung." -#: main.c:338 +#: main.c:351 msgid "`-m[fr]' option irrelevant in gawk" msgstr "Option '-m[fr]' ist in gawk bedeutungslos." -#: main.c:340 +#: main.c:353 msgid "-m option usage: `-m[fr] nnn'" msgstr "Anwendung der Option -m: '-m[fr] nnn'" -#: main.c:357 +#: main.c:370 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: Option '-W %s' unbekannt, ignoriert.\n" -#: main.c:394 +#: main.c:407 msgid "empty argument to `--source' ignored" msgstr "Leeres Argument fr '--source' ignoriert." -#: main.c:467 +#: main.c:480 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" msgstr "" "Umgebungsvariable 'POSIXLY_CORRECT' ist gesetzt: '--posix' angeschaltet." -#: main.c:472 +#: main.c:486 msgid "`--posix' overrides `--traditional'" msgstr "'--posix' hat Vorrang vor '--traditional'" -#: main.c:483 +#: main.c:497 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" msgstr "'--posix' /'--traditional' hat Vorrang vor '--non-decimal-data'." -#: main.c:487 +#: main.c:501 #, fuzzy, c-format msgid "running %s setuid root may be a security problem" msgstr "%s als setuid root auszufhren, kann zu Sicherheitsproblemen fhren." -#: main.c:528 +#: main.c:542 #, fuzzy, c-format msgid "can't set binary mode on stdin (%s)" msgstr "Kann Mode fr stdin nicht setzen (%s)." -#: main.c:531 +#: main.c:545 #, fuzzy, c-format msgid "can't set binary mode on stdout (%s)" msgstr "Kann Mode fr stdout nicht setzen (%s)." -#: main.c:533 +#: main.c:547 #, fuzzy, c-format msgid "can't set binary mode on stderr (%s)" msgstr "Kann Mode fr stderr nicht setzen (%s)." -#: main.c:572 +#: main.c:586 msgid "no program text at all!" msgstr "Kein Programmtext." -#: main.c:665 +#: main.c:690 #, c-format msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" msgstr "Anwendung: %s [POSIX- oder GNU-Optionen] -f PROGRAM [--] Datei ...\n" -#: main.c:667 +#: main.c:692 #, c-format msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" msgstr "Anwendung: %s [POSIX- oder GNU-Optionen] -- %cPROGRAM%c Datei ...\n" -#: main.c:672 +#: main.c:697 msgid "POSIX options:\t\tGNU long options:\n" msgstr "POSIX-Optionen\t\tGNU-Optionen (lang):\n" -#: main.c:673 +#: main.c:698 msgid "\t-f progfile\t\t--file=progfile\n" msgstr "\t-f PROGRAM\t\t--file=PROGRAM\n" -#: main.c:674 +#: main.c:699 msgid "\t-F fs\t\t\t--field-separator=fs\n" msgstr "\t-F Feldtrenner\t\t\t--field-separator=Feldtrenner\n" -#: main.c:675 +#: main.c:700 msgid "\t-v var=val\t\t--assign=var=val\n" msgstr "\t-v var=Wert\t\t--assign=var=Wert\n" -#: main.c:676 +#: main.c:701 msgid "\t-m[fr] val\n" msgstr "\t-m[fr] Wert\n" -#: main.c:677 +#: main.c:702 msgid "\t-W compat\t\t--compat\n" msgstr "\t-W compat\t\t--compat\n" -#: main.c:678 +#: main.c:703 msgid "\t-W copyleft\t\t--copyleft\n" msgstr "\t-W copyleft\t\t--copyleft\n" -#: main.c:679 +#: main.c:704 msgid "\t-W copyright\t\t--copyright\n" msgstr "\t-W copyright\t\t--copyright\n" -#: main.c:680 +#: main.c:705 msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" msgstr "\t-W dump-variables[=Datei]\t--dump-variables[=Datei]\n" -#: main.c:681 +#: main.c:706 #, fuzzy msgid "\t-W exec=file\t\t--exec=file\n" msgstr "\t-W profile[=Datei]\t--profile[=Datei]\n" -#: main.c:682 +#: main.c:707 msgid "\t-W gen-po\t\t--gen-po\n" msgstr "\t-W gen-po\t\t--gen-po\n" -#: main.c:683 +#: main.c:708 msgid "\t-W help\t\t\t--help\n" msgstr "\t-W help\t\t\t--help\n" -#: main.c:684 +#: main.c:709 msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" msgstr "\t-W lint[=fatal]\t\t--lint[=fatal]\n" -#: main.c:685 +#: main.c:710 msgid "\t-W lint-old\t\t--lint-old\n" msgstr "\t-W lint-old\t\t--lint-old\n" -#: main.c:686 +#: main.c:711 msgid "\t-W non-decimal-data\t--non-decimal-data\n" msgstr "\t-W non-decimal-data\t--non-decimal-data\n" -#: main.c:688 +#: main.c:713 msgid "\t-W nostalgia\t\t--nostalgia\n" msgstr "\t-W nostalgia\t\t--nostalgia\n" -#: main.c:691 +#: main.c:716 msgid "\t-W parsedebug\t\t--parsedebug\n" msgstr "\t-W parsedebug\t\t--parsedebug\n" -#: main.c:693 +#: main.c:718 msgid "\t-W profile[=file]\t--profile[=file]\n" msgstr "\t-W profile[=Datei]\t--profile[=Datei]\n" -#: main.c:694 +#: main.c:719 msgid "\t-W posix\t\t--posix\n" msgstr "\t-W posix\t\t--posix\n" -#: main.c:695 +#: main.c:720 msgid "\t-W re-interval\t\t--re-interval\n" msgstr "\t-W re-interval\t\t--re-interval\n" -#: main.c:696 +#: main.c:721 msgid "\t-W source=program-text\t--source=program-text\n" msgstr "\t-W source=Programmtext\t--source=Programmtext\n" -#: main.c:697 +#: main.c:722 msgid "\t-W traditional\t\t--traditional\n" msgstr "\t-W traditional\t\t--traditional\n" -#: main.c:698 +#: main.c:723 msgid "\t-W usage\t\t--usage\n" msgstr "\t-W usage\t\t--usage\n" -#: main.c:699 +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "" + +#: main.c:725 msgid "\t-W version\t\t--version\n" msgstr "\t-W version\t\t--version\n" -#: main.c:703 +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 #, fuzzy msgid "" "\n" @@ -1588,28 +1617,28 @@ "den Sie im Kapitel 'Reporting Problems and Bugs' in der \n" "gedruckten Version finden.\n" -#: main.c:707 +#: main.c:738 msgid "" "gawk is a pattern scanning and processing language.\n" "By default it reads standard input and writes standard output.\n" "\n" msgstr "" -#: main.c:711 +#: main.c:742 msgid "" "Examples:\n" "\tgawk '{ sum += $1 }; END { print sum }' file\n" "\tgawk -F: '{ print $1 }' /etc/passwd\n" msgstr "" -#: main.c:731 +#: main.c:762 #, fuzzy, c-format msgid "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" +"the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" msgstr "" @@ -1618,11 +1647,11 @@ "Dieses Programm ist Freie Software. Sie knnen es unter den Bedingungen\n" "der von der Free Software Foundation verffentlichten GNU \n" "General Public License weitergeben und/oder ndern.\n" -"Es gilt Version 2 dieser Lizenz oder (nach Ihrer Wahl) irgendeine\n" +"Es gilt Version 3 dieser Lizenz oder (nach Ihrer Wahl) irgendeine\n" "sptere Version.\n" "\n" -#: main.c:739 +#: main.c:770 msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -1636,58 +1665,57 @@ "GNU General Public License for more details.\n" "\n" -#: main.c:745 +#: main.c:781 +#, fuzzy msgid "" "You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" msgstr "" "Sie sollten eine Kopie der GNU General Publice License zusammen mit\n" "diesem Programm erhalten haben. Wenn nicht, schreiben Sie an die Free \n" "Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02111-" "1307, USA.\n" -#: main.c:781 +#: main.c:816 msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft setzt FS im POSIX-awk nicht auf Tab." -#: main.c:1018 +#: main.c:1060 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" "\n" msgstr "" -#: main.c:1038 +#: main.c:1080 #, c-format msgid "`%s' is not a legal variable name" msgstr "" -#: main.c:1041 +#: main.c:1083 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "" -#: main.c:1074 +#: main.c:1122 msgid "floating point exception" msgstr "Floating point exception" -#: main.c:1081 +#: main.c:1129 msgid "fatal error: internal error" msgstr "Fataler Fehler: interner Fehler" -#: main.c:1132 +#: main.c:1180 #, c-format msgid "no pre-opened fd %d" msgstr "Kein geffneter Dateideskriptor %d" -#: main.c:1139 +#: main.c:1187 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "Konnte /dev/null nicht fr Dateideskriptor %d ffnen." -#: main.c:1162 main.c:1171 +#: main.c:1210 main.c:1219 #, c-format msgid "could not find groups: %s" msgstr "Konnte Gruppen nicht finden: %s" @@ -1709,23 +1737,28 @@ msgid "fatal: " msgstr "Fatal: " -#: node.c:59 node.c:66 node.c:75 node.c:90 node.c:119 +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 msgid "can't convert string to float" msgstr "Kann String nicht in Gleitkommazahl konvertieren." -#: node.c:414 +#: node.c:406 msgid "backslash at end of string" msgstr "Backslash am String-Ende." -#: node.c:604 +#: node.c:548 +#, fuzzy, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "Das alte awk erlaubt den Operator '**' nicht." + +#: node.c:599 msgid "POSIX does not allow `\\x' escapes" msgstr "POSIX erlabut keine '\\x'-Escapes." -#: node.c:610 +#: node.c:605 msgid "no hex digits in `\\x' escape sequence" msgstr "Keine Hex-Ziffern in '\\x'-Escape." -#: node.c:644 +#: node.c:639 #, c-format msgid "escape sequence `\\%c' treated as plain `%c'" msgstr "Escape-Sequenz '\\%c' als '%c' behandelt." @@ -1735,31 +1768,31 @@ msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" msgstr "%s %s '%s': Konnte close-on-exec nicht setzen: %s" -#: profile.c:91 +#: profile.c:92 #, c-format msgid "could not open `%s' for writing: %s" msgstr "Konnte '%s' nicht zum Schreiben ffnen: %s" -#: profile.c:467 +#: profile.c:450 #, fuzzy, c-format msgid "internal error: %s with null vname" msgstr "Interner Fehler: Node_var with null vname." -#: profile.c:531 +#: profile.c:514 msgid "# treated internally as `delete'" msgstr "" -#: profile.c:1168 +#: profile.c:1147 #, c-format msgid "# this is a dynamically loaded extension function" msgstr "" -#: profile.c:1199 +#: profile.c:1178 #, c-format msgid "\t# gawk profile, created %s\n" msgstr "\t# gawk-Profil, erzeugt %s\n" -#: profile.c:1202 +#: profile.c:1181 #, c-format msgid "" "\t# BEGIN block(s)\n" @@ -1768,7 +1801,7 @@ "\t# BEGIN block(s)\n" "\n" -#: profile.c:1212 +#: profile.c:1191 #, c-format msgid "" "\t# Rule(s)\n" @@ -1777,7 +1810,7 @@ "\t# Rule(s)\n" "\n" -#: profile.c:1218 +#: profile.c:1197 #, c-format msgid "" "\t# END block(s)\n" @@ -1786,7 +1819,7 @@ "\t# END block(s)\n" "\n" -#: profile.c:1238 +#: profile.c:1217 #, c-format msgid "" "\n" @@ -1795,83 +1828,86 @@ "\n" "\t# Functionen, alphabetisch sortiert\n" -#: profile.c:1453 +#: profile.c:1470 #, c-format msgid "unexpected type %s in prec_level" msgstr "Unerwarteter Typ %s in prec_level." -#: regcomp.c:160 +#: regcomp.c:132 msgid "Success" msgstr "Erfolg" -#: regcomp.c:163 +#: regcomp.c:135 msgid "No match" msgstr "Kein Treffer" -#: regcomp.c:166 +#: regcomp.c:138 msgid "Invalid regular expression" msgstr "Ungltiger Regulrer Ausdruck." -#: regcomp.c:169 +#: regcomp.c:141 msgid "Invalid collation character" msgstr "Ungltiges Zeichen." -#: regcomp.c:172 +#: regcomp.c:144 msgid "Invalid character class name" msgstr "Ungltier Name fr Zeichenklasse." -#: regcomp.c:175 +#: regcomp.c:147 msgid "Trailing backslash" msgstr "Angehngter Backslash" -#: regcomp.c:178 +#: regcomp.c:150 msgid "Invalid back reference" msgstr "Ungltige Referenze" -#: regcomp.c:181 +#: regcomp.c:153 msgid "Unmatched [ or [^" msgstr "[ oder [^ nicht geschlossen" -#: regcomp.c:184 +#: regcomp.c:156 msgid "Unmatched ( or \\(" msgstr "( oder \\( nicht geschlossen" -#: regcomp.c:187 +#: regcomp.c:159 msgid "Unmatched \\{" msgstr "\\{ nicht geschlossen" -#: regcomp.c:190 +#: regcomp.c:162 msgid "Invalid content of \\{\\}" msgstr "Ungltiger Inhalt von \\{\\}" -#: regcomp.c:193 +#: regcomp.c:165 msgid "Invalid range end" msgstr "Ungltiges Bereichsende" -#: regcomp.c:196 +#: regcomp.c:168 msgid "Memory exhausted" msgstr "Kein Speicher mehr." -#: regcomp.c:199 +#: regcomp.c:171 msgid "Invalid preceding regular expression" msgstr "Vorangehender Regulrer Ausdruck ist ungltig." -#: regcomp.c:202 +#: regcomp.c:174 msgid "Premature end of regular expression" msgstr "Vorzeitiges Ende des Regulren Ausdrucks." -#: regcomp.c:205 +#: regcomp.c:177 msgid "Regular expression too big" msgstr "Regulrer Ausdruck zu gro." -#: regcomp.c:208 +#: regcomp.c:180 msgid "Unmatched ) or \\)" msgstr ") oder \\) nicht geffnet" -#: regcomp.c:688 +#: regcomp.c:664 msgid "No previous regular expression" msgstr "Kein vorangehender Regulrer Ausdruck." +#~ msgid "remote port invalid in `%s'" +#~ msgstr "Port-Angabe in '%s' ist ungltig." + #~ msgid "function %s called\n" #~ msgstr "Funktion %s aufgerufen\n" diff -urN gawk-3.1.5/po/es.po gawk-3.1.6/po/es.po --- gawk-3.1.5/po/es.po 2005-07-06 17:20:04.000000000 +0300 +++ gawk-3.1.6/po/es.po 2007-09-30 22:33:25.000000000 +0200 @@ -1,13 +1,13 @@ -# Mensajes en espaol para gawk-3.1.4l. -# Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. -# Cristian Othn Martnez Vera , 2001, 2002, 2003, 2004, 2005. +# Mensajes en espaol para gawk-3.1.5f. +# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. +# Cristian Othn Martnez Vera , 2001, 2002, 2003, 2004, 2005, 2006, 2007. # msgid "" msgstr "" -"Project-Id-Version: gawk 3.1.4l\n" +"Project-Id-Version: gawk 3.1.5f\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" -"POT-Creation-Date: 2005-07-06 17:20+0300\n" -"PO-Revision-Date: 2005-06-27 09:20-0500\n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" +"PO-Revision-Date: 2007-07-20 01:10-0500\n" "Last-Translator: Cristian Othn Martnez Vera \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" @@ -34,359 +34,372 @@ msgid "from %s" msgstr "desde %s" -#: array.c:511 +#: array.c:514 #, c-format msgid "reference to uninitialized element `%s[\"%s\"]'" -msgstr "referencia al elemento sin valor inicial `%s[\"%s\"]'" +msgstr "referencia al elemento sin inicializar `%s[\"%s\"]'" -#: array.c:517 +#: array.c:520 #, c-format msgid "subscript of array `%s' is null string" msgstr "el subndice de la matriz `%s' es la cadena nula" -#: array.c:621 +#: array.c:624 #, c-format msgid "delete: index `%s' not in array `%s'" msgstr "delete: el ndice `%s' no est en la matriz `%s'" -#: array.c:791 +#: array.c:793 #, c-format msgid "%s: empty (null)\n" msgstr "%s: vaco (nulo)\n" -#: array.c:796 +#: array.c:798 #, c-format msgid "%s: empty (zero)\n" msgstr "%s: vaco (cero)\n" -#: array.c:800 +#: array.c:802 #, c-format msgid "%s: table_size = %d, array_size = %d\n" msgstr "%s: tamao_tabla = %d, tamao_matriz = %d\n" -#: array.c:829 +#: array.c:831 #, c-format msgid "%s: is parameter\n" msgstr "%s: es un parmetro\n" -#: array.c:834 +#: array.c:836 #, c-format msgid "%s: array_ref to %s\n" msgstr "%s: array_ref a %s\n" -#: awkgram.y:208 +#: awkgram.y:215 #, c-format msgid "%s blocks must have an action part" msgstr "Los bloques %s deben tener una parte de accin" -#: awkgram.y:211 +#: awkgram.y:218 msgid "each rule must have a pattern or an action part" msgstr "cada regla debe tener un patrn o una parte de accin" -#: awkgram.y:267 +#: awkgram.y:254 awkgram.y:263 +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "el awk antiguo no admite mltiples reglas `BEGIN' o `END'" + +#: awkgram.y:282 #, c-format msgid "`%s' is a built-in function, it cannot be redefined" msgstr "`%s' es una funcin interna, no se puede redefinir" -#: awkgram.y:313 +#: awkgram.y:328 msgid "regexp constant `//' looks like a C++ comment, but is not" msgstr "" "la constante de expresin regular `//' parece un comentario de C++, pero no " "lo es" -#: awkgram.y:316 +#: awkgram.y:331 #, c-format msgid "regexp constant `/%s/' looks like a C comment, but is not" msgstr "" "la constante de expresin regular `/%s/' parece un comentario de C, pero no " "lo es" -#: awkgram.y:343 awkgram.y:623 +#: awkgram.y:358 awkgram.y:653 msgid "statement may have no effect" msgstr "la sentencia puede no tener efecto" -#: awkgram.y:440 awkgram.y:460 +#: awkgram.y:455 awkgram.y:479 #, c-format msgid "`%s' used in %s action" msgstr "se us `%s' en la accin %s" -#: awkgram.y:453 awkgram.y:456 +#: awkgram.y:470 awkgram.y:474 msgid "`nextfile' is a gawk extension" msgstr "`nextfile' es una extensin de gawk" -#: awkgram.y:470 +#: awkgram.y:489 msgid "`return' used outside function context" msgstr "se us `return' fuera del contexto de la funcin" -#: awkgram.y:512 +#: awkgram.y:531 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" msgstr "" "el `print' simple en la regla BEGIN o END probablemente debe ser `print \"\"'" -#: awkgram.y:525 awkgram.y:532 +#: awkgram.y:547 awkgram.y:555 msgid "`delete array' is a gawk extension" msgstr "`delete array' es una extensin de gawk" -#: awkgram.y:540 awkgram.y:547 +#: awkgram.y:569 awkgram.y:577 msgid "`delete(array)' is a non-portable tawk extension" msgstr "`delete(array)' es una extensin de gawk que no es transportable" -#: awkgram.y:591 +#: awkgram.y:621 #, c-format msgid "duplicate case values in switch body: %s" msgstr "valores case duplicados en el cuerpo de un switch: %s" -#: awkgram.y:601 +#: awkgram.y:631 msgid "Duplicate `default' detected in switch body" msgstr "Se detect un `default' duplicado en el cuerpo de un switch" -#: awkgram.y:690 +#: awkgram.y:720 msgid "multistage two-way pipelines don't work" msgstr "las lneas de trabajo de dos vas multiestado no funcionan" -#: awkgram.y:781 +#: awkgram.y:811 msgid "regular expression on right of assignment" msgstr "expresin regular del lado derecho de una asignacin" -#: awkgram.y:804 +#: awkgram.y:834 msgid "regular expression on left of `~' or `!~' operator" msgstr "expresin regular a la izquierda del operador `~' o `!~'" -#: awkgram.y:812 +#: awkgram.y:840 awkgram.y:913 +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "" +"el awk antiguo no admite la palabra clave `in' excepto despus de `for'" + +#: awkgram.y:846 msgid "regular expression on right of comparison" msgstr "expresin regular a la derecha de una comparacin" -#: awkgram.y:879 +#: awkgram.y:903 msgid "non-redirected `getline' undefined inside END action" msgstr "`getline' no redirigido indefinido dentro de la accin de END" -#: awkgram.y:906 +#: awkgram.y:914 +msgid "old awk does not support multidimensional arrays" +msgstr "el awk antiguo no admite matrices multidimensionales" + +#: awkgram.y:960 msgid "call of `length' without parentheses is not portable" msgstr "la llamada de `length' sin parntesis no es transportable" -#: awkgram.y:909 +#: awkgram.y:965 msgid "call of `length' without parentheses is deprecated by POSIX" msgstr "la llamada de `length' sin parntesis est obsoleta por POSIX" -#: awkgram.y:962 +#: awkgram.y:1019 msgid "use of non-array as array" msgstr "uso de una matriz que no es matriz" -#: awkgram.y:964 +#: awkgram.y:1022 msgid "invalid subscript expression" msgstr "expresin de subndice invlida" -#: awkgram.y:1171 +#: awkgram.y:1249 msgid "unexpected newline or end of string" msgstr "nueva lnea o fin de la cadena inesperados" -#: awkgram.y:1267 +#: awkgram.y:1366 msgid "empty program text on command line" msgstr "texto de programa vaco en la linea de comando" -#: awkgram.y:1320 +#: awkgram.y:1422 #, c-format msgid "can't open source file `%s' for reading (%s)" msgstr "no se puede abrir el fichero fuente `%s' para lectura (%s)" -#: awkgram.y:1397 +#: awkgram.y:1520 #, c-format msgid "can't read sourcefile `%s' (%s)" msgstr "no se puede leer el fichero fuente `%s' (%s)" -#: awkgram.y:1405 +#: awkgram.y:1528 #, c-format msgid "source file `%s' is empty" msgstr "el fichero fuente `%s' est vaco" -#: awkgram.y:1596 awkgram.y:1718 awkgram.y:1736 awkgram.y:2107 awkgram.y:2194 +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 msgid "source file does not end in newline" msgstr "el fichero fuente no termina con lnea nueva" -#: awkgram.y:1658 +#: awkgram.y:1782 msgid "unterminated regexp ends with `\\' at end of file" msgstr "expresin regular sin terminar termina con `\\` al final del fichero" -#: awkgram.y:1682 +#: awkgram.y:1806 #, c-format msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" "%s: %d: el modificador de expresin regular `/.../%c` de tawk no funciona en " "gawk" -#: awkgram.y:1686 +#: awkgram.y:1810 #, c-format msgid "tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" "el modificador de expresin regular `/.../%c` de tawk no funciona en gawk" -#: awkgram.y:1693 +#: awkgram.y:1817 msgid "unterminated regexp" msgstr "expresin regular sin terminar" -#: awkgram.y:1696 +#: awkgram.y:1820 msgid "unterminated regexp at end of file" msgstr "expresin regular sin terminar al final del fichero" -#: awkgram.y:1762 +#: awkgram.y:1889 msgid "use of `\\ #...' line continuation is not portable" msgstr "el uso de la continuacin de lnea `\\ #...' no es transportable" -#: awkgram.y:1774 +#: awkgram.y:1902 msgid "backslash not last character on line" msgstr "la barra invertida no es el ltimo caracter en la lnea" -#: awkgram.y:1819 +#: awkgram.y:1947 msgid "POSIX does not allow operator `**='" msgstr "POSIX no permite el operador `**='" -#: awkgram.y:1821 +#: awkgram.y:1949 msgid "old awk does not support operator `**='" -msgstr "el awk antiguo no da soporte al operador `**='" +msgstr "el awk antiguo no admite el operador `**='" -#: awkgram.y:1830 +#: awkgram.y:1958 msgid "POSIX does not allow operator `**'" msgstr "POSIX no permite el operador `**'" -#: awkgram.y:1832 +#: awkgram.y:1960 msgid "old awk does not support operator `**'" -msgstr "el awk antiguo no da soporte al operador `**='" +msgstr "el awk antiguo no admite el operador `**='" -#: awkgram.y:1863 +#: awkgram.y:1991 msgid "operator `^=' is not supported in old awk" -msgstr "el operador `^=' no tiene soporte en el awk antiguo" +msgstr "el operador `^=' no se admite en el awk antiguo" -#: awkgram.y:1871 +#: awkgram.y:1999 msgid "operator `^' is not supported in old awk" -msgstr "el operador `^' no tiene soporte en el awk antiguo" +msgstr "el operador `^' no se admite en el awk antiguo" -#: awkgram.y:1955 awkgram.y:1970 +#: awkgram.y:2083 awkgram.y:2098 msgid "unterminated string" msgstr "cadena sin terminar" -#: awkgram.y:2155 +#: awkgram.y:2283 #, c-format msgid "invalid char '%c' in expression" msgstr "caracter '%c' invlido en la expresin" -#: awkgram.y:2203 +#: awkgram.y:2331 #, c-format msgid "`%s' is a gawk extension" msgstr "`%s' es una extensin de gawk" -#: awkgram.y:2206 +#: awkgram.y:2334 #, c-format msgid "`%s' is a Bell Labs extension" msgstr "`%s' es una extensin de Bell Labs" -#: awkgram.y:2209 +#: awkgram.y:2337 #, c-format msgid "POSIX does not allow `%s'" msgstr "POSIX no permite `%s'" -#: awkgram.y:2213 +#: awkgram.y:2341 #, c-format msgid "`%s' is not supported in old awk" -msgstr "`%s' no tiene soporte en el awk antiguo" +msgstr "`%s' no se admite en el awk antiguo" -#: awkgram.y:2239 +#: awkgram.y:2367 msgid "`goto' considered harmful!\n" msgstr "`goto' se considera daino!\n" -#: awkgram.y:2301 +#: awkgram.y:2429 #, c-format msgid "%d is invalid as number of arguments for %s" msgstr "%d es invlido como nmero de argumentos para %s" -#: awkgram.y:2320 awkgram.y:2323 +#: awkgram.y:2448 awkgram.y:2451 msgid "match: third argument is a gawk extension" msgstr "match: el tercer argumento es una extensin de gawk" -#: awkgram.y:2336 +#: awkgram.y:2464 #, c-format msgid "%s: string literal as last arg of substitute has no effect" msgstr "" "%s: la literal de cadena como ltimo argumento de substitute no tiene efecto" -#: awkgram.y:2339 +#: awkgram.y:2467 #, c-format msgid "%s third parameter is not a changeable object" msgstr "el tercer argumento de %s no es un objecto que se puede cambiar" -#: awkgram.y:2366 awkgram.y:2369 +#: awkgram.y:2494 awkgram.y:2497 msgid "close: second argument is a gawk extension" msgstr "close: el segundo argumento es una extensin de gawk" -#: awkgram.y:2379 +#: awkgram.y:2507 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" msgstr "" "el uso de dcgettext(_\"...\") es incorrecto: quite el subrayado inicial" -#: awkgram.y:2394 +#: awkgram.y:2522 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" msgstr "" "el uso de dcngettext(_\"...\") es incorrecto: quite el subrayado inicial" -#: awkgram.y:2465 +#: awkgram.y:2594 #, c-format msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" msgstr "funcin `%s': parmetro #%d, `%s', duplica el parmetro #%d" -#: awkgram.y:2498 +#: awkgram.y:2627 #, c-format msgid "function `%s': parameter `%s' shadows global variable" -msgstr "funcin `%s': parmetro `%s' obscurece la variable global" +msgstr "funcin `%s': parmetro `%s' oscurece la variable global" -#: awkgram.y:2610 +#: awkgram.y:2739 #, c-format msgid "could not open `%s' for writing (%s)" msgstr "no se puede abrir `%s' para escritura (%s)" -#: awkgram.y:2611 profile.c:93 +#: awkgram.y:2740 profile.c:94 msgid "sending profile to standard error" -msgstr "enviando perfil a la salida estndar de error" +msgstr "se enva el perfil a la salida estndar de error" -#: awkgram.y:2643 +#: awkgram.y:2772 #, c-format msgid "%s: close failed (%s)" msgstr "%s: fall close (%s)" -#: awkgram.y:2764 +#: awkgram.y:2893 msgid "shadow_funcs() called twice!" -msgstr "shadow_funcs() llamada dos veces!" +msgstr "se llam shadow_funcs() dos veces!" -#: awkgram.y:2791 +#: awkgram.y:2920 msgid "there were shadowed variables." msgstr "hay variables opacadas." -#: awkgram.y:2864 +#: awkgram.y:2993 #, c-format msgid "function `%s': can't use function name as parameter name" msgstr "" "funcin `%s': no se puede usar un nombre de funcin como nombre de parmetro" -#: awkgram.y:2874 +#: awkgram.y:3003 #, c-format msgid "function name `%s' previously defined" msgstr "el nombre de funcin `%s' se defini previamente" -#: awkgram.y:3025 awkgram.y:3031 +#: awkgram.y:3154 awkgram.y:3160 #, c-format msgid "function `%s' called but never defined" msgstr "se llam a la funcin `%s' pero nunca se defini" -#: awkgram.y:3034 +#: awkgram.y:3163 #, c-format msgid "function `%s' defined but never called" -msgstr "la funcin `%s' est definida pero nunca se llam" +msgstr "se defini la funcin `%s' pero nunca se llam" -#: awkgram.y:3061 +#: awkgram.y:3190 #, c-format msgid "regexp constant for parameter #%d yields boolean value" msgstr "" "la constante de expresin regular para el parmetro #%d da un valor booleano" -#: awkgram.y:3105 +#: awkgram.y:3234 #, c-format msgid "" "function `%s' called with space between name and `(',\n" @@ -395,205 +408,204 @@ "se llam la funcin `%s' con espacio entre el nombre y el `(',\n" "o se us como una variable o una matriz" -#: builtin.c:145 +#: builtin.c:119 #, c-format msgid "%s to \"%s\" failed (%s)" msgstr "fall %s a \"%s\" (%s)" -#: builtin.c:146 +#: builtin.c:120 msgid "standard output" msgstr "salida estndar" -#: builtin.c:147 +#: builtin.c:121 msgid "reason unknown" msgstr "razn desconocida" -#: builtin.c:160 +#: builtin.c:134 msgid "exp: received non-numeric argument" msgstr "exp: se recibi un argumento que no es un nmero" -#: builtin.c:166 +#: builtin.c:140 #, c-format msgid "exp: argument %g is out of range" msgstr "exp: el argumento %g est fuera de rango" -#: builtin.c:224 +#: builtin.c:198 #, c-format msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" msgstr "" "fflush: no se puede limpiar: se abri la tubera `%s' para lectura, no para " "escritura" -#: builtin.c:227 +#: builtin.c:201 #, c-format msgid "fflush: cannot flush: file `%s' opened for reading, not writing" msgstr "" "fflush: no se puede limpiar: se abri el fichero `%s' para lectura, no para " "escritura" -#: builtin.c:239 +#: builtin.c:213 #, c-format msgid "fflush: `%s' is not an open file, pipe or co-process" msgstr "fflush: `%s' no es un fichero abierto, tubera o co-proceso" -#: builtin.c:332 +#: builtin.c:306 msgid "index: received non-string first argument" msgstr "index: el primer argumento recibido no es una cadena" -#: builtin.c:334 +#: builtin.c:308 msgid "index: received non-string second argument" msgstr "index: el segundo argumento recibido no es una cadena" -#: builtin.c:449 +#: builtin.c:423 msgid "int: received non-numeric argument" msgstr "int: se recibi un argumento que no es un nmero" -#: builtin.c:472 -#, fuzzy +#: builtin.c:448 msgid "`length(array)' is a gawk extension" -msgstr "`delete array' es una extensin de gawk" +msgstr "`length(array)' es una extensin de gawk" -#: builtin.c:481 +#: builtin.c:458 msgid "length: received non-string argument" msgstr "length: se recibi un argumento que no es una cadena" -#: builtin.c:506 +#: builtin.c:483 msgid "log: received non-numeric argument" msgstr "log: se recibi un argumento que no es un nmero" -#: builtin.c:509 +#: builtin.c:486 #, c-format msgid "log: received negative argument %g" msgstr "log: se recibi el argumento negativo %g" -#: builtin.c:673 builtin.c:676 +#: builtin.c:693 builtin.c:696 msgid "must use `count$' on all formats or none" msgstr "se debe utilizar `count$' en todos los formatos o en ninguno" -#: builtin.c:778 +#: builtin.c:799 msgid "`$' is not permitted in awk formats" msgstr "no se permite `$' en los formatos de awk" -#: builtin.c:784 +#: builtin.c:805 msgid "arg count with `$' must be > 0" msgstr "la cuenta de argumentos con `$' debe ser > 0" -#: builtin.c:786 +#: builtin.c:807 #, c-format msgid "arg count %ld greater than total number of supplied arguments" msgstr "" "la cuenta de argumentos %ld es mayor que el nmero total de argumentos " "proporcionados" -#: builtin.c:788 +#: builtin.c:809 msgid "`$' not permitted after period in format" msgstr "no se permite `$' despus de un punto en el formato" -#: builtin.c:801 +#: builtin.c:822 msgid "no `$' supplied for positional field width or precision" msgstr "" "no se proporciona `$' para el ancho o la precisin del campo posicional" -#: builtin.c:867 +#: builtin.c:888 msgid "`l' is meaningless in awk formats; ignored" -msgstr "`l' no tiene significado en los formatos de awk; ignorado" +msgstr "`l' no tiene significado en los formatos de awk; se descarta" -#: builtin.c:871 +#: builtin.c:892 msgid "`l' is not permitted in POSIX awk formats" msgstr "no se permite `l' en los formatos POSIX de awk" -#: builtin.c:882 +#: builtin.c:903 msgid "`L' is meaningless in awk formats; ignored" -msgstr "`L' no tiene significado en los formatos de awk; ignorado" +msgstr "`L' no tiene significado en los formatos de awk; se descarta" -#: builtin.c:886 +#: builtin.c:907 msgid "`L' is not permitted in POSIX awk formats" msgstr "no se permite `L' en los formatos POSIX de awk" -#: builtin.c:897 +#: builtin.c:918 msgid "`h' is meaningless in awk formats; ignored" -msgstr "`h' no tiene significado en los formatos de awk; ignorado" +msgstr "`h' no tiene significado en los formatos de awk; se descarta" -#: builtin.c:901 +#: builtin.c:922 msgid "`h' is not permitted in POSIX awk formats" msgstr "no se permite `h' en los formatos POSIX de awk" -#: builtin.c:1132 +#: builtin.c:1182 #, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" -msgstr "[s]printf: el valor %g est fuera del rango del formato `%%%c'" +msgstr "[s]printf: el valor %g est fuera del rango para el formato `%%%c'" -#: builtin.c:1198 +#: builtin.c:1266 msgid "not enough arguments to satisfy format string" msgstr "no hay suficientes argumentos para satisfacer a la cadena de formato" -#: builtin.c:1200 +#: builtin.c:1268 msgid "^ ran out for this one" msgstr "se acab ^ para ste" -#: builtin.c:1205 +#: builtin.c:1274 msgid "[s]printf: format specifier does not have control letter" msgstr "[s]printf: el especificador de formato no tiene letras de control" -#: builtin.c:1208 +#: builtin.c:1277 msgid "too many arguments supplied for format string" msgstr "se proporcionaron demasiados argumentos para la cadena de formato" -#: builtin.c:1274 builtin.c:1277 +#: builtin.c:1352 builtin.c:1355 msgid "printf: no arguments" msgstr "printf: sin argumentos" -#: builtin.c:1301 +#: builtin.c:1379 msgid "sqrt: received non-numeric argument" msgstr "sqrt: se recibi un argumento que no es un nmero" -#: builtin.c:1305 +#: builtin.c:1383 #, c-format msgid "sqrt: called with negative argument %g" -msgstr "sqrt: llamado con el argumento negativo %g" +msgstr "sqrt: se llam con el argumento negativo %g" -#: builtin.c:1329 +#: builtin.c:1407 #, c-format msgid "substr: start index %g is invalid, using 1" -msgstr "substr: el ndice de inicio %g es invlido, usando 1" +msgstr "substr: el ndice de inicio %g es invlido, se usa 1" -#: builtin.c:1334 +#: builtin.c:1412 #, c-format msgid "substr: non-integer start index %g will be truncated" -msgstr "substr: el ndice de inicio no entero %g ser truncado" +msgstr "substr: se truncar el ndice de inicio no entero %g" -#: builtin.c:1353 +#: builtin.c:1431 #, c-format msgid "substr: length %g is not >= 1" msgstr "substr: la longitud %g no es >= 1" -#: builtin.c:1355 +#: builtin.c:1433 #, c-format msgid "substr: length %g is not >= 0" msgstr "substr: la longitud %g no es >= 0" -#: builtin.c:1362 +#: builtin.c:1440 #, c-format msgid "substr: non-integer length %g will be truncated" -msgstr "substr: la longitud no entera %g ser truncada" +msgstr "substr: se truncar la longitud no entera %g" -#: builtin.c:1367 +#: builtin.c:1445 #, c-format msgid "substr: length %g too big for string indexing, truncating to %g" msgstr "" "substr: la longitud %g es demasiado grande para ser ndice de cadena, se " "trunca a %g" -#: builtin.c:1379 +#: builtin.c:1457 msgid "substr: source string is zero length" msgstr "substr: la cadena de origen es de longitud cero" -#: builtin.c:1395 +#: builtin.c:1473 #, c-format msgid "substr: start index %g is past end of string" msgstr "substr: el ndice de inicio %g est despus del fin de la cadena" -#: builtin.c:1403 +#: builtin.c:1481 #, c-format msgid "" "substr: length %g at start index %g exceeds length of first argument (%lu)" @@ -601,186 +613,186 @@ "substr: la cadena %g en el ndice de inicio %g excede la longitud del primer " "argumento (%lu)" -#: builtin.c:1478 +#: builtin.c:1558 msgid "strftime: received non-string first argument" msgstr "strftime: el primer argumento recibido no es una cadena" -#: builtin.c:1484 +#: builtin.c:1564 msgid "strftime: received empty format string" msgstr "strftime: se recibi una cadena de formato vaca" -#: builtin.c:1493 +#: builtin.c:1573 msgid "strftime: received non-numeric second argument" msgstr "strftime: el segundo argumento recibido no es un nmero" -#: builtin.c:1556 +#: builtin.c:1650 msgid "mktime: received non-string argument" msgstr "mktime: se recibi un argumento que no es una cadena" -#: builtin.c:1601 +#: builtin.c:1695 msgid "system: received non-string argument" msgstr "system: se recibi un argumento que no es una cadena" -#: builtin.c:1722 eval.c:2039 +#: builtin.c:1816 eval.c:2041 #, c-format msgid "reference to uninitialized field `$%d'" msgstr "referencia al campo sin inicializar `$%d'" -#: builtin.c:1827 +#: builtin.c:1921 msgid "tolower: received non-string argument" msgstr "tolower: se recibi un argumento que no es una cadena" -#: builtin.c:1857 +#: builtin.c:1951 msgid "toupper: received non-string argument" msgstr "toupper: se recibi un argumento que no es una cadena" -#: builtin.c:1890 +#: builtin.c:1984 msgid "atan2: received non-numeric first argument" msgstr "atan2: el primer argumento recibido no es un nmero" -#: builtin.c:1892 +#: builtin.c:1986 msgid "atan2: received non-numeric second argument" msgstr "atan2: el segundo argumento recibido no es un nmero" -#: builtin.c:1911 +#: builtin.c:2005 msgid "sin: received non-numeric argument" msgstr "sin: se recibi un argumento que no es un nmero" -#: builtin.c:1927 +#: builtin.c:2021 msgid "cos: received non-numeric argument" msgstr "cos: se recibi un argumento que no es un nmero" -#: builtin.c:1977 +#: builtin.c:2071 msgid "srand: received non-numeric argument" msgstr "srand: se recibi un argumento que no es un nmero" -#: builtin.c:2012 +#: builtin.c:2106 msgid "match: third argument is not an array" msgstr "match: el tercer argumento no es una matriz" -#: builtin.c:2555 +#: builtin.c:2650 msgid "gensub: third argument of 0 treated as 1" msgstr "gensub: el tercer argumento de 0 se trata como 1" -#: builtin.c:2715 +#: builtin.c:2766 msgid "lshift: received non-numeric first argument" msgstr "lshift: el primer argumento recibido no es un nmero" -#: builtin.c:2717 +#: builtin.c:2768 msgid "lshift: received non-numeric second argument" msgstr "lshift: el segundo argumento recibido no es un nmero" -#: builtin.c:2723 +#: builtin.c:2774 #, c-format msgid "lshift(%lf, %lf): negative values will give strange results" msgstr "lshift(%lf, %lf): los valores negativos darn resultados extraos" -#: builtin.c:2725 +#: builtin.c:2776 #, c-format msgid "lshift(%lf, %lf): fractional values will be truncated" -msgstr "lshift(%lf, %lf): los valores fraccionarios sern truncados" +msgstr "lshift(%lf, %lf): los valores fraccionarios se truncarn" -#: builtin.c:2727 +#: builtin.c:2778 #, c-format msgid "lshift(%lf, %lf): too large shift value will give strange results" msgstr "" "lshift(%lf, %lf): un valor de desplazamiento muy grande dar resultados " "extraos" -#: builtin.c:2753 +#: builtin.c:2804 msgid "rshift: received non-numeric first argument" msgstr "rshift: el primer argumento recibido no es un nmero" -#: builtin.c:2755 +#: builtin.c:2806 msgid "rshift: received non-numeric second argument" msgstr "rshift: el segundo argumento recibido no es un nmero" -#: builtin.c:2761 +#: builtin.c:2812 #, c-format msgid "rshift(%lf, %lf): negative values will give strange results" msgstr "rshift(%lf, %lf): los valores negativos darn resultados extraos" -#: builtin.c:2763 +#: builtin.c:2814 #, c-format msgid "rshift(%lf, %lf): fractional values will be truncated" msgstr "rshift(%lf, %lf): los valores fraccionarios sern truncados" -#: builtin.c:2765 +#: builtin.c:2816 #, c-format msgid "rshift(%lf, %lf): too large shift value will give strange results" msgstr "" "rshift(%lf, %lf): un valor de desplazamiento muy grande dar resultados " "extraos" -#: builtin.c:2791 +#: builtin.c:2842 msgid "and: received non-numeric first argument" msgstr "and: el primer argumento recibido no es un nmero" -#: builtin.c:2793 +#: builtin.c:2844 msgid "and: received non-numeric second argument" msgstr "and: el segundo argumento recibido no es un nmero" -#: builtin.c:2799 +#: builtin.c:2850 #, c-format msgid "and(%lf, %lf): negative values will give strange results" msgstr "and(%lf, %lf): los valores negativos darn resultados extraos" -#: builtin.c:2801 +#: builtin.c:2852 #, c-format msgid "and(%lf, %lf): fractional values will be truncated" msgstr "and(%lf, %lf): los valores fraccionarios sern truncados" -#: builtin.c:2827 +#: builtin.c:2878 msgid "or: received non-numeric first argument" msgstr "or: el primer argumento recibido no es un nmero" -#: builtin.c:2829 +#: builtin.c:2880 msgid "or: received non-numeric second argument" msgstr "or: el segundo argumento recibido no es un nmero" -#: builtin.c:2835 +#: builtin.c:2886 #, c-format msgid "or(%lf, %lf): negative values will give strange results" msgstr "or(%lf, %lf): los valores negativos darn resultados extraos" -#: builtin.c:2837 +#: builtin.c:2888 #, c-format msgid "or(%lf, %lf): fractional values will be truncated" msgstr "or(%lf, %lf): los valores fraccionarios sern truncados" -#: builtin.c:2863 +#: builtin.c:2914 msgid "xor: received non-numeric first argument" msgstr "xor: el primer argumento recibido no es un nmero" -#: builtin.c:2865 +#: builtin.c:2916 msgid "xor: received non-numeric second argument" msgstr "xor: el segundo argumento recibido no es un nmero" -#: builtin.c:2871 +#: builtin.c:2922 #, c-format msgid "xor(%lf, %lf): negative values will give strange results" msgstr "xor(%lf, %lf): los valores negativos darn resultados extraos" -#: builtin.c:2873 +#: builtin.c:2924 #, c-format msgid "xor(%lf, %lf): fractional values will be truncated" -msgstr "xor(%lf, %lf): los valores fraccionarios sern truncados" +msgstr "xor(%lf, %lf): los valores fraccionarios se truncarn" -#: builtin.c:2897 +#: builtin.c:2948 msgid "compl: received non-numeric argument" msgstr "compl: se recibi un argumento que no es un nmero" -#: builtin.c:2903 +#: builtin.c:2954 #, c-format msgid "compl(%lf): negative value will give strange results" msgstr "compl(%lf): el valor negativo dar resultados extraos" -#: builtin.c:2905 +#: builtin.c:2956 #, c-format msgid "compl(%lf): fractional value will be truncated" -msgstr "compl(%lf): el valor fraccionario ser truncado" +msgstr "compl(%lf): el valor fraccionario se truncar" -#: builtin.c:3078 +#: builtin.c:3129 #, c-format msgid "dcgettext: `%s' is not a valid locale category" msgstr "dcgettext: `%s' no es una categora local vlida" @@ -794,7 +806,7 @@ msgid "buffer overflow in genflags2str" msgstr "desbordamiento de almacenamiento temporal en genflags2str" -#: eval.c:385 eval.c:391 profile.c:838 +#: eval.c:385 eval.c:391 profile.c:817 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "se intent usar la matriz `%s' en un contexto escalar" @@ -840,9 +852,9 @@ #: eval.c:875 msgid "statement has no effect" -msgstr "la sentencia no tiene efecto" +msgstr "la declaracin no tiene efecto" -#: eval.c:952 eval.c:1893 +#: eval.c:952 eval.c:1895 #, c-format msgid "can't use function name `%s' as variable or array" msgstr "no se puede usar el nombre de la funcin `%s' como variable o matriz" @@ -852,7 +864,7 @@ msgid "reference to uninitialized argument `%s'" msgstr "referencia al argumento sin inicializar `%s'" -#: eval.c:974 eval.c:1902 +#: eval.c:974 eval.c:1904 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "referencia a la variable sin inicializar `%s'" @@ -865,44 +877,44 @@ "concatenacin: Los efectos laterales en una expresin han cambiado la " "longitud de otra!" -#: eval.c:1200 +#: eval.c:1202 msgid "assignment used in conditional context" msgstr "se us una asignacin en un contexto condicional" -#: eval.c:1278 +#: eval.c:1280 msgid "division by zero attempted" msgstr "se intent una divisin por cero" -#: eval.c:1293 +#: eval.c:1295 #, c-format msgid "division by zero attempted in `%%'" msgstr "se intent una divisin por cero en `%%'" -#: eval.c:1308 profile.c:714 +#: eval.c:1310 profile.c:693 #, c-format msgid "illegal type (%s) in tree_eval" msgstr "tipo ilegal (%s) en tree_eval" -#: eval.c:1471 +#: eval.c:1473 msgid "division by zero attempted in `/='" msgstr "se intent una divisin por cero en `/='" -#: eval.c:1493 +#: eval.c:1495 #, c-format msgid "division by zero attempted in `%%='" msgstr "se intent una divisin por cero en `%%='" -#: eval.c:1758 +#: eval.c:1760 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "se llam a la funcin `%s' con ms argumentos de los declarados" -#: eval.c:1802 +#: eval.c:1804 #, c-format msgid "function `%s' not defined" msgstr "la funcin `%s' no est definida" -#: eval.c:1865 +#: eval.c:1867 #, c-format msgid "" "\n" @@ -913,680 +925,693 @@ "\t# Pila de Llamadas de Funciones:\n" "\n" -#: eval.c:1868 +#: eval.c:1870 #, c-format msgid "\t# -- main --\n" msgstr "\t# -- principal --\n" -#: eval.c:2023 +#: eval.c:2025 msgid "attempt to field reference from non-numeric value" msgstr "se intent una referencia de campo desde un valor que no es un nmero" -#: eval.c:2025 +#: eval.c:2027 msgid "attempt to reference from null string" msgstr "se intent una referencia desde una cadena nula" -#: eval.c:2031 +#: eval.c:2033 #, c-format msgid "attempt to access field %d" msgstr "se intent accesar al campo %d" -#: eval.c:2052 eval.c:2059 profile.c:935 +#: eval.c:2054 eval.c:2061 profile.c:914 msgid "assignment is not allowed to result of builtin function" -msgstr "no se permite asignacin como resultado de una funcin interna" +msgstr "no se permite la asignacin como resultado de una funcin interna" -#: eval.c:2123 +#: eval.c:2125 msgid "`IGNORECASE' is a gawk extension" msgstr "`IGNORECASE' es una extensin de gawk" -#: eval.c:2153 +#: eval.c:2155 msgid "`BINMODE' is a gawk extension" msgstr "`BINMODE' es una extensin de gawk" -#: eval.c:2275 +#: eval.c:2277 #, c-format msgid "bad `%sFMT' specification `%s'" msgstr "especificacin `%sFMT' `%s' errnea" -#: eval.c:2353 +#: eval.c:2355 msgid "turning off `--lint' due to assignment to `LINT'" -msgstr "desactivando `--lint' debido a una asignacin a `LINT'" +msgstr "se desactiva `--lint' debido a una asignacin a `LINT'" -#: ext.c:60 ext.c:64 +#: ext.c:62 ext.c:67 msgid "`extension' is a gawk extension" msgstr "`extension' es una extensin de gawk" -#: ext.c:74 +#: ext.c:77 #, c-format msgid "extension: cannot open `%s' (%s)\n" msgstr "extension: no se puede abrir `%s' (%s)\n" -#: ext.c:82 +#: ext.c:85 #, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "" -"extension: biblioteca `%s': no se puede llamar a la funcin `%s' (%s)\n" +"extension: la biblioteca `%s': no puede llamar a la funcin `%s' (%s)\n" -#: ext.c:102 +#: ext.c:105 msgid "extension: missing function name" msgstr "extension: falta el nombre de la funcin" -#: ext.c:107 +#: ext.c:110 #, c-format msgid "extension: illegal character `%c' in function name `%s'" msgstr "extension: carcter ilegal `%c' en el nombre de la funcin `%s'" -#: ext.c:113 +#: ext.c:116 #, c-format msgid "extension: can't redefine function `%s'" msgstr "extension: no se puede redefinir la funcin `%s'" -#: ext.c:117 +#: ext.c:120 #, c-format msgid "extension: function `%s' already defined" msgstr "extension: la funcin `%s' ya est definida" -#: ext.c:122 +#: ext.c:125 #, c-format msgid "extension: can't use gawk built-in `%s' as function name" msgstr "" "extension: no se puede utilizar la orden interna de gawk `%s' como nombre de " "funcin" -#: ext.c:124 +#: ext.c:127 #, c-format msgid "extension: function name `%s' previously defined" msgstr "extension: el nombre de funcin `%s' se defini previamente" -#: ext.c:201 +#: ext.c:204 #, c-format msgid "function `%s' defined to take no more than %d argument(s)" -msgstr "la funcin `%s' est definida para tomar no ms de %d argumento(s)" +msgstr "la funcin `%s' se defini para tomar no ms de %d argumento(s)" -#: ext.c:204 +#: ext.c:207 #, c-format msgid "function `%s': missing argument #%d" msgstr "funcin `%s': falta el argumento #%d" -#: ext.c:214 +#: ext.c:217 #, c-format msgid "function `%s': argument #%d: attempt to use scalar as an array" msgstr "" "funcin `%s': argumento #%d: se intent usar un escalar como una matriz" -#: ext.c:218 +#: ext.c:221 #, c-format msgid "function `%s': argument #%d: attempt to use array as a scalar" msgstr "" "funcin `%s': argumento #%d: se intent usar una matriz como un escalar" -#: ext.c:243 +#: ext.c:246 msgid "Operation Not Supported" msgstr "No Se Da Soporte A La Operacin" -#: field.c:326 +#: field.c:330 msgid "NF set to negative value" msgstr "NF con un valor negativo" -#: field.c:819 +#: field.c:823 msgid "split: second argument is not an array" msgstr "split: el segundo argumento no es una matriz" -#: field.c:853 +#: field.c:857 msgid "split: null string for third arg is a gawk extension" msgstr "" "split: la cadena nula para el tercer argumento es una extensin de gawk" -#: field.c:905 +#: field.c:909 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "`FIELDWIDTHS' es una extensin gawk" -#: field.c:935 field.c:946 +#: field.c:939 field.c:953 #, c-format msgid "invalid FIELDWIDTHS value, near `%s'" msgstr "valor de FIELDWIDTHS invlido, cerca de `%s'" -#: field.c:1027 +#: field.c:1036 msgid "null string for `FS' is a gawk extension" msgstr "la cadena nula para `FS' es una extensin de gawk" -#: getopt.c:571 getopt.c:590 +#: field.c:1040 +msgid "old awk does not support regexps as value of `FS'" +msgstr "el awk antiguo no admite expresiones regulares como valor de `FS'" + +#: getopt.c:571 getopt.c:587 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: la opcin `%s' es ambigua\n" -#: getopt.c:623 getopt.c:627 +#: getopt.c:620 getopt.c:624 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: la opcin `--%s' no admite ningn argumento\n" -#: getopt.c:636 getopt.c:641 +#: getopt.c:633 getopt.c:638 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: la opcin `%c%s' no admite ningn argumento\n" -#: getopt.c:687 getopt.c:709 getopt.c:1040 getopt.c:1062 +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: la opcin `%s' requiere un argumento\n" -#: getopt.c:747 getopt.c:750 +#: getopt.c:738 getopt.c:741 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: no se reconoce la opcin `--%s'\n" -#: getopt.c:758 getopt.c:761 +#: getopt.c:749 getopt.c:752 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: no se reconoce la opcin `%c%s'\n" -#: getopt.c:816 getopt.c:819 +#: getopt.c:804 getopt.c:807 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: opcin ilegal -- %c\n" -#: getopt.c:825 getopt.c:828 +#: getopt.c:813 getopt.c:816 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: opcin invlida -- %c\n" -#: getopt.c:883 getopt.c:902 getopt.c:1115 getopt.c:1136 main.c:448 +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: la opcin requiere un argumento -- %c\n" -#: getopt.c:955 getopt.c:974 +#: getopt.c:937 getopt.c:953 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: la opcin `-W %s' es ambigua\n" -#: getopt.c:998 getopt.c:1019 +#: getopt.c:977 getopt.c:995 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: la opcin `-W %s' no admite ningn argumento\n" -#: io.c:307 +#: io.c:345 #, c-format msgid "cannot open file `%s' for reading (%s)" msgstr "no se puede abrir el fichero `%s' para lectura (%s)" -#: io.c:398 +#: io.c:436 #, c-format msgid "close of fd %d (`%s') failed (%s)" msgstr "fall al cerrar el df %d (`%s') (%s)" -#: io.c:536 +#: io.c:575 #, c-format msgid "invalid tree type %s in redirect()" msgstr "tipo de rbol %s invlido en redirect()" -#: io.c:542 +#: io.c:581 #, c-format msgid "expression in `%s' redirection only has numeric value" msgstr "la expresin en la redireccin `%s' slo tiene un valor numrico" -#: io.c:548 +#: io.c:587 #, c-format msgid "expression for `%s' redirection has null string value" msgstr "la expresin para la redireccin `%s' tiene un valor de cadena nula" -#: io.c:553 +#: io.c:592 #, c-format msgid "filename `%s' for `%s' redirection may be result of logical expression" msgstr "" "el fichero `%s' para la redireccin `%s' puede ser resultado de una " "expresin lgica" -#: io.c:591 +#: io.c:630 #, c-format msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" msgstr "mezcla innecesaria de `>' y `>>' para el fichero `%.*s'" -#: io.c:643 +#: io.c:682 #, c-format msgid "can't open pipe `%s' for output (%s)" msgstr "no se puede abrir la tubera `%s' para la salida (%s)" -#: io.c:652 +#: io.c:691 #, c-format msgid "can't open pipe `%s' for input (%s)" msgstr "no se puede abrir la tubera `%s' para la entrada (%s)" -#: io.c:665 +#: io.c:698 io.c:1448 +#, c-format +msgid "file `%s' is a directory" +msgstr "el fichero `%s' es un directorio" + +#: io.c:706 #, c-format msgid "can't open two way socket `%s' for input/output (%s)" msgstr "" "no se puede abrir el `socket' de dos vas `%s' para entrada/salida (%s)" -#: io.c:669 +#: io.c:710 #, c-format msgid "can't open two way pipe `%s' for input/output (%s)" msgstr "no se puede abrir la tubera de dos vas `%s' para entrada/salida (%s)" -#: io.c:745 +#: io.c:786 #, c-format msgid "can't redirect from `%s' (%s)" msgstr "no se puede redirigir desde `%s' (%s)" -#: io.c:748 +#: io.c:789 #, c-format msgid "can't redirect to `%s' (%s)" msgstr "no se puede redirigir a `%s' (%s)" -#: io.c:787 +#: io.c:828 msgid "" "reached system limit for open files: starting to multiplex file descriptors" msgstr "" "se alcanz el lmite del sistema para ficheros abiertos: comenzando a " "multiplexar los descriptores de fichero" -#: io.c:803 +#: io.c:844 #, c-format msgid "close of `%s' failed (%s)." msgstr "fall al cerrar `%s' (%s)." -#: io.c:811 +#: io.c:852 msgid "too many pipes or input files open" msgstr "demasiadas tuberas o ficheros de entrada abiertos" -#: io.c:834 +#: io.c:875 msgid "close: second argument must be `to' or `from'" msgstr "close: el segundo argumento debe ser `to' o `from'" -#: io.c:848 +#: io.c:889 #, c-format msgid "close: `%.*s' is not an open file, pipe or co-process" msgstr "close: `%.*s' no es un fichero abierto, tubera o co-proceso" -#: io.c:852 +#: io.c:893 msgid "close of redirection that was never opened" msgstr "cerrado de una redireccin que nunca fue abierta" -#: io.c:948 +#: io.c:989 #, c-format msgid "close: redirection `%s' not opened with `|&', second argument ignored" msgstr "" "close: la redireccin `%s' no se abre con `|&', se ignor el segundo " "argumento" -#: io.c:964 +#: io.c:1005 #, c-format msgid "failure status (%d) on pipe close of `%s' (%s)" msgstr "estado de fallo (%d) al cerrar la tubera de `%s' (%s)" -#: io.c:967 +#: io.c:1008 #, c-format msgid "failure status (%d) on file close of `%s' (%s)" msgstr "estado de fallo (%d) al cerrar el fichero de `%s' (%s)" -#: io.c:987 +#: io.c:1028 #, c-format msgid "no explicit close of socket `%s' provided" msgstr "no se provee el cerrado explcito del `socket' `%s'" -#: io.c:990 +#: io.c:1031 #, c-format msgid "no explicit close of co-process `%s' provided" msgstr "no se provee el cerrado explcito del co-proceso `%s'" -#: io.c:993 +#: io.c:1034 #, c-format msgid "no explicit close of pipe `%s' provided" msgstr "no se provee el cerrado explcito del la tubera `%s'" -#: io.c:996 +#: io.c:1037 #, c-format msgid "no explicit close of file `%s' provided" msgstr "no se provee el cerrado explcito del fichero `%s'" -#: io.c:1025 io.c:1080 main.c:718 main.c:756 +#: io.c:1066 io.c:1121 main.c:749 main.c:791 #, c-format msgid "error writing standard output (%s)" msgstr "error al escribir en la salida estndar (%s)" -#: io.c:1029 io.c:1085 +#: io.c:1070 io.c:1126 #, c-format msgid "error writing standard error (%s)" msgstr "error al escribir en la salida estndar de error (%s)" -#: io.c:1037 +#: io.c:1078 #, c-format msgid "pipe flush of `%s' failed (%s)." msgstr "fall la limpieza de la tubera de `%s' (%s)." -#: io.c:1040 +#: io.c:1081 #, c-format msgid "co-process flush of pipe to `%s' failed (%s)." msgstr "fall la limpieza del co-proceso de la tubera a `%s' (%s)." -#: io.c:1043 +#: io.c:1084 #, c-format msgid "file flush of `%s' failed (%s)." msgstr "fall la limpieza del fichero de `%s' (%s)." -#: io.c:1205 +#: io.c:1198 +#, c-format +msgid "local port %s invalid in `/inet'" +msgstr "puerto local %s invlido en `/inet'" + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "anfitrin remoto e informacin de puerto (%s, %s) invlidos" + +#: io.c:1250 msgid "/inet/raw client not ready yet, sorry" msgstr "el cliente /inet/raw no est listo an, perdn" -#: io.c:1207 io.c:1244 +#: io.c:1253 io.c:1289 msgid "only root may use `/inet/raw'." msgstr "slo root puede utilizar `/inet/raw'." -#: io.c:1242 +#: io.c:1287 msgid "/inet/raw server not ready yet, sorry" msgstr "el servidor /inet/raw no est listo an, perdn" -#: io.c:1332 +#: io.c:1385 #, c-format msgid "no (known) protocol supplied in special filename `%s'" msgstr "" "no se proporciona algn protocolo (conocido) en el nombre de fichero " "especial `%s'" -#: io.c:1350 +#: io.c:1399 #, c-format msgid "special file name `%s' is incomplete" msgstr "el nombre de fichero especial `%s' est incompleto" -#: io.c:1362 -#, c-format -msgid "local port invalid in `%s'" -msgstr "puerto local invlido en `%s'" - -#: io.c:1374 +#: io.c:1414 msgid "must supply a remote hostname to `/inet'" msgstr "se debe proporcionar a `/inet' un nombre de anfitrin remoto" -#: io.c:1389 +#: io.c:1432 msgid "must supply a remote port to `/inet'" msgstr "se debe proporcionar a `/inet' un puerto remoto" -#: io.c:1395 -#, c-format -msgid "remote port invalid in `%s'" -msgstr "puerto remoto invlido en `%s'" - -#: io.c:1405 +#: io.c:1439 msgid "TCP/IP communications are not supported" -msgstr "No tienen soporte las comunicaciones TCP/IP" +msgstr "No se admiten las comunicaciones TCP/IP" -#: io.c:1414 io.c:1595 -#, c-format -msgid "file `%s' is a directory" -msgstr "el fichero `%s' es un directorio" - -#: io.c:1484 +#: io.c:1509 #, c-format msgid "use `PROCINFO[\"%s\"]' instead of `%s'" msgstr "use `PROCINFO[\"%s\"]' en lugar de `%s'" -#: io.c:1516 +#: io.c:1547 msgid "use `PROCINFO[...]' instead of `/dev/user'" msgstr "use `PROCINFO[...]' en lugar de `/dev/user'" -#: io.c:1581 io.c:1763 +#: io.c:1612 io.c:1798 #, c-format msgid "could not open `%s', mode `%s'" msgstr "no se puede abrir `%s', modo `%s'" -#: io.c:1814 +#: io.c:1849 #, c-format msgid "close of master pty failed (%s)" msgstr "fall al cerrar el pty maestro (%s)" -#: io.c:1816 io.c:1968 io.c:2119 +#: io.c:1851 io.c:2003 io.c:2154 #, c-format msgid "close of stdout in child failed (%s)" msgstr "fall al cerrar la salida estndar en el hijo (%s)" -#: io.c:1819 +#: io.c:1854 #, c-format msgid "moving slave pty to stdout in child failed (dup: %s)" msgstr "" "fall el movimiento del pty esclavo a la salida estndar en el hijo (dup: %s)" -#: io.c:1821 io.c:1973 +#: io.c:1856 io.c:2008 #, c-format msgid "close of stdin in child failed (%s)" msgstr "fall al cerrar la entrada estndar en el hijo (%s)" -#: io.c:1824 +#: io.c:1859 #, c-format msgid "moving slave pty to stdin in child failed (dup: %s)" msgstr "" "fall el movimiento del pty esclavo a la entrada estndar en el hijo (dup: %" "s)" -#: io.c:1826 io.c:1845 +#: io.c:1861 io.c:1880 #, c-format msgid "close of slave pty failed (%s)" msgstr "fall al cerrar el pty esclavo (%s)" -#: io.c:1919 io.c:1971 io.c:2100 io.c:2122 +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 #, c-format msgid "moving pipe to stdout in child failed (dup: %s)" msgstr "fall el movimiento a la salida estndar en el hijo (dup: %s)" -#: io.c:1923 io.c:1976 +#: io.c:1958 io.c:2011 #, c-format msgid "moving pipe to stdin in child failed (dup: %s)" msgstr "" "fall el movimiento de la tubera a la entrada estndar en el hijo (dup: %s)" -#: io.c:1940 io.c:2113 +#: io.c:1975 io.c:2148 msgid "restoring stdout in parent process failed\n" msgstr "fall la restauracin de la salida estndar en el proceso padre\n" -#: io.c:1945 +#: io.c:1980 msgid "restoring stdin in parent process failed\n" msgstr "fall la restauracin de la entrada estndar en el proceso padre\n" -#: io.c:1979 io.c:2124 io.c:2135 +#: io.c:2014 io.c:2159 io.c:2170 #, c-format msgid "close of pipe failed (%s)" msgstr "fall al cerrar la tubera (%s)" -#: io.c:2024 +#: io.c:2059 msgid "`|&' not supported" -msgstr "`|&' no tiene soporte" +msgstr "`|&' no se admite" -#: io.c:2090 +#: io.c:2125 #, c-format msgid "cannot open pipe `%s' (%s)" msgstr "no se puede abrir la tubera `%s' (%s)" -#: io.c:2131 +#: io.c:2166 #, c-format msgid "cannot create child process for `%s' (fork: %s)" msgstr "no se puede crear el proceso hijo para `%s' (fork: %s)" -#: io.c:2506 +#: io.c:2548 #, c-format msgid "data file `%s' is empty" msgstr "el fichero de datos `%s' est vaco" -#: io.c:2547 io.c:2555 +#: io.c:2589 io.c:2597 msgid "could not allocate more input memory" msgstr "no se puede reservar ms memoria de entrada" -#: io.c:2919 io.c:2984 +#: io.c:2965 io.c:3038 #, c-format msgid "error reading input file `%s': %s" msgstr "error al leer el fichero de entrada `%s': %s" -#: io.c:3109 +#: io.c:3163 msgid "multicharacter value of `RS' is a gawk extension" msgstr "el valor multicaracter de `RS' es una extensin de gawk" -#: main.c:338 +#: main.c:351 msgid "`-m[fr]' option irrelevant in gawk" msgstr "la opcin -m[fr] es irrelevante en gawk" -#: main.c:340 +#: main.c:353 msgid "-m option usage: `-m[fr] nnn'" msgstr "uso de la opcin -m: `-m[fr]' nnn" -#: main.c:357 +#: main.c:370 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: no se reconoce la opcin `-W %s', se ignora\n" -#: main.c:394 +#: main.c:407 msgid "empty argument to `--source' ignored" msgstr "se ignora el argumento vaco para `--source'" -#: main.c:467 +#: main.c:480 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" msgstr "" -"la variable de ambiente `POSIXLY_CORRECT' est establecida: activando `--" +"la variable de ambiente `POSIXLY_CORRECT' est establecida: se activa `--" "posix'" -#: main.c:472 +#: main.c:486 msgid "`--posix' overrides `--traditional'" msgstr "`--posix' se impone a `--traditional'" -#: main.c:483 +#: main.c:497 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" msgstr "`--posix'/`--traditional' se imponen a `--non-decimal-data'" -#: main.c:487 +#: main.c:501 #, c-format msgid "running %s setuid root may be a security problem" msgstr "ejecutar %s como setuid root puede ser un problema de seguridad" -#: main.c:528 +#: main.c:542 #, c-format msgid "can't set binary mode on stdin (%s)" msgstr "no se puede establecer el modo binario en la entrada estndar (%s)" -#: main.c:531 +#: main.c:545 #, c-format msgid "can't set binary mode on stdout (%s)" msgstr "no se puede establecer el modo binario en la salida estndar (%s)" -#: main.c:533 +#: main.c:547 #, c-format msgid "can't set binary mode on stderr (%s)" msgstr "" "no se puede establecer el modo binario en la salida estndar de error (%s)" -#: main.c:572 +#: main.c:586 msgid "no program text at all!" msgstr "No hay ningn programa de texto!" -#: main.c:665 +#: main.c:690 #, c-format msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" msgstr "" "Modo de empleo: %s [opciones estilo POSIX o GNU] -f fichprog [--] " "fichero ...\n" -#: main.c:667 +#: main.c:692 #, c-format msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" msgstr "" "Modo de empleo: %s [opciones estilo POSIX o GNU] [--] %cprograma%c " "fichero ...\n" -#: main.c:672 +#: main.c:697 msgid "POSIX options:\t\tGNU long options:\n" msgstr "Opciones POSIX:\t\tOpciones largas GNU:\n" -#: main.c:673 +#: main.c:698 msgid "\t-f progfile\t\t--file=progfile\n" msgstr "\t-f fichprog\t\t--file=fichprog\n" -#: main.c:674 +#: main.c:699 msgid "\t-F fs\t\t\t--field-separator=fs\n" msgstr "\t-F sc\t\t\t--field-separator=sc\n" -#: main.c:675 +#: main.c:700 msgid "\t-v var=val\t\t--assign=var=val\n" msgstr "\t-v var=valor\t\t--assign=var=valor\n" -#: main.c:676 +#: main.c:701 msgid "\t-m[fr] val\n" msgstr "\t-m[fr] valor\n" -#: main.c:677 +#: main.c:702 msgid "\t-W compat\t\t--compat\n" msgstr "\t-W compat\t\t--compat\n" -#: main.c:678 +#: main.c:703 msgid "\t-W copyleft\t\t--copyleft\n" msgstr "\t-W copyleft\t\t--copyleft\n" -#: main.c:679 +#: main.c:704 msgid "\t-W copyright\t\t--copyright\n" msgstr "\t-W copyright\t\t--copyright\n" -#: main.c:680 +#: main.c:705 msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" msgstr "\t-W dump-variables[=fichero]\t--dump-variables[=fichero]\n" -#: main.c:681 +#: main.c:706 msgid "\t-W exec=file\t\t--exec=file\n" msgstr "\t-W exec=fichero\t\t--exec=fichero\n" -#: main.c:682 +#: main.c:707 msgid "\t-W gen-po\t\t--gen-po\n" msgstr "\t-W gen-po\t\t--gen-po\n" -#: main.c:683 +#: main.c:708 msgid "\t-W help\t\t\t--help\n" msgstr "\t-W help\t\t\t--help\n" -#: main.c:684 +#: main.c:709 msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" msgstr "\t-W lint[=fatal]\t\t--lint[=fatal]\n" -#: main.c:685 +#: main.c:710 msgid "\t-W lint-old\t\t--lint-old\n" msgstr "\t-W lint-old\t\t--lint-old\n" -#: main.c:686 +#: main.c:711 msgid "\t-W non-decimal-data\t--non-decimal-data\n" msgstr "\t-W non-decimal-data\t--non-decimal-data\n" -#: main.c:688 +#: main.c:713 msgid "\t-W nostalgia\t\t--nostalgia\n" msgstr "\t-W nostalgia\t\t--nostalgia\n" -#: main.c:691 +#: main.c:716 msgid "\t-W parsedebug\t\t--parsedebug\n" msgstr "\t-W parsedebug\t\t--parsedebug\n" -#: main.c:693 +#: main.c:718 msgid "\t-W profile[=file]\t--profile[=file]\n" msgstr "\t-W profile[=fichero]\t--profile[=fichero]\n" -#: main.c:694 +#: main.c:719 msgid "\t-W posix\t\t--posix\n" msgstr "\t-W posix\t\t--posix\n" -#: main.c:695 +#: main.c:720 msgid "\t-W re-interval\t\t--re-interval\n" msgstr "\t-W re-interval\t\t--re-interval\n" # Esta es la lnea ms larga de la lista de argumentos. # Probar con gawk para revisar tabuladores. cfuga -#: main.c:696 +#: main.c:721 msgid "\t-W source=program-text\t--source=program-text\n" msgstr "\t-W source=texto-prog\t--source=texto-prog\n" -#: main.c:697 +#: main.c:722 msgid "\t-W traditional\t\t--traditional\n" msgstr "\t-W traditional\t\t--traditional\n" -#: main.c:698 +#: main.c:723 msgid "\t-W usage\t\t--usage\n" msgstr "\t-W usage\t\t--usage\n" -#: main.c:699 +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "" + +#: main.c:725 msgid "\t-W version\t\t--version\n" msgstr "\t-W version\t\t--version\n" -#: main.c:703 +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 msgid "" "\n" "To report bugs, see node `Bugs' in `gawk.info', which is\n" @@ -1597,9 +1622,10 @@ "Para reportar bichos, consulte el nodo `Bugs' en `gawk.info', el cual\n" "corresponde a la seccin `Reporting Problems and Bugs' en la versin " "impresa.\n" +"Reporte los errores de los mensajes en espaol a .\n" "\n" -#: main.c:707 +#: main.c:738 msgid "" "gawk is a pattern scanning and processing language.\n" "By default it reads standard input and writes standard output.\n" @@ -1609,7 +1635,7 @@ "Por omisin lee la entrada estndar y escribe en la salida estndar.\n" "\n" -#: main.c:711 +#: main.c:742 msgid "" "Examples:\n" "\tgawk '{ sum += $1 }; END { print sum }' file\n" @@ -1619,14 +1645,14 @@ "\tgawk '{ sum += $1 }; END { print sum }' fichero\n" "\tgawk -F: '{ print $1 }' /etc/passwd\n" -#: main.c:731 +#: main.c:762 #, c-format msgid "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" +"the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" msgstr "" @@ -1635,11 +1661,11 @@ "Este programa es software libre; puede redistribuirse y/o ser modificado\n" "bajo los trminos de la Licencia Pblica General de GNU tal como es " "publicada\n" -"por la Free Software Foundation; ya sea por la versin 2 de la Licencia, o\n" +"por la Free Software Foundation; ya sea por la versin 3 de la Licencia, o\n" "(a su eleccin) cualquier versin posterior.\n" "\n" -#: main.c:739 +#: main.c:770 msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -1653,23 +1679,22 @@ "Licencia Pblica General de GNU para ms detalles.\n" "\n" -#: main.c:745 +#: main.c:781 +#, fuzzy msgid "" "You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" msgstr "" -"Debi haber recibido una copia de la Licencia Pblica General de GNU\n" +"Debi recibir una copia de la Licencia Pblica General de GNU\n" "junto con este programa; si no es as, escriba a la Free Software\n" "Foundation, Inc., 51 Franklin Street, Quinto Piso, Boston, MA 02110-1301, " "USA.\n" -#: main.c:781 +#: main.c:816 msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft no establece FS a tabulador en el awk de POSIX" -#: main.c:1018 +#: main.c:1060 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -1678,35 +1703,35 @@ "%s: el argumento `%s' para `-v' no es de la forma `var=valor'\n" "\n" -#: main.c:1038 +#: main.c:1080 #, c-format msgid "`%s' is not a legal variable name" msgstr "`%s' no es un nombre de variable legal" -#: main.c:1041 +#: main.c:1083 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "`%s' no es un nombre de variable, se busca el fichero `%s=%s'" -#: main.c:1074 +#: main.c:1122 msgid "floating point exception" msgstr "excepcin de coma flotante" -#: main.c:1081 +#: main.c:1129 msgid "fatal error: internal error" msgstr "error fatal: error interno" -#: main.c:1132 +#: main.c:1180 #, c-format msgid "no pre-opened fd %d" msgstr "no existe el df %d abierto previamente" -#: main.c:1139 +#: main.c:1187 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "no se puede abrir previamente /dev/null para el df %d" -#: main.c:1162 main.c:1171 +#: main.c:1210 main.c:1219 #, c-format msgid "could not find groups: %s" msgstr "no se pueden encontrar los grupos: %s" @@ -1728,57 +1753,62 @@ msgid "fatal: " msgstr "fatal: " -#: node.c:59 node.c:66 node.c:75 node.c:90 node.c:119 +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 msgid "can't convert string to float" msgstr "no se puede convertir una cadena a coma flotante" -#: node.c:414 +#: node.c:406 msgid "backslash at end of string" msgstr "barra invertida al final de la cadena" -#: node.c:604 +#: node.c:548 +#, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "el awk antiguo no admite la secuencia de escape `\\%c'" + +#: node.c:599 msgid "POSIX does not allow `\\x' escapes" msgstr "POSIX no permite escapes `\\x'" -#: node.c:610 +#: node.c:605 msgid "no hex digits in `\\x' escape sequence" msgstr "no hay dgitos hexadecimales en la secuencia de escape `\\x'" -#: node.c:644 +#: node.c:639 #, c-format msgid "escape sequence `\\%c' treated as plain `%c'" -msgstr "la secuencia de escape `\\%c' tratada como una simple `%c'" +msgstr "la secuencia de escape `\\%c' se trata como una simple `%c'" #: posix/gawkmisc.c:172 #, c-format msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" msgstr "%s %s `%s': no se puede establecer close-on-exec: (fcntl: %s)" -#: profile.c:91 +#: profile.c:92 #, c-format msgid "could not open `%s' for writing: %s" msgstr "no se puede abrir `%s' para escritura: %s" -#: profile.c:467 +#: profile.c:450 #, c-format msgid "internal error: %s with null vname" msgstr "error interno: %s con vname nulo" -#: profile.c:531 +#: profile.c:514 msgid "# treated internally as `delete'" msgstr "# se trata internamente como `delete'" -#: profile.c:1168 +#: profile.c:1147 #, c-format msgid "# this is a dynamically loaded extension function" msgstr "# esta es una funcin de extensin cargada dinmicamente" -#: profile.c:1199 +#: profile.c:1178 #, c-format msgid "\t# gawk profile, created %s\n" msgstr "\t# perfil de gawk, creado %s\n" -#: profile.c:1202 +#: profile.c:1181 #, c-format msgid "" "\t# BEGIN block(s)\n" @@ -1787,7 +1817,7 @@ "\t# bloque(s) BEGIN\n" "\n" -#: profile.c:1212 +#: profile.c:1191 #, c-format msgid "" "\t# Rule(s)\n" @@ -1796,7 +1826,7 @@ "\t# Regla(s)\n" "\n" -#: profile.c:1218 +#: profile.c:1197 #, c-format msgid "" "\t# END block(s)\n" @@ -1805,7 +1835,7 @@ "\t# bloque(s) END\n" "\n" -#: profile.c:1238 +#: profile.c:1217 #, c-format msgid "" "\n" @@ -1814,83 +1844,86 @@ "\n" "\t# Funciones, enumeradas alfabticamente\n" -#: profile.c:1453 +#: profile.c:1470 #, c-format msgid "unexpected type %s in prec_level" msgstr "tipo %s inesperado en prec_level" -#: regcomp.c:160 +#: regcomp.c:132 msgid "Success" msgstr "xito" -#: regcomp.c:163 +#: regcomp.c:135 msgid "No match" msgstr "No hay coincidencia" -#: regcomp.c:166 +#: regcomp.c:138 msgid "Invalid regular expression" msgstr "Expresin regular invlida" -#: regcomp.c:169 +#: regcomp.c:141 msgid "Invalid collation character" msgstr "Caracter de ordenacin invlido" -#: regcomp.c:172 +#: regcomp.c:144 msgid "Invalid character class name" msgstr "Nombre de clase de caracter invlido" -#: regcomp.c:175 +#: regcomp.c:147 msgid "Trailing backslash" msgstr "Barra invertida extra al final" -#: regcomp.c:178 +#: regcomp.c:150 msgid "Invalid back reference" msgstr "Referencia hacia atrs invlida" -#: regcomp.c:181 +#: regcomp.c:153 msgid "Unmatched [ or [^" msgstr "[ o [^ desemparejados" -#: regcomp.c:184 +#: regcomp.c:156 msgid "Unmatched ( or \\(" msgstr "( o \\( desemparejados" -#: regcomp.c:187 +#: regcomp.c:159 msgid "Unmatched \\{" msgstr "\\{ desemparejado" -#: regcomp.c:190 +#: regcomp.c:162 msgid "Invalid content of \\{\\}" msgstr "Contenido invlido de \\{\\}" -#: regcomp.c:193 +#: regcomp.c:165 msgid "Invalid range end" msgstr "Final de rango invlido" -#: regcomp.c:196 +#: regcomp.c:168 msgid "Memory exhausted" msgstr "Memoria agotada" -#: regcomp.c:199 +#: regcomp.c:171 msgid "Invalid preceding regular expression" msgstr "Expresin regular precedente invlida" -#: regcomp.c:202 +#: regcomp.c:174 msgid "Premature end of regular expression" msgstr "Fin prematuro de la expresin regular" -#: regcomp.c:205 +#: regcomp.c:177 msgid "Regular expression too big" msgstr "La expresin regular es demasiado grande" -#: regcomp.c:208 +#: regcomp.c:180 msgid "Unmatched ) or \\)" msgstr ") o \\) desemparejados" -#: regcomp.c:688 +#: regcomp.c:664 msgid "No previous regular expression" msgstr "No hay una expresin regular previa" +#~ msgid "remote port invalid in `%s'" +#~ msgstr "puerto remoto invlido en `%s'" + #~ msgid "function %s called\n" #~ msgstr "se llam a la funcin %s\n" diff -urN gawk-3.1.5/po/fr.po gawk-3.1.6/po/fr.po --- gawk-3.1.5/po/fr.po 2005-07-06 17:20:04.000000000 +0300 +++ gawk-3.1.6/po/fr.po 2007-09-30 22:33:25.000000000 +0200 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: gawk 3.1.4l\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" -"POT-Creation-Date: 2005-07-06 17:20+0300\n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" "PO-Revision-Date: 2005-06-29 08:00-0500\n" "Last-Translator: Michel Robitaille \n" "Language-Team: French \n" @@ -36,363 +36,378 @@ msgid "from %s" msgstr " partir de %s" -#: array.c:511 +#: array.c:514 #, c-format msgid "reference to uninitialized element `%s[\"%s\"]'" msgstr "rfrence un lment non initialis %s[\"%s\"] " -#: array.c:517 +#: array.c:520 #, c-format msgid "subscript of array `%s' is null string" msgstr "sous-description du tableau %s contient une chane nulle" -#: array.c:621 +#: array.c:624 #, c-format msgid "delete: index `%s' not in array `%s'" msgstr "destruction: index %s n'est pas dans le tableau %s " -#: array.c:791 +#: array.c:793 #, c-format msgid "%s: empty (null)\n" msgstr "%s: vide (null)\n" -#: array.c:796 +#: array.c:798 #, c-format msgid "%s: empty (zero)\n" msgstr "%s: vide (zro)\n" -#: array.c:800 +#: array.c:802 #, c-format msgid "%s: table_size = %d, array_size = %d\n" msgstr "%s: table_size = %d, array_size = %d\n" -#: array.c:829 +#: array.c:831 #, c-format msgid "%s: is parameter\n" msgstr "%s: est un paramtre\n" -#: array.c:834 +#: array.c:836 #, c-format msgid "%s: array_ref to %s\n" msgstr "%s: array_ref de %s\n" -#: awkgram.y:208 +#: awkgram.y:215 #, c-format msgid "%s blocks must have an action part" msgstr "Les blocs %s doivent avoir une partie action" -#: awkgram.y:211 +#: awkgram.y:218 msgid "each rule must have a pattern or an action part" msgstr "chaqque rgle doit avoir un patron ou une partie action" -#: awkgram.y:267 +#: awkgram.y:254 awkgram.y:263 +#, fuzzy +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "l'ancien awk ne supporte pas l'oprateur ** " + +#: awkgram.y:282 #, c-format msgid "`%s' is a built-in function, it cannot be redefined" msgstr " %s est une fonction interne, elle ne peut tre redfinie" -#: awkgram.y:313 +#: awkgram.y:328 msgid "regexp constant `//' looks like a C++ comment, but is not" msgstr "" "la constante d'expression rgulire // ressemble un commentaire en C, " "mais ne l'est pas" -#: awkgram.y:316 +#: awkgram.y:331 #, c-format msgid "regexp constant `/%s/' looks like a C comment, but is not" msgstr "" "la constante d'expression rgulire /%s/ ressemble un commentaire en " "C, mais ne l'est pas" -#: awkgram.y:343 awkgram.y:623 +#: awkgram.y:358 awkgram.y:653 msgid "statement may have no effect" msgstr "la dclaration peut n'avoir aucun effet" -#: awkgram.y:440 awkgram.y:460 +#: awkgram.y:455 awkgram.y:479 #, c-format msgid "`%s' used in %s action" msgstr " %s utilis dans l'action %s" -#: awkgram.y:453 awkgram.y:456 +#: awkgram.y:470 awkgram.y:474 msgid "`nextfile' is a gawk extension" msgstr " nextfile est une extension de gawk" -#: awkgram.y:470 +#: awkgram.y:489 msgid "`return' used outside function context" msgstr " return utilis en dehors du contexte d'une fonction" -#: awkgram.y:512 +#: awkgram.y:531 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" msgstr "" "utilisation de print dans une rgle BEGIN ou END doit tre probablement " " print \"\" " -#: awkgram.y:525 awkgram.y:532 +#: awkgram.y:547 awkgram.y:555 msgid "`delete array' is a gawk extension" msgstr " delete array est une extension de gawk" -#: awkgram.y:540 awkgram.y:547 +#: awkgram.y:569 awkgram.y:577 msgid "`delete(array)' is a non-portable tawk extension" msgstr " delete(array) est une extension de tawk qui n'est pas portable" -#: awkgram.y:591 +#: awkgram.y:621 #, c-format msgid "duplicate case values in switch body: %s" msgstr "duplicata de valeur de case dans le corps du switch: %s" -#: awkgram.y:601 +#: awkgram.y:631 msgid "Duplicate `default' detected in switch body" msgstr "duplicata de default dtect dans le corps du switch" -#: awkgram.y:690 +#: awkgram.y:720 msgid "multistage two-way pipelines don't work" msgstr "pipelines bidirectionnel multi-tapes ne fonctionnent pas" -#: awkgram.y:781 +#: awkgram.y:811 msgid "regular expression on right of assignment" msgstr "expression rgulire la droite de l'affectation" -#: awkgram.y:804 +#: awkgram.y:834 msgid "regular expression on left of `~' or `!~' operator" msgstr "expression rgulire sur la gauche de l'oprateur ~ ou !~ " -#: awkgram.y:812 +#: awkgram.y:840 awkgram.y:913 +#, fuzzy +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "l'ancien awk ne supporte pas l'oprateur ** " + +#: awkgram.y:846 msgid "regular expression on right of comparison" msgstr "expression rgulire sur la droite de la comparaison" -#: awkgram.y:879 +#: awkgram.y:903 msgid "non-redirected `getline' undefined inside END action" msgstr " getline non redirig indfini l'intrieur de l'action END" -#: awkgram.y:906 +#: awkgram.y:914 +#, fuzzy +msgid "old awk does not support multidimensional arrays" +msgstr "l'ancien awk ne supporte pas l'oprateur ** " + +#: awkgram.y:960 msgid "call of `length' without parentheses is not portable" msgstr "l'appel de length sans les parenthses n'est pas portable" -#: awkgram.y:909 +#: awkgram.y:965 msgid "call of `length' without parentheses is deprecated by POSIX" msgstr "l'appel de length sans les parenthses est dprci par POSIX" -#: awkgram.y:962 +#: awkgram.y:1019 msgid "use of non-array as array" msgstr "utilisation d'une entit qui n'est pas un tableau comme tableau" -#: awkgram.y:964 +#: awkgram.y:1022 msgid "invalid subscript expression" msgstr "sous-expression invalide" -#: awkgram.y:1171 +#: awkgram.y:1249 msgid "unexpected newline or end of string" msgstr "nouvelle ligne inattendue ou fin de la chane" -#: awkgram.y:1267 +#: awkgram.y:1366 msgid "empty program text on command line" msgstr "texte du programme sur la ligne de commande est vide" -#: awkgram.y:1320 +#: awkgram.y:1422 #, c-format msgid "can't open source file `%s' for reading (%s)" msgstr "ne peut ouvrir le fichier source %s pour lecture (%s)" -#: awkgram.y:1397 +#: awkgram.y:1520 #, c-format msgid "can't read sourcefile `%s' (%s)" msgstr "ne peut lire le fichier source %s (%s)" -#: awkgram.y:1405 +#: awkgram.y:1528 #, c-format msgid "source file `%s' is empty" msgstr "fichier source %s est vide" -#: awkgram.y:1596 awkgram.y:1718 awkgram.y:1736 awkgram.y:2107 awkgram.y:2194 +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 msgid "source file does not end in newline" msgstr "fichier source ne se termine pas par un retour de chariot" -#: awkgram.y:1658 +#: awkgram.y:1782 msgid "unterminated regexp ends with `\\' at end of file" msgstr "" "expression rgulire non termine se terminant par \\ la fin du fichier" -#: awkgram.y:1682 +#: awkgram.y:1806 #, c-format msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" "%s: %d: modificateur d'exp. rg. tawk `/.../%c' ne peut oprer dans gawk" -#: awkgram.y:1686 +#: awkgram.y:1810 #, c-format msgid "tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "modificateur d'exp. rg. tawk `/.../%c' ne peut oprer dans gawk" -#: awkgram.y:1693 +#: awkgram.y:1817 msgid "unterminated regexp" msgstr "expression rgulire non termine" -#: awkgram.y:1696 +#: awkgram.y:1820 msgid "unterminated regexp at end of file" msgstr "expression rgulire non termine la fin du fichier" -#: awkgram.y:1762 +#: awkgram.y:1889 msgid "use of `\\ #...' line continuation is not portable" msgstr "" "utilisation de \\ #... comme continuation de ligne n'est pas portable" -#: awkgram.y:1774 +#: awkgram.y:1902 msgid "backslash not last character on line" msgstr "la barre oblique inverse n'est pas le dernier caractre sur la ligne" -#: awkgram.y:1819 +#: awkgram.y:1947 msgid "POSIX does not allow operator `**='" msgstr "POSIX ne permet un oprateur **= " -#: awkgram.y:1821 +#: awkgram.y:1949 msgid "old awk does not support operator `**='" msgstr "l'ancien awk ne supporte pas l'oprateur **= " -#: awkgram.y:1830 +#: awkgram.y:1958 msgid "POSIX does not allow operator `**'" msgstr "POSIX ne permet pas l'oprateur ** " -#: awkgram.y:1832 +#: awkgram.y:1960 msgid "old awk does not support operator `**'" msgstr "l'ancien awk ne supporte pas l'oprateur ** " -#: awkgram.y:1863 +#: awkgram.y:1991 msgid "operator `^=' is not supported in old awk" msgstr "l'oprateur ^= n'est pas support dans l'ancien awk" -#: awkgram.y:1871 +#: awkgram.y:1999 msgid "operator `^' is not supported in old awk" msgstr "l'oprateur ^ n'est pas support dans l'ancien awk" -#: awkgram.y:1955 awkgram.y:1970 +#: awkgram.y:2083 awkgram.y:2098 msgid "unterminated string" msgstr "chane non complte" -#: awkgram.y:2155 +#: awkgram.y:2283 #, c-format msgid "invalid char '%c' in expression" msgstr "caractre invalide %c dans l'expression" -#: awkgram.y:2203 +#: awkgram.y:2331 #, c-format msgid "`%s' is a gawk extension" msgstr " %s est une extension de gawk" -#: awkgram.y:2206 +#: awkgram.y:2334 #, c-format msgid "`%s' is a Bell Labs extension" msgstr " %s est une extension de Bell Labs" -#: awkgram.y:2209 +#: awkgram.y:2337 #, c-format msgid "POSIX does not allow `%s'" msgstr "POSIX ne permet pas %s " -#: awkgram.y:2213 +#: awkgram.y:2341 #, c-format msgid "`%s' is not supported in old awk" msgstr " %s n'est pas support dans l'ancien awk" -#: awkgram.y:2239 +#: awkgram.y:2367 msgid "`goto' considered harmful!\n" msgstr " goto considr nfaste!\n" -#: awkgram.y:2301 +#: awkgram.y:2429 #, c-format msgid "%d is invalid as number of arguments for %s" msgstr "%d est invalide comme nombre d'arguments pour %s" -#: awkgram.y:2320 awkgram.y:2323 +#: awkgram.y:2448 awkgram.y:2451 msgid "match: third argument is a gawk extension" msgstr "match: 3e argument est une extension de gawk" -#: awkgram.y:2336 +#: awkgram.y:2464 #, c-format msgid "%s: string literal as last arg of substitute has no effect" msgstr "" "%s: la chane litrale comme dernier arguement d'une substitution n'a aucun " "effet" -#: awkgram.y:2339 +#: awkgram.y:2467 #, c-format msgid "%s third parameter is not a changeable object" msgstr "3e paramtre %s n'est pas un objet interchangeable" -#: awkgram.y:2366 awkgram.y:2369 +#: awkgram.y:2494 awkgram.y:2497 msgid "close: second argument is a gawk extension" msgstr "close: 2e argument est une extension de gawk" -#: awkgram.y:2379 +#: awkgram.y:2507 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" msgstr "" "utilisation de dcgettext(_\"...\") est incorrect: enlever les souligns en " "en-tte" -#: awkgram.y:2394 +#: awkgram.y:2522 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" msgstr "" "utilisation de dcngettext(_\"...\") est incorrect: enlever les souligns en " "en-tte" -#: awkgram.y:2465 +#: awkgram.y:2594 #, c-format msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" msgstr "fonction %s : paramtre #%d, %s est un double du paramtre #%d" -#: awkgram.y:2498 +#: awkgram.y:2627 #, c-format msgid "function `%s': parameter `%s' shadows global variable" msgstr "fonction %s : paramtre %s porte ombrage la variable globale" -#: awkgram.y:2610 +#: awkgram.y:2739 #, c-format msgid "could not open `%s' for writing (%s)" msgstr "ne peut ourvrir %s en criture (%s)" -#: awkgram.y:2611 profile.c:93 +#: awkgram.y:2740 profile.c:94 msgid "sending profile to standard error" msgstr "redirection du profile vers stderr" -#: awkgram.y:2643 +#: awkgram.y:2772 #, c-format msgid "%s: close failed (%s)" msgstr "%s: chec de fermeture (%s)" -#: awkgram.y:2764 +#: awkgram.y:2893 msgid "shadow_funcs() called twice!" msgstr "shadows_funcs() appel deux fois!" -#: awkgram.y:2791 +#: awkgram.y:2920 msgid "there were shadowed variables." msgstr "il y avait des variables ombrages" -#: awkgram.y:2864 +#: awkgram.y:2993 #, c-format msgid "function `%s': can't use function name as parameter name" msgstr "fonction %s : ne peut utilise le nom de la fonction comme paramtre" -#: awkgram.y:2874 +#: awkgram.y:3003 #, c-format msgid "function name `%s' previously defined" msgstr "nom de la fonction %s dfinie prcdemment" -#: awkgram.y:3025 awkgram.y:3031 +#: awkgram.y:3154 awkgram.y:3160 #, c-format msgid "function `%s' called but never defined" msgstr "fonction %s appel mais jamais dfinie" -#: awkgram.y:3034 +#: awkgram.y:3163 #, c-format msgid "function `%s' defined but never called" msgstr "fonction %s dfinie mais jamais utilise" -#: awkgram.y:3061 +#: awkgram.y:3190 #, c-format msgid "regexp constant for parameter #%d yields boolean value" msgstr "" "expression rgulire constante pour le paramtre #%d conduit une valeur " "boolenne" -#: awkgram.y:3105 +#: awkgram.y:3234 #, c-format msgid "" "function `%s' called with space between name and `(',\n" @@ -401,201 +416,201 @@ "fonction %s appele avec un espace entre le nom et ( ,\n" "ou utilis comme variable ou comme un tableau" -#: builtin.c:145 +#: builtin.c:119 #, c-format msgid "%s to \"%s\" failed (%s)" msgstr "%s vers %s chec (%s)" -#: builtin.c:146 +#: builtin.c:120 msgid "standard output" msgstr "sortie standard" -#: builtin.c:147 +#: builtin.c:121 msgid "reason unknown" msgstr "raison inconnue" -#: builtin.c:160 +#: builtin.c:134 msgid "exp: received non-numeric argument" msgstr "exp: argument n'est pas numrique" -#: builtin.c:166 +#: builtin.c:140 #, c-format msgid "exp: argument %g is out of range" msgstr "exp: argument %g est hors limite" -#: builtin.c:224 +#: builtin.c:198 #, c-format msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" msgstr "" "fflush: ne peut vider: le pipe %s est oouvert en lecture, pas en criture" -#: builtin.c:227 +#: builtin.c:201 #, c-format msgid "fflush: cannot flush: file `%s' opened for reading, not writing" msgstr "" "fflush: ne peut vider: fichier %s ouvert en lecture, pas en criture" -#: builtin.c:239 +#: builtin.c:213 #, c-format msgid "fflush: `%s' is not an open file, pipe or co-process" msgstr "" "fflush: %s n'est pas ni un fichier ouvert, un pipe ou un co-processus" -#: builtin.c:332 +#: builtin.c:306 msgid "index: received non-string first argument" msgstr "index: premier argument n'est pas une chane" -#: builtin.c:334 +#: builtin.c:308 msgid "index: received non-string second argument" msgstr "index: second argument n'est pas une chane" -#: builtin.c:449 +#: builtin.c:423 msgid "int: received non-numeric argument" msgstr "int: argument n'est pas numrique" -#: builtin.c:472 +#: builtin.c:448 #, fuzzy msgid "`length(array)' is a gawk extension" msgstr " delete array est une extension de gawk" -#: builtin.c:481 +#: builtin.c:458 msgid "length: received non-string argument" msgstr "length: argument n'est pas une chane" -#: builtin.c:506 +#: builtin.c:483 msgid "log: received non-numeric argument" msgstr "log: argument n'est pas numrique" -#: builtin.c:509 +#: builtin.c:486 #, c-format msgid "log: received negative argument %g" msgstr "log: argument ngatif %g" -#: builtin.c:673 builtin.c:676 +#: builtin.c:693 builtin.c:696 msgid "must use `count$' on all formats or none" msgstr "doit utiliser count$ sur tous les formats ou aucun" -#: builtin.c:778 +#: builtin.c:799 msgid "`$' is not permitted in awk formats" msgstr " $ n'est pas permis dans les formats awk" -#: builtin.c:784 +#: builtin.c:805 msgid "arg count with `$' must be > 0" msgstr "dcompte d'arguments avec $ doit tre > 0" -#: builtin.c:786 +#: builtin.c:807 #, c-format msgid "arg count %ld greater than total number of supplied arguments" msgstr "compteur d'arguments %ld est > que le nombre total d'arguments fournis" -#: builtin.c:788 +#: builtin.c:809 msgid "`$' not permitted after period in format" msgstr " $ n'est pas permis aprs le point" -#: builtin.c:801 +#: builtin.c:822 msgid "no `$' supplied for positional field width or precision" msgstr "aucun $ fourni dans le champ positionnel (longueur ou prcision)" -#: builtin.c:867 +#: builtin.c:888 msgid "`l' is meaningless in awk formats; ignored" msgstr " l n'a aucun sens dans les formats de awk; ignor" -#: builtin.c:871 +#: builtin.c:892 msgid "`l' is not permitted in POSIX awk formats" msgstr " l n'est pas permis dans les format POSIX de awk" -#: builtin.c:882 +#: builtin.c:903 msgid "`L' is meaningless in awk formats; ignored" msgstr " L n'a aucun sens dans les formats s de awk; ignor" -#: builtin.c:886 +#: builtin.c:907 msgid "`L' is not permitted in POSIX awk formats" msgstr " L n'est pas permis dans les formats POSIX de awk" -#: builtin.c:897 +#: builtin.c:918 msgid "`h' is meaningless in awk formats; ignored" msgstr " h n'a aucun send dans les formats de awk; ignor" -#: builtin.c:901 +#: builtin.c:922 msgid "`h' is not permitted in POSIX awk formats" msgstr " h n'est pas permis dans les formats POSIX de awk" -#: builtin.c:1132 +#: builtin.c:1182 #, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" msgstr "[s]printf: valeur %g est hors limite pour le format %%%c " -#: builtin.c:1198 +#: builtin.c:1266 msgid "not enough arguments to satisfy format string" msgstr "pas assez d'arguments pour satisfaire le format d'une chane" -#: builtin.c:1200 +#: builtin.c:1268 msgid "^ ran out for this one" msgstr "^ dbordement pour celle-ci" -#: builtin.c:1205 +#: builtin.c:1274 msgid "[s]printf: format specifier does not have control letter" msgstr "" "[s]printf: spcificateur de format ne contient pas de lettre de contrle" -#: builtin.c:1208 +#: builtin.c:1277 msgid "too many arguments supplied for format string" msgstr "trop d'arguments pour la chane de format" -#: builtin.c:1274 builtin.c:1277 +#: builtin.c:1352 builtin.c:1355 msgid "printf: no arguments" msgstr "printf: aucun argument" -#: builtin.c:1301 +#: builtin.c:1379 msgid "sqrt: received non-numeric argument" msgstr "sqrt: argument n'est pas numrique" -#: builtin.c:1305 +#: builtin.c:1383 #, c-format msgid "sqrt: called with negative argument %g" msgstr "sqrt: appel avec un argument ngatif %g" -#: builtin.c:1329 +#: builtin.c:1407 #, c-format msgid "substr: start index %g is invalid, using 1" msgstr "substr: dbut de l'index %g est invalide, utilise 1" -#: builtin.c:1334 +#: builtin.c:1412 #, c-format msgid "substr: non-integer start index %g will be truncated" msgstr "substr: dbut avec un nombre non entier %g sera tronqu" -#: builtin.c:1353 +#: builtin.c:1431 #, c-format msgid "substr: length %g is not >= 1" msgstr "substr: longueur %g n'est pas >= 1" -#: builtin.c:1355 +#: builtin.c:1433 #, c-format msgid "substr: length %g is not >= 0" msgstr "substr: longueur %g n'est pas >= 0" -#: builtin.c:1362 +#: builtin.c:1440 #, c-format msgid "substr: non-integer length %g will be truncated" msgstr "substr: longueur avec un nombre non entier %g sera tronqu" -#: builtin.c:1367 +#: builtin.c:1445 #, c-format msgid "substr: length %g too big for string indexing, truncating to %g" msgstr "" "substr: longueur %g trop grande pour l'indexation de chanes, truncation %g" -#: builtin.c:1379 +#: builtin.c:1457 msgid "substr: source string is zero length" msgstr "substr: chane de dpart est de longueur zro" -#: builtin.c:1395 +#: builtin.c:1473 #, c-format msgid "substr: start index %g is past end of string" msgstr "substr: dbut de l'index %g dpasse la fin de la chane" -#: builtin.c:1403 +#: builtin.c:1481 #, c-format msgid "" "substr: length %g at start index %g exceeds length of first argument (%lu)" @@ -603,182 +618,182 @@ "substr: longueur %g dbut avec l'index %g dborde la longueur du 1er " "arguement (%lu)" -#: builtin.c:1478 +#: builtin.c:1558 msgid "strftime: received non-string first argument" msgstr "strftim: premier argument reu n'est pas une chane" -#: builtin.c:1484 +#: builtin.c:1564 msgid "strftime: received empty format string" msgstr "strftime: chane de format vide" -#: builtin.c:1493 +#: builtin.c:1573 msgid "strftime: received non-numeric second argument" msgstr "strftime: second argument reu n'est pas numrique" -#: builtin.c:1556 +#: builtin.c:1650 msgid "mktime: received non-string argument" msgstr "mktime: argument n'est pas une chane" -#: builtin.c:1601 +#: builtin.c:1695 msgid "system: received non-string argument" msgstr "system: argument reu n'est pas une chane" -#: builtin.c:1722 eval.c:2039 +#: builtin.c:1816 eval.c:2041 #, c-format msgid "reference to uninitialized field `$%d'" msgstr "rfrence un champ non initialis $%d " -#: builtin.c:1827 +#: builtin.c:1921 msgid "tolower: received non-string argument" msgstr "tolower: argument reu n'est pas une chane" -#: builtin.c:1857 +#: builtin.c:1951 msgid "toupper: received non-string argument" msgstr "toupper: argument reu n'est pas une chane" -#: builtin.c:1890 +#: builtin.c:1984 msgid "atan2: received non-numeric first argument" msgstr "atan2: premier argument n'est pas numrique" -#: builtin.c:1892 +#: builtin.c:1986 msgid "atan2: received non-numeric second argument" msgstr "atan2: second argument n'est pas numrique" -#: builtin.c:1911 +#: builtin.c:2005 msgid "sin: received non-numeric argument" msgstr "sin: argument n'est pas numrique" -#: builtin.c:1927 +#: builtin.c:2021 msgid "cos: received non-numeric argument" msgstr "cos: argument n'est pas numrique" -#: builtin.c:1977 +#: builtin.c:2071 msgid "srand: received non-numeric argument" msgstr "srand: argument n'est pas numrique" -#: builtin.c:2012 +#: builtin.c:2106 msgid "match: third argument is not an array" msgstr "match: le 3e argument n'est pas un tableau" -#: builtin.c:2555 +#: builtin.c:2650 msgid "gensub: third argument of 0 treated as 1" msgstr "gensub: le 3e argument de 0 trait comme un 1" -#: builtin.c:2715 +#: builtin.c:2766 msgid "lshift: received non-numeric first argument" msgstr "lshift: premier argument n'est pas numrique" -#: builtin.c:2717 +#: builtin.c:2768 msgid "lshift: received non-numeric second argument" msgstr "lshift: second argument reu n'est pas numrique" -#: builtin.c:2723 +#: builtin.c:2774 #, c-format msgid "lshift(%lf, %lf): negative values will give strange results" msgstr "lshift(%lf, %lf): valeurs ngatives donneront d'tranges rsultats" -#: builtin.c:2725 +#: builtin.c:2776 #, c-format msgid "lshift(%lf, %lf): fractional values will be truncated" msgstr "lshift(%lf, %lf): valeurs fractionnaires seront tronques" -#: builtin.c:2727 +#: builtin.c:2778 #, c-format msgid "lshift(%lf, %lf): too large shift value will give strange results" msgstr "lshift(%lf, %lf): trop grand dplacement donnera d'tranges rsultats" -#: builtin.c:2753 +#: builtin.c:2804 msgid "rshift: received non-numeric first argument" msgstr "rshift: premier argument n'est pas numrique" -#: builtin.c:2755 +#: builtin.c:2806 msgid "rshift: received non-numeric second argument" msgstr "rshift: second argument reu n'est pas numrique" -#: builtin.c:2761 +#: builtin.c:2812 #, c-format msgid "rshift(%lf, %lf): negative values will give strange results" msgstr "rshift(%lf, %lf): valeurs ngatives donneront d'tranges rsultats" -#: builtin.c:2763 +#: builtin.c:2814 #, c-format msgid "rshift(%lf, %lf): fractional values will be truncated" msgstr "rshift(%lf, %lf): valeurs fractionnaires seront tronques" -#: builtin.c:2765 +#: builtin.c:2816 #, c-format msgid "rshift(%lf, %lf): too large shift value will give strange results" msgstr "rshift(%lf, %lf): trop grand dplacement donnera d'tranges rsultats" -#: builtin.c:2791 +#: builtin.c:2842 msgid "and: received non-numeric first argument" msgstr "and: premier argument n'est pas numrique" -#: builtin.c:2793 +#: builtin.c:2844 msgid "and: received non-numeric second argument" msgstr "and: second argument reu n'est pas numrique" -#: builtin.c:2799 +#: builtin.c:2850 #, c-format msgid "and(%lf, %lf): negative values will give strange results" msgstr "and(%lf, %lf): valeurs ngatives donneront d'tranges rsultats" -#: builtin.c:2801 +#: builtin.c:2852 #, c-format msgid "and(%lf, %lf): fractional values will be truncated" msgstr "and(%lf, %lf): valeurs fractionnaires seront tronques" -#: builtin.c:2827 +#: builtin.c:2878 msgid "or: received non-numeric first argument" msgstr "or: premier argument n'est pas numrique" -#: builtin.c:2829 +#: builtin.c:2880 msgid "or: received non-numeric second argument" msgstr "or: second argument reu n'est pas numrique" -#: builtin.c:2835 +#: builtin.c:2886 #, c-format msgid "or(%lf, %lf): negative values will give strange results" msgstr "or(%lf, %lf): valeurs ngatives donneront d'tranges rsultats" -#: builtin.c:2837 +#: builtin.c:2888 #, c-format msgid "or(%lf, %lf): fractional values will be truncated" msgstr "or(%lf, %lf): valeurs fractionnaires seront tronques" -#: builtin.c:2863 +#: builtin.c:2914 msgid "xor: received non-numeric first argument" msgstr "xor: premier argument n'est pas numrique" -#: builtin.c:2865 +#: builtin.c:2916 msgid "xor: received non-numeric second argument" msgstr "xor: second argument reu n'est pas numrique" -#: builtin.c:2871 +#: builtin.c:2922 #, c-format msgid "xor(%lf, %lf): negative values will give strange results" msgstr "xor(%lf, %lf): valeurs ngatives donneront d'tranges rsultats" -#: builtin.c:2873 +#: builtin.c:2924 #, c-format msgid "xor(%lf, %lf): fractional values will be truncated" msgstr "xor(%lf, %lf): valeurs fractionnaires seront tronques" -#: builtin.c:2897 +#: builtin.c:2948 msgid "compl: received non-numeric argument" msgstr "compl: argument n'est pas numrique" -#: builtin.c:2903 +#: builtin.c:2954 #, c-format msgid "compl(%lf): negative value will give strange results" msgstr "compl(%lf): valeurs ngatives donneront d'tranges rsultats" -#: builtin.c:2905 +#: builtin.c:2956 #, c-format msgid "compl(%lf): fractional value will be truncated" msgstr "compl(%lf): valeurs fractionnaires seront tronques" -#: builtin.c:3078 +#: builtin.c:3129 #, c-format msgid "dcgettext: `%s' is not a valid locale category" msgstr "dcgettext: %s n'est pas dans un catgorie de localisation valide" @@ -792,7 +807,7 @@ msgid "buffer overflow in genflags2str" msgstr "dbordement de tampo dans genflag2str" -#: eval.c:385 eval.c:391 profile.c:838 +#: eval.c:385 eval.c:391 profile.c:817 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "tentative d'utilisation du tableau %s dans un contexte scalaire" @@ -840,7 +855,7 @@ msgid "statement has no effect" msgstr "la dclaration n'a aucun effet" -#: eval.c:952 eval.c:1893 +#: eval.c:952 eval.c:1895 #, c-format msgid "can't use function name `%s' as variable or array" msgstr "" @@ -851,7 +866,7 @@ msgid "reference to uninitialized argument `%s'" msgstr "rfrence un argument non initialis %s " -#: eval.c:974 eval.c:1902 +#: eval.c:974 eval.c:1904 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "rfrence une variable non initialise %s " @@ -864,44 +879,44 @@ "concatnation: effects de bord dans une expression a modifi la longueur " "d'une autre!" -#: eval.c:1200 +#: eval.c:1202 msgid "assignment used in conditional context" msgstr "affectation utilis dans un contexte conditionnel" -#: eval.c:1278 +#: eval.c:1280 msgid "division by zero attempted" msgstr "tentative de division par zro" -#: eval.c:1293 +#: eval.c:1295 #, c-format msgid "division by zero attempted in `%%'" msgstr "tentative de division par zro dans %% " -#: eval.c:1308 profile.c:714 +#: eval.c:1310 profile.c:693 #, c-format msgid "illegal type (%s) in tree_eval" msgstr "type illgal (%s) dans tree_eval" -#: eval.c:1471 +#: eval.c:1473 msgid "division by zero attempted in `/='" msgstr "tentative de division par zro dans /= " -#: eval.c:1493 +#: eval.c:1495 #, c-format msgid "division by zero attempted in `%%='" msgstr "tentative de division par zro dans %%= " -#: eval.c:1758 +#: eval.c:1760 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "fonction %s appele avec plus d'arguments que dclares" -#: eval.c:1802 +#: eval.c:1804 #, c-format msgid "function `%s' not defined" msgstr "fonction %s non dfinie" -#: eval.c:1865 +#: eval.c:1867 #, c-format msgid "" "\n" @@ -912,677 +927,691 @@ "\t# Appel d'une fonction sur la pile:\n" "\n" -#: eval.c:1868 +#: eval.c:1870 #, c-format msgid "\t# -- main --\n" msgstr "#t# -- main --\n" -#: eval.c:2023 +#: eval.c:2025 msgid "attempt to field reference from non-numeric value" msgstr "tentative de rfrence un champ partir d'une valeur non numrique" -#: eval.c:2025 +#: eval.c:2027 msgid "attempt to reference from null string" msgstr "tentative de rfrence partir d'une chane nulle" -#: eval.c:2031 +#: eval.c:2033 #, c-format msgid "attempt to access field %d" msgstr "tentative d'accs du champ %d" -#: eval.c:2052 eval.c:2059 profile.c:935 +#: eval.c:2054 eval.c:2061 profile.c:914 msgid "assignment is not allowed to result of builtin function" msgstr "" "l'affectation n'est pas permise pour obtenir un rsultat d'une fonction " "interne" -#: eval.c:2123 +#: eval.c:2125 msgid "`IGNORECASE' is a gawk extension" msgstr " IGNORECASE est une extension de gawk" -#: eval.c:2153 +#: eval.c:2155 msgid "`BINMODE' is a gawk extension" msgstr " BINMODE est une extension de gawk" -#: eval.c:2275 +#: eval.c:2277 #, c-format msgid "bad `%sFMT' specification `%s'" msgstr " %sFMT spcification errone %s " -#: eval.c:2353 +#: eval.c:2355 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "dsactivation --lint en raison d'une affectation LINT " -#: ext.c:60 ext.c:64 +#: ext.c:62 ext.c:67 msgid "`extension' is a gawk extension" msgstr " extension est une extension de gawk" -#: ext.c:74 +#: ext.c:77 #, c-format msgid "extension: cannot open `%s' (%s)\n" msgstr "extension: ne peut ouvrir %s (%s)\n" -#: ext.c:82 +#: ext.c:85 #, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "extension: librairie %s : ne peut appeler la fonction %s (%s)\n" -#: ext.c:102 +#: ext.c:105 msgid "extension: missing function name" msgstr "extension: nom de fonction manquant" -#: ext.c:107 +#: ext.c:110 #, c-format msgid "extension: illegal character `%c' in function name `%s'" msgstr "extension: caractre illgal %c dans le nom de la fonction %s " -#: ext.c:113 +#: ext.c:116 #, c-format msgid "extension: can't redefine function `%s'" msgstr "extension: ne peut redfinir la fonction %s " -#: ext.c:117 +#: ext.c:120 #, c-format msgid "extension: function `%s' already defined" msgstr "extension: fonction %s est dj dfinie" -#: ext.c:122 +#: ext.c:125 #, c-format msgid "extension: can't use gawk built-in `%s' as function name" msgstr "" "extension: ne peut utilis la fonction interne gawk %s comme nom de " "fonction" -#: ext.c:124 +#: ext.c:127 #, c-format msgid "extension: function name `%s' previously defined" msgstr "extension: nom de la fonction %s dfinie prcdemment" -#: ext.c:201 +#: ext.c:204 #, c-format msgid "function `%s' defined to take no more than %d argument(s)" msgstr "" "fonction %s est dfinie pour ne prendre pas plus de %d argument(s)" -#: ext.c:204 +#: ext.c:207 #, c-format msgid "function `%s': missing argument #%d" msgstr "fonction %s : argument #%d manquant" -#: ext.c:214 +#: ext.c:217 #, c-format msgid "function `%s': argument #%d: attempt to use scalar as an array" msgstr "" "fonction %s : argument #%d: tentative d'utilisation du scalaire comme un " "tableau" -#: ext.c:218 +#: ext.c:221 #, c-format msgid "function `%s': argument #%d: attempt to use array as a scalar" msgstr "" "fonction %s : argument #%d: tentative d'utiliser un tableau comme un " "scalaire" -#: ext.c:243 +#: ext.c:246 msgid "Operation Not Supported" msgstr "Opration non supporte" -#: field.c:326 +#: field.c:330 msgid "NF set to negative value" msgstr "NF initialis avec une valeur ngative" -#: field.c:819 +#: field.c:823 msgid "split: second argument is not an array" msgstr "split: 2e argument n'est pas un tableau" -#: field.c:853 +#: field.c:857 msgid "split: null string for third arg is a gawk extension" msgstr "split: chane vide pour le 3e argument est une extension de gawk" -#: field.c:905 +#: field.c:909 msgid "`FIELDWIDTHS' is a gawk extension" msgstr " FIELDWIDTHS est une extension de gawk" -#: field.c:935 field.c:946 +#: field.c:939 field.c:953 #, c-format msgid "invalid FIELDWIDTHS value, near `%s'" msgstr "valeur de FIELDWIDTHS invalide, prs de `%s'" -#: field.c:1027 +#: field.c:1036 msgid "null string for `FS' is a gawk extension" msgstr "chane vide pour FS est une extension de gawk" -#: getopt.c:571 getopt.c:590 +#: field.c:1040 +#, fuzzy +msgid "old awk does not support regexps as value of `FS'" +msgstr "l'ancien awk ne supporte pas l'oprateur ** " + +#: getopt.c:571 getopt.c:587 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: option %s est ambigu\n" -#: getopt.c:623 getopt.c:627 +#: getopt.c:620 getopt.c:624 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: option --%s n'admet pas d'arguement\n" -#: getopt.c:636 getopt.c:641 +#: getopt.c:633 getopt.c:638 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: l'option %c%s ne requiert pas d'arguement\n" -#: getopt.c:687 getopt.c:709 getopt.c:1040 getopt.c:1062 +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: l'option %s requiert un argument\n" -#: getopt.c:747 getopt.c:750 +#: getopt.c:738 getopt.c:741 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: option non reconnue --%s \n" -#: getopt.c:758 getopt.c:761 +#: getopt.c:749 getopt.c:752 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: option non reconnue %c%s \n" -#: getopt.c:816 getopt.c:819 +#: getopt.c:804 getopt.c:807 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: option illgale -- %c\n" -#: getopt.c:825 getopt.c:828 +#: getopt.c:813 getopt.c:816 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: option invalide -- %c\n" -#: getopt.c:883 getopt.c:902 getopt.c:1115 getopt.c:1136 main.c:448 +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: l'option requiert un arguement -- %c\n" -#: getopt.c:955 getopt.c:974 +#: getopt.c:937 getopt.c:953 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: l'option -W %s est ambigu\n" -#: getopt.c:998 getopt.c:1019 +#: getopt.c:977 getopt.c:995 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: l'option -W %s ne requiert pas d'arguement\n" -#: io.c:307 +#: io.c:345 #, c-format msgid "cannot open file `%s' for reading (%s)" msgstr "ne peut ouvrir le fichier %s en lecture (%s)" -#: io.c:398 +#: io.c:436 #, c-format msgid "close of fd %d (`%s') failed (%s)" msgstr "fermeture de fd %d ( %s ) en chec (%s)" -#: io.c:536 +#: io.c:575 #, c-format msgid "invalid tree type %s in redirect()" msgstr "type d'arbre invalide %s dans redirect()" -#: io.c:542 +#: io.c:581 #, c-format msgid "expression in `%s' redirection only has numeric value" msgstr "" "l'expression de la redirection de %s a seulement une valeur numrique" -#: io.c:548 +#: io.c:587 #, c-format msgid "expression for `%s' redirection has null string value" msgstr "" "l'expression de la redirection de %s a une valeur nulle pour la chane" -#: io.c:553 +#: io.c:592 #, c-format msgid "filename `%s' for `%s' redirection may be result of logical expression" msgstr "" "nom de fichier %s pour le redirection %s peut tre le rsultat d'une " "expression logique" -#: io.c:591 +#: io.c:630 #, c-format msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" msgstr "mlange non ncessaire de > et de >> pour le fichier %.*s " -#: io.c:643 +#: io.c:682 #, c-format msgid "can't open pipe `%s' for output (%s)" msgstr "ne peut ouvrir un pipe %s en sortie (%s)" -#: io.c:652 +#: io.c:691 #, c-format msgid "can't open pipe `%s' for input (%s)" msgstr "ne peut ouvrir un pipe %s en entre (%s)" -#: io.c:665 +#: io.c:698 io.c:1448 +#, c-format +msgid "file `%s' is a directory" +msgstr "le fichier %s est un rpertoire" + +#: io.c:706 #, c-format msgid "can't open two way socket `%s' for input/output (%s)" msgstr "" "ne peut ouvrir un socket bidirectionnel %s pour les entres/sorties (%s)" -#: io.c:669 +#: io.c:710 #, c-format msgid "can't open two way pipe `%s' for input/output (%s)" msgstr "" "ne peut ouvrir un pipe bidirectionnel %s pour les entres/sorties (%s)" -#: io.c:745 +#: io.c:786 #, c-format msgid "can't redirect from `%s' (%s)" msgstr "ne peut rediriger de %s (%s)" -#: io.c:748 +#: io.c:789 #, c-format msgid "can't redirect to `%s' (%s)" msgstr "ne peut rediriger vers %s (%s)" -#: io.c:787 +#: io.c:828 msgid "" "reached system limit for open files: starting to multiplex file descriptors" msgstr "" "limite systme atteinte pour l'ouverture des fichiers: dbut du multiplexage " "des descripteurs de fichiers" -#: io.c:803 +#: io.c:844 #, c-format msgid "close of `%s' failed (%s)." msgstr "fermeture de %s en chec (%s)" -#: io.c:811 +#: io.c:852 msgid "too many pipes or input files open" msgstr "trop de pipes ou de fichiers en lecture ouverts" -#: io.c:834 +#: io.c:875 msgid "close: second argument must be `to' or `from'" msgstr "close: 2e argument doit tre to ou from " -#: io.c:848 +#: io.c:889 #, c-format msgid "close: `%.*s' is not an open file, pipe or co-process" msgstr "close: %.*s n'est pas ni un fichier ouvert, pipe ou co-processus" -#: io.c:852 +#: io.c:893 msgid "close of redirection that was never opened" msgstr "fermeture de la redirection qui n'a jamais t ouverte" -#: io.c:948 +#: io.c:989 #, c-format msgid "close: redirection `%s' not opened with `|&', second argument ignored" msgstr "" "close: redirection %s n'a pas t ouverte ave |& 2e argument ignor" -#: io.c:964 +#: io.c:1005 #, c-format msgid "failure status (%d) on pipe close of `%s' (%s)" msgstr "constat d'chec (%d) lors de la fermeture du pipe %s (%s)" -#: io.c:967 +#: io.c:1008 #, c-format msgid "failure status (%d) on file close of `%s' (%s)" msgstr "constat d'chec (%d) lors de la fermeture du fichier %s (%s)" -#: io.c:987 +#: io.c:1028 #, c-format msgid "no explicit close of socket `%s' provided" msgstr "aucune fermeture explicite du socket %s fournie" -#: io.c:990 +#: io.c:1031 #, c-format msgid "no explicit close of co-process `%s' provided" msgstr "aucune fermeture explicite du co-processus %s fournie" -#: io.c:993 +#: io.c:1034 #, c-format msgid "no explicit close of pipe `%s' provided" msgstr "aucune fermeture explicite du pipe %s fournie" -#: io.c:996 +#: io.c:1037 #, c-format msgid "no explicit close of file `%s' provided" msgstr "aucune fermeture explicite du fichier %s fournie" -#: io.c:1025 io.c:1080 main.c:718 main.c:756 +#: io.c:1066 io.c:1121 main.c:749 main.c:791 #, c-format msgid "error writing standard output (%s)" msgstr "erreur lors de l'criture vers stdout (%s)" -#: io.c:1029 io.c:1085 +#: io.c:1070 io.c:1126 #, c-format msgid "error writing standard error (%s)" msgstr "erreur lors de l'criture vers stderr (%s)" -#: io.c:1037 +#: io.c:1078 #, c-format msgid "pipe flush of `%s' failed (%s)." msgstr "vidange du pipie de %s en chec (%s)" -#: io.c:1040 +#: io.c:1081 #, c-format msgid "co-process flush of pipe to `%s' failed (%s)." msgstr "vidange du pipe par le co-processus vers %s en chec (%s)" -#: io.c:1043 +#: io.c:1084 #, c-format msgid "file flush of `%s' failed (%s)." msgstr "vidange du fichier %s en chec (%s)" -#: io.c:1205 +#: io.c:1198 +#, fuzzy, c-format +msgid "local port %s invalid in `/inet'" +msgstr "port local invalide dans %s " + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "" + +#: io.c:1250 msgid "/inet/raw client not ready yet, sorry" msgstr "le client /inet/raw n'est pas encore prt, dsol" -#: io.c:1207 io.c:1244 +#: io.c:1253 io.c:1289 msgid "only root may use `/inet/raw'." msgstr "seul root peut utiliser /inet/raw " -#: io.c:1242 +#: io.c:1287 msgid "/inet/raw server not ready yet, sorry" msgstr "le serveur /inet/raw n'est pas encore prt, dsol" -#: io.c:1332 +#: io.c:1385 #, c-format msgid "no (known) protocol supplied in special filename `%s'" msgstr "aucun protocole (connu) fourni dans le nom de fichier spcial %s " -#: io.c:1350 +#: io.c:1399 #, c-format msgid "special file name `%s' is incomplete" msgstr "nom spcial de fichier %s est incomplet" -#: io.c:1362 -#, c-format -msgid "local port invalid in `%s'" -msgstr "port local invalide dans %s " - -#: io.c:1374 +#: io.c:1414 msgid "must supply a remote hostname to `/inet'" msgstr "un nom de hte distant doit tre fourni /inet " -#: io.c:1389 +#: io.c:1432 msgid "must supply a remote port to `/inet'" msgstr "un port distant doit tre fournis /inet " -#: io.c:1395 -#, c-format -msgid "remote port invalid in `%s'" -msgstr "port distant invalide dans %s " - -#: io.c:1405 +#: io.c:1439 msgid "TCP/IP communications are not supported" msgstr "les communications TCP/IP ne sont pas supportes" -#: io.c:1414 io.c:1595 -#, c-format -msgid "file `%s' is a directory" -msgstr "le fichier %s est un rpertoire" - -#: io.c:1484 +#: io.c:1509 #, c-format msgid "use `PROCINFO[\"%s\"]' instead of `%s'" msgstr "utliser PROCINFO[\"%s\"] au lieu de %s " -#: io.c:1516 +#: io.c:1547 msgid "use `PROCINFO[...]' instead of `/dev/user'" msgstr "utliser PROCINFO[\"%s\"] au lieu de /dev/user " -#: io.c:1581 io.c:1763 +#: io.c:1612 io.c:1798 #, c-format msgid "could not open `%s', mode `%s'" msgstr "ne peut ouvrir %s , mode %s " -#: io.c:1814 +#: io.c:1849 #, c-format msgid "close of master pty failed (%s)" msgstr "chec de la fermeture du pty matre (%s)" -#: io.c:1816 io.c:1968 io.c:2119 +#: io.c:1851 io.c:2003 io.c:2154 #, c-format msgid "close of stdout in child failed (%s)" msgstr "chec de fermeture de stdout du processus fils (%s)" -#: io.c:1819 +#: io.c:1854 #, c-format msgid "moving slave pty to stdout in child failed (dup: %s)" msgstr "" "chec de redirection de pty esclave vers stdout du processus fils (dup: %s)" -#: io.c:1821 io.c:1973 +#: io.c:1856 io.c:2008 #, c-format msgid "close of stdin in child failed (%s)" msgstr "chec de fermeture de stdin du processus fils (%s)" -#: io.c:1824 +#: io.c:1859 #, c-format msgid "moving slave pty to stdin in child failed (dup: %s)" msgstr "" "chec de redirection du pty esclave vers stdin du processus fils (dup: %s)" -#: io.c:1826 io.c:1845 +#: io.c:1861 io.c:1880 #, c-format msgid "close of slave pty failed (%s)" msgstr "chec de la fermeture du pty esclave (%s)" -#: io.c:1919 io.c:1971 io.c:2100 io.c:2122 +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 #, c-format msgid "moving pipe to stdout in child failed (dup: %s)" msgstr "chec de redirection du pipe vers stdout du processus fils (dup: %s)" -#: io.c:1923 io.c:1976 +#: io.c:1958 io.c:2011 #, c-format msgid "moving pipe to stdin in child failed (dup: %s)" msgstr "chec de redirection du pipe vers stdin du processus fils (dup: %s)" -#: io.c:1940 io.c:2113 +#: io.c:1975 io.c:2148 msgid "restoring stdout in parent process failed\n" msgstr "restauration de stdout par le processus parent a chou\n" -#: io.c:1945 +#: io.c:1980 msgid "restoring stdin in parent process failed\n" msgstr "restauration de stdin par le processus parent a chou\n" -#: io.c:1979 io.c:2124 io.c:2135 +#: io.c:2014 io.c:2159 io.c:2170 #, c-format msgid "close of pipe failed (%s)" msgstr "chec de la fermeture du pipe (%s)" -#: io.c:2024 +#: io.c:2059 msgid "`|&' not supported" msgstr " |& non support" -#: io.c:2090 +#: io.c:2125 #, c-format msgid "cannot open pipe `%s' (%s)" msgstr "ne ouvrir un pipe %s (%s)" -#: io.c:2131 +#: io.c:2166 #, c-format msgid "cannot create child process for `%s' (fork: %s)" msgstr "ne crer le processus fils pour %s (fork: %s)" -#: io.c:2506 +#: io.c:2548 #, c-format msgid "data file `%s' is empty" msgstr "le fichier de donnes %s est vide" -#: io.c:2547 io.c:2555 +#: io.c:2589 io.c:2597 msgid "could not allocate more input memory" msgstr "ne peut allouer plus de mmoire pour l'entre" -#: io.c:2919 io.c:2984 +#: io.c:2965 io.c:3038 #, c-format msgid "error reading input file `%s': %s" msgstr "erreur lors de la lecture du fichier source %s : %s" -#: io.c:3109 +#: io.c:3163 msgid "multicharacter value of `RS' is a gawk extension" msgstr "valeur de RS avec multiple caractres est une extension gawk" -#: main.c:338 +#: main.c:351 msgid "`-m[fr]' option irrelevant in gawk" msgstr " -m[fr] est une option non pertinente en gawk" -#: main.c:340 +#: main.c:353 msgid "-m option usage: `-m[fr] nnn'" msgstr "-m usage de l'option: -m[fr] nnn " -#: main.c:357 +#: main.c:370 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: l'option -W %s n'est pas reconnue, ignore\n" -#: main.c:394 +#: main.c:407 msgid "empty argument to `--source' ignored" msgstr "argument vide l'option --source , ignore" -#: main.c:467 +#: main.c:480 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" msgstr "" "variable d'environnement POSIXLY__CORRECT initialise: utilisation de " "--posix " -#: main.c:472 +#: main.c:486 msgid "`--posix' overrides `--traditional'" msgstr " --posix crase --traditional " -#: main.c:483 +#: main.c:497 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" msgstr " --posix / --traditional crase --non-decimal-data " -#: main.c:487 +#: main.c:501 #, c-format msgid "running %s setuid root may be a security problem" msgstr "" "excution de %s en mode setuid root peut causer un problme de scurit" -#: main.c:528 +#: main.c:542 #, c-format msgid "can't set binary mode on stdin (%s)" msgstr "ne peut initialiser le mode binaire sur stdin (%s)" -#: main.c:531 +#: main.c:545 #, c-format msgid "can't set binary mode on stdout (%s)" msgstr "ne peut initialiser le mode binaire sur stdout (%s)" -#: main.c:533 +#: main.c:547 #, c-format msgid "can't set binary mode on stderr (%s)" msgstr "ne peut initialiser le mode binaire sur stderr (%s)" -#: main.c:572 +#: main.c:586 msgid "no program text at all!" msgstr "aucun programme!" -#: main.c:665 +#: main.c:690 #, c-format msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" msgstr "" "Usage: %s [style des options POSIX ou GNU] -f fichierprog [--] fichier ...\n" -#: main.c:667 +#: main.c:692 #, c-format msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" msgstr "" "Usage: %s [style des options POSIX ou GNU] [--] %cprogram%c fichier ...\n" -#: main.c:672 +#: main.c:697 msgid "POSIX options:\t\tGNU long options:\n" msgstr "Options POSIX:\t\toptions de long format GNU:\n" -#: main.c:673 +#: main.c:698 msgid "\t-f progfile\t\t--file=progfile\n" msgstr "\t-f fichierprog\t\t--file=fichierprog\n" -#: main.c:674 +#: main.c:699 msgid "\t-F fs\t\t\t--field-separator=fs\n" msgstr "#t-F fs\t\t\t--field-separator=fs\n" -#: main.c:675 +#: main.c:700 msgid "\t-v var=val\t\t--assign=var=val\n" msgstr "#t-v var=valeur\t\t--assign=var=valeur\n" -#: main.c:676 +#: main.c:701 msgid "\t-m[fr] val\n" msgstr "\t-m[fr] valeur\n" -#: main.c:677 +#: main.c:702 msgid "\t-W compat\t\t--compat\n" msgstr "\t-W compat\t\t--compat\n" -#: main.c:678 +#: main.c:703 msgid "\t-W copyleft\t\t--copyleft\n" msgstr "\t-W copyleft\t\t--copyleft\n" -#: main.c:679 +#: main.c:704 msgid "\t-W copyright\t\t--copyright\n" msgstr "\t-W copyright\t\t--copyright\n" -#: main.c:680 +#: main.c:705 msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" msgstr "\t-W dump-variables[=fichier]\t--dump-variables[=fichier]\n" -#: main.c:681 +#: main.c:706 msgid "\t-W exec=file\t\t--exec=file\n" msgstr "\t-W exec=fichier\t\t--exec=fichier\n" -#: main.c:682 +#: main.c:707 msgid "\t-W gen-po\t\t--gen-po\n" msgstr "\t-W gen-po\t\t--gen-po\n" -#: main.c:683 +#: main.c:708 msgid "\t-W help\t\t\t--help\n" msgstr "\t-W help\t\t\t--help\n" -#: main.c:684 +#: main.c:709 msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" msgstr "\t-W lint[=fatal]\t\t--lint[=fatal]\n" -#: main.c:685 +#: main.c:710 msgid "\t-W lint-old\t\t--lint-old\n" msgstr "\t-W lint-old\t\t--lint-old\n" -#: main.c:686 +#: main.c:711 msgid "\t-W non-decimal-data\t--non-decimal-data\n" msgstr "\t-W non-decimal-data\t--non-decimal-data\n" -#: main.c:688 +#: main.c:713 msgid "\t-W nostalgia\t\t--nostalgia\n" msgstr "\t-W nostalgia\t\t--nostalgia\n" -#: main.c:691 +#: main.c:716 msgid "\t-W parsedebug\t\t--parsedebug\n" msgstr "\t-W parsedebug\t\t--parsedebug\n" -#: main.c:693 +#: main.c:718 msgid "\t-W profile[=file]\t--profile[=file]\n" msgstr "\t-W profile[=fichier]\t--profile[=fichier]\n" -#: main.c:694 +#: main.c:719 msgid "\t-W posix\t\t--posix\n" msgstr "\t-W posix\t\t--posix\n" -#: main.c:695 +#: main.c:720 msgid "\t-W re-interval\t\t--re-interval\n" msgstr "\t-W re-interval\t\t--re-interval\n" -#: main.c:696 +#: main.c:721 msgid "\t-W source=program-text\t--source=program-text\n" msgstr "\t-W source=program-text\t--source=program-text\n" -#: main.c:697 +#: main.c:722 msgid "\t-W traditional\t\t--traditional\n" msgstr "\t-W traditional\t\t--traditional\n" -#: main.c:698 +#: main.c:723 msgid "\t-W usage\t\t--usage\n" msgstr "\t-W usage\t\t--usage\n" -#: main.c:699 +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "" + +#: main.c:725 msgid "\t-W version\t\t--version\n" msgstr "\t-W version\t\t--version\n" -#: main.c:703 +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 msgid "" "\n" "To report bugs, see node `Bugs' in `gawk.info', which is\n" @@ -1594,7 +1623,7 @@ "la section\n" " Problems and Bugs dans la version imprime.\n" -#: main.c:707 +#: main.c:738 msgid "" "gawk is a pattern scanning and processing language.\n" "By default it reads standard input and writes standard output.\n" @@ -1604,7 +1633,7 @@ "Par dfaut, il lit de l'entre standard et crit sur la sortie standard.\n" "\n" -#: main.c:711 +#: main.c:742 msgid "" "Examples:\n" "\tgawk '{ sum += $1 }; END { print sum }' file\n" @@ -1614,14 +1643,14 @@ "\tgawk '{ sum += $1 }; END { print sum }' file\n" "\tgawk -F: '{ print $1 }' /etc/passwd\n" -#: main.c:731 +#: main.c:762 #, c-format msgid "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" +"the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" msgstr "" @@ -1629,11 +1658,11 @@ "\n" "Ce programme est un logiciel libre; vous pouvez le redistribuer ou le\n" "modifier selon les termes de la License Publique Gnrale de GNU, publie\n" -"par la Free Software Foundation; soit la version 2 de la Licence ou,\n" +"par la Free Software Foundation; soit la version 3 de la Licence ou,\n" "soit (selon vos prfrences) toute version ultrieure.\n" "\n" -#: main.c:739 +#: main.c:770 msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -1648,24 +1677,23 @@ "Pour plus d'informations ce sujet, consulter la GNU General Public " "License .\n" -#: main.c:745 +#: main.c:781 +#, fuzzy msgid "" "You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" msgstr "" "Vous devriez avoir reu copie de la Licence Publique Gnrale de GNU\n" "avec ce programme; sinon, sinon crire la Free Software Foundation, Inc.,\n" "51 Franklin Street, FIth Floor, Boston, MA 02110-1301, USA.\n" -#: main.c:781 +#: main.c:816 msgid "-Ft does not set FS to tab in POSIX awk" msgstr "" "-Ft ne permet pas d'initialiser FS un tabulateur dans la version POSIX de " "awk" -#: main.c:1018 +#: main.c:1060 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -1674,35 +1702,35 @@ "%s: %s argument pour -v n'utilise pas la formulation var=valeur \n" "\n" -#: main.c:1038 +#: main.c:1080 #, c-format msgid "`%s' is not a legal variable name" msgstr " %s n'est pas un nom lgal de variable" -#: main.c:1041 +#: main.c:1083 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr " %s n'est pas un nom de variable, recherche du fichier %s=%s " -#: main.c:1074 +#: main.c:1122 msgid "floating point exception" msgstr "exception de la virgule flottante" -#: main.c:1081 +#: main.c:1129 msgid "fatal error: internal error" msgstr "erreur fatale: erreur interne" -#: main.c:1132 +#: main.c:1180 #, c-format msgid "no pre-opened fd %d" msgstr "aucun fd pr-ouvert pour %d" -#: main.c:1139 +#: main.c:1187 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "ne peut pr-ouvrir /dev/null pour le descripteud fd %d" -#: main.c:1162 main.c:1171 +#: main.c:1210 main.c:1219 #, c-format msgid "could not find groups: %s" msgstr "n'a pu trouv les groupes: %s" @@ -1724,23 +1752,28 @@ msgid "fatal: " msgstr "Fatal: " -#: node.c:59 node.c:66 node.c:75 node.c:90 node.c:119 +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 msgid "can't convert string to float" msgstr "ne peut convertir la chane en nombre flottant" -#: node.c:414 +#: node.c:406 msgid "backslash at end of string" msgstr "barre oblique inverse la fin de la chane" -#: node.c:604 +#: node.c:548 +#, fuzzy, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "l'ancien awk ne supporte pas l'oprateur ** " + +#: node.c:599 msgid "POSIX does not allow `\\x' escapes" msgstr "POSIX ne permet pas de squence d'chappement \\x " -#: node.c:610 +#: node.c:605 msgid "no hex digits in `\\x' escape sequence" msgstr "aucun chiffre hexadcimal dans la squence d'chappement \\x " -#: node.c:644 +#: node.c:639 #, c-format msgid "escape sequence `\\%c' treated as plain `%c'" msgstr "squence d'chappement \\%c traite simplement comme %c " @@ -1750,31 +1783,31 @@ msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" msgstr "%s %s %s : ne peut initialiser close-on-exec: (fcntl: %s)" -#: profile.c:91 +#: profile.c:92 #, c-format msgid "could not open `%s' for writing: %s" msgstr "ne peut ouvrir %s en criture: %s" -#: profile.c:467 +#: profile.c:450 #, c-format msgid "internal error: %s with null vname" msgstr "erreur interne: %s avec un vname nul" -#: profile.c:531 +#: profile.c:514 msgid "# treated internally as `delete'" msgstr "# trait de manire interne comme delete " -#: profile.c:1168 +#: profile.c:1147 #, c-format msgid "# this is a dynamically loaded extension function" msgstr "# cela est un extension d'une fonction charge dynamiquement" -#: profile.c:1199 +#: profile.c:1178 #, c-format msgid "\t# gawk profile, created %s\n" msgstr "\t# profile gawk, cr %s\n" -#: profile.c:1202 +#: profile.c:1181 #, c-format msgid "" "\t# BEGIN block(s)\n" @@ -1783,7 +1816,7 @@ "#t# DBUT de bloc(s)\n" "\n" -#: profile.c:1212 +#: profile.c:1191 #, c-format msgid "" "\t# Rule(s)\n" @@ -1792,7 +1825,7 @@ "\t# Rgle(s)\n" "\n" -#: profile.c:1218 +#: profile.c:1197 #, c-format msgid "" "\t# END block(s)\n" @@ -1801,7 +1834,7 @@ "\t# FIN de bloc(s)\n" "\n" -#: profile.c:1238 +#: profile.c:1217 #, c-format msgid "" "\n" @@ -1810,83 +1843,86 @@ "\n" "\t# Liste alphabtique des fonctions\n" -#: profile.c:1453 +#: profile.c:1470 #, c-format msgid "unexpected type %s in prec_level" msgstr "type %s inattendu dans prec_level" -#: regcomp.c:160 +#: regcomp.c:132 msgid "Success" msgstr "Succs" -#: regcomp.c:163 +#: regcomp.c:135 msgid "No match" msgstr "Aucune concordance" -#: regcomp.c:166 +#: regcomp.c:138 msgid "Invalid regular expression" msgstr "Expression rgulire invalide" -#: regcomp.c:169 +#: regcomp.c:141 msgid "Invalid collation character" msgstr "Caractre de collation invalide" -#: regcomp.c:172 +#: regcomp.c:144 msgid "Invalid character class name" msgstr "Nom de classe de caractres invalide" -#: regcomp.c:175 +#: regcomp.c:147 msgid "Trailing backslash" msgstr "Barre oblique inverse de terminaison" -#: regcomp.c:178 +#: regcomp.c:150 msgid "Invalid back reference" msgstr "Mauvaise rfrence arrire" -#: regcomp.c:181 +#: regcomp.c:153 msgid "Unmatched [ or [^" msgstr "Non appariement de [ ou [^" -#: regcomp.c:184 +#: regcomp.c:156 msgid "Unmatched ( or \\(" msgstr "Non appariement de ( ou \\(" -#: regcomp.c:187 +#: regcomp.c:159 msgid "Unmatched \\{" msgstr "Non appariement de \\{" -#: regcomp.c:190 +#: regcomp.c:162 msgid "Invalid content of \\{\\}" msgstr "Contenu invalide de \\{\\}" -#: regcomp.c:193 +#: regcomp.c:165 msgid "Invalid range end" msgstr "Borne finale invalide" -#: regcomp.c:196 +#: regcomp.c:168 msgid "Memory exhausted" msgstr "Mmoire puise" -#: regcomp.c:199 +#: regcomp.c:171 msgid "Invalid preceding regular expression" msgstr "Expression rgulire prcdente invalide" -#: regcomp.c:202 +#: regcomp.c:174 msgid "Premature end of regular expression" msgstr "Fin prmature de l'expression rgulire" -#: regcomp.c:205 +#: regcomp.c:177 msgid "Regular expression too big" msgstr "Expression rgulire trop grande" -#: regcomp.c:208 +#: regcomp.c:180 msgid "Unmatched ) or \\)" msgstr "Non appariement de ) ou \\)" -#: regcomp.c:688 +#: regcomp.c:664 msgid "No previous regular expression" msgstr "Aucune expression rgulire antrieure" +#~ msgid "remote port invalid in `%s'" +#~ msgstr "port distant invalide dans %s " + #~ msgid "function %s called\n" #~ msgstr "fonction %s appele\n" diff -urN gawk-3.1.5/po/ga.po gawk-3.1.6/po/ga.po --- gawk-3.1.5/po/ga.po 2005-07-06 17:20:05.000000000 +0300 +++ gawk-3.1.6/po/ga.po 2007-10-02 22:14:53.000000000 +0200 @@ -1,22 +1,22 @@ # Irish translations for gawk. # Copyright (C) 2004 Free Software Foundation, Inc. -# Kevin Patrick Scannell , 2004. -# Peadar Guiln , 2005. +# Kevin Patrick Scannell , 2004. +# Peadar Guiln , 2005, 2007. # msgid "" msgstr "" -"Project-Id-Version: gawk 3.1.31\n" +"Project-Id-Version: gawk 3.1.5h\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" -"POT-Creation-Date: 2005-07-06 17:20+0300\n" -"PO-Revision-Date: 2005-01-03 13:47-0500\n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" +"PO-Revision-Date: 2007-10-01 13:47-0500\n" "Last-Translator: Peadar Guiln \n" -"Language-Team: Irish \n" +"Language-Team: Irish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #: array.c:112 -#, fuzzy, c-format +#, c-format msgid "attempt to use function `%s' as an array" msgstr "iarracht feidhm `%s' a sid mar eagar" @@ -31,750 +31,747 @@ msgstr "iarracht sclach '%s' a sid mar eagar" #: array.c:156 -#, fuzzy, c-format +#, c-format msgid "from %s" -msgstr "%s ( %s)" +msgstr " %s" -#: array.c:511 +#: array.c:514 #, c-format msgid "reference to uninitialized element `%s[\"%s\"]'" -msgstr "tagairt do eilimint gan ts `%s[\"%s\"]'" +msgstr "tagairt d'eilimint gan ts `%s[\"%s\"]'" -#: array.c:517 +#: array.c:520 #, c-format msgid "subscript of array `%s' is null string" msgstr "is teaghrn folamh foscript an eagair `%s'" -#: array.c:621 +#: array.c:624 #, c-format msgid "delete: index `%s' not in array `%s'" msgstr "delete: nl innacs `%s' san eagar `%s'" -#: array.c:791 +#: array.c:793 #, c-format msgid "%s: empty (null)\n" msgstr "%s: folamh (neamhn)\n" -#: array.c:796 +#: array.c:798 #, c-format msgid "%s: empty (zero)\n" msgstr "%s: folamh (nialas)\n" -#: array.c:800 +#: array.c:802 #, c-format msgid "%s: table_size = %d, array_size = %d\n" msgstr "%s: mid_tbla = %d, mid_eagair = %d\n" -#: array.c:829 -#, fuzzy, c-format +#: array.c:831 +#, c-format msgid "%s: is parameter\n" msgstr "%s: is paraimadar \n" -#: array.c:834 +#: array.c:836 #, c-format msgid "%s: array_ref to %s\n" msgstr "%s: tagairt_eagair do %s\n" -#: awkgram.y:208 -#, fuzzy, c-format +#: awkgram.y:215 +#, c-format msgid "%s blocks must have an action part" -msgstr "t g le pirt gnomhach ag blocanna CROCH" +msgstr "t g le pirt ghnomhach ag blocanna %s" -#: awkgram.y:211 -#, fuzzy +#: awkgram.y:218 msgid "each rule must have a pattern or an action part" -msgstr "t g le pirt gnomhach ag blocanna CROCH" +msgstr "t g le patrn n pirt ghnomhach ag gach riail" -#: awkgram.y:267 +#: awkgram.y:254 awkgram.y:263 +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "n thacaonn sean-awk le rialacha iomadla `BEGIN' n `END'" + +#: awkgram.y:282 #, c-format msgid "`%s' is a built-in function, it cannot be redefined" -msgstr "is feidhm insuite `%s', n fidir a shainmhneadh" +msgstr "is feidhm insuite `%s', n fidir a shainmhni" -#: awkgram.y:313 -#, fuzzy +#: awkgram.y:328 msgid "regexp constant `//' looks like a C++ comment, but is not" -msgstr "t cuma nta trchta C ar an dtairiseach `/%s/', ach n nta trchta " +msgstr "t cuma nta trchta C++ ar an dtairiseach `//', ach n nta trchta " -#: awkgram.y:316 +#: awkgram.y:331 #, c-format msgid "regexp constant `/%s/' looks like a C comment, but is not" msgstr "t cuma nta trchta C ar an dtairiseach `/%s/', ach n nta trchta " -#: awkgram.y:343 awkgram.y:623 +#: awkgram.y:358 awkgram.y:653 msgid "statement may have no effect" msgstr "seans nach mbeidh ifeacht ag an riteas" -#: awkgram.y:440 awkgram.y:460 -#, fuzzy, c-format +#: awkgram.y:455 awkgram.y:479 +#, c-format msgid "`%s' used in %s action" -msgstr "`next' sid ag an gnomh TS n CROCH" +msgstr "`%s' sid i ngnomh %s" -#: awkgram.y:453 awkgram.y:456 +#: awkgram.y:470 awkgram.y:474 msgid "`nextfile' is a gawk extension" msgstr "is feabhschn gawk `nextfile'" -#: awkgram.y:470 +#: awkgram.y:489 msgid "`return' used outside function context" -msgstr "`return' sid lasmuigh den comhthacs feidhmach" +msgstr "`return' sid lasmuigh den chomhthacs feidhmeach" -#: awkgram.y:512 +#: awkgram.y:531 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" msgstr "" -"is digh gur chir go mbeadh an gnth `print' sa riail TS n CROCH " -"scrobhtha mar `print \"\"'" +"is digh gur chir go mbeadh an gnth `print' sa riail TS n CROCH scrofa " +"mar `print \"\"'" -#: awkgram.y:525 awkgram.y:532 +#: awkgram.y:547 awkgram.y:555 msgid "`delete array' is a gawk extension" msgstr "is feabhschn gawk `delete array'" -#: awkgram.y:540 awkgram.y:547 -#, fuzzy +#: awkgram.y:569 awkgram.y:577 msgid "`delete(array)' is a non-portable tawk extension" -msgstr "is feabhschn gawk `delete array'" +msgstr "is feabhschn neamh-iniompartha tawk `delete(eagar)'" -#: awkgram.y:591 +#: awkgram.y:621 #, c-format msgid "duplicate case values in switch body: %s" -msgstr "" +msgstr "luachanna cs dbailte sa chorp laisce: %s" -#: awkgram.y:601 +#: awkgram.y:631 msgid "Duplicate `default' detected in switch body" -msgstr "" +msgstr "`default' dbailte aimsithe sa chorp laisce" -#: awkgram.y:690 +#: awkgram.y:720 msgid "multistage two-way pipelines don't work" -msgstr "n oibronn plnte dthreo ilchimeacha" +msgstr "n oibronn pblnte dthreo ilchimeacha" -#: awkgram.y:781 +#: awkgram.y:811 msgid "regular expression on right of assignment" -msgstr "slonn ionadaochta ar dhis an sannachin" +msgstr "slonn ionadaochta ar dhis an tsannachin" -#: awkgram.y:804 +#: awkgram.y:834 msgid "regular expression on left of `~' or `!~' operator" -msgstr "slonn ionadaochta ar chl an oibreoir `~' n `!~'" +msgstr "slonn ionadaochta ar chl na oibreoir `~' n `!~'" -#: awkgram.y:812 +#: awkgram.y:840 awkgram.y:913 +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "n thacaonn sean-awk le heochairfhocal `in' ach tar is `for'" + +#: awkgram.y:846 msgid "regular expression on right of comparison" msgstr "slonn ionadaochta ar dhis na comparide" -#: awkgram.y:879 +#: awkgram.y:903 msgid "non-redirected `getline' undefined inside END action" msgstr "n shannadh `getline' neamhatreoraithe lasmuigh den ghnomh CROCH" -#: awkgram.y:906 +#: awkgram.y:914 +msgid "old awk does not support multidimensional arrays" +msgstr "n thacaonn sean-awk le heagair iltoiseacha" + +#: awkgram.y:960 msgid "call of `length' without parentheses is not portable" -msgstr "t glao `length' gan libn doiompairtha" +msgstr "t glao `length' gan libn doiompartha" -#: awkgram.y:909 +#: awkgram.y:965 msgid "call of `length' without parentheses is deprecated by POSIX" msgstr "lochtaonn POSIX glao `length' gan libn" -#: awkgram.y:962 +#: awkgram.y:1019 msgid "use of non-array as array" -msgstr "" +msgstr "neamheagar sid mar eagar" -#: awkgram.y:964 +#: awkgram.y:1022 msgid "invalid subscript expression" msgstr "slonn foscripte neamhbhail" -#: awkgram.y:1171 -#, fuzzy +#: awkgram.y:1249 msgid "unexpected newline or end of string" -msgstr "lne nua gan sil" +msgstr "lne nua n deireadh teaghrin gan choinne" -#: awkgram.y:1267 +#: awkgram.y:1366 msgid "empty program text on command line" msgstr "tacs feidhmchlr folamh ar lne na n-orduithe" -#: awkgram.y:1320 +#: awkgram.y:1422 #, c-format msgid "can't open source file `%s' for reading (%s)" msgstr "n fidir an comhad foinseach `%s' a oscailt chun lamh (%s)" -#: awkgram.y:1397 +#: awkgram.y:1520 #, c-format msgid "can't read sourcefile `%s' (%s)" msgstr "n fidir an comhad foinseach `%s' a lamh (%s)" -#: awkgram.y:1405 +#: awkgram.y:1528 #, c-format msgid "source file `%s' is empty" msgstr "comhad foinseach `%s' folamh" -#: awkgram.y:1596 awkgram.y:1718 awkgram.y:1736 awkgram.y:2107 awkgram.y:2194 +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 msgid "source file does not end in newline" msgstr "n chrochnaonn an comhad foinseach le lne nua" -#: awkgram.y:1658 +#: awkgram.y:1782 msgid "unterminated regexp ends with `\\' at end of file" msgstr "crochnaonn regexp gan chrochn le `\\' ag an gcomhadchroch" -#: awkgram.y:1682 +#: awkgram.y:1806 #, c-format msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" -msgstr "" +msgstr "%s: %d: n oibronn an mionathraitheoir tawk regex `/.../%c' i ngawk" -#: awkgram.y:1686 +#: awkgram.y:1810 #, c-format msgid "tawk regex modifier `/.../%c' doesn't work in gawk" -msgstr "" +msgstr "n oibronn an mionathraitheoir tawk regex `/.../%c' i ngawk" -#: awkgram.y:1693 +#: awkgram.y:1817 msgid "unterminated regexp" msgstr "slonn ionadaochta gan crochn" -#: awkgram.y:1696 +#: awkgram.y:1820 msgid "unterminated regexp at end of file" msgstr "slonn ionadaochta gan crochn ag an gcomhadchroch" -#: awkgram.y:1762 +#: awkgram.y:1889 msgid "use of `\\ #...' line continuation is not portable" msgstr "nl sid `\\ #...' mar leanint lne doiompartha" -#: awkgram.y:1774 +#: awkgram.y:1902 msgid "backslash not last character on line" msgstr "n clslais carachtar deireanach an lne" -#: awkgram.y:1819 +#: awkgram.y:1947 msgid "POSIX does not allow operator `**='" msgstr "n cheadaonn POSIX an t-oibreoir `**='" -#: awkgram.y:1821 +#: awkgram.y:1949 msgid "old awk does not support operator `**='" -msgstr "n cheadaonn sean awk an t-oibreoir `**='" +msgstr "n cheadaonn sean-awk an t-oibreoir `**='" -#: awkgram.y:1830 +#: awkgram.y:1958 msgid "POSIX does not allow operator `**'" msgstr "n cheadaonn POSIX an t-oibreoir `**='" -#: awkgram.y:1832 +#: awkgram.y:1960 msgid "old awk does not support operator `**'" -msgstr "n cheadaonn sean awk an t-oibreoir `**='" +msgstr "n cheadaonn sean-awk an t-oibreoir `**='" -#: awkgram.y:1863 +#: awkgram.y:1991 msgid "operator `^=' is not supported in old awk" msgstr "t an t-oibreoir `^=' gan tacaocht sa shean awk" -#: awkgram.y:1871 +#: awkgram.y:1999 msgid "operator `^' is not supported in old awk" msgstr "t an t-oibreoir `^' gan tacaocht sa shean awk" -#: awkgram.y:1955 awkgram.y:1970 +#: awkgram.y:2083 awkgram.y:2098 msgid "unterminated string" msgstr "teaghrn gan chrochn" -#: awkgram.y:2155 +#: awkgram.y:2283 #, c-format msgid "invalid char '%c' in expression" msgstr "carachtar neamhbhail '%c' sa slonn" -#: awkgram.y:2203 +#: awkgram.y:2331 #, c-format msgid "`%s' is a gawk extension" msgstr "is feabhschn gawk `%s'" -#: awkgram.y:2206 +#: awkgram.y:2334 #, c-format msgid "`%s' is a Bell Labs extension" msgstr "is feabhschn Bell Labs `%s'" -#: awkgram.y:2209 +#: awkgram.y:2337 #, c-format msgid "POSIX does not allow `%s'" msgstr "n cheadaonn POSIX `%s'" -#: awkgram.y:2213 +#: awkgram.y:2341 #, c-format msgid "`%s' is not supported in old awk" msgstr "t `%s' gan tacaocht sa shean awk" -#: awkgram.y:2239 +#: awkgram.y:2367 msgid "`goto' considered harmful!\n" -msgstr "deirtear go bfhuil `goto' dochrach!\n" +msgstr "deirtear go bhfuil `goto' dochrach!\n" -#: awkgram.y:2301 +#: awkgram.y:2429 #, c-format msgid "%d is invalid as number of arguments for %s" msgstr "%d oiread argint neamhbhail le haghaidh %s" -#: awkgram.y:2320 awkgram.y:2323 +#: awkgram.y:2448 awkgram.y:2451 msgid "match: third argument is a gawk extension" -msgstr "meaitseil: is feabhschn gawk an tr argint" +msgstr "meaitseil: is feabhschn gawk an tr hargint" -#: awkgram.y:2336 +#: awkgram.y:2464 #, c-format msgid "%s: string literal as last arg of substitute has no effect" msgstr "" "%s: n bhonn aon ifeacht ag teaghrn litriil mar arg deireanach an ionada" -#: awkgram.y:2339 -#, fuzzy, c-format +#: awkgram.y:2467 +#, c-format msgid "%s third parameter is not a changeable object" -msgstr "n oibiacht athraitheach an tr paraimadar ionadaoch" +msgstr "n oibiacht athraitheach an tr paraimadar %s" -#: awkgram.y:2366 awkgram.y:2369 +#: awkgram.y:2494 awkgram.y:2497 msgid "close: second argument is a gawk extension" msgstr "close: is feabhschn gawk an dara hargint" -#: awkgram.y:2379 +#: awkgram.y:2507 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" -msgstr "t sid dcgettext(_\"...\") m-cheart: bain amach an chad fhostroc" +msgstr "t sid dcgettext(_\"...\") mcheart: bain amach an chad fhostroc" -#: awkgram.y:2394 -#, fuzzy +#: awkgram.y:2522 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" -msgstr "t sid dcgettext(_\"...\") m-cheart: bain amach an chad fhostroc" +msgstr "t sid dcgettext(_\"...\") mcheart: bain amach an chad fhostroc" -#: awkgram.y:2465 +#: awkgram.y:2594 #, c-format msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" -msgstr "feidhm `%s': is cip paraimadar #%d, `%s', den paraimadar #%d" +msgstr "feidhm `%s': is cip paraimadar #%d, `%s', den pharaimadar #%d" -#: awkgram.y:2498 +#: awkgram.y:2627 #, c-format msgid "function `%s': parameter `%s' shadows global variable" -msgstr "feidhm `%s': leanann paraimadar `%s' an athrg domhanda" +msgstr "feidhm `%s': leanann paraimadar `%s' athrg chomhchoiteann" -#: awkgram.y:2610 +#: awkgram.y:2739 #, c-format msgid "could not open `%s' for writing (%s)" msgstr "norbh fhidir `%s' a oscailt chun scrobh (%s)" -#: awkgram.y:2611 profile.c:93 +#: awkgram.y:2740 profile.c:94 msgid "sending profile to standard error" -msgstr "ag seoladh cuntas go earrid chaighdenach" +msgstr "prifl seoladh go hearrid chaighdenach" -#: awkgram.y:2643 +#: awkgram.y:2772 #, c-format msgid "%s: close failed (%s)" msgstr "%s: theip ar an dn (%s)" -#: awkgram.y:2764 +#: awkgram.y:2893 msgid "shadow_funcs() called twice!" msgstr "glaodh dh uair ar shadow_funcs()!" -#: awkgram.y:2791 +#: awkgram.y:2920 msgid "there were shadowed variables." -msgstr "" +msgstr "bh scthathrga ann." -#: awkgram.y:2864 +#: awkgram.y:2993 #, c-format msgid "function `%s': can't use function name as parameter name" msgstr "feidhm `%s': nl cead ainm feidhme a sid mar ainm paraimadar" -#: awkgram.y:2874 +#: awkgram.y:3003 #, c-format msgid "function name `%s' previously defined" -msgstr "ainm feidhme `%s' sainmhnithe chana" +msgstr "ainm feidhme `%s' sainmhnithe cheana" -#: awkgram.y:3025 awkgram.y:3031 +#: awkgram.y:3154 awkgram.y:3160 #, c-format msgid "function `%s' called but never defined" msgstr "glaodh ar an bhfeidhm `%s' nach bhfuil sainithe" -#: awkgram.y:3034 +#: awkgram.y:3163 #, c-format msgid "function `%s' defined but never called" msgstr "t saini ag an bhfeidhm `%s' ach n ghlaodh " -#: awkgram.y:3061 +#: awkgram.y:3190 #, c-format msgid "regexp constant for parameter #%d yields boolean value" -msgstr "tagann luach Boole de bharr n dtairiseach regexp don paraimadar #%d" +msgstr "tagann luach Boole de bharr n dtairiseach regexp don pharaimadar #%d" -#: awkgram.y:3105 -#, fuzzy, c-format +#: awkgram.y:3234 +#, c-format msgid "" "function `%s' called with space between name and `(',\n" "or used as a variable or an array" msgstr "" "glaodh feidhm `%s' le sps idir ainm agus `(',\n" -"%s" +"n sideadh mar athrg n mar eagar" -#: builtin.c:145 +#: builtin.c:119 #, c-format msgid "%s to \"%s\" failed (%s)" msgstr "theip ar %s go \"%s\" (%s)" -#: builtin.c:146 +#: builtin.c:120 msgid "standard output" msgstr "aschur caighdenach" -#: builtin.c:147 +#: builtin.c:121 msgid "reason unknown" msgstr "nl fhios an fth" -#: builtin.c:160 +#: builtin.c:134 msgid "exp: received non-numeric argument" msgstr "exp: fuarthas argint neamhuimhriil" -#: builtin.c:166 +#: builtin.c:140 #, c-format msgid "exp: argument %g is out of range" msgstr "exp: argint %g as raon" -#: builtin.c:224 +#: builtin.c:198 #, c-format msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" msgstr "fflush: n dhisfear: popa `%s' oscailte do lamh, n do scrobh" -#: builtin.c:227 +#: builtin.c:201 #, c-format msgid "fflush: cannot flush: file `%s' opened for reading, not writing" msgstr "fflush: n dhisfear: comhad `%s' oscailte do lamh, n do scrobh" -#: builtin.c:239 +#: builtin.c:213 #, c-format msgid "fflush: `%s' is not an open file, pipe or co-process" msgstr "fflush: n comhad, popa n comhphriseas oscailte `%s'" -#: builtin.c:332 +#: builtin.c:306 msgid "index: received non-string first argument" msgstr "index: n teaghrn an chad argint" -#: builtin.c:334 +#: builtin.c:308 msgid "index: received non-string second argument" msgstr "index: n teaghrn an dara hargint" -#: builtin.c:449 +#: builtin.c:423 msgid "int: received non-numeric argument" msgstr "int: fuarthas argint neamhuimhriil" -#: builtin.c:472 -#, fuzzy +#: builtin.c:448 msgid "`length(array)' is a gawk extension" -msgstr "is feabhschn gawk `delete array'" +msgstr "is feabhschn gawk `length(array)'" -#: builtin.c:481 +#: builtin.c:458 msgid "length: received non-string argument" msgstr "length: fuarthas argint nach teaghrn " -#: builtin.c:506 +#: builtin.c:483 msgid "log: received non-numeric argument" msgstr "log: fuarthas argint neamhuimhriil" -#: builtin.c:509 +#: builtin.c:486 #, c-format msgid "log: received negative argument %g" msgstr "log: fuarthas argint diltach %g" -#: builtin.c:673 builtin.c:676 +#: builtin.c:693 builtin.c:696 msgid "must use `count$' on all formats or none" msgstr "" +"m sidtear `count$' i bhformid ar bith, caithfidh a sid i ngach " +"formid " -#: builtin.c:778 +#: builtin.c:799 msgid "`$' is not permitted in awk formats" msgstr "Nl `$' ceadaithe i bhformid awk" -#: builtin.c:784 +#: builtin.c:805 msgid "arg count with `$' must be > 0" msgstr "caithfidh ireamh na harg. le `$' bheith > 0" -#: builtin.c:786 -#, fuzzy, c-format +#: builtin.c:807 +#, c-format msgid "arg count %ld greater than total number of supplied arguments" -msgstr "ireamh na harg. %d nos m n na hargint faighte" +msgstr "ireamh na harg. %ld nos m n na hargint faighte" -#: builtin.c:788 +#: builtin.c:809 msgid "`$' not permitted after period in format" msgstr "nl `$' ceadaithe i bhformid this punc" -#: builtin.c:801 +#: builtin.c:822 msgid "no `$' supplied for positional field width or precision" msgstr "nor thugadh `$' do leithead n beachtas an rimse ionaid" -#: builtin.c:867 +#: builtin.c:888 msgid "`l' is meaningless in awk formats; ignored" msgstr "nl ciall ag `l' i bhformid awk; neamhairdithe" -#: builtin.c:871 +#: builtin.c:892 msgid "`l' is not permitted in POSIX awk formats" msgstr "n cheadatear `l' i bhformid awk POSIX" -#: builtin.c:882 +#: builtin.c:903 msgid "`L' is meaningless in awk formats; ignored" msgstr "nl ciall ag `L' i bhformid awk; neamhairdithe" -#: builtin.c:886 +#: builtin.c:907 msgid "`L' is not permitted in POSIX awk formats" msgstr "n cheadatear `L' i bhformid awk POSIX" -#: builtin.c:897 +#: builtin.c:918 msgid "`h' is meaningless in awk formats; ignored" msgstr "nl ciall ag `h' i bhformid awk; neamhairdithe" -#: builtin.c:901 +#: builtin.c:922 msgid "`h' is not permitted in POSIX awk formats" msgstr "n cheadatear `h' i bhformid awk POSIX" -#: builtin.c:1132 +#: builtin.c:1182 #, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" -msgstr "" +msgstr "[s]printf: t luach %g as raon don bhformid `%%%c'" -#: builtin.c:1198 +#: builtin.c:1266 msgid "not enough arguments to satisfy format string" msgstr "n leor argint le haghaidh an teaghrin formide" -#: builtin.c:1200 +#: builtin.c:1268 msgid "^ ran out for this one" msgstr "^ imithe thar brid don cheann seo" -#: builtin.c:1205 +#: builtin.c:1274 msgid "[s]printf: format specifier does not have control letter" msgstr "[s]printf: nl litir rialchin ag an sonraitheoir formide" -#: builtin.c:1208 +#: builtin.c:1277 msgid "too many arguments supplied for format string" msgstr "fuarthas an iomarca argint don teaghrn formide" -#: builtin.c:1274 builtin.c:1277 +#: builtin.c:1352 builtin.c:1355 msgid "printf: no arguments" msgstr "printf: nl aon argint" -#: builtin.c:1301 +#: builtin.c:1379 msgid "sqrt: received non-numeric argument" msgstr "sqrt: fuarthas argint neamhuimhriil" -#: builtin.c:1305 +#: builtin.c:1383 #, c-format msgid "sqrt: called with negative argument %g" msgstr "sqrt: glaodh le argint diltach %g" -#: builtin.c:1329 +#: builtin.c:1407 #, c-format msgid "substr: start index %g is invalid, using 1" msgstr "substr: t ts innacs %g neamhbhail, ag sid a 1" -#: builtin.c:1334 +#: builtin.c:1412 #, c-format msgid "substr: non-integer start index %g will be truncated" -msgstr "substr: teascfar ts neamhuimhriil an innacs %g" +msgstr "substr: teascfar ts neamhuimhriil an innacs %g" -#: builtin.c:1353 -#, fuzzy, c-format +#: builtin.c:1431 +#, c-format msgid "substr: length %g is not >= 1" -msgstr "substr: t fad %g <= 0" +msgstr "substr: nl fad %g >= 1" -#: builtin.c:1355 -#, fuzzy, c-format +#: builtin.c:1433 +#, c-format msgid "substr: length %g is not >= 0" -msgstr "substr: t fad %g <= 0" +msgstr "substr: nl fad %g >= 0" -#: builtin.c:1362 +#: builtin.c:1440 #, c-format msgid "substr: non-integer length %g will be truncated" -msgstr "ubstr: teascfar an fad neamhuimhriil %g" +msgstr "ubstr: teascfar an fad neamhuimhriil %g" -#: builtin.c:1367 +#: builtin.c:1445 #, c-format msgid "substr: length %g too big for string indexing, truncating to %g" -msgstr "" +msgstr "substr: fad %g r-mhr d'innacs teaghrin, ag teascadh go %g" -#: builtin.c:1379 +#: builtin.c:1457 msgid "substr: source string is zero length" msgstr "substr: t an teaghrn foinse folamh" -#: builtin.c:1395 -#, fuzzy, c-format +#: builtin.c:1473 +#, c-format msgid "substr: start index %g is past end of string" -msgstr "substr: tosaonn innacs %d this deireadh an teaghrin" +msgstr "substr: innacs tosaithe %g tar is deireadh an teaghrin" -#: builtin.c:1403 -#, fuzzy, c-format +#: builtin.c:1481 +#, c-format msgid "" "substr: length %g at start index %g exceeds length of first argument (%lu)" -msgstr "substr: fad %d ag ts innacs %d r-fhada don chad argint (%d)" +msgstr "substr: fad %g ag innacs tosaithe %g rfhada don chad argint (%lu)" -#: builtin.c:1478 -#, fuzzy +#: builtin.c:1558 msgid "strftime: received non-string first argument" -msgstr "strftime: n teaghrn an chad argint" +msgstr "strftime: n teaghrn an chad argint" -#: builtin.c:1484 +#: builtin.c:1564 msgid "strftime: received empty format string" msgstr "strftime: fuarthas teaghrn formide folamh" -#: builtin.c:1493 -#, fuzzy +#: builtin.c:1573 msgid "strftime: received non-numeric second argument" msgstr "strftime: fuarthas dara hargint neamhuimhriil" -#: builtin.c:1556 +#: builtin.c:1650 msgid "mktime: received non-string argument" msgstr "mktime: n teaghrn an argint" -#: builtin.c:1601 -#, fuzzy +#: builtin.c:1695 msgid "system: received non-string argument" -msgstr "system: n teaghrn an argint" +msgstr "system: fuarthas argint nach teaghrn " -#: builtin.c:1722 eval.c:2039 -#, fuzzy, c-format +#: builtin.c:1816 eval.c:2041 +#, c-format msgid "reference to uninitialized field `$%d'" -msgstr "tagairt do athrg nach bhfuil tsaithe `%s'" +msgstr "tagairt d'athrg nach bhfuil tsaithe `$%d'" -#: builtin.c:1827 -#, fuzzy +#: builtin.c:1921 msgid "tolower: received non-string argument" -msgstr "tolower: n teaghrn an argint" +msgstr "tolower: fuarthas argint nach teaghrn " -#: builtin.c:1857 -#, fuzzy +#: builtin.c:1951 msgid "toupper: received non-string argument" -msgstr "toupper: n teaghrn an argint" +msgstr "toupper: fuarthas argint nach teaghrn " -#: builtin.c:1890 +#: builtin.c:1984 msgid "atan2: received non-numeric first argument" msgstr "atan2: n huimhir an chad argint" -#: builtin.c:1892 +#: builtin.c:1986 msgid "atan2: received non-numeric second argument" msgstr "atan2: n huimhir an dara hargint" -#: builtin.c:1911 +#: builtin.c:2005 msgid "sin: received non-numeric argument" msgstr "sin: fuarthas argint neamhuimhriil" -#: builtin.c:1927 +#: builtin.c:2021 msgid "cos: received non-numeric argument" msgstr "cos: fuarthas argint neamhuimhriil" -#: builtin.c:1977 +#: builtin.c:2071 msgid "srand: received non-numeric argument" msgstr "srand: fuarthas argint neamhuimhriil" -#: builtin.c:2012 +#: builtin.c:2106 msgid "match: third argument is not an array" -msgstr "match: n eagar an tr argint" +msgstr "match: n eagar an tr hargint" -#: builtin.c:2555 -#, fuzzy +#: builtin.c:2650 msgid "gensub: third argument of 0 treated as 1" -msgstr "gensub: 3 argint as 0 sidte mar 1" +msgstr "gensub: 3 hargint 0 sidte mar 1" -#: builtin.c:2715 +#: builtin.c:2766 msgid "lshift: received non-numeric first argument" msgstr "lshift: n huimhir an chad argint" -#: builtin.c:2717 -#, fuzzy +#: builtin.c:2768 msgid "lshift: received non-numeric second argument" -msgstr "atan2: n huimhir an dara hargint" +msgstr "lshift: n huimhir an dara hargint" -#: builtin.c:2723 +#: builtin.c:2774 #, c-format msgid "lshift(%lf, %lf): negative values will give strange results" msgstr "lshift(%lf, %lf): tiocfaidh tortha aisteacha as luachanna diltacha" -#: builtin.c:2725 +#: builtin.c:2776 #, c-format msgid "lshift(%lf, %lf): fractional values will be truncated" -msgstr "lshift(%lf, %lf): teascfar luachanna codnacha" +msgstr "lshift(%lf, %lf): teascfar luachanna codnacha" -#: builtin.c:2727 +#: builtin.c:2778 #, c-format msgid "lshift(%lf, %lf): too large shift value will give strange results" msgstr "" -"lshift(%lf, %lf): gheobhfar tortha aisteacha le luach iomlaoidach r-mhr" +"lshift(%lf, %lf): gheobhfar tortha aisteacha le luach iomlaoideach r-mhr" -#: builtin.c:2753 +#: builtin.c:2804 msgid "rshift: received non-numeric first argument" msgstr "rshift: n huimhir an chad argint" -#: builtin.c:2755 -#, fuzzy +#: builtin.c:2806 msgid "rshift: received non-numeric second argument" -msgstr "atan2: n huimhir an dara hargint" +msgstr "rshift: n huimhir an dara hargint" -#: builtin.c:2761 +#: builtin.c:2812 #, c-format msgid "rshift(%lf, %lf): negative values will give strange results" -msgstr "rshift(%lf, %lf): gheobhfar tortha aisteacha le luachanna ditlacha" +msgstr "rshift(%lf, %lf): gheobhfar tortha aisteacha le luachanna diltacha" -#: builtin.c:2763 +#: builtin.c:2814 #, c-format msgid "rshift(%lf, %lf): fractional values will be truncated" -msgstr "rshift(%lf, %lf): teascfar luachanna codnacha" +msgstr "rshift(%lf, %lf): teascfar luachanna codnacha" -#: builtin.c:2765 +#: builtin.c:2816 #, c-format msgid "rshift(%lf, %lf): too large shift value will give strange results" msgstr "" -"rshift(%lf, %lf): gheobhfar tortha aisteacha le luach iomlaoidach r-mhr" +"rshift(%lf, %lf): gheobhfar tortha aisteacha le luach iomlaoideach r-mhr" -#: builtin.c:2791 +#: builtin.c:2842 msgid "and: received non-numeric first argument" msgstr "and: n huimhir an chad argint" -#: builtin.c:2793 -#, fuzzy +#: builtin.c:2844 msgid "and: received non-numeric second argument" -msgstr "atan2: n huimhir an dara hargint" +msgstr "and: n huimhir an dara hargint" -#: builtin.c:2799 +#: builtin.c:2850 #, c-format msgid "and(%lf, %lf): negative values will give strange results" -msgstr "and(%lf, %lf): gheobhfar tortha aisteacha le luachanna ditlacha" +msgstr "and(%lf, %lf): gheobhfar tortha aisteacha le luachanna diltacha" -#: builtin.c:2801 +#: builtin.c:2852 #, c-format msgid "and(%lf, %lf): fractional values will be truncated" -msgstr "and(%lf, %lf): teascfar luachanna codnacha" +msgstr "and(%lf, %lf): teascfar luachanna codnacha" -#: builtin.c:2827 +#: builtin.c:2878 msgid "or: received non-numeric first argument" msgstr "or: n huimhir an chad argint" -#: builtin.c:2829 -#, fuzzy +#: builtin.c:2880 msgid "or: received non-numeric second argument" -msgstr "atan2: n huimhir an dara hargint" +msgstr "or: n huimhir an dara hargint" -#: builtin.c:2835 +#: builtin.c:2886 #, c-format msgid "or(%lf, %lf): negative values will give strange results" -msgstr "or(%lf, %lf): gheobhfar tortha aisteacha le luachanna ditlacha" +msgstr "or(%lf, %lf): gheobhfar tortha aisteacha le luachanna diltacha" -#: builtin.c:2837 +#: builtin.c:2888 #, c-format msgid "or(%lf, %lf): fractional values will be truncated" -msgstr "or(%lf, %lf): teascfar luachanna codnacha" +msgstr "or(%lf, %lf): teascfar luachanna codnacha" -#: builtin.c:2863 +#: builtin.c:2914 msgid "xor: received non-numeric first argument" msgstr "xor: n huimhir an chad argint" -#: builtin.c:2865 -#, fuzzy +#: builtin.c:2916 msgid "xor: received non-numeric second argument" -msgstr "atan2: n huimhir an dara hargint" +msgstr "xor: n huimhir an dara hargint" -#: builtin.c:2871 +#: builtin.c:2922 #, c-format msgid "xor(%lf, %lf): negative values will give strange results" -msgstr "xor(%lf, %lf): gheobhfar tortha aisteacha le luachanna ditlacha" +msgstr "xor(%lf, %lf): gheobhfar tortha aisteacha le luachanna diltacha" -#: builtin.c:2873 +#: builtin.c:2924 #, c-format msgid "xor(%lf, %lf): fractional values will be truncated" -msgstr "xor(%lf, %lf): teascfar luachanna codnacha" +msgstr "xor(%lf, %lf): teascfar luachanna codnacha" -#: builtin.c:2897 +#: builtin.c:2948 msgid "compl: received non-numeric argument" msgstr "compl: fuarthas argint neamhuimhriil" -#: builtin.c:2903 +#: builtin.c:2954 #, c-format msgid "compl(%lf): negative value will give strange results" -msgstr "compl(%lf): gheobhfar tortha aisteacha le luachanna ditlacha" +msgstr "compl(%lf): gheobhfar tortha aisteacha le luachanna diltacha" -#: builtin.c:2905 +#: builtin.c:2956 #, c-format msgid "compl(%lf): fractional value will be truncated" -msgstr "compl(%lf): teascfar luachanna codnacha" +msgstr "compl(%lf): teascfar luachanna codnacha" -#: builtin.c:3078 +#: builtin.c:3129 #, c-format msgid "dcgettext: `%s' is not a valid locale category" msgstr "dcgettext: n catagir lognach ceart `%s'" @@ -788,15 +785,15 @@ msgid "buffer overflow in genflags2str" msgstr "maoln thar maoil i genflags2str" -#: eval.c:385 eval.c:391 profile.c:838 +#: eval.c:385 eval.c:391 profile.c:817 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "iarracht eagar `%s' a sid i gcomhthacs sclach" #: eval.c:733 -#, fuzzy, c-format +#, c-format msgid "for loop: array `%s' changed size from %ld to %ld during loop execution" -msgstr "lb for: d'athraigh mid an eagair `%s' %d go %d i lr na libe" +msgstr "lb for: d'athraigh mid an eagair `%s' %ld go %ld i lr na libe" #: eval.c:754 msgid "`break' outside a loop is not portable" @@ -834,7 +831,7 @@ msgid "statement has no effect" msgstr "nl aon ifeacht ag an riteas" -#: eval.c:952 eval.c:1893 +#: eval.c:952 eval.c:1895 #, c-format msgid "can't use function name `%s' as variable or array" msgstr "n fidir ainm feidhme `%s' a sid mar athrg n eagar" @@ -842,12 +839,12 @@ #: eval.c:959 eval.c:965 #, c-format msgid "reference to uninitialized argument `%s'" -msgstr "tagairt do argint nach bhfuil tsaithe `%s'" +msgstr "tagairt d'argint nach bhfuil tsaithe `%s'" -#: eval.c:974 eval.c:1902 +#: eval.c:974 eval.c:1904 #, c-format msgid "reference to uninitialized variable `%s'" -msgstr "tagairt do athrg nach bhfuil tsaithe `%s'" +msgstr "tagairt d'athrg nach bhfuil tsaithe `%s'" #: eval.c:1120 msgid "" @@ -855,44 +852,44 @@ "another!" msgstr "comhchaitini: d'athraigh ifeachta sloinn amhin fad ceann eile!" -#: eval.c:1200 +#: eval.c:1202 msgid "assignment used in conditional context" msgstr "sannadh sidte i gcomhthacs coinnollach" -#: eval.c:1278 +#: eval.c:1280 msgid "division by zero attempted" msgstr "iarracht roinnt le nialas a dhanamh" -#: eval.c:1293 +#: eval.c:1295 #, c-format msgid "division by zero attempted in `%%'" msgstr "iarracht roinnt le nialas a dhanamh i `%%'" -#: eval.c:1308 profile.c:714 +#: eval.c:1310 profile.c:693 #, c-format msgid "illegal type (%s) in tree_eval" msgstr "cinel neamhcheadaithe (%s) i tree_eval" -#: eval.c:1471 +#: eval.c:1473 msgid "division by zero attempted in `/='" msgstr "iarracht roinnt le nialas a dhanamh i `/='" -#: eval.c:1493 +#: eval.c:1495 #, c-format msgid "division by zero attempted in `%%='" msgstr "iarracht roinnt le nialas a dhanamh i `%%='" -#: eval.c:1758 +#: eval.c:1760 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "glaodh ar fheidhm `%s' le nos m argint n mar a bh fgartha" -#: eval.c:1802 +#: eval.c:1804 #, c-format msgid "function `%s' not defined" msgstr "feidhm `%s' gan sainmhni" -#: eval.c:1865 +#: eval.c:1867 #, c-format msgid "" "\n" @@ -903,702 +900,727 @@ "\t# Cruach an Glaoigh ar an bhFeidhm:\n" "\n" -#: eval.c:1868 +#: eval.c:1870 #, c-format msgid "\t# -- main --\n" msgstr "\t# -- promh --\n" -#: eval.c:2023 +#: eval.c:2025 msgid "attempt to field reference from non-numeric value" msgstr "iarracht tagairt a fhil luach neamhuimhriil" -#: eval.c:2025 +#: eval.c:2027 msgid "attempt to reference from null string" msgstr "iarracht tagairt a fhil theaghrn neamhnitheach" -#: eval.c:2031 +#: eval.c:2033 #, c-format msgid "attempt to access field %d" msgstr "iarracht rochtain a dhanamh ar rimse %d" -#: eval.c:2052 eval.c:2059 profile.c:935 +#: eval.c:2054 eval.c:2061 profile.c:914 msgid "assignment is not allowed to result of builtin function" -msgstr "n fidir sannachn a dhanamh le toradh feidhm insuite" +msgstr "n fidir sannachn a dhanamh le toradh fheidhm insuite" -#: eval.c:2123 +#: eval.c:2125 msgid "`IGNORECASE' is a gawk extension" msgstr "is feabhschn gawk `IGNORECASE'" -#: eval.c:2153 +#: eval.c:2155 msgid "`BINMODE' is a gawk extension" msgstr "is feabhschn gawk `BINMODE'" -#: eval.c:2275 +#: eval.c:2277 #, c-format msgid "bad `%sFMT' specification `%s'" -msgstr "droch sonraocht`%sFMT' `%s'" +msgstr "drochshonraocht`%sFMT' `%s'" -#: eval.c:2353 +#: eval.c:2355 msgid "turning off `--lint' due to assignment to `LINT'" -msgstr "ag mchadh `--lint' de bharr sannachn go `LINT'" +msgstr "`--lint' mhchadh de bharr sannachn go `LINT'" -#: ext.c:60 ext.c:64 +#: ext.c:62 ext.c:67 msgid "`extension' is a gawk extension" msgstr "is feabhschn gawk `extension'" -#: ext.c:74 +#: ext.c:77 #, c-format msgid "extension: cannot open `%s' (%s)\n" msgstr "extension: n fidir oscailt `%s' (%s)\n" -#: ext.c:82 +#: ext.c:85 #, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "extension: leabharlann `%s': n fidir glaoigh ar fheidhm `%s' (%s)\n" -#: ext.c:102 +#: ext.c:105 msgid "extension: missing function name" -msgstr "" +msgstr "extension: ainm feidhme in easnamh" -#: ext.c:107 -#, fuzzy, c-format +#: ext.c:110 +#, c-format msgid "extension: illegal character `%c' in function name `%s'" -msgstr "extension: leabharlann `%s': n fidir glaoigh ar fheidhm `%s' (%s)\n" +msgstr "extension: carachtar neamhcheadaithe `%c' in ainm na feidhme `%s'" -#: ext.c:113 -#, fuzzy, c-format +#: ext.c:116 +#, c-format msgid "extension: can't redefine function `%s'" -msgstr "extension: n fidir oscailt `%s' (%s)\n" +msgstr "extension: n fidir feidhm `%s' a shainmhni ars" -#: ext.c:117 -#, fuzzy, c-format +#: ext.c:120 +#, c-format msgid "extension: function `%s' already defined" -msgstr "feidhm `%s' gan sainmhni" +msgstr "extension: sainmhnodh an fheidhm `%s' cheana" -#: ext.c:122 +#: ext.c:125 #, c-format msgid "extension: can't use gawk built-in `%s' as function name" -msgstr "" +msgstr "extension: n fidir insuite gawk `%s' a sid mar ainm feidhme" -#: ext.c:124 -#, fuzzy, c-format +#: ext.c:127 +#, c-format msgid "extension: function name `%s' previously defined" -msgstr "ainm feidhme `%s' sainmhnithe chana" +msgstr "extension: ainm feidhme `%s' sainmhnithe cheana" -#: ext.c:201 -#, fuzzy, c-format +#: ext.c:204 +#, c-format msgid "function `%s' defined to take no more than %d argument(s)" -msgstr "t saini ag an bhfeidhm `%s' ach n ghlaodh " +msgstr "n cheadaonn feidhm `%s' nos m n %d argint" -#: ext.c:204 -#, fuzzy, c-format +#: ext.c:207 +#, c-format msgid "function `%s': missing argument #%d" -msgstr "feidhm `%s' gan sainmhni" +msgstr "feidhm `%s': argint #%d ar iarraidh" -#: ext.c:214 -#, fuzzy, c-format +#: ext.c:217 +#, c-format msgid "function `%s': argument #%d: attempt to use scalar as an array" -msgstr "iarracht sclach '%s' a sid mar eagar" +msgstr "feidhm `%s': argint #%d: iarracht sclach a sid mar eagar" -#: ext.c:218 +#: ext.c:221 #, c-format msgid "function `%s': argument #%d: attempt to use array as a scalar" -msgstr "" +msgstr "feidhm `%s': argint #%d: iarracht sclach a sid mar eagar" -#: ext.c:243 +#: ext.c:246 msgid "Operation Not Supported" msgstr "Oibrocht Gan Tacaocht" -#: field.c:326 +#: field.c:330 msgid "NF set to negative value" msgstr "NF socraithe go luach diltach" -#: field.c:819 +#: field.c:823 msgid "split: second argument is not an array" msgstr "scoilt: n eagar an dara hargint" -#: field.c:853 +#: field.c:857 msgid "split: null string for third arg is a gawk extension" -msgstr "scoilt: is feabhschn gawk an teaghrn neamhnitheach don tr arg" +msgstr "" +"scoilt: is feabhschn gawk an teaghrn neamhnitheach don tr hargint" -#: field.c:905 +#: field.c:909 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "is feabhschn gawk `FIELDWIDTHS'" -#: field.c:935 field.c:946 +#: field.c:939 field.c:953 #, c-format msgid "invalid FIELDWIDTHS value, near `%s'" -msgstr "" +msgstr "luach FIELDWIDTHS neamhbhail cngarach le `%s'" -#: field.c:1027 +#: field.c:1036 msgid "null string for `FS' is a gawk extension" msgstr "is feabhschn gawk an teaghrn neamhnitheach do `FS'" -#: getopt.c:571 getopt.c:590 +#: field.c:1040 +msgid "old awk does not support regexps as value of `FS'" +msgstr "n thacaonn sean-awk le slonn ionadaochta mar luach de `FS'" + +#: getopt.c:571 getopt.c:587 #, c-format msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: t an rogha `%s' dbhroch\n" +msgstr "%s: T an rogha `%s' dbhroch\n" -#: getopt.c:623 getopt.c:627 +#: getopt.c:620 getopt.c:624 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: n cheadatear argint i ndiaidh an rogha `--%s'\n" +msgstr "%s: n cheadatear argint i ndiaidh na rogha `--%s'\n" -#: getopt.c:636 getopt.c:641 +#: getopt.c:633 getopt.c:638 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: n cheadatear argint i ndiaidh an rogha `%c%s'\n" +msgstr "%s: n cheadatear argint i ndiaidh na rogha `%c%s'\n" -#: getopt.c:687 getopt.c:709 getopt.c:1040 getopt.c:1062 +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 #, c-format msgid "%s: option `%s' requires an argument\n" -msgstr "%s: n folir argint don rogha `%s'\n" +msgstr "%s: t argint de dhth i ndiaidh na rogha `%s'\n" -#: getopt.c:747 getopt.c:750 +#: getopt.c:738 getopt.c:741 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: rogha anaithnid `--%s'\n" -#: getopt.c:758 getopt.c:761 +#: getopt.c:749 getopt.c:752 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: rogha anaithnid `%c%s'\n" -#: getopt.c:816 getopt.c:819 +#: getopt.c:804 getopt.c:807 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: rogha neamhcheadaithe -- %c\n" -#: getopt.c:825 getopt.c:828 +#: getopt.c:813 getopt.c:816 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: rogha neamhbhail -- %c\n" -#: getopt.c:883 getopt.c:902 getopt.c:1115 getopt.c:1136 main.c:448 +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 #, c-format msgid "%s: option requires an argument -- %c\n" -msgstr "%s: n folir argint don rogha -- %c\n" +msgstr "%s: t argint de dhth i ndiaidh na rogha -- %c\n" -#: getopt.c:955 getopt.c:974 +#: getopt.c:937 getopt.c:953 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: T an rogha `-W %s' dbhroch\n" -#: getopt.c:998 getopt.c:1019 +#: getopt.c:977 getopt.c:995 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: n cheadatear argint i ndiaidh an rogha `-W %s'\n" +msgstr "%s: n cheadatear argint i ndiaidh na rogha `-W %s'\n" -#: io.c:307 +#: io.c:345 #, c-format msgid "cannot open file `%s' for reading (%s)" msgstr "n fidir `%s' a oscailt chun a lamh (%s)" -#: io.c:398 +#: io.c:436 #, c-format msgid "close of fd %d (`%s') failed (%s)" msgstr "dnadh fd %d (`%s') teipthe (%s)" -#: io.c:536 +#: io.c:575 #, c-format msgid "invalid tree type %s in redirect()" msgstr "cinel crainn %s neamhbhail san atreor()" -#: io.c:542 +#: io.c:581 #, c-format msgid "expression in `%s' redirection only has numeric value" msgstr "nl ach luach uimhriil ag an slonn in atreor `%s'" -#: io.c:548 +#: io.c:587 #, c-format msgid "expression for `%s' redirection has null string value" msgstr "t luach teaghrin neamhnitheach ag an slonn in atreor `%s'" -#: io.c:553 +#: io.c:592 #, c-format msgid "filename `%s' for `%s' redirection may be result of logical expression" msgstr "" "seans gur toradh sloinn loighciil an comhadainm `%s' don atreor `%s'" -#: io.c:591 +#: io.c:630 #, c-format msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" msgstr "meascn neamhriachtanach de `>' agus `>>' do chomhad `%.*s'" -#: io.c:643 +#: io.c:682 #, c-format msgid "can't open pipe `%s' for output (%s)" -msgstr "n fidir popa `%s' a oscailt do aschur (%s)" +msgstr "n fidir popa `%s' a oscailt d'aschur (%s)" -#: io.c:652 +#: io.c:691 #, c-format msgid "can't open pipe `%s' for input (%s)" -msgstr "n fidir popa `%s' a oscailt do ionchur (%s)" +msgstr "n fidir popa `%s' a oscailt d'ionchur (%s)" + +#: io.c:698 io.c:1448 +#, c-format +msgid "file `%s' is a directory" +msgstr "n comhadlann an comhad `%s'" -#: io.c:665 +#: io.c:706 #, c-format msgid "can't open two way socket `%s' for input/output (%s)" -msgstr "n fidir an soicad dthreo `%s' a oscailt do ionchur/aschur (%s)" +msgstr "n fidir an soicad dthreo `%s' a oscailt d'ionchur/aschur (%s)" -#: io.c:669 +#: io.c:710 #, c-format msgid "can't open two way pipe `%s' for input/output (%s)" -msgstr "n fidir an popa dthreo `%s' a oscailt do ionchur/aschur (%s)" +msgstr "n fidir an popa dthreo `%s' a oscailt d'ionchur/aschur (%s)" -#: io.c:745 +#: io.c:786 #, c-format msgid "can't redirect from `%s' (%s)" msgstr "n fidir atreor `%s' (%s)" -#: io.c:748 +#: io.c:789 #, c-format msgid "can't redirect to `%s' (%s)" msgstr "n fidir atreor go `%s' (%s)" -#: io.c:787 +#: io.c:828 msgid "" "reached system limit for open files: starting to multiplex file descriptors" msgstr "" -"tagtha chuig teorainn crais do chomhadlanna oscailte: ag tosn " +"tagtha chuig teorainn an chrais do chomhadlanna oscailte: ag tos " "tuairisceoir na gcomhadlann a ilphlacsadh" -#: io.c:803 +#: io.c:844 #, c-format msgid "close of `%s' failed (%s)." msgstr "dnadh `%s' teipthe (%s)." -#: io.c:811 +#: io.c:852 msgid "too many pipes or input files open" msgstr "t an iomarca popa n comhadlanna ionchuir oscailte" -#: io.c:834 +#: io.c:875 msgid "close: second argument must be `to' or `from'" msgstr "close: t `to' n `from' de dhth mar dara hargint" -#: io.c:848 +#: io.c:889 #, c-format msgid "close: `%.*s' is not an open file, pipe or co-process" -msgstr "close: n comhad oscailte, popa n comhphrisas `%.*s'" +msgstr "close: n comhad oscailte, popa n comhphriseas `%.*s'" -#: io.c:852 +#: io.c:893 msgid "close of redirection that was never opened" -msgstr "dnadh atreoraithe nach n-oscladh ariamh" +msgstr "dnadh atreoraithe nach n-oscladh riamh" -#: io.c:948 +#: io.c:989 #, c-format msgid "close: redirection `%s' not opened with `|&', second argument ignored" msgstr "" "close: nl atreor `%s' oscailte le `|&', rinneadh neamhaird ar an dara " "hargint" -#: io.c:964 +#: io.c:1005 #, c-format msgid "failure status (%d) on pipe close of `%s' (%s)" msgstr "stdas teipfhulangach (%d) ar dnadh an phopa `%s' (%s)" -#: io.c:967 +#: io.c:1008 #, c-format msgid "failure status (%d) on file close of `%s' (%s)" msgstr "stdas teipfhulangach (%d) ar dnadh an chomhaid `%s' (%s)" -#: io.c:987 +#: io.c:1028 #, c-format msgid "no explicit close of socket `%s' provided" msgstr "n fhuarthas dnadh lir an tsoicid `%s'" -#: io.c:990 +#: io.c:1031 #, c-format msgid "no explicit close of co-process `%s' provided" -msgstr "n fhuarthas dnadh lir an chomhphriseis `%s'" +msgstr "n fhuarthas dnadh lir an chomhphrisis `%s'" -#: io.c:993 +#: io.c:1034 #, c-format msgid "no explicit close of pipe `%s' provided" msgstr "n fhuarthas dnadh lir an phopa `%s'" -#: io.c:996 +#: io.c:1037 #, c-format msgid "no explicit close of file `%s' provided" msgstr "n fhuarthas dnadh lir an chomhaid `%s'" -#: io.c:1025 io.c:1080 main.c:718 main.c:756 +#: io.c:1066 io.c:1121 main.c:749 main.c:791 #, c-format msgid "error writing standard output (%s)" -msgstr "earrid agus ag scrobh go haschur caighdenach (%s)" +msgstr "earrid agus aschur caighdenach scrobh (%s)" -#: io.c:1029 io.c:1085 +#: io.c:1070 io.c:1126 #, c-format msgid "error writing standard error (%s)" -msgstr "earrid agus ag scrobh go hearrid caighdenach (%s)" +msgstr "earrid agus earrid caighdenach scrobh (%s)" -#: io.c:1037 +#: io.c:1078 #, c-format msgid "pipe flush of `%s' failed (%s)." msgstr "sruthladh popa `%s' teipthe (%s)." -#: io.c:1040 +#: io.c:1081 #, c-format msgid "co-process flush of pipe to `%s' failed (%s)." -msgstr "sruthladh comhphrseis an phopa go `%s' teipthe (%s)." +msgstr "sruthladh comhphrisis an phopa go `%s' teipthe (%s)." -#: io.c:1043 +#: io.c:1084 #, c-format msgid "file flush of `%s' failed (%s)." msgstr "sruthladh comhaid `%s' teipthe (%s)." -#: io.c:1205 +#: io.c:1198 +#, c-format +msgid "local port %s invalid in `/inet'" +msgstr "port lognta %s neamhbhail i `/inet'" + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "eolas neamhbhail faoin chiansta agus port (%s, %s)" + +#: io.c:1250 msgid "/inet/raw client not ready yet, sorry" msgstr "t brn orm, nl an cliant /inet/raw ridh go fill" -#: io.c:1207 io.c:1244 +#: io.c:1253 io.c:1289 msgid "only root may use `/inet/raw'." msgstr "`/inet/raw' ceadaithe do root amhin." -#: io.c:1242 +#: io.c:1287 msgid "/inet/raw server not ready yet, sorry" msgstr "t brn orm, nl an freastala /inet/raw r go fill" -#: io.c:1332 +#: io.c:1385 #, c-format msgid "no (known) protocol supplied in special filename `%s'" msgstr "n fhuarthas for phrtacal sa chomhadainm speisialta `%s'" -#: io.c:1350 +#: io.c:1399 #, c-format msgid "special file name `%s' is incomplete" msgstr "nl an comhadainm speisialta `%s' iomln" -#: io.c:1362 -#, c-format -msgid "local port invalid in `%s'" -msgstr "port lognta neamhbhail i `%s'" - -#: io.c:1374 +#: io.c:1414 msgid "must supply a remote hostname to `/inet'" msgstr "t ainm cianstaigh de dhth ag `/inet'" -#: io.c:1389 +#: io.c:1432 msgid "must supply a remote port to `/inet'" msgstr "t cianphort de dhth ag `/inet'" -#: io.c:1395 -#, c-format -msgid "remote port invalid in `%s'" -msgstr "cianphort neamhbhail i `%s'" - -#: io.c:1405 +#: io.c:1439 msgid "TCP/IP communications are not supported" msgstr "cumarsid TCP/IP gan tacaocht" -#: io.c:1414 io.c:1595 -#, c-format -msgid "file `%s' is a directory" -msgstr "n comhadlann an comhad `%s'" - -#: io.c:1484 +#: io.c:1509 #, c-format msgid "use `PROCINFO[\"%s\"]' instead of `%s'" msgstr "sid `PROCINFO[\"%s\"]' in ionad `%s'" -#: io.c:1516 +#: io.c:1547 msgid "use `PROCINFO[...]' instead of `/dev/user'" msgstr "sid `PROCINFO[...]' in ionad `/dev/user'" -#: io.c:1581 io.c:1763 +#: io.c:1612 io.c:1798 #, c-format msgid "could not open `%s', mode `%s'" msgstr "norbh fhidir `%s' a oscailt, md `%s'" -#: io.c:1814 -#, fuzzy, c-format +#: io.c:1849 +#, c-format msgid "close of master pty failed (%s)" -msgstr "theip ar dnadh phopa (%s)" +msgstr "theip ar dnadh mistir-pty (%s)" -#: io.c:1816 io.c:1968 io.c:2119 +#: io.c:1851 io.c:2003 io.c:2154 #, c-format msgid "close of stdout in child failed (%s)" msgstr "theip ar dnadh aschuir caighdenach i mac teipthe (%s)" -#: io.c:1819 -#, fuzzy, c-format +#: io.c:1854 +#, c-format msgid "moving slave pty to stdout in child failed (dup: %s)" -msgstr "ag bogadh popa go haschur caighdenach i mac teipthe (dup: %s)" +msgstr "" +"theip ar bogadh an pty sclbhnta go haschur caighdenach sa mhac (dup: %s)" -#: io.c:1821 io.c:1973 +#: io.c:1856 io.c:2008 #, c-format msgid "close of stdin in child failed (%s)" -msgstr "theip ar dnadh ionchuir caighdenach i mac teipthe (%s)" +msgstr "theip ar dnadh ionchuir caighdenach i mac (%s)" -#: io.c:1824 -#, fuzzy, c-format +#: io.c:1859 +#, c-format msgid "moving slave pty to stdin in child failed (dup: %s)" -msgstr "ag bogadh popa go ionchur caighdenach i mac teipthe (dup: %s)" +msgstr "" +"theip ar bogadh an pty sclbhnta go hionchuir caighdenach sa mhac (dup: %s)" -#: io.c:1826 io.c:1845 -#, fuzzy, c-format +#: io.c:1861 io.c:1880 +#, c-format msgid "close of slave pty failed (%s)" -msgstr "theip ar dnadh phopa (%s)" +msgstr "theip ar dnadh an pty sclbhnta (%s)" -#: io.c:1919 io.c:1971 io.c:2100 io.c:2122 +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 #, c-format msgid "moving pipe to stdout in child failed (dup: %s)" -msgstr "ag bogadh popa go haschur caighdenach i mac teipthe (dup: %s)" +msgstr "theip ar bhogadh popa go haschur caighdenach i mac (dup: %s)" -#: io.c:1923 io.c:1976 +#: io.c:1958 io.c:2011 #, c-format msgid "moving pipe to stdin in child failed (dup: %s)" -msgstr "ag bogadh popa go ionchur caighdenach i mac teipthe (dup: %s)" +msgstr "theip ar bhogadh popa go hionchur caighdenach i mac (dup: %s)" -#: io.c:1940 io.c:2113 +#: io.c:1975 io.c:2148 msgid "restoring stdout in parent process failed\n" -msgstr "theip ar dul ar ais go haschur caighdenach i mthair teipthe\n" +msgstr "theip ar dhul ar ais go haschur caighdenach i mthair teipthe\n" -#: io.c:1945 +#: io.c:1980 msgid "restoring stdin in parent process failed\n" -msgstr "theip ar dul ar ais go ionchur caighdenach i mthair teipthe\n" +msgstr "theip ar dhul ar ais go hionchur caighdenach i mthair teipthe\n" -#: io.c:1979 io.c:2124 io.c:2135 +#: io.c:2014 io.c:2159 io.c:2170 #, c-format msgid "close of pipe failed (%s)" msgstr "theip ar dnadh phopa (%s)" -#: io.c:2024 +#: io.c:2059 msgid "`|&' not supported" msgstr "`|&' gan tacaocht" -#: io.c:2090 +#: io.c:2125 #, c-format msgid "cannot open pipe `%s' (%s)" msgstr "n fidir popa `%s' a oscailt (%s)" -#: io.c:2131 +#: io.c:2166 #, c-format msgid "cannot create child process for `%s' (fork: %s)" msgstr "n fidir mac a dhanamh do `%s' (fork: %s)" -#: io.c:2506 +#: io.c:2548 #, c-format msgid "data file `%s' is empty" msgstr "t comhad sonra `%s' folamh" -#: io.c:2547 io.c:2555 +#: io.c:2589 io.c:2597 msgid "could not allocate more input memory" -msgstr "" +msgstr "norbh fhidir nos m cuimhne ionchuir a leithdhileadh" -#: io.c:2919 io.c:2984 +#: io.c:2965 io.c:3038 #, c-format msgid "error reading input file `%s': %s" msgstr "earrid ag lamh comhad aschuir `%s': %s" -#: io.c:3109 +#: io.c:3163 msgid "multicharacter value of `RS' is a gawk extension" msgstr "is feabhschn gawk an luach ilcharachtar 'RS'" -#: main.c:338 +#: main.c:351 msgid "`-m[fr]' option irrelevant in gawk" msgstr "`-m[fr]' rogha neamhbhartha i ngawk" -#: main.c:340 +#: main.c:353 msgid "-m option usage: `-m[fr] nnn'" msgstr "sid rogha -m: `-m[fr] nnn'" -#: main.c:357 +#: main.c:370 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: rogha `-W %s' anaithnid, rinneadh neamhshuim air\n" -#: main.c:394 +#: main.c:407 msgid "empty argument to `--source' ignored" -msgstr "rinneadh neamhshuim ar argint folamh go `--source'" +msgstr "rinneadh neamhshuim ar argint fholamh go `--source'" -#: main.c:467 +#: main.c:480 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" msgstr "athrg thimpeallachta `POSIXLY_CORRECT' socraithe: ag lasadh `--posix'" -#: main.c:472 +#: main.c:486 msgid "`--posix' overrides `--traditional'" msgstr "sraonn `--posix' `--traditional'" -#: main.c:483 +#: main.c:497 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" msgstr "sraonn `--posix'/`--traditional' `--non-decimal-data'" -#: main.c:487 -#, fuzzy, c-format +#: main.c:501 +#, c-format msgid "running %s setuid root may be a security problem" msgstr "seans gur neamhdhaingean ag rith %s setuid root" -#: main.c:528 -#, fuzzy, c-format +#: main.c:542 +#, c-format msgid "can't set binary mode on stdin (%s)" -msgstr "n fidir md a shocr ar stdin (%s)" +msgstr "n fidir md dnrtha a shocr ar stdin (%s)" -#: main.c:531 -#, fuzzy, c-format +#: main.c:545 +#, c-format msgid "can't set binary mode on stdout (%s)" -msgstr "n fidir md a shocr ar stdout (%s)" +msgstr "n fidir md dnrtha a shocr ar stdout (%s)" -#: main.c:533 -#, fuzzy, c-format +#: main.c:547 +#, c-format msgid "can't set binary mode on stderr (%s)" -msgstr "n fidir md a shocr ar stderr (%s)" +msgstr "n fidir md dnrtha a shocr ar stderr (%s)" -#: main.c:572 +#: main.c:586 msgid "no program text at all!" msgstr "nl aon tacs sa romhchlr!" -#: main.c:665 +#: main.c:690 #, c-format msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" msgstr "" "sid: %s [roghanna cinel POSIX n GNU] -f clrchomhad [--] comhad ...\n" -#: main.c:667 +#: main.c:692 #, c-format msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" msgstr "" "sid: %s [roghanna cinel POSIX n GNU] [--] %cromhchlr%c comhad ...\n" -#: main.c:672 +#: main.c:697 msgid "POSIX options:\t\tGNU long options:\n" msgstr "roghanna POSIX:\t\tGNU roghanna fada:\n" -#: main.c:673 +#: main.c:698 msgid "\t-f progfile\t\t--file=progfile\n" msgstr "\t-f comhad\t\t--file=progfile\n" -#: main.c:674 +#: main.c:699 msgid "\t-F fs\t\t\t--field-separator=fs\n" msgstr "\t-F fs\t\t\t--field-separator=fs\n" -#: main.c:675 +#: main.c:700 msgid "\t-v var=val\t\t--assign=var=val\n" msgstr "\t-v athrg=luach\t\t--assign=athrg=luach\n" -#: main.c:676 +#: main.c:701 msgid "\t-m[fr] val\n" msgstr "\t-m[fr] luach\n" -#: main.c:677 +#: main.c:702 msgid "\t-W compat\t\t--compat\n" msgstr "\t-W compat\t\t--compat\n" -#: main.c:678 +#: main.c:703 msgid "\t-W copyleft\t\t--copyleft\n" msgstr "\t-W copyleft\t\t--copyleft\n" -#: main.c:679 +#: main.c:704 msgid "\t-W copyright\t\t--copyright\n" msgstr "\t-W copyright\t\t--copyright\n" -#: main.c:680 +#: main.c:705 msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" msgstr "\t-W dump-variables[=comhad]\t--dump-variables[=comhad]\n" -#: main.c:681 -#, fuzzy +#: main.c:706 msgid "\t-W exec=file\t\t--exec=file\n" -msgstr "\t-W profile[=comhad]\t--profile[=comhad]\n" +msgstr "\t-W exec=comhad\t\t--exec=comhad\n" -#: main.c:682 +#: main.c:707 msgid "\t-W gen-po\t\t--gen-po\n" msgstr "\t-W gen-po\t\t--gen-po\n" -#: main.c:683 +#: main.c:708 msgid "\t-W help\t\t\t--help\n" msgstr "\t-W help\t\t\t--help\n" -#: main.c:684 +#: main.c:709 msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" msgstr "\t-W lint[=fatal]\t\t--lint[=fatal]\n" -#: main.c:685 +#: main.c:710 msgid "\t-W lint-old\t\t--lint-old\n" msgstr "\t-W lint-old\t\t--lint-old\n" -#: main.c:686 +#: main.c:711 msgid "\t-W non-decimal-data\t--non-decimal-data\n" msgstr "\t-W non-decimal-data\t--non-decimal-data\n" -#: main.c:688 +#: main.c:713 msgid "\t-W nostalgia\t\t--nostalgia\n" msgstr "\t-W nostalgia\t\t--nostalgia\n" -#: main.c:691 +#: main.c:716 msgid "\t-W parsedebug\t\t--parsedebug\n" msgstr "\t-W parsedebug\t\t--parsedebug\n" -#: main.c:693 +#: main.c:718 msgid "\t-W profile[=file]\t--profile[=file]\n" msgstr "\t-W profile[=comhad]\t--profile[=comhad]\n" -#: main.c:694 +#: main.c:719 msgid "\t-W posix\t\t--posix\n" msgstr "\t-W posix\t\t--posix\n" -#: main.c:695 +#: main.c:720 msgid "\t-W re-interval\t\t--re-interval\n" msgstr "\t-W re-interval\t\t--re-interval\n" -#: main.c:696 +#: main.c:721 msgid "\t-W source=program-text\t--source=program-text\n" msgstr "\t-W source=program-text\t--source=program-text\n" -#: main.c:697 +#: main.c:722 msgid "\t-W traditional\t\t--traditional\n" msgstr "\t-W traditional\t\t--traditional\n" -#: main.c:698 +#: main.c:723 msgid "\t-W usage\t\t--usage\n" msgstr "\t-W usage\t\t--usage\n" -#: main.c:699 +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "\t-W use-lc-numeric\t--use-lc-numeric\n" + +#: main.c:725 msgid "\t-W version\t\t--version\n" msgstr "\t-W version\t\t--version\n" -#: main.c:703 -#, fuzzy +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 msgid "" "\n" "To report bugs, see node `Bugs' in `gawk.info', which is\n" "section `Reporting Problems and Bugs' in the printed version.\n" "\n" -msgstr "sa rannn `Reporting Problems and Bugs' sa leagan faoi chl.\n" +msgstr "" +"\n" +"Chun tuairisc fabhtanna a sheoladh, fach ar `Bugs' sa `gawk.info', at\n" +"sa rannn `Reporting Problems and Bugs' sa leagan faoi chl.\n" +"\n" -#: main.c:707 +#: main.c:738 msgid "" "gawk is a pattern scanning and processing language.\n" "By default it reads standard input and writes standard output.\n" "\n" msgstr "" +"is teanga gawk a scanann agua a phriseileann patrin.\n" +"De rir ramhsocraithe lann s ionchur caighdenach agus scrobhann s go " +"haschur caighdenach.\n" +"\n" -#: main.c:711 +#: main.c:742 msgid "" "Examples:\n" "\tgawk '{ sum += $1 }; END { print sum }' file\n" "\tgawk -F: '{ print $1 }' /etc/passwd\n" msgstr "" +"Sampla:\n" +"\tgawk '{ sum += $1 }; END { print sum }' comhad\n" +"\tgawk -F: '{ print $1 }' /etc/passwd\n" -#: main.c:731 +#: main.c:762 #, c-format msgid "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" +"the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" msgstr "" -"Copyright (C) 1989, 1991-%d Free Software Foundation.\n" +"Copyright 1989, 1991-%d Free Software Foundation.\n" "\n" -"Is saorbhogearra an romhchlr seo; is fidir leat a scaipeadh agus/n\n" +"Is saorbhogearra an romhchlr seo; is fidir leat a scaipeadh agus/n\n" "a athr de rir na gcoinnollacha den GNU General Public License mar at\n" -"foilsithe ag an Free Software Foundation; faoi leagan 2 den cheadnas,\n" +"foilsithe ag an Free Software Foundation; faoi leagan 3 den cheadnas,\n" "n (ms mian leat) aon leagan nos dana.\n" "\n" -#: main.c:739 +#: main.c:770 msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -1607,63 +1629,62 @@ "\n" msgstr "" "Scaiptear an romhchlr seo le sil go mbeidh s isiil,\n" -"ach GAN AON BARNTA; go fi gan an barntas intuigthe de\n" -"INDOLTACHT n FEILINACHT DO FHEIDHM AR LEITH. Fach ar an\n" +"ach GAN AON BARNTA; go fi gan an barntas intuigthe\n" +"d'INDOLTACHT n FEILINACHT D'FHEIDHM AR LEITH. Fach ar an\n" "GNU General Public License chun nos m sonra a fhil.\n" "\n" -#: main.c:745 +#: main.c:781 msgid "" "You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" -msgstr "" -"Ba chomhair go mbeife tar is cip den GNU General Public License a fhil\n" -"in ineacht leis an romhchlr seo; mura bhfuair, scrobh chuig an\n" -"Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,\n" -"Boston, MA 02110-1301, USA.\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" +msgstr "" +"Ba chir go mbeife tar is cip den GNU General Public License\n" +"a fhil in ineacht leis an romhchlr seo; mura bhfuair,\n" +"fach ar http://www.gnu.org/licenses/.\n" -#: main.c:781 +#: main.c:816 msgid "-Ft does not set FS to tab in POSIX awk" msgstr "n athraonn -Ft FS go tb san awk POSIX" -#: main.c:1018 +#: main.c:1060 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" "\n" msgstr "" +"%s: nl an argint `%s' go `-v' san fhoirm `var=value'\n" +"\n" -#: main.c:1038 +#: main.c:1080 #, c-format msgid "`%s' is not a legal variable name" -msgstr "" +msgstr "n ainm athrige dleathil `%s'" -#: main.c:1041 +#: main.c:1083 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" -msgstr "" +msgstr "n ainm athrige `%s', ag lorg comhad `%s=%s'" -#: main.c:1074 +#: main.c:1122 msgid "floating point exception" msgstr "eisceacht snmhphointe" -#: main.c:1081 +#: main.c:1129 msgid "fatal error: internal error" -msgstr "earrid marfach: earrid inmhenach" +msgstr "earrid mharfach: earrid inmhenach" -#: main.c:1132 +#: main.c:1180 #, c-format msgid "no pre-opened fd %d" msgstr "nl aon fd %d ramhoscailte" -#: main.c:1139 +#: main.c:1187 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "norbh fhidir /dev/null a ramhoscailt do fd %d" -#: main.c:1162 main.c:1171 +#: main.c:1210 main.c:1219 #, c-format msgid "could not find groups: %s" msgstr "n fidir na grpa a aimsi: %s" @@ -1685,23 +1706,28 @@ msgid "fatal: " msgstr "marfach: " -#: node.c:59 node.c:66 node.c:75 node.c:90 node.c:119 +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 msgid "can't convert string to float" msgstr "n fidir teaghrn a thiont go snmhphointe" -#: node.c:414 +#: node.c:406 msgid "backslash at end of string" msgstr "clslais ag deireadh an teaghrin" -#: node.c:604 +#: node.c:548 +#, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "n thacaonn sean-awk le seicheamh alaithe `\\%c'" + +#: node.c:599 msgid "POSIX does not allow `\\x' escapes" msgstr "n cheadaonn POSIX alaithe `\\x'" -#: node.c:610 +#: node.c:605 msgid "no hex digits in `\\x' escape sequence" msgstr "nl digit heicsidheachlach sa seicheamh alaithe `\\x'" -#: node.c:644 +#: node.c:639 #, c-format msgid "escape sequence `\\%c' treated as plain `%c'" msgstr "seicheamh alaithe `\\%c' sidte mar ghnth `%c'" @@ -1711,31 +1737,31 @@ msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" msgstr "%s %s `%s': norbh fhidir close-on-exec a shannadh: (fcntl: %s)" -#: profile.c:91 +#: profile.c:92 #, c-format msgid "could not open `%s' for writing: %s" -msgstr "Norbh fhidir `%s' a oscailt chun scroch ann: %s" +msgstr "Norbh fhidir `%s' a oscailt chun scrobh ann: %s" -#: profile.c:467 -#, fuzzy, c-format +#: profile.c:450 +#, c-format msgid "internal error: %s with null vname" -msgstr "earrid inmhenach: Node_var le vname nialasacha" +msgstr "earrid inmhenach: %s le vname nialasach" -#: profile.c:531 +#: profile.c:514 msgid "# treated internally as `delete'" -msgstr "" +msgstr "# sidte go hinmhenach mar `delete'" -#: profile.c:1168 +#: profile.c:1147 #, c-format msgid "# this is a dynamically loaded extension function" -msgstr "" +msgstr "# is feidhm iarmhreach seo at le lucht go dinimiciil" -#: profile.c:1199 +#: profile.c:1178 #, c-format msgid "\t# gawk profile, created %s\n" msgstr "\t# cuntas gawk, cruthaodh %s\n" -#: profile.c:1202 +#: profile.c:1181 #, c-format msgid "" "\t# BEGIN block(s)\n" @@ -1744,7 +1770,7 @@ "\t# TS bloc(anna)\n" "\n" -#: profile.c:1212 +#: profile.c:1191 #, c-format msgid "" "\t# Rule(s)\n" @@ -1753,7 +1779,7 @@ "\t# Riail(eacha)\n" "\n" -#: profile.c:1218 +#: profile.c:1197 #, c-format msgid "" "\t# END block(s)\n" @@ -1762,7 +1788,7 @@ "\t# CROCH bloc(anna)\n" "\n" -#: profile.c:1238 +#: profile.c:1217 #, c-format msgid "" "\n" @@ -1771,85 +1797,85 @@ "\n" "\t# Feidhmeanna, i liosta aibtreach\n" -#: profile.c:1453 +#: profile.c:1470 #, c-format msgid "unexpected type %s in prec_level" msgstr "cinel gan sil %s i prec_level" -#: regcomp.c:160 +#: regcomp.c:132 msgid "Success" -msgstr "Bua!" +msgstr "D'irigh leis" -#: regcomp.c:163 +#: regcomp.c:135 msgid "No match" msgstr "Nl a leithid ann" -#: regcomp.c:166 +#: regcomp.c:138 msgid "Invalid regular expression" msgstr "Slonn ionadaochta neamhbhail" -#: regcomp.c:169 +#: regcomp.c:141 msgid "Invalid collation character" msgstr "Carachtar neamhbhail cimheasa" -#: regcomp.c:172 +#: regcomp.c:144 msgid "Invalid character class name" msgstr "Aicme neamhbhail charachtair" -#: regcomp.c:175 +#: regcomp.c:147 msgid "Trailing backslash" msgstr "Clslais ag deireadh" -#: regcomp.c:178 +#: regcomp.c:150 msgid "Invalid back reference" msgstr "Cltagairt neamhbhail" -#: regcomp.c:181 +#: regcomp.c:153 msgid "Unmatched [ or [^" msgstr "[ n [^ corr" -#: regcomp.c:184 +#: regcomp.c:156 msgid "Unmatched ( or \\(" msgstr "( n \\( corr" -#: regcomp.c:187 +#: regcomp.c:159 msgid "Unmatched \\{" msgstr "\\{ corr" -#: regcomp.c:190 +#: regcomp.c:162 msgid "Invalid content of \\{\\}" msgstr "Inneachar neamhbhail idir \\{\\}" -#: regcomp.c:193 +#: regcomp.c:165 msgid "Invalid range end" msgstr "Deireadh raoin neamhbhail" -#: regcomp.c:196 +#: regcomp.c:168 msgid "Memory exhausted" msgstr "Cuimhne dithe" -#: regcomp.c:199 +#: regcomp.c:171 msgid "Invalid preceding regular expression" msgstr "Is neamhbhail an slonn ionadaochta roimhe seo" -#: regcomp.c:202 +#: regcomp.c:174 msgid "Premature end of regular expression" msgstr "Deireadh le slonn ionadaochta gan choinne" -#: regcomp.c:205 +#: regcomp.c:177 msgid "Regular expression too big" msgstr "Slonn ionadaochta rmhr" -#: regcomp.c:208 +#: regcomp.c:180 msgid "Unmatched ) or \\)" msgstr ") n \\) corr" -#: regcomp.c:688 +#: regcomp.c:664 msgid "No previous regular expression" msgstr "Nl aon slonn ionadaochta roimhe seo" -#~ msgid "function %s called\n" -#~ msgstr "glaodh ar fheidhm %s\n" +#~ msgid "remote port invalid in `%s'" +#~ msgstr "cianphort neamhbhail i `%s'" #~ msgid "delete: illegal use of variable `%s' as array" #~ msgstr "delete: sid neamhdhleathach na hathrige `%s' mar eagar" @@ -1890,7 +1916,7 @@ #~ "n shannadh `getline' neamhatreoraithe lasmuigh den ghnomh TS n CROCH" #~ msgid "fptr %x not in tokentab\n" -#~ msgstr "nl fptr %x ar fil sa thb ceadchomhartha\n" +#~ msgstr "nl fptr %x ar fil sa tb ceadchomhartha\n" #~ msgid "gsub third parameter is not a changeable object" #~ msgstr "n oibiacht athraitheach an tr paraimadar ionadaoch gsub" @@ -1924,5 +1950,8 @@ #~ msgid "field %d in FIELDWIDTHS, must be > 0" #~ msgstr "caithfidh go bhfuil rimse %d i FIELDWIDTHS > 0" +#~ msgid "function %s called\n" +#~ msgstr "glaodh ar fheidhm %s\n" + #~ msgid "internal error: file `%s', line %d\n" #~ msgstr "earrid inmhenach: comhad `%s', lne %d\n" diff -urN gawk-3.1.5/po/gawk.pot gawk-3.1.6/po/gawk.pot --- gawk-3.1.5/po/gawk.pot 2005-07-06 17:20:04.000000000 +0300 +++ gawk-3.1.6/po/gawk.pot 2007-09-30 22:33:25.000000000 +0200 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" -"POT-Creation-Date: 2005-07-06 17:20+0300\n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -36,722 +36,734 @@ msgid "from %s" msgstr "" -#: array.c:511 +#: array.c:514 #, c-format msgid "reference to uninitialized element `%s[\"%s\"]'" msgstr "" -#: array.c:517 +#: array.c:520 #, c-format msgid "subscript of array `%s' is null string" msgstr "" -#: array.c:621 +#: array.c:624 #, c-format msgid "delete: index `%s' not in array `%s'" msgstr "" -#: array.c:791 +#: array.c:793 #, c-format msgid "%s: empty (null)\n" msgstr "" -#: array.c:796 +#: array.c:798 #, c-format msgid "%s: empty (zero)\n" msgstr "" -#: array.c:800 +#: array.c:802 #, c-format msgid "%s: table_size = %d, array_size = %d\n" msgstr "" -#: array.c:829 +#: array.c:831 #, c-format msgid "%s: is parameter\n" msgstr "" -#: array.c:834 +#: array.c:836 #, c-format msgid "%s: array_ref to %s\n" msgstr "" -#: awkgram.y:208 +#: awkgram.y:215 #, c-format msgid "%s blocks must have an action part" msgstr "" -#: awkgram.y:211 +#: awkgram.y:218 msgid "each rule must have a pattern or an action part" msgstr "" -#: awkgram.y:267 +#: awkgram.y:254 awkgram.y:263 +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "" + +#: awkgram.y:282 #, c-format msgid "`%s' is a built-in function, it cannot be redefined" msgstr "" -#: awkgram.y:313 +#: awkgram.y:328 msgid "regexp constant `//' looks like a C++ comment, but is not" msgstr "" -#: awkgram.y:316 +#: awkgram.y:331 #, c-format msgid "regexp constant `/%s/' looks like a C comment, but is not" msgstr "" -#: awkgram.y:343 awkgram.y:623 +#: awkgram.y:358 awkgram.y:653 msgid "statement may have no effect" msgstr "" -#: awkgram.y:440 awkgram.y:460 +#: awkgram.y:455 awkgram.y:479 #, c-format msgid "`%s' used in %s action" msgstr "" -#: awkgram.y:453 awkgram.y:456 +#: awkgram.y:470 awkgram.y:474 msgid "`nextfile' is a gawk extension" msgstr "" -#: awkgram.y:470 +#: awkgram.y:489 msgid "`return' used outside function context" msgstr "" -#: awkgram.y:512 +#: awkgram.y:531 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" msgstr "" -#: awkgram.y:525 awkgram.y:532 +#: awkgram.y:547 awkgram.y:555 msgid "`delete array' is a gawk extension" msgstr "" -#: awkgram.y:540 awkgram.y:547 +#: awkgram.y:569 awkgram.y:577 msgid "`delete(array)' is a non-portable tawk extension" msgstr "" -#: awkgram.y:591 +#: awkgram.y:621 #, c-format msgid "duplicate case values in switch body: %s" msgstr "" -#: awkgram.y:601 +#: awkgram.y:631 msgid "Duplicate `default' detected in switch body" msgstr "" -#: awkgram.y:690 +#: awkgram.y:720 msgid "multistage two-way pipelines don't work" msgstr "" -#: awkgram.y:781 +#: awkgram.y:811 msgid "regular expression on right of assignment" msgstr "" -#: awkgram.y:804 +#: awkgram.y:834 msgid "regular expression on left of `~' or `!~' operator" msgstr "" -#: awkgram.y:812 +#: awkgram.y:840 awkgram.y:913 +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "" + +#: awkgram.y:846 msgid "regular expression on right of comparison" msgstr "" -#: awkgram.y:879 +#: awkgram.y:903 msgid "non-redirected `getline' undefined inside END action" msgstr "" -#: awkgram.y:906 +#: awkgram.y:914 +msgid "old awk does not support multidimensional arrays" +msgstr "" + +#: awkgram.y:960 msgid "call of `length' without parentheses is not portable" msgstr "" -#: awkgram.y:909 +#: awkgram.y:965 msgid "call of `length' without parentheses is deprecated by POSIX" msgstr "" -#: awkgram.y:962 +#: awkgram.y:1019 msgid "use of non-array as array" msgstr "" -#: awkgram.y:964 +#: awkgram.y:1022 msgid "invalid subscript expression" msgstr "" -#: awkgram.y:1171 +#: awkgram.y:1249 msgid "unexpected newline or end of string" msgstr "" -#: awkgram.y:1267 +#: awkgram.y:1366 msgid "empty program text on command line" msgstr "" -#: awkgram.y:1320 +#: awkgram.y:1422 #, c-format msgid "can't open source file `%s' for reading (%s)" msgstr "" -#: awkgram.y:1397 +#: awkgram.y:1520 #, c-format msgid "can't read sourcefile `%s' (%s)" msgstr "" -#: awkgram.y:1405 +#: awkgram.y:1528 #, c-format msgid "source file `%s' is empty" msgstr "" -#: awkgram.y:1596 awkgram.y:1718 awkgram.y:1736 awkgram.y:2107 awkgram.y:2194 +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 msgid "source file does not end in newline" msgstr "" -#: awkgram.y:1658 +#: awkgram.y:1782 msgid "unterminated regexp ends with `\\' at end of file" msgstr "" -#: awkgram.y:1682 +#: awkgram.y:1806 #, c-format msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -#: awkgram.y:1686 +#: awkgram.y:1810 #, c-format msgid "tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -#: awkgram.y:1693 +#: awkgram.y:1817 msgid "unterminated regexp" msgstr "" -#: awkgram.y:1696 +#: awkgram.y:1820 msgid "unterminated regexp at end of file" msgstr "" -#: awkgram.y:1762 +#: awkgram.y:1889 msgid "use of `\\ #...' line continuation is not portable" msgstr "" -#: awkgram.y:1774 +#: awkgram.y:1902 msgid "backslash not last character on line" msgstr "" -#: awkgram.y:1819 +#: awkgram.y:1947 msgid "POSIX does not allow operator `**='" msgstr "" -#: awkgram.y:1821 +#: awkgram.y:1949 msgid "old awk does not support operator `**='" msgstr "" -#: awkgram.y:1830 +#: awkgram.y:1958 msgid "POSIX does not allow operator `**'" msgstr "" -#: awkgram.y:1832 +#: awkgram.y:1960 msgid "old awk does not support operator `**'" msgstr "" -#: awkgram.y:1863 +#: awkgram.y:1991 msgid "operator `^=' is not supported in old awk" msgstr "" -#: awkgram.y:1871 +#: awkgram.y:1999 msgid "operator `^' is not supported in old awk" msgstr "" -#: awkgram.y:1955 awkgram.y:1970 +#: awkgram.y:2083 awkgram.y:2098 msgid "unterminated string" msgstr "" -#: awkgram.y:2155 +#: awkgram.y:2283 #, c-format msgid "invalid char '%c' in expression" msgstr "" -#: awkgram.y:2203 +#: awkgram.y:2331 #, c-format msgid "`%s' is a gawk extension" msgstr "" -#: awkgram.y:2206 +#: awkgram.y:2334 #, c-format msgid "`%s' is a Bell Labs extension" msgstr "" -#: awkgram.y:2209 +#: awkgram.y:2337 #, c-format msgid "POSIX does not allow `%s'" msgstr "" -#: awkgram.y:2213 +#: awkgram.y:2341 #, c-format msgid "`%s' is not supported in old awk" msgstr "" -#: awkgram.y:2239 +#: awkgram.y:2367 msgid "`goto' considered harmful!\n" msgstr "" -#: awkgram.y:2301 +#: awkgram.y:2429 #, c-format msgid "%d is invalid as number of arguments for %s" msgstr "" -#: awkgram.y:2320 awkgram.y:2323 +#: awkgram.y:2448 awkgram.y:2451 msgid "match: third argument is a gawk extension" msgstr "" -#: awkgram.y:2336 +#: awkgram.y:2464 #, c-format msgid "%s: string literal as last arg of substitute has no effect" msgstr "" -#: awkgram.y:2339 +#: awkgram.y:2467 #, c-format msgid "%s third parameter is not a changeable object" msgstr "" -#: awkgram.y:2366 awkgram.y:2369 +#: awkgram.y:2494 awkgram.y:2497 msgid "close: second argument is a gawk extension" msgstr "" -#: awkgram.y:2379 +#: awkgram.y:2507 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" msgstr "" -#: awkgram.y:2394 +#: awkgram.y:2522 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" msgstr "" -#: awkgram.y:2465 +#: awkgram.y:2594 #, c-format msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" msgstr "" -#: awkgram.y:2498 +#: awkgram.y:2627 #, c-format msgid "function `%s': parameter `%s' shadows global variable" msgstr "" -#: awkgram.y:2610 +#: awkgram.y:2739 #, c-format msgid "could not open `%s' for writing (%s)" msgstr "" -#: awkgram.y:2611 profile.c:93 +#: awkgram.y:2740 profile.c:94 msgid "sending profile to standard error" msgstr "" -#: awkgram.y:2643 +#: awkgram.y:2772 #, c-format msgid "%s: close failed (%s)" msgstr "" -#: awkgram.y:2764 +#: awkgram.y:2893 msgid "shadow_funcs() called twice!" msgstr "" -#: awkgram.y:2791 +#: awkgram.y:2920 msgid "there were shadowed variables." msgstr "" -#: awkgram.y:2864 +#: awkgram.y:2993 #, c-format msgid "function `%s': can't use function name as parameter name" msgstr "" -#: awkgram.y:2874 +#: awkgram.y:3003 #, c-format msgid "function name `%s' previously defined" msgstr "" -#: awkgram.y:3025 awkgram.y:3031 +#: awkgram.y:3154 awkgram.y:3160 #, c-format msgid "function `%s' called but never defined" msgstr "" -#: awkgram.y:3034 +#: awkgram.y:3163 #, c-format msgid "function `%s' defined but never called" msgstr "" -#: awkgram.y:3061 +#: awkgram.y:3190 #, c-format msgid "regexp constant for parameter #%d yields boolean value" msgstr "" -#: awkgram.y:3105 +#: awkgram.y:3234 #, c-format msgid "" "function `%s' called with space between name and `(',\n" "or used as a variable or an array" msgstr "" -#: builtin.c:145 +#: builtin.c:119 #, c-format msgid "%s to \"%s\" failed (%s)" msgstr "" -#: builtin.c:146 +#: builtin.c:120 msgid "standard output" msgstr "" -#: builtin.c:147 +#: builtin.c:121 msgid "reason unknown" msgstr "" -#: builtin.c:160 +#: builtin.c:134 msgid "exp: received non-numeric argument" msgstr "" -#: builtin.c:166 +#: builtin.c:140 #, c-format msgid "exp: argument %g is out of range" msgstr "" -#: builtin.c:224 +#: builtin.c:198 #, c-format msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" msgstr "" -#: builtin.c:227 +#: builtin.c:201 #, c-format msgid "fflush: cannot flush: file `%s' opened for reading, not writing" msgstr "" -#: builtin.c:239 +#: builtin.c:213 #, c-format msgid "fflush: `%s' is not an open file, pipe or co-process" msgstr "" -#: builtin.c:332 +#: builtin.c:306 msgid "index: received non-string first argument" msgstr "" -#: builtin.c:334 +#: builtin.c:308 msgid "index: received non-string second argument" msgstr "" -#: builtin.c:449 +#: builtin.c:423 msgid "int: received non-numeric argument" msgstr "" -#: builtin.c:472 +#: builtin.c:448 msgid "`length(array)' is a gawk extension" msgstr "" -#: builtin.c:481 +#: builtin.c:458 msgid "length: received non-string argument" msgstr "" -#: builtin.c:506 +#: builtin.c:483 msgid "log: received non-numeric argument" msgstr "" -#: builtin.c:509 +#: builtin.c:486 #, c-format msgid "log: received negative argument %g" msgstr "" -#: builtin.c:673 builtin.c:676 +#: builtin.c:693 builtin.c:696 msgid "must use `count$' on all formats or none" msgstr "" -#: builtin.c:778 +#: builtin.c:799 msgid "`$' is not permitted in awk formats" msgstr "" -#: builtin.c:784 +#: builtin.c:805 msgid "arg count with `$' must be > 0" msgstr "" -#: builtin.c:786 +#: builtin.c:807 #, c-format msgid "arg count %ld greater than total number of supplied arguments" msgstr "" -#: builtin.c:788 +#: builtin.c:809 msgid "`$' not permitted after period in format" msgstr "" -#: builtin.c:801 +#: builtin.c:822 msgid "no `$' supplied for positional field width or precision" msgstr "" -#: builtin.c:867 +#: builtin.c:888 msgid "`l' is meaningless in awk formats; ignored" msgstr "" -#: builtin.c:871 +#: builtin.c:892 msgid "`l' is not permitted in POSIX awk formats" msgstr "" -#: builtin.c:882 +#: builtin.c:903 msgid "`L' is meaningless in awk formats; ignored" msgstr "" -#: builtin.c:886 +#: builtin.c:907 msgid "`L' is not permitted in POSIX awk formats" msgstr "" -#: builtin.c:897 +#: builtin.c:918 msgid "`h' is meaningless in awk formats; ignored" msgstr "" -#: builtin.c:901 +#: builtin.c:922 msgid "`h' is not permitted in POSIX awk formats" msgstr "" -#: builtin.c:1132 +#: builtin.c:1182 #, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" msgstr "" -#: builtin.c:1198 +#: builtin.c:1266 msgid "not enough arguments to satisfy format string" msgstr "" -#: builtin.c:1200 +#: builtin.c:1268 msgid "^ ran out for this one" msgstr "" -#: builtin.c:1205 +#: builtin.c:1274 msgid "[s]printf: format specifier does not have control letter" msgstr "" -#: builtin.c:1208 +#: builtin.c:1277 msgid "too many arguments supplied for format string" msgstr "" -#: builtin.c:1274 builtin.c:1277 +#: builtin.c:1352 builtin.c:1355 msgid "printf: no arguments" msgstr "" -#: builtin.c:1301 +#: builtin.c:1379 msgid "sqrt: received non-numeric argument" msgstr "" -#: builtin.c:1305 +#: builtin.c:1383 #, c-format msgid "sqrt: called with negative argument %g" msgstr "" -#: builtin.c:1329 +#: builtin.c:1407 #, c-format msgid "substr: start index %g is invalid, using 1" msgstr "" -#: builtin.c:1334 +#: builtin.c:1412 #, c-format msgid "substr: non-integer start index %g will be truncated" msgstr "" -#: builtin.c:1353 +#: builtin.c:1431 #, c-format msgid "substr: length %g is not >= 1" msgstr "" -#: builtin.c:1355 +#: builtin.c:1433 #, c-format msgid "substr: length %g is not >= 0" msgstr "" -#: builtin.c:1362 +#: builtin.c:1440 #, c-format msgid "substr: non-integer length %g will be truncated" msgstr "" -#: builtin.c:1367 +#: builtin.c:1445 #, c-format msgid "substr: length %g too big for string indexing, truncating to %g" msgstr "" -#: builtin.c:1379 +#: builtin.c:1457 msgid "substr: source string is zero length" msgstr "" -#: builtin.c:1395 +#: builtin.c:1473 #, c-format msgid "substr: start index %g is past end of string" msgstr "" -#: builtin.c:1403 +#: builtin.c:1481 #, c-format msgid "" "substr: length %g at start index %g exceeds length of first argument (%lu)" msgstr "" -#: builtin.c:1478 +#: builtin.c:1558 msgid "strftime: received non-string first argument" msgstr "" -#: builtin.c:1484 +#: builtin.c:1564 msgid "strftime: received empty format string" msgstr "" -#: builtin.c:1493 +#: builtin.c:1573 msgid "strftime: received non-numeric second argument" msgstr "" -#: builtin.c:1556 +#: builtin.c:1650 msgid "mktime: received non-string argument" msgstr "" -#: builtin.c:1601 +#: builtin.c:1695 msgid "system: received non-string argument" msgstr "" -#: builtin.c:1722 eval.c:2039 +#: builtin.c:1816 eval.c:2041 #, c-format msgid "reference to uninitialized field `$%d'" msgstr "" -#: builtin.c:1827 +#: builtin.c:1921 msgid "tolower: received non-string argument" msgstr "" -#: builtin.c:1857 +#: builtin.c:1951 msgid "toupper: received non-string argument" msgstr "" -#: builtin.c:1890 +#: builtin.c:1984 msgid "atan2: received non-numeric first argument" msgstr "" -#: builtin.c:1892 +#: builtin.c:1986 msgid "atan2: received non-numeric second argument" msgstr "" -#: builtin.c:1911 +#: builtin.c:2005 msgid "sin: received non-numeric argument" msgstr "" -#: builtin.c:1927 +#: builtin.c:2021 msgid "cos: received non-numeric argument" msgstr "" -#: builtin.c:1977 +#: builtin.c:2071 msgid "srand: received non-numeric argument" msgstr "" -#: builtin.c:2012 +#: builtin.c:2106 msgid "match: third argument is not an array" msgstr "" -#: builtin.c:2555 +#: builtin.c:2650 msgid "gensub: third argument of 0 treated as 1" msgstr "" -#: builtin.c:2715 +#: builtin.c:2766 msgid "lshift: received non-numeric first argument" msgstr "" -#: builtin.c:2717 +#: builtin.c:2768 msgid "lshift: received non-numeric second argument" msgstr "" -#: builtin.c:2723 +#: builtin.c:2774 #, c-format msgid "lshift(%lf, %lf): negative values will give strange results" msgstr "" -#: builtin.c:2725 +#: builtin.c:2776 #, c-format msgid "lshift(%lf, %lf): fractional values will be truncated" msgstr "" -#: builtin.c:2727 +#: builtin.c:2778 #, c-format msgid "lshift(%lf, %lf): too large shift value will give strange results" msgstr "" -#: builtin.c:2753 +#: builtin.c:2804 msgid "rshift: received non-numeric first argument" msgstr "" -#: builtin.c:2755 +#: builtin.c:2806 msgid "rshift: received non-numeric second argument" msgstr "" -#: builtin.c:2761 +#: builtin.c:2812 #, c-format msgid "rshift(%lf, %lf): negative values will give strange results" msgstr "" -#: builtin.c:2763 +#: builtin.c:2814 #, c-format msgid "rshift(%lf, %lf): fractional values will be truncated" msgstr "" -#: builtin.c:2765 +#: builtin.c:2816 #, c-format msgid "rshift(%lf, %lf): too large shift value will give strange results" msgstr "" -#: builtin.c:2791 +#: builtin.c:2842 msgid "and: received non-numeric first argument" msgstr "" -#: builtin.c:2793 +#: builtin.c:2844 msgid "and: received non-numeric second argument" msgstr "" -#: builtin.c:2799 +#: builtin.c:2850 #, c-format msgid "and(%lf, %lf): negative values will give strange results" msgstr "" -#: builtin.c:2801 +#: builtin.c:2852 #, c-format msgid "and(%lf, %lf): fractional values will be truncated" msgstr "" -#: builtin.c:2827 +#: builtin.c:2878 msgid "or: received non-numeric first argument" msgstr "" -#: builtin.c:2829 +#: builtin.c:2880 msgid "or: received non-numeric second argument" msgstr "" -#: builtin.c:2835 +#: builtin.c:2886 #, c-format msgid "or(%lf, %lf): negative values will give strange results" msgstr "" -#: builtin.c:2837 +#: builtin.c:2888 #, c-format msgid "or(%lf, %lf): fractional values will be truncated" msgstr "" -#: builtin.c:2863 +#: builtin.c:2914 msgid "xor: received non-numeric first argument" msgstr "" -#: builtin.c:2865 +#: builtin.c:2916 msgid "xor: received non-numeric second argument" msgstr "" -#: builtin.c:2871 +#: builtin.c:2922 #, c-format msgid "xor(%lf, %lf): negative values will give strange results" msgstr "" -#: builtin.c:2873 +#: builtin.c:2924 #, c-format msgid "xor(%lf, %lf): fractional values will be truncated" msgstr "" -#: builtin.c:2897 +#: builtin.c:2948 msgid "compl: received non-numeric argument" msgstr "" -#: builtin.c:2903 +#: builtin.c:2954 #, c-format msgid "compl(%lf): negative value will give strange results" msgstr "" -#: builtin.c:2905 +#: builtin.c:2956 #, c-format msgid "compl(%lf): fractional value will be truncated" msgstr "" -#: builtin.c:3078 +#: builtin.c:3129 #, c-format msgid "dcgettext: `%s' is not a valid locale category" msgstr "" @@ -765,7 +777,7 @@ msgid "buffer overflow in genflags2str" msgstr "" -#: eval.c:385 eval.c:391 profile.c:838 +#: eval.c:385 eval.c:391 profile.c:817 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "" @@ -811,7 +823,7 @@ msgid "statement has no effect" msgstr "" -#: eval.c:952 eval.c:1893 +#: eval.c:952 eval.c:1895 #, c-format msgid "can't use function name `%s' as variable or array" msgstr "" @@ -821,7 +833,7 @@ msgid "reference to uninitialized argument `%s'" msgstr "" -#: eval.c:974 eval.c:1902 +#: eval.c:974 eval.c:1904 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "" @@ -832,44 +844,44 @@ "another!" msgstr "" -#: eval.c:1200 +#: eval.c:1202 msgid "assignment used in conditional context" msgstr "" -#: eval.c:1278 +#: eval.c:1280 msgid "division by zero attempted" msgstr "" -#: eval.c:1293 +#: eval.c:1295 #, c-format msgid "division by zero attempted in `%%'" msgstr "" -#: eval.c:1308 profile.c:714 +#: eval.c:1310 profile.c:693 #, c-format msgid "illegal type (%s) in tree_eval" msgstr "" -#: eval.c:1471 +#: eval.c:1473 msgid "division by zero attempted in `/='" msgstr "" -#: eval.c:1493 +#: eval.c:1495 #, c-format msgid "division by zero attempted in `%%='" msgstr "" -#: eval.c:1758 +#: eval.c:1760 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "" -#: eval.c:1802 +#: eval.c:1804 #, c-format msgid "function `%s' not defined" msgstr "" -#: eval.c:1865 +#: eval.c:1867 #, c-format msgid "" "\n" @@ -877,652 +889,665 @@ "\n" msgstr "" -#: eval.c:1868 +#: eval.c:1870 #, c-format msgid "\t# -- main --\n" msgstr "" -#: eval.c:2023 +#: eval.c:2025 msgid "attempt to field reference from non-numeric value" msgstr "" -#: eval.c:2025 +#: eval.c:2027 msgid "attempt to reference from null string" msgstr "" -#: eval.c:2031 +#: eval.c:2033 #, c-format msgid "attempt to access field %d" msgstr "" -#: eval.c:2052 eval.c:2059 profile.c:935 +#: eval.c:2054 eval.c:2061 profile.c:914 msgid "assignment is not allowed to result of builtin function" msgstr "" -#: eval.c:2123 +#: eval.c:2125 msgid "`IGNORECASE' is a gawk extension" msgstr "" -#: eval.c:2153 +#: eval.c:2155 msgid "`BINMODE' is a gawk extension" msgstr "" -#: eval.c:2275 +#: eval.c:2277 #, c-format msgid "bad `%sFMT' specification `%s'" msgstr "" -#: eval.c:2353 +#: eval.c:2355 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "" -#: ext.c:60 ext.c:64 +#: ext.c:62 ext.c:67 msgid "`extension' is a gawk extension" msgstr "" -#: ext.c:74 +#: ext.c:77 #, c-format msgid "extension: cannot open `%s' (%s)\n" msgstr "" -#: ext.c:82 +#: ext.c:85 #, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "" -#: ext.c:102 +#: ext.c:105 msgid "extension: missing function name" msgstr "" -#: ext.c:107 +#: ext.c:110 #, c-format msgid "extension: illegal character `%c' in function name `%s'" msgstr "" -#: ext.c:113 +#: ext.c:116 #, c-format msgid "extension: can't redefine function `%s'" msgstr "" -#: ext.c:117 +#: ext.c:120 #, c-format msgid "extension: function `%s' already defined" msgstr "" -#: ext.c:122 +#: ext.c:125 #, c-format msgid "extension: can't use gawk built-in `%s' as function name" msgstr "" -#: ext.c:124 +#: ext.c:127 #, c-format msgid "extension: function name `%s' previously defined" msgstr "" -#: ext.c:201 +#: ext.c:204 #, c-format msgid "function `%s' defined to take no more than %d argument(s)" msgstr "" -#: ext.c:204 +#: ext.c:207 #, c-format msgid "function `%s': missing argument #%d" msgstr "" -#: ext.c:214 +#: ext.c:217 #, c-format msgid "function `%s': argument #%d: attempt to use scalar as an array" msgstr "" -#: ext.c:218 +#: ext.c:221 #, c-format msgid "function `%s': argument #%d: attempt to use array as a scalar" msgstr "" -#: ext.c:243 +#: ext.c:246 msgid "Operation Not Supported" msgstr "" -#: field.c:326 +#: field.c:330 msgid "NF set to negative value" msgstr "" -#: field.c:819 +#: field.c:823 msgid "split: second argument is not an array" msgstr "" -#: field.c:853 +#: field.c:857 msgid "split: null string for third arg is a gawk extension" msgstr "" -#: field.c:905 +#: field.c:909 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "" -#: field.c:935 field.c:946 +#: field.c:939 field.c:953 #, c-format msgid "invalid FIELDWIDTHS value, near `%s'" msgstr "" -#: field.c:1027 +#: field.c:1036 msgid "null string for `FS' is a gawk extension" msgstr "" -#: getopt.c:571 getopt.c:590 +#: field.c:1040 +msgid "old awk does not support regexps as value of `FS'" +msgstr "" + +#: getopt.c:571 getopt.c:587 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "" -#: getopt.c:623 getopt.c:627 +#: getopt.c:620 getopt.c:624 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "" -#: getopt.c:636 getopt.c:641 +#: getopt.c:633 getopt.c:638 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "" -#: getopt.c:687 getopt.c:709 getopt.c:1040 getopt.c:1062 +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "" -#: getopt.c:747 getopt.c:750 +#: getopt.c:738 getopt.c:741 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "" -#: getopt.c:758 getopt.c:761 +#: getopt.c:749 getopt.c:752 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "" -#: getopt.c:816 getopt.c:819 +#: getopt.c:804 getopt.c:807 #, c-format msgid "%s: illegal option -- %c\n" msgstr "" -#: getopt.c:825 getopt.c:828 +#: getopt.c:813 getopt.c:816 #, c-format msgid "%s: invalid option -- %c\n" msgstr "" -#: getopt.c:883 getopt.c:902 getopt.c:1115 getopt.c:1136 main.c:448 +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "" -#: getopt.c:955 getopt.c:974 +#: getopt.c:937 getopt.c:953 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "" -#: getopt.c:998 getopt.c:1019 +#: getopt.c:977 getopt.c:995 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "" -#: io.c:307 +#: io.c:345 #, c-format msgid "cannot open file `%s' for reading (%s)" msgstr "" -#: io.c:398 +#: io.c:436 #, c-format msgid "close of fd %d (`%s') failed (%s)" msgstr "" -#: io.c:536 +#: io.c:575 #, c-format msgid "invalid tree type %s in redirect()" msgstr "" -#: io.c:542 +#: io.c:581 #, c-format msgid "expression in `%s' redirection only has numeric value" msgstr "" -#: io.c:548 +#: io.c:587 #, c-format msgid "expression for `%s' redirection has null string value" msgstr "" -#: io.c:553 +#: io.c:592 #, c-format msgid "filename `%s' for `%s' redirection may be result of logical expression" msgstr "" -#: io.c:591 +#: io.c:630 #, c-format msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" msgstr "" -#: io.c:643 +#: io.c:682 #, c-format msgid "can't open pipe `%s' for output (%s)" msgstr "" -#: io.c:652 +#: io.c:691 #, c-format msgid "can't open pipe `%s' for input (%s)" msgstr "" -#: io.c:665 +#: io.c:698 io.c:1448 +#, c-format +msgid "file `%s' is a directory" +msgstr "" + +#: io.c:706 #, c-format msgid "can't open two way socket `%s' for input/output (%s)" msgstr "" -#: io.c:669 +#: io.c:710 #, c-format msgid "can't open two way pipe `%s' for input/output (%s)" msgstr "" -#: io.c:745 +#: io.c:786 #, c-format msgid "can't redirect from `%s' (%s)" msgstr "" -#: io.c:748 +#: io.c:789 #, c-format msgid "can't redirect to `%s' (%s)" msgstr "" -#: io.c:787 +#: io.c:828 msgid "" "reached system limit for open files: starting to multiplex file descriptors" msgstr "" -#: io.c:803 +#: io.c:844 #, c-format msgid "close of `%s' failed (%s)." msgstr "" -#: io.c:811 +#: io.c:852 msgid "too many pipes or input files open" msgstr "" -#: io.c:834 +#: io.c:875 msgid "close: second argument must be `to' or `from'" msgstr "" -#: io.c:848 +#: io.c:889 #, c-format msgid "close: `%.*s' is not an open file, pipe or co-process" msgstr "" -#: io.c:852 +#: io.c:893 msgid "close of redirection that was never opened" msgstr "" -#: io.c:948 +#: io.c:989 #, c-format msgid "close: redirection `%s' not opened with `|&', second argument ignored" msgstr "" -#: io.c:964 +#: io.c:1005 #, c-format msgid "failure status (%d) on pipe close of `%s' (%s)" msgstr "" -#: io.c:967 +#: io.c:1008 #, c-format msgid "failure status (%d) on file close of `%s' (%s)" msgstr "" -#: io.c:987 +#: io.c:1028 #, c-format msgid "no explicit close of socket `%s' provided" msgstr "" -#: io.c:990 +#: io.c:1031 #, c-format msgid "no explicit close of co-process `%s' provided" msgstr "" -#: io.c:993 +#: io.c:1034 #, c-format msgid "no explicit close of pipe `%s' provided" msgstr "" -#: io.c:996 +#: io.c:1037 #, c-format msgid "no explicit close of file `%s' provided" msgstr "" -#: io.c:1025 io.c:1080 main.c:718 main.c:756 +#: io.c:1066 io.c:1121 main.c:749 main.c:791 #, c-format msgid "error writing standard output (%s)" msgstr "" -#: io.c:1029 io.c:1085 +#: io.c:1070 io.c:1126 #, c-format msgid "error writing standard error (%s)" msgstr "" -#: io.c:1037 +#: io.c:1078 #, c-format msgid "pipe flush of `%s' failed (%s)." msgstr "" -#: io.c:1040 +#: io.c:1081 #, c-format msgid "co-process flush of pipe to `%s' failed (%s)." msgstr "" -#: io.c:1043 +#: io.c:1084 #, c-format msgid "file flush of `%s' failed (%s)." msgstr "" -#: io.c:1205 +#: io.c:1198 +#, c-format +msgid "local port %s invalid in `/inet'" +msgstr "" + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "" + +#: io.c:1250 msgid "/inet/raw client not ready yet, sorry" msgstr "" -#: io.c:1207 io.c:1244 +#: io.c:1253 io.c:1289 msgid "only root may use `/inet/raw'." msgstr "" -#: io.c:1242 +#: io.c:1287 msgid "/inet/raw server not ready yet, sorry" msgstr "" -#: io.c:1332 +#: io.c:1385 #, c-format msgid "no (known) protocol supplied in special filename `%s'" msgstr "" -#: io.c:1350 +#: io.c:1399 #, c-format msgid "special file name `%s' is incomplete" msgstr "" -#: io.c:1362 -#, c-format -msgid "local port invalid in `%s'" -msgstr "" - -#: io.c:1374 +#: io.c:1414 msgid "must supply a remote hostname to `/inet'" msgstr "" -#: io.c:1389 +#: io.c:1432 msgid "must supply a remote port to `/inet'" msgstr "" -#: io.c:1395 -#, c-format -msgid "remote port invalid in `%s'" -msgstr "" - -#: io.c:1405 +#: io.c:1439 msgid "TCP/IP communications are not supported" msgstr "" -#: io.c:1414 io.c:1595 -#, c-format -msgid "file `%s' is a directory" -msgstr "" - -#: io.c:1484 +#: io.c:1509 #, c-format msgid "use `PROCINFO[\"%s\"]' instead of `%s'" msgstr "" -#: io.c:1516 +#: io.c:1547 msgid "use `PROCINFO[...]' instead of `/dev/user'" msgstr "" -#: io.c:1581 io.c:1763 +#: io.c:1612 io.c:1798 #, c-format msgid "could not open `%s', mode `%s'" msgstr "" -#: io.c:1814 +#: io.c:1849 #, c-format msgid "close of master pty failed (%s)" msgstr "" -#: io.c:1816 io.c:1968 io.c:2119 +#: io.c:1851 io.c:2003 io.c:2154 #, c-format msgid "close of stdout in child failed (%s)" msgstr "" -#: io.c:1819 +#: io.c:1854 #, c-format msgid "moving slave pty to stdout in child failed (dup: %s)" msgstr "" -#: io.c:1821 io.c:1973 +#: io.c:1856 io.c:2008 #, c-format msgid "close of stdin in child failed (%s)" msgstr "" -#: io.c:1824 +#: io.c:1859 #, c-format msgid "moving slave pty to stdin in child failed (dup: %s)" msgstr "" -#: io.c:1826 io.c:1845 +#: io.c:1861 io.c:1880 #, c-format msgid "close of slave pty failed (%s)" msgstr "" -#: io.c:1919 io.c:1971 io.c:2100 io.c:2122 +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 #, c-format msgid "moving pipe to stdout in child failed (dup: %s)" msgstr "" -#: io.c:1923 io.c:1976 +#: io.c:1958 io.c:2011 #, c-format msgid "moving pipe to stdin in child failed (dup: %s)" msgstr "" -#: io.c:1940 io.c:2113 +#: io.c:1975 io.c:2148 msgid "restoring stdout in parent process failed\n" msgstr "" -#: io.c:1945 +#: io.c:1980 msgid "restoring stdin in parent process failed\n" msgstr "" -#: io.c:1979 io.c:2124 io.c:2135 +#: io.c:2014 io.c:2159 io.c:2170 #, c-format msgid "close of pipe failed (%s)" msgstr "" -#: io.c:2024 +#: io.c:2059 msgid "`|&' not supported" msgstr "" -#: io.c:2090 +#: io.c:2125 #, c-format msgid "cannot open pipe `%s' (%s)" msgstr "" -#: io.c:2131 +#: io.c:2166 #, c-format msgid "cannot create child process for `%s' (fork: %s)" msgstr "" -#: io.c:2506 +#: io.c:2548 #, c-format msgid "data file `%s' is empty" msgstr "" -#: io.c:2547 io.c:2555 +#: io.c:2589 io.c:2597 msgid "could not allocate more input memory" msgstr "" -#: io.c:2919 io.c:2984 +#: io.c:2965 io.c:3038 #, c-format msgid "error reading input file `%s': %s" msgstr "" -#: io.c:3109 +#: io.c:3163 msgid "multicharacter value of `RS' is a gawk extension" msgstr "" -#: main.c:338 +#: main.c:351 msgid "`-m[fr]' option irrelevant in gawk" msgstr "" -#: main.c:340 +#: main.c:353 msgid "-m option usage: `-m[fr] nnn'" msgstr "" -#: main.c:357 +#: main.c:370 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "" -#: main.c:394 +#: main.c:407 msgid "empty argument to `--source' ignored" msgstr "" -#: main.c:467 +#: main.c:480 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" msgstr "" -#: main.c:472 +#: main.c:486 msgid "`--posix' overrides `--traditional'" msgstr "" -#: main.c:483 +#: main.c:497 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" msgstr "" -#: main.c:487 +#: main.c:501 #, c-format msgid "running %s setuid root may be a security problem" msgstr "" -#: main.c:528 +#: main.c:542 #, c-format msgid "can't set binary mode on stdin (%s)" msgstr "" -#: main.c:531 +#: main.c:545 #, c-format msgid "can't set binary mode on stdout (%s)" msgstr "" -#: main.c:533 +#: main.c:547 #, c-format msgid "can't set binary mode on stderr (%s)" msgstr "" -#: main.c:572 +#: main.c:586 msgid "no program text at all!" msgstr "" -#: main.c:665 +#: main.c:690 #, c-format msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" msgstr "" -#: main.c:667 +#: main.c:692 #, c-format msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" msgstr "" -#: main.c:672 +#: main.c:697 msgid "POSIX options:\t\tGNU long options:\n" msgstr "" -#: main.c:673 +#: main.c:698 msgid "\t-f progfile\t\t--file=progfile\n" msgstr "" -#: main.c:674 +#: main.c:699 msgid "\t-F fs\t\t\t--field-separator=fs\n" msgstr "" -#: main.c:675 +#: main.c:700 msgid "\t-v var=val\t\t--assign=var=val\n" msgstr "" -#: main.c:676 +#: main.c:701 msgid "\t-m[fr] val\n" msgstr "" -#: main.c:677 +#: main.c:702 msgid "\t-W compat\t\t--compat\n" msgstr "" -#: main.c:678 +#: main.c:703 msgid "\t-W copyleft\t\t--copyleft\n" msgstr "" -#: main.c:679 +#: main.c:704 msgid "\t-W copyright\t\t--copyright\n" msgstr "" -#: main.c:680 +#: main.c:705 msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" msgstr "" -#: main.c:681 +#: main.c:706 msgid "\t-W exec=file\t\t--exec=file\n" msgstr "" -#: main.c:682 +#: main.c:707 msgid "\t-W gen-po\t\t--gen-po\n" msgstr "" -#: main.c:683 +#: main.c:708 msgid "\t-W help\t\t\t--help\n" msgstr "" -#: main.c:684 +#: main.c:709 msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" msgstr "" -#: main.c:685 +#: main.c:710 msgid "\t-W lint-old\t\t--lint-old\n" msgstr "" -#: main.c:686 +#: main.c:711 msgid "\t-W non-decimal-data\t--non-decimal-data\n" msgstr "" -#: main.c:688 +#: main.c:713 msgid "\t-W nostalgia\t\t--nostalgia\n" msgstr "" -#: main.c:691 +#: main.c:716 msgid "\t-W parsedebug\t\t--parsedebug\n" msgstr "" -#: main.c:693 +#: main.c:718 msgid "\t-W profile[=file]\t--profile[=file]\n" msgstr "" -#: main.c:694 +#: main.c:719 msgid "\t-W posix\t\t--posix\n" msgstr "" -#: main.c:695 +#: main.c:720 msgid "\t-W re-interval\t\t--re-interval\n" msgstr "" -#: main.c:696 +#: main.c:721 msgid "\t-W source=program-text\t--source=program-text\n" msgstr "" -#: main.c:697 +#: main.c:722 msgid "\t-W traditional\t\t--traditional\n" msgstr "" -#: main.c:698 +#: main.c:723 msgid "\t-W usage\t\t--usage\n" msgstr "" -#: main.c:699 +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "" + +#: main.c:725 msgid "\t-W version\t\t--version\n" msgstr "" -#: main.c:703 +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 msgid "" "\n" "To report bugs, see node `Bugs' in `gawk.info', which is\n" @@ -1530,33 +1555,33 @@ "\n" msgstr "" -#: main.c:707 +#: main.c:738 msgid "" "gawk is a pattern scanning and processing language.\n" "By default it reads standard input and writes standard output.\n" "\n" msgstr "" -#: main.c:711 +#: main.c:742 msgid "" "Examples:\n" "\tgawk '{ sum += $1 }; END { print sum }' file\n" "\tgawk -F: '{ print $1 }' /etc/passwd\n" msgstr "" -#: main.c:731 +#: main.c:762 #, c-format msgid "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" +"the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" msgstr "" -#: main.c:739 +#: main.c:770 msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -1565,54 +1590,52 @@ "\n" msgstr "" -#: main.c:745 +#: main.c:781 msgid "" "You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" msgstr "" -#: main.c:781 +#: main.c:816 msgid "-Ft does not set FS to tab in POSIX awk" msgstr "" -#: main.c:1018 +#: main.c:1060 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" "\n" msgstr "" -#: main.c:1038 +#: main.c:1080 #, c-format msgid "`%s' is not a legal variable name" msgstr "" -#: main.c:1041 +#: main.c:1083 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "" -#: main.c:1074 +#: main.c:1122 msgid "floating point exception" msgstr "" -#: main.c:1081 +#: main.c:1129 msgid "fatal error: internal error" msgstr "" -#: main.c:1132 +#: main.c:1180 #, c-format msgid "no pre-opened fd %d" msgstr "" -#: main.c:1139 +#: main.c:1187 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "" -#: main.c:1162 main.c:1171 +#: main.c:1210 main.c:1219 #, c-format msgid "could not find groups: %s" msgstr "" @@ -1634,23 +1657,28 @@ msgid "fatal: " msgstr "" -#: node.c:59 node.c:66 node.c:75 node.c:90 node.c:119 +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 msgid "can't convert string to float" msgstr "" -#: node.c:414 +#: node.c:406 msgid "backslash at end of string" msgstr "" -#: node.c:604 +#: node.c:548 +#, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "" + +#: node.c:599 msgid "POSIX does not allow `\\x' escapes" msgstr "" -#: node.c:610 +#: node.c:605 msgid "no hex digits in `\\x' escape sequence" msgstr "" -#: node.c:644 +#: node.c:639 #, c-format msgid "escape sequence `\\%c' treated as plain `%c'" msgstr "" @@ -1660,131 +1688,131 @@ msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" msgstr "" -#: profile.c:91 +#: profile.c:92 #, c-format msgid "could not open `%s' for writing: %s" msgstr "" -#: profile.c:467 +#: profile.c:450 #, c-format msgid "internal error: %s with null vname" msgstr "" -#: profile.c:531 +#: profile.c:514 msgid "# treated internally as `delete'" msgstr "" -#: profile.c:1168 +#: profile.c:1147 #, c-format msgid "# this is a dynamically loaded extension function" msgstr "" -#: profile.c:1199 +#: profile.c:1178 #, c-format msgid "\t# gawk profile, created %s\n" msgstr "" -#: profile.c:1202 +#: profile.c:1181 #, c-format msgid "" "\t# BEGIN block(s)\n" "\n" msgstr "" -#: profile.c:1212 +#: profile.c:1191 #, c-format msgid "" "\t# Rule(s)\n" "\n" msgstr "" -#: profile.c:1218 +#: profile.c:1197 #, c-format msgid "" "\t# END block(s)\n" "\n" msgstr "" -#: profile.c:1238 +#: profile.c:1217 #, c-format msgid "" "\n" "\t# Functions, listed alphabetically\n" msgstr "" -#: profile.c:1453 +#: profile.c:1470 #, c-format msgid "unexpected type %s in prec_level" msgstr "" -#: regcomp.c:160 +#: regcomp.c:132 msgid "Success" msgstr "" -#: regcomp.c:163 +#: regcomp.c:135 msgid "No match" msgstr "" -#: regcomp.c:166 +#: regcomp.c:138 msgid "Invalid regular expression" msgstr "" -#: regcomp.c:169 +#: regcomp.c:141 msgid "Invalid collation character" msgstr "" -#: regcomp.c:172 +#: regcomp.c:144 msgid "Invalid character class name" msgstr "" -#: regcomp.c:175 +#: regcomp.c:147 msgid "Trailing backslash" msgstr "" -#: regcomp.c:178 +#: regcomp.c:150 msgid "Invalid back reference" msgstr "" -#: regcomp.c:181 +#: regcomp.c:153 msgid "Unmatched [ or [^" msgstr "" -#: regcomp.c:184 +#: regcomp.c:156 msgid "Unmatched ( or \\(" msgstr "" -#: regcomp.c:187 +#: regcomp.c:159 msgid "Unmatched \\{" msgstr "" -#: regcomp.c:190 +#: regcomp.c:162 msgid "Invalid content of \\{\\}" msgstr "" -#: regcomp.c:193 +#: regcomp.c:165 msgid "Invalid range end" msgstr "" -#: regcomp.c:196 +#: regcomp.c:168 msgid "Memory exhausted" msgstr "" -#: regcomp.c:199 +#: regcomp.c:171 msgid "Invalid preceding regular expression" msgstr "" -#: regcomp.c:202 +#: regcomp.c:174 msgid "Premature end of regular expression" msgstr "" -#: regcomp.c:205 +#: regcomp.c:177 msgid "Regular expression too big" msgstr "" -#: regcomp.c:208 +#: regcomp.c:180 msgid "Unmatched ) or \\)" msgstr "" -#: regcomp.c:688 +#: regcomp.c:664 msgid "No previous regular expression" msgstr "" diff -urN gawk-3.1.5/po/he.po gawk-3.1.6/po/he.po --- gawk-3.1.5/po/he.po 2005-07-06 17:20:04.000000000 +0300 +++ gawk-3.1.6/po/he.po 2007-09-30 22:33:26.000000000 +0200 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: gawk 3.1.1a\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" -"POT-Creation-Date: 2005-07-06 17:20+0300\n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" "PO-Revision-Date: 2002-04-28 21:46+0300\n" "Last-Translator: Eli Zaretskii \n" "Language-Team: Hebrew \n" @@ -36,350 +36,365 @@ msgid "from %s" msgstr "%s (from %s)" -#: array.c:511 +#: array.c:514 #, c-format msgid "reference to uninitialized element `%s[\"%s\"]'" msgstr " `%s[\"%s\"]' " -#: array.c:517 +#: array.c:520 #, c-format msgid "subscript of array `%s' is null string" msgstr "`%s' " -#: array.c:621 +#: array.c:624 #, c-format msgid "delete: index `%s' not in array `%s'" msgstr "`%s' `%s' :delete" -#: array.c:791 +#: array.c:793 #, c-format msgid "%s: empty (null)\n" msgstr "%s: () \n" -#: array.c:796 +#: array.c:798 #, c-format msgid "%s: empty (zero)\n" msgstr "%s: ( hash ) \n" -#: array.c:800 +#: array.c:802 #, c-format msgid "%s: table_size = %d, array_size = %d\n" msgstr "%s: table_size = %d, array_size = %d\n" -#: array.c:829 +#: array.c:831 #, c-format msgid "%s: is parameter\n" msgstr " %s\n" -#: array.c:834 +#: array.c:836 #, c-format msgid "%s: array_ref to %s\n" msgstr "%s: %s- (array_ref) \n" -#: awkgram.y:208 +#: awkgram.y:215 #, fuzzy, c-format msgid "%s blocks must have an action part" msgstr " END " -#: awkgram.y:211 +#: awkgram.y:218 #, fuzzy msgid "each rule must have a pattern or an action part" msgstr " END " -#: awkgram.y:267 +#: awkgram.y:254 awkgram.y:263 +#, fuzzy +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "`**' awk" + +#: awkgram.y:282 #, c-format msgid "`%s' is a built-in function, it cannot be redefined" msgstr " , `%s'" -#: awkgram.y:313 +#: awkgram.y:328 #, fuzzy msgid "regexp constant `//' looks like a C++ comment, but is not" msgstr " ,C `/%s/' " -#: awkgram.y:316 +#: awkgram.y:331 #, c-format msgid "regexp constant `/%s/' looks like a C comment, but is not" msgstr " ,C `/%s/' " -#: awkgram.y:343 awkgram.y:623 +#: awkgram.y:358 awkgram.y:653 msgid "statement may have no effect" msgstr " " -#: awkgram.y:440 awkgram.y:460 +#: awkgram.y:455 awkgram.y:479 #, fuzzy, c-format msgid "`%s' used in %s action" msgstr "END BEGIN `next'- " -#: awkgram.y:453 awkgram.y:456 +#: awkgram.y:470 awkgram.y:474 msgid "`nextfile' is a gawk extension" msgstr "gawk- `nextfile'" -#: awkgram.y:470 +#: awkgram.y:489 msgid "`return' used outside function context" msgstr " `return'- " -#: awkgram.y:512 +#: awkgram.y:531 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" msgstr "`print \"\"' END BEGIN `print'" -#: awkgram.y:525 awkgram.y:532 +#: awkgram.y:547 awkgram.y:555 msgid "`delete array' is a gawk extension" msgstr "gawk- `delete array'" -#: awkgram.y:540 awkgram.y:547 +#: awkgram.y:569 awkgram.y:577 #, fuzzy msgid "`delete(array)' is a non-portable tawk extension" msgstr "gawk- `delete array'" -#: awkgram.y:591 +#: awkgram.y:621 #, c-format msgid "duplicate case values in switch body: %s" msgstr "" -#: awkgram.y:601 +#: awkgram.y:631 msgid "Duplicate `default' detected in switch body" msgstr "" -#: awkgram.y:690 +#: awkgram.y:720 msgid "multistage two-way pipelines don't work" msgstr " - " -#: awkgram.y:781 +#: awkgram.y:811 msgid "regular expression on right of assignment" msgstr " " -#: awkgram.y:804 +#: awkgram.y:834 msgid "regular expression on left of `~' or `!~' operator" msgstr "`!~' `~' " -#: awkgram.y:812 +#: awkgram.y:840 awkgram.y:913 +#, fuzzy +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "`**' awk" + +#: awkgram.y:846 msgid "regular expression on right of comparison" msgstr " " -#: awkgram.y:879 +#: awkgram.y:903 msgid "non-redirected `getline' undefined inside END action" msgstr "END `getline'" -#: awkgram.y:906 +#: awkgram.y:914 +#, fuzzy +msgid "old awk does not support multidimensional arrays" +msgstr "`**' awk" + +#: awkgram.y:960 msgid "call of `length' without parentheses is not portable" msgstr " `length'- " -#: awkgram.y:909 +#: awkgram.y:965 msgid "call of `length' without parentheses is deprecated by POSIX" msgstr "POSIX `length'- " -#: awkgram.y:962 +#: awkgram.y:1019 msgid "use of non-array as array" msgstr "" -#: awkgram.y:964 +#: awkgram.y:1022 msgid "invalid subscript expression" msgstr " " -#: awkgram.y:1171 +#: awkgram.y:1249 #, fuzzy msgid "unexpected newline or end of string" msgstr "- " -#: awkgram.y:1267 +#: awkgram.y:1366 msgid "empty program text on command line" msgstr " " -#: awkgram.y:1320 +#: awkgram.y:1422 #, c-format msgid "can't open source file `%s' for reading (%s)" msgstr " `%s' (%s) " -#: awkgram.y:1397 +#: awkgram.y:1520 #, c-format msgid "can't read sourcefile `%s' (%s)" msgstr "`%s' (%s) " -#: awkgram.y:1405 +#: awkgram.y:1528 #, c-format msgid "source file `%s' is empty" msgstr " `%s' " -#: awkgram.y:1596 awkgram.y:1718 awkgram.y:1736 awkgram.y:2107 awkgram.y:2194 +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 msgid "source file does not end in newline" msgstr "- " -#: awkgram.y:1658 +#: awkgram.y:1782 msgid "unterminated regexp ends with `\\' at end of file" msgstr " `\\'- - " -#: awkgram.y:1682 +#: awkgram.y:1806 #, c-format msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -#: awkgram.y:1686 +#: awkgram.y:1810 #, c-format msgid "tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -#: awkgram.y:1693 +#: awkgram.y:1817 msgid "unterminated regexp" msgstr "- " -#: awkgram.y:1696 +#: awkgram.y:1820 msgid "unterminated regexp at end of file" msgstr " - " -#: awkgram.y:1762 +#: awkgram.y:1889 msgid "use of `\\ #...' line continuation is not portable" msgstr " `\\ #...'- " -#: awkgram.y:1774 +#: awkgram.y:1902 msgid "backslash not last character on line" msgstr " " -#: awkgram.y:1819 +#: awkgram.y:1947 msgid "POSIX does not allow operator `**='" msgstr "`**=' POSIX" -#: awkgram.y:1821 +#: awkgram.y:1949 msgid "old awk does not support operator `**='" msgstr "`**=' awk" -#: awkgram.y:1830 +#: awkgram.y:1958 msgid "POSIX does not allow operator `**'" msgstr "`**' POSIX" -#: awkgram.y:1832 +#: awkgram.y:1960 msgid "old awk does not support operator `**'" msgstr "`**' awk" -#: awkgram.y:1863 +#: awkgram.y:1991 msgid "operator `^=' is not supported in old awk" msgstr " awk- `^=' " -#: awkgram.y:1871 +#: awkgram.y:1999 msgid "operator `^' is not supported in old awk" msgstr " awk- `^' " -#: awkgram.y:1955 awkgram.y:1970 +#: awkgram.y:2083 awkgram.y:2098 msgid "unterminated string" msgstr "- " -#: awkgram.y:2155 +#: awkgram.y:2283 #, c-format msgid "invalid char '%c' in expression" msgstr " '%c' " -#: awkgram.y:2203 +#: awkgram.y:2331 #, c-format msgid "`%s' is a gawk extension" msgstr "gawk- `%s'" -#: awkgram.y:2206 +#: awkgram.y:2334 #, c-format msgid "`%s' is a Bell Labs extension" msgstr "Bell awk- `%s'" -#: awkgram.y:2209 +#: awkgram.y:2337 #, c-format msgid "POSIX does not allow `%s'" msgstr "`%s' POSIX" -#: awkgram.y:2213 +#: awkgram.y:2341 #, c-format msgid "`%s' is not supported in old awk" msgstr " awk- `%s'" -#: awkgram.y:2239 +#: awkgram.y:2367 msgid "`goto' considered harmful!\n" msgstr "!- `goto'\n" -#: awkgram.y:2301 +#: awkgram.y:2429 #, c-format msgid "%d is invalid as number of arguments for %s" msgstr " %d %s" -#: awkgram.y:2320 awkgram.y:2323 +#: awkgram.y:2448 awkgram.y:2451 msgid "match: third argument is a gawk extension" msgstr "gawk- `match' " -#: awkgram.y:2336 +#: awkgram.y:2464 #, c-format msgid "%s: string literal as last arg of substitute has no effect" msgstr " `%s' " -#: awkgram.y:2339 +#: awkgram.y:2467 #, fuzzy, c-format msgid "%s third parameter is not a changeable object" msgstr "- `sub' " -#: awkgram.y:2366 awkgram.y:2369 +#: awkgram.y:2494 awkgram.y:2497 msgid "close: second argument is a gawk extension" msgstr "gawk- `close' " -#: awkgram.y:2379 +#: awkgram.y:2507 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" msgstr " - :dcgettext(_\"...\")- " -#: awkgram.y:2394 +#: awkgram.y:2522 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" msgstr " - :dncgettext(_\"...\")- " -#: awkgram.y:2465 +#: awkgram.y:2594 #, c-format msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" msgstr "`%s' %d ' ,`%s' ,%d ' " -#: awkgram.y:2498 +#: awkgram.y:2627 #, c-format msgid "function `%s': parameter `%s' shadows global variable" msgstr " `%s' `%s' " -#: awkgram.y:2610 +#: awkgram.y:2739 #, c-format msgid "could not open `%s' for writing (%s)" msgstr " `%s' (%s) " -#: awkgram.y:2611 profile.c:93 +#: awkgram.y:2740 profile.c:94 msgid "sending profile to standard error" msgstr " " -#: awkgram.y:2643 +#: awkgram.y:2772 #, c-format msgid "%s: close failed (%s)" msgstr "`%s' (%s) " -#: awkgram.y:2764 +#: awkgram.y:2893 msgid "shadow_funcs() called twice!" msgstr "! shadow_funcs()" -#: awkgram.y:2791 +#: awkgram.y:2920 msgid "there were shadowed variables." msgstr "" -#: awkgram.y:2864 +#: awkgram.y:2993 #, c-format msgid "function `%s': can't use function name as parameter name" msgstr " :`%s' " -#: awkgram.y:2874 +#: awkgram.y:3003 #, c-format msgid "function name `%s' previously defined" msgstr " `%s' " -#: awkgram.y:3025 awkgram.y:3031 +#: awkgram.y:3154 awkgram.y:3160 #, c-format msgid "function `%s' called but never defined" msgstr " `%s' " -#: awkgram.y:3034 +#: awkgram.y:3163 #, c-format msgid "function `%s' defined but never called" msgstr " , `%s' " -#: awkgram.y:3061 +#: awkgram.y:3190 #, c-format msgid "regexp constant for parameter #%d yields boolean value" msgstr " %d ' " -#: awkgram.y:3105 +#: awkgram.y:3234 #, fuzzy, c-format msgid "" "function `%s' called with space between name and `(',\n" @@ -388,383 +403,383 @@ ",`(' `%s' \n" "%s" -#: builtin.c:145 +#: builtin.c:119 #, c-format msgid "%s to \"%s\" failed (%s)" msgstr "%s \" \"%s\"- (%s) " -#: builtin.c:146 +#: builtin.c:120 msgid "standard output" msgstr " " -#: builtin.c:147 +#: builtin.c:121 msgid "reason unknown" msgstr "- " -#: builtin.c:160 +#: builtin.c:134 msgid "exp: received non-numeric argument" msgstr " :exp" -#: builtin.c:166 +#: builtin.c:140 #, c-format msgid "exp: argument %g is out of range" msgstr " %g :exp" -#: builtin.c:224 +#: builtin.c:198 #, c-format msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" msgstr " , `%s' : :fflush" -#: builtin.c:227 +#: builtin.c:201 #, c-format msgid "fflush: cannot flush: file `%s' opened for reading, not writing" msgstr " , `%s' : :fflush" -#: builtin.c:239 +#: builtin.c:213 #, c-format msgid "fflush: `%s' is not an open file, pipe or co-process" msgstr " , `%s' :fflush" -#: builtin.c:332 +#: builtin.c:306 msgid "index: received non-string first argument" msgstr " :index" -#: builtin.c:334 +#: builtin.c:308 msgid "index: received non-string second argument" msgstr " :index" -#: builtin.c:449 +#: builtin.c:423 msgid "int: received non-numeric argument" msgstr " :int" -#: builtin.c:472 +#: builtin.c:448 #, fuzzy msgid "`length(array)' is a gawk extension" msgstr "gawk- `delete array'" -#: builtin.c:481 +#: builtin.c:458 msgid "length: received non-string argument" msgstr " :length" -#: builtin.c:506 +#: builtin.c:483 msgid "log: received non-numeric argument" msgstr " :log" -#: builtin.c:509 +#: builtin.c:486 #, c-format msgid "log: received negative argument %g" msgstr "%g :log" -#: builtin.c:673 builtin.c:676 +#: builtin.c:693 builtin.c:696 msgid "must use `count$' on all formats or none" msgstr " `count$'- " -#: builtin.c:778 +#: builtin.c:799 msgid "`$' is not permitted in awk formats" msgstr "awk `$'" -#: builtin.c:784 +#: builtin.c:805 msgid "arg count with `$' must be > 0" msgstr "0- `$' " -#: builtin.c:786 +#: builtin.c:807 #, fuzzy, c-format msgid "arg count %ld greater than total number of supplied arguments" msgstr " %d " -#: builtin.c:788 +#: builtin.c:809 msgid "`$' not permitted after period in format" msgstr " `$'" -#: builtin.c:801 +#: builtin.c:822 msgid "no `$' supplied for positional field width or precision" msgstr " `$' " -#: builtin.c:867 +#: builtin.c:888 msgid "`l' is meaningless in awk formats; ignored" msgstr " ;awk `l'" -#: builtin.c:871 +#: builtin.c:892 msgid "`l' is not permitted in POSIX awk formats" msgstr "POSIX - awk `l'" -#: builtin.c:882 +#: builtin.c:903 msgid "`L' is meaningless in awk formats; ignored" msgstr " ;awk `L'" -#: builtin.c:886 +#: builtin.c:907 msgid "`L' is not permitted in POSIX awk formats" msgstr "POSIX - awk `L'" -#: builtin.c:897 +#: builtin.c:918 msgid "`h' is meaningless in awk formats; ignored" msgstr " ;awk `h'" -#: builtin.c:901 +#: builtin.c:922 msgid "`h' is not permitted in POSIX awk formats" msgstr "POSIX - awk `h'" -#: builtin.c:1132 +#: builtin.c:1182 #, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" msgstr "" -#: builtin.c:1198 +#: builtin.c:1266 msgid "not enough arguments to satisfy format string" msgstr " " -#: builtin.c:1200 +#: builtin.c:1268 msgid "^ ran out for this one" msgstr "^ " -#: builtin.c:1205 +#: builtin.c:1274 msgid "[s]printf: format specifier does not have control letter" msgstr " :[s]printf" -#: builtin.c:1208 +#: builtin.c:1277 msgid "too many arguments supplied for format string" msgstr " " -#: builtin.c:1274 builtin.c:1277 +#: builtin.c:1352 builtin.c:1355 msgid "printf: no arguments" msgstr " :printf" -#: builtin.c:1301 +#: builtin.c:1379 msgid "sqrt: received non-numeric argument" msgstr " :sqrt" -#: builtin.c:1305 +#: builtin.c:1383 #, c-format msgid "sqrt: called with negative argument %g" msgstr "%g :sqrt" -#: builtin.c:1329 +#: builtin.c:1407 #, c-format msgid "substr: start index %g is invalid, using 1" msgstr "1- , %g :substr" -#: builtin.c:1334 +#: builtin.c:1412 #, c-format msgid "substr: non-integer start index %g will be truncated" msgstr " , , %g :substr" -#: builtin.c:1353 +#: builtin.c:1431 #, fuzzy, c-format msgid "substr: length %g is not >= 1" msgstr "0- %g :substr" -#: builtin.c:1355 +#: builtin.c:1433 #, fuzzy, c-format msgid "substr: length %g is not >= 0" msgstr "0- %g :substr" -#: builtin.c:1362 +#: builtin.c:1440 #, c-format msgid "substr: non-integer length %g will be truncated" msgstr " , ,%g :substr" -#: builtin.c:1367 +#: builtin.c:1445 #, c-format msgid "substr: length %g too big for string indexing, truncating to %g" msgstr "" -#: builtin.c:1379 +#: builtin.c:1457 msgid "substr: source string is zero length" msgstr " :substr" -#: builtin.c:1395 +#: builtin.c:1473 #, fuzzy, c-format msgid "substr: start index %g is past end of string" msgstr " %d :substr" -#: builtin.c:1403 +#: builtin.c:1481 #, fuzzy, c-format msgid "" "substr: length %g at start index %g exceeds length of first argument (%lu)" msgstr "" "%d %d - (%d) :substr" -#: builtin.c:1478 +#: builtin.c:1558 msgid "strftime: received non-string first argument" msgstr " :strftime" -#: builtin.c:1484 +#: builtin.c:1564 msgid "strftime: received empty format string" msgstr " :strftime" -#: builtin.c:1493 +#: builtin.c:1573 msgid "strftime: received non-numeric second argument" msgstr " :strftime" -#: builtin.c:1556 +#: builtin.c:1650 msgid "mktime: received non-string argument" msgstr " :mktime" -#: builtin.c:1601 +#: builtin.c:1695 msgid "system: received non-string argument" msgstr " :system" -#: builtin.c:1722 eval.c:2039 +#: builtin.c:1816 eval.c:2041 #, fuzzy, c-format msgid "reference to uninitialized field `$%d'" msgstr "`%s' - " -#: builtin.c:1827 +#: builtin.c:1921 msgid "tolower: received non-string argument" msgstr " :tolower" -#: builtin.c:1857 +#: builtin.c:1951 msgid "toupper: received non-string argument" msgstr " :toupper" -#: builtin.c:1890 +#: builtin.c:1984 msgid "atan2: received non-numeric first argument" msgstr " :atan2" -#: builtin.c:1892 +#: builtin.c:1986 msgid "atan2: received non-numeric second argument" msgstr " :atan2" -#: builtin.c:1911 +#: builtin.c:2005 msgid "sin: received non-numeric argument" msgstr " :sin" -#: builtin.c:1927 +#: builtin.c:2021 msgid "cos: received non-numeric argument" msgstr " :cos" -#: builtin.c:1977 +#: builtin.c:2071 msgid "srand: received non-numeric argument" msgstr " :srand" -#: builtin.c:2012 +#: builtin.c:2106 msgid "match: third argument is not an array" msgstr " :match" -#: builtin.c:2555 +#: builtin.c:2650 msgid "gensub: third argument of 0 treated as 1" msgstr "1- 0 :gensub" -#: builtin.c:2715 +#: builtin.c:2766 msgid "lshift: received non-numeric first argument" msgstr " :lshift" -#: builtin.c:2717 +#: builtin.c:2768 #, fuzzy msgid "lshift: received non-numeric second argument" msgstr " :strftime" -#: builtin.c:2723 +#: builtin.c:2774 #, c-format msgid "lshift(%lf, %lf): negative values will give strange results" msgstr "- :lshift(%lf, %lf)" -#: builtin.c:2725 +#: builtin.c:2776 #, c-format msgid "lshift(%lf, %lf): fractional values will be truncated" msgstr " :lshift(%lf, %lf)" -#: builtin.c:2727 +#: builtin.c:2778 #, c-format msgid "lshift(%lf, %lf): too large shift value will give strange results" msgstr "- :lshift(%lf, %lf)" -#: builtin.c:2753 +#: builtin.c:2804 msgid "rshift: received non-numeric first argument" msgstr " :rshift" -#: builtin.c:2755 +#: builtin.c:2806 #, fuzzy msgid "rshift: received non-numeric second argument" msgstr " :strftime" -#: builtin.c:2761 +#: builtin.c:2812 #, c-format msgid "rshift(%lf, %lf): negative values will give strange results" msgstr "- :rshift(%lf, %lf)" -#: builtin.c:2763 +#: builtin.c:2814 #, c-format msgid "rshift(%lf, %lf): fractional values will be truncated" msgstr " :rshift(%lf, %lf)" -#: builtin.c:2765 +#: builtin.c:2816 #, c-format msgid "rshift(%lf, %lf): too large shift value will give strange results" msgstr "- :rshift(%lf, %lf)" -#: builtin.c:2791 +#: builtin.c:2842 msgid "and: received non-numeric first argument" msgstr " :and" -#: builtin.c:2793 +#: builtin.c:2844 #, fuzzy msgid "and: received non-numeric second argument" msgstr " :atan2" -#: builtin.c:2799 +#: builtin.c:2850 #, c-format msgid "and(%lf, %lf): negative values will give strange results" msgstr "- :and(%lf, %lf)" -#: builtin.c:2801 +#: builtin.c:2852 #, c-format msgid "and(%lf, %lf): fractional values will be truncated" msgstr " :and(%lf, %lf)" -#: builtin.c:2827 +#: builtin.c:2878 msgid "or: received non-numeric first argument" msgstr " :or" -#: builtin.c:2829 +#: builtin.c:2880 #, fuzzy msgid "or: received non-numeric second argument" msgstr " :atan2" -#: builtin.c:2835 +#: builtin.c:2886 #, c-format msgid "or(%lf, %lf): negative values will give strange results" msgstr "- :or(%lf, %lf)" -#: builtin.c:2837 +#: builtin.c:2888 #, c-format msgid "or(%lf, %lf): fractional values will be truncated" msgstr " :or(%lf, %lf)" -#: builtin.c:2863 +#: builtin.c:2914 msgid "xor: received non-numeric first argument" msgstr " :xor" -#: builtin.c:2865 +#: builtin.c:2916 #, fuzzy msgid "xor: received non-numeric second argument" msgstr " :atan2" -#: builtin.c:2871 +#: builtin.c:2922 #, c-format msgid "xor(%lf, %lf): negative values will give strange results" msgstr "- :xor(%lf, %lf)" -#: builtin.c:2873 +#: builtin.c:2924 #, c-format msgid "xor(%lf, %lf): fractional values will be truncated" msgstr " :xor(%lf, %lf)" -#: builtin.c:2897 +#: builtin.c:2948 msgid "compl: received non-numeric argument" msgstr " :compl" -#: builtin.c:2903 +#: builtin.c:2954 #, c-format msgid "compl(%lf): negative value will give strange results" msgstr "- :compl(%lf)" -#: builtin.c:2905 +#: builtin.c:2956 #, c-format msgid "compl(%lf): fractional value will be truncated" msgstr " :compl(%lf)" -#: builtin.c:3078 +#: builtin.c:3129 #, c-format msgid "dcgettext: `%s' is not a valid locale category" msgstr " `%s' :dcgettext" @@ -778,7 +793,7 @@ msgid "buffer overflow in genflags2str" msgstr "genflags2str- " -#: eval.c:385 eval.c:391 profile.c:838 +#: eval.c:385 eval.c:391 profile.c:817 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr " `%s' " @@ -824,7 +839,7 @@ msgid "statement has no effect" msgstr "- " -#: eval.c:952 eval.c:1893 +#: eval.c:952 eval.c:1895 #, c-format msgid "can't use function name `%s' as variable or array" msgstr " `%s' " @@ -834,7 +849,7 @@ msgid "reference to uninitialized argument `%s'" msgstr "`%s' - " -#: eval.c:974 eval.c:1902 +#: eval.c:974 eval.c:1904 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "`%s' - " @@ -846,44 +861,44 @@ msgstr "" "! - :concatenation" -#: eval.c:1200 +#: eval.c:1202 msgid "assignment used in conditional context" msgstr " " -#: eval.c:1278 +#: eval.c:1280 msgid "division by zero attempted" msgstr " " -#: eval.c:1293 +#: eval.c:1295 #, c-format msgid "division by zero attempted in `%%'" msgstr "`%%'- " -#: eval.c:1308 profile.c:714 +#: eval.c:1310 profile.c:693 #, c-format msgid "illegal type (%s) in tree_eval" msgstr "tree_eval- (%s) " -#: eval.c:1471 +#: eval.c:1473 msgid "division by zero attempted in `/='" msgstr "`/='- " -#: eval.c:1493 +#: eval.c:1495 #, c-format msgid "division by zero attempted in `%%='" msgstr "`%%='- " -#: eval.c:1758 +#: eval.c:1760 #, c-format msgid "function `%s' called with more arguments than declared" msgstr " `%s' " -#: eval.c:1802 +#: eval.c:1804 #, c-format msgid "function `%s' not defined" msgstr " `%s' " -#: eval.c:1865 +#: eval.c:1867 #, c-format msgid "" "\n" @@ -894,661 +909,675 @@ "\t# : \n" "\n" -#: eval.c:1868 +#: eval.c:1870 #, c-format msgid "\t# -- main --\n" msgstr "\t# -- main --\n" -#: eval.c:2023 +#: eval.c:2025 msgid "attempt to field reference from non-numeric value" msgstr " " -#: eval.c:2025 +#: eval.c:2027 msgid "attempt to reference from null string" msgstr " " -#: eval.c:2031 +#: eval.c:2033 #, c-format msgid "attempt to access field %d" msgstr "%d ' " -#: eval.c:2052 eval.c:2059 profile.c:935 +#: eval.c:2054 eval.c:2061 profile.c:914 msgid "assignment is not allowed to result of builtin function" msgstr " " -#: eval.c:2123 +#: eval.c:2125 msgid "`IGNORECASE' is a gawk extension" msgstr "gawk- `IGNORECASE'" -#: eval.c:2153 +#: eval.c:2155 msgid "`BINMODE' is a gawk extension" msgstr "gawk- `BINMODE'" -#: eval.c:2275 +#: eval.c:2277 #, c-format msgid "bad `%sFMT' specification `%s'" msgstr " `%sFMT' `%s'" -#: eval.c:2353 +#: eval.c:2355 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "`LINT'- `--lint' " -#: ext.c:60 ext.c:64 +#: ext.c:62 ext.c:67 msgid "`extension' is a gawk extension" msgstr "gawk- `extension'" -#: ext.c:74 +#: ext.c:77 #, c-format msgid "extension: cannot open `%s' (%s)\n" msgstr "`%s' (%s) :extension\n" -#: ext.c:82 +#: ext.c:85 #, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "`%s' `%s' (%s) :extension\n" -#: ext.c:102 +#: ext.c:105 msgid "extension: missing function name" msgstr "" -#: ext.c:107 +#: ext.c:110 #, fuzzy, c-format msgid "extension: illegal character `%c' in function name `%s'" msgstr "`%s' `%s' (%s) :extension\n" -#: ext.c:113 +#: ext.c:116 #, fuzzy, c-format msgid "extension: can't redefine function `%s'" msgstr "`%s' (%s) :extension\n" -#: ext.c:117 +#: ext.c:120 #, fuzzy, c-format msgid "extension: function `%s' already defined" msgstr " `%s' " -#: ext.c:122 +#: ext.c:125 #, c-format msgid "extension: can't use gawk built-in `%s' as function name" msgstr "" -#: ext.c:124 +#: ext.c:127 #, fuzzy, c-format msgid "extension: function name `%s' previously defined" msgstr " `%s' " -#: ext.c:201 +#: ext.c:204 #, fuzzy, c-format msgid "function `%s' defined to take no more than %d argument(s)" msgstr " , `%s' " -#: ext.c:204 +#: ext.c:207 #, fuzzy, c-format msgid "function `%s': missing argument #%d" msgstr " `%s' " -#: ext.c:214 +#: ext.c:217 #, fuzzy, c-format msgid "function `%s': argument #%d: attempt to use scalar as an array" msgstr " `%s' " -#: ext.c:218 +#: ext.c:221 #, c-format msgid "function `%s': argument #%d: attempt to use array as a scalar" msgstr "" -#: ext.c:243 +#: ext.c:246 msgid "Operation Not Supported" msgstr " " -#: field.c:326 +#: field.c:330 msgid "NF set to negative value" msgstr " NF" -#: field.c:819 +#: field.c:823 msgid "split: second argument is not an array" msgstr " `split' " -#: field.c:853 +#: field.c:857 msgid "split: null string for third arg is a gawk extension" msgstr "gawk- `split'- " -#: field.c:905 +#: field.c:909 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "gawk- `FIELDWIDTHS'" -#: field.c:935 field.c:946 +#: field.c:939 field.c:953 #, c-format msgid "invalid FIELDWIDTHS value, near `%s'" msgstr "" -#: field.c:1027 +#: field.c:1036 msgid "null string for `FS' is a gawk extension" msgstr "gawk- `FS'- " +#: field.c:1040 +#, fuzzy +msgid "old awk does not support regexps as value of `FS'" +msgstr "`**' awk" + # The way the leading "%s:" is translated is a terrible kludge, # but what can I do? FIXME. -#: getopt.c:571 getopt.c:590 +#: getopt.c:571 getopt.c:587 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s - `%s' \n" -#: getopt.c:623 getopt.c:627 +#: getopt.c:620 getopt.c:624 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s `--%s' \n" -#: getopt.c:636 getopt.c:641 +#: getopt.c:633 getopt.c:638 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s `%c%s' \n" -#: getopt.c:687 getopt.c:709 getopt.c:1040 getopt.c:1062 +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s `%s' \n" -#: getopt.c:747 getopt.c:750 +#: getopt.c:738 getopt.c:741 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s `--%s' - \n" -#: getopt.c:758 getopt.c:761 +#: getopt.c:749 getopt.c:752 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s `%c%s' - \n" # "Illegal" is against GNU coding standards, but since Posix requires # it (see the comment below), let's say that in Hebrew as well... -#: getopt.c:816 getopt.c:819 +#: getopt.c:804 getopt.c:807 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: - -- %c\n" -#: getopt.c:825 getopt.c:828 +#: getopt.c:813 getopt.c:816 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s -- %c\n" -#: getopt.c:883 getopt.c:902 getopt.c:1115 getopt.c:1136 main.c:448 +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: -- %c\n" -#: getopt.c:955 getopt.c:974 +#: getopt.c:937 getopt.c:953 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s - `-W %s' \n" -#: getopt.c:998 getopt.c:1019 +#: getopt.c:977 getopt.c:995 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s `-W %s' \n" -#: io.c:307 +#: io.c:345 #, c-format msgid "cannot open file `%s' for reading (%s)" msgstr " `%s' (%s) " -#: io.c:398 +#: io.c:436 #, c-format msgid "close of fd %d (`%s') failed (%s)" msgstr "(%d / ) `%s' (%s) " -#: io.c:536 +#: io.c:575 #, c-format msgid "invalid tree type %s in redirect()" msgstr "redirect() %s " -#: io.c:542 +#: io.c:581 #, c-format msgid "expression in `%s' redirection only has numeric value" msgstr " `%s' / " -#: io.c:548 +#: io.c:587 #, c-format msgid "expression for `%s' redirection has null string value" msgstr " `%s' / " -#: io.c:553 +#: io.c:592 #, c-format msgid "filename `%s' for `%s' redirection may be result of logical expression" msgstr " `%s' `%s' / " -#: io.c:591 +#: io.c:630 #, c-format msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" msgstr "`%.*s' `>>'- `>'- " -#: io.c:643 +#: io.c:682 #, c-format msgid "can't open pipe `%s' for output (%s)" msgstr " `%s' (%s) " -#: io.c:652 +#: io.c:691 #, c-format msgid "can't open pipe `%s' for input (%s)" msgstr " `%s' (%s) " -#: io.c:665 +#: io.c:698 io.c:1448 +#, c-format +msgid "file `%s' is a directory" +msgstr " `%s' " + +#: io.c:706 #, c-format msgid "can't open two way socket `%s' for input/output (%s)" msgstr "/ - (socket) `%s' (%s) " -#: io.c:669 +#: io.c:710 #, c-format msgid "can't open two way pipe `%s' for input/output (%s)" msgstr "/ - (pipe) `%s' (%s) " -#: io.c:745 +#: io.c:786 #, c-format msgid "can't redirect from `%s' (%s)" msgstr "`%s'- (%s) " -#: io.c:748 +#: io.c:789 #, c-format msgid "can't redirect to `%s' (%s)" msgstr "`%s' (%s) " -#: io.c:787 +#: io.c:828 msgid "" "reached system limit for open files: starting to multiplex file descriptors" msgstr "/ ; " -#: io.c:803 +#: io.c:844 #, c-format msgid "close of `%s' failed (%s)." msgstr "`%s' (%s) " -#: io.c:811 +#: io.c:852 msgid "too many pipes or input files open" msgstr "- (pipes) " -#: io.c:834 +#: io.c:875 msgid "close: second argument must be `to' or `from'" msgstr "`from' `to' `close' " -#: io.c:848 +#: io.c:889 #, c-format msgid "close: `%.*s' is not an open file, pipe or co-process" msgstr " , `%.*s' :close" -#: io.c:852 +#: io.c:893 msgid "close of redirection that was never opened" msgstr " " -#: io.c:948 +#: io.c:989 #, c-format msgid "close: redirection `%s' not opened with `|&', second argument ignored" msgstr " ,`|&' \" `%s' " -#: io.c:964 +#: io.c:1005 #, c-format msgid "failure status (%d) on pipe close of `%s' (%s)" msgstr "(%d ) `%s'- (%s) " -#: io.c:967 +#: io.c:1008 #, c-format msgid "failure status (%d) on file close of `%s' (%s)" msgstr "(%d ) `%s' (%s) " -#: io.c:987 +#: io.c:1028 #, c-format msgid "no explicit close of socket `%s' provided" msgstr " (socket) `%s' " -#: io.c:990 +#: io.c:1031 #, c-format msgid "no explicit close of co-process `%s' provided" msgstr " (co-process) `%s' " -#: io.c:993 +#: io.c:1034 #, c-format msgid "no explicit close of pipe `%s' provided" msgstr " (pipe) `%s' " -#: io.c:996 +#: io.c:1037 #, c-format msgid "no explicit close of file `%s' provided" msgstr " `%s' " -#: io.c:1025 io.c:1080 main.c:718 main.c:756 +#: io.c:1066 io.c:1121 main.c:749 main.c:791 #, c-format msgid "error writing standard output (%s)" msgstr " (%s) " -#: io.c:1029 io.c:1085 +#: io.c:1070 io.c:1126 #, c-format msgid "error writing standard error (%s)" msgstr " (%s) " -#: io.c:1037 +#: io.c:1078 #, c-format msgid "pipe flush of `%s' failed (%s)." msgstr "`%s'- (%s) " -#: io.c:1040 +#: io.c:1081 #, c-format msgid "co-process flush of pipe to `%s' failed (%s)." msgstr "`%s'- (%s) " -#: io.c:1043 +#: io.c:1084 #, c-format msgid "file flush of `%s' failed (%s)." msgstr "`%s' (%s) " -#: io.c:1205 +#: io.c:1198 +#, fuzzy, c-format +msgid "local port %s invalid in `/inet'" +msgstr "`%s'- " + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "" + +#: io.c:1250 msgid "/inet/raw client not ready yet, sorry" msgstr " /inet/raw ," -#: io.c:1207 io.c:1244 +#: io.c:1253 io.c:1289 msgid "only root may use `/inet/raw'." msgstr " root `inet/raw'- " -#: io.c:1242 +#: io.c:1287 msgid "/inet/raw server not ready yet, sorry" msgstr " /inet/raw ," -#: io.c:1332 +#: io.c:1385 #, c-format msgid "no (known) protocol supplied in special filename `%s'" msgstr "`%s' - " -#: io.c:1350 +#: io.c:1399 #, c-format msgid "special file name `%s' is incomplete" msgstr " `%s' " -#: io.c:1362 -#, c-format -msgid "local port invalid in `%s'" -msgstr "`%s'- " - -#: io.c:1374 +#: io.c:1414 msgid "must supply a remote hostname to `/inet'" msgstr "`/inet' - " -#: io.c:1389 +#: io.c:1432 msgid "must supply a remote port to `/inet'" msgstr "`/inet' " -#: io.c:1395 -#, c-format -msgid "remote port invalid in `%s'" -msgstr "`%s'- " - -#: io.c:1405 +#: io.c:1439 msgid "TCP/IP communications are not supported" msgstr "TCP/IP " -#: io.c:1414 io.c:1595 -#, c-format -msgid "file `%s' is a directory" -msgstr " `%s' " - -#: io.c:1484 +#: io.c:1509 #, c-format msgid "use `PROCINFO[\"%s\"]' instead of `%s'" msgstr "`PROCINFO[\"%s\"]'- `%s' " -#: io.c:1516 +#: io.c:1547 msgid "use `PROCINFO[...]' instead of `/dev/user'" msgstr "`/dev/user' - `PROCINFO[...]'- " # This probably sounds nonsensical in Hebrew, but what can I do, # given the original message text? -#: io.c:1581 io.c:1763 +#: io.c:1612 io.c:1798 #, c-format msgid "could not open `%s', mode `%s'" msgstr "`%s' `%s' " -#: io.c:1814 +#: io.c:1849 #, fuzzy, c-format msgid "close of master pty failed (%s)" msgstr " (%s) " -#: io.c:1816 io.c:1968 io.c:2119 +#: io.c:1851 io.c:2003 io.c:2154 #, c-format msgid "close of stdout in child failed (%s)" msgstr "- stdout (%s) " -#: io.c:1819 +#: io.c:1854 #, fuzzy, c-format msgid "moving slave pty to stdout in child failed (dup: %s)" msgstr "- stdout- (dup: %s) " -#: io.c:1821 io.c:1973 +#: io.c:1856 io.c:2008 #, c-format msgid "close of stdin in child failed (%s)" msgstr "- stdin (%s) " -#: io.c:1824 +#: io.c:1859 #, fuzzy, c-format msgid "moving slave pty to stdin in child failed (dup: %s)" msgstr "- stdin- (dup: %s) " -#: io.c:1826 io.c:1845 +#: io.c:1861 io.c:1880 #, fuzzy, c-format msgid "close of slave pty failed (%s)" msgstr " (%s) " -#: io.c:1919 io.c:1971 io.c:2100 io.c:2122 +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 #, c-format msgid "moving pipe to stdout in child failed (dup: %s)" msgstr "- stdout- (dup: %s) " -#: io.c:1923 io.c:1976 +#: io.c:1958 io.c:2011 #, c-format msgid "moving pipe to stdin in child failed (dup: %s)" msgstr "- stdin- (dup: %s) " -#: io.c:1940 io.c:2113 +#: io.c:1975 io.c:2148 msgid "restoring stdout in parent process failed\n" msgstr "- stdout \n" -#: io.c:1945 +#: io.c:1980 msgid "restoring stdin in parent process failed\n" msgstr "- stdin \n" -#: io.c:1979 io.c:2124 io.c:2135 +#: io.c:2014 io.c:2159 io.c:2170 #, c-format msgid "close of pipe failed (%s)" msgstr " (%s) " -#: io.c:2024 +#: io.c:2059 msgid "`|&' not supported" msgstr "`|&'- " -#: io.c:2090 +#: io.c:2125 #, c-format msgid "cannot open pipe `%s' (%s)" msgstr "`%s' (%s) " -#: io.c:2131 +#: io.c:2166 #, c-format msgid "cannot create child process for `%s' (fork: %s)" msgstr "`%s' - (fork: %s) " -#: io.c:2506 +#: io.c:2548 #, c-format msgid "data file `%s' is empty" msgstr " `%s' " -#: io.c:2547 io.c:2555 +#: io.c:2589 io.c:2597 msgid "could not allocate more input memory" msgstr "" -#: io.c:2919 io.c:2984 +#: io.c:2965 io.c:3038 #, c-format msgid "error reading input file `%s': %s" msgstr "`%s' (%s) " -#: io.c:3109 +#: io.c:3163 msgid "multicharacter value of `RS' is a gawk extension" msgstr "gawk- `RS' " -#: main.c:338 +#: main.c:351 msgid "`-m[fr]' option irrelevant in gawk" msgstr "gawk `-m[fr]' " -#: main.c:340 +#: main.c:353 msgid "-m option usage: `-m[fr] nnn'" msgstr "`-m[fr] nnn' :-m " -#: main.c:357 +#: main.c:370 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr " ,%s `-W %s' \n" -#: main.c:394 +#: main.c:407 msgid "empty argument to `--source' ignored" msgstr " `--source'- " -#: main.c:467 +#: main.c:480 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" msgstr "`--posix' : `POSIXLY_CORRECT' " -#: main.c:472 +#: main.c:486 msgid "`--posix' overrides `--traditional'" msgstr "`--traditional' `--posix'" -#: main.c:483 +#: main.c:497 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" msgstr "`--non-decimal-data' `--posix'/`--traditional'" -#: main.c:487 +#: main.c:501 #, c-format msgid "running %s setuid root may be a security problem" msgstr " setuid root- %s " -#: main.c:528 +#: main.c:542 #, fuzzy, c-format msgid "can't set binary mode on stdin (%s)" msgstr "stdin (%s) " -#: main.c:531 +#: main.c:545 #, fuzzy, c-format msgid "can't set binary mode on stdout (%s)" msgstr "stdout (%s) " -#: main.c:533 +#: main.c:547 #, fuzzy, c-format msgid "can't set binary mode on stderr (%s)" msgstr "stderr (%s) " -#: main.c:572 +#: main.c:586 msgid "no program text at all!" msgstr "! " -#: main.c:665 +#: main.c:690 #, c-format msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" msgstr "" "%s [GNU POSIX ] -f - [--] - ... : \n" -#: main.c:667 +#: main.c:692 #, c-format msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" msgstr "" "%s [GNU POSIX ] [--] %c%c - ... : \n" -#: main.c:672 +#: main.c:697 msgid "POSIX options:\t\tGNU long options:\n" msgstr ":POSIX \t\t: GNU \n" -#: main.c:673 +#: main.c:698 msgid "\t-f progfile\t\t--file=progfile\n" msgstr "\t-f -\t\t--file=-\n" -#: main.c:674 +#: main.c:699 msgid "\t-F fs\t\t\t--field-separator=fs\n" msgstr "\t-F -\t\t--field-separator=-\n" -#: main.c:675 +#: main.c:700 msgid "\t-v var=val\t\t--assign=var=val\n" msgstr "\t-v =\t\t--assign==\n" -#: main.c:676 +#: main.c:701 msgid "\t-m[fr] val\n" msgstr "\t-m[fr] \n" -#: main.c:677 +#: main.c:702 msgid "\t-W compat\t\t--compat\n" msgstr "\t-W compat\t\t--compat\n" -#: main.c:678 +#: main.c:703 msgid "\t-W copyleft\t\t--copyleft\n" msgstr "\t-W copyleft\t\t--copyleft\n" -#: main.c:679 +#: main.c:704 msgid "\t-W copyright\t\t--copyright\n" msgstr "\t-W copyright\t\t--copyright\n" -#: main.c:680 +#: main.c:705 msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" msgstr "\t-W dump-variables[=-]\t--dump-variables[=-]\n" -#: main.c:681 +#: main.c:706 #, fuzzy msgid "\t-W exec=file\t\t--exec=file\n" msgstr "\t-W profile[=-]\t--profile[=-]\n" -#: main.c:682 +#: main.c:707 msgid "\t-W gen-po\t\t--gen-po\n" msgstr "\t-W gen-po\t\t--gen-po\n" -#: main.c:683 +#: main.c:708 msgid "\t-W help\t\t\t--help\n" msgstr "\t-W help\t\t\t--help\n" -#: main.c:684 +#: main.c:709 msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" msgstr "\t-W lint[=fatal]\t\t--lint[=fatal]\n" -#: main.c:685 +#: main.c:710 msgid "\t-W lint-old\t\t--lint-old\n" msgstr "\t-W lint-old\t\t--lint-old\n" -#: main.c:686 +#: main.c:711 msgid "\t-W non-decimal-data\t--non-decimal-data\n" msgstr "\t-W non-decimal-data\t--non-decimal-data\n" -#: main.c:688 +#: main.c:713 msgid "\t-W nostalgia\t\t--nostalgia\n" msgstr "\t-W nostalgia\t\t--nostalgia\n" -#: main.c:691 +#: main.c:716 msgid "\t-W parsedebug\t\t--parsedebug\n" msgstr "\t-W parsedebug\t\t--parsedebug\n" -#: main.c:693 +#: main.c:718 msgid "\t-W profile[=file]\t--profile[=file]\n" msgstr "\t-W profile[=-]\t--profile[=-]\n" -#: main.c:694 +#: main.c:719 msgid "\t-W posix\t\t--posix\n" msgstr "\t-W posix\t\t--posix\n" -#: main.c:695 +#: main.c:720 msgid "\t-W re-interval\t\t--re-interval\n" msgstr "\t-W re-interval\t\t--re-interval\n" -#: main.c:696 +#: main.c:721 msgid "\t-W source=program-text\t--source=program-text\n" msgstr "\t-W source=-\t--source=-\n" -#: main.c:697 +#: main.c:722 msgid "\t-W traditional\t\t--traditional\n" msgstr "\t-W traditional\t\t--traditional\n" -#: main.c:698 +#: main.c:723 msgid "\t-W usage\t\t--usage\n" msgstr "\t-W usage\t\t--usage\n" -#: main.c:699 +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "" + +#: main.c:725 msgid "\t-W version\t\t--version\n" msgstr "\t-W version\t\t--version\n" -#: main.c:703 +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 msgid "" "\n" "To report bugs, see node `Bugs' in `gawk.info', which is\n" @@ -1560,7 +1589,7 @@ " . `Reporting Problems and Bugs' \n" "\n" -#: main.c:707 +#: main.c:738 msgid "" "gawk is a pattern scanning and processing language.\n" "By default it reads standard input and writes standard output.\n" @@ -1569,7 +1598,7 @@ ". gawk\n" ". \n" -#: main.c:711 +#: main.c:742 msgid "" "Examples:\n" "\tgawk '{ sum += $1 }; END { print sum }' file\n" @@ -1579,14 +1608,14 @@ "\tgawk '{ sum += $1 }; END { print sum }' file\n" "\tgawk -F: '{ print $1 }' /etc/passwd\n" -#: main.c:731 +#: main.c:762 #, c-format msgid "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" +"the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" msgstr "" @@ -1594,10 +1623,10 @@ "\n" " / ; \n" " \" ,GNU General Public License \n" -" , 2 ;Free Software Foundation\n" +" , 3 ;Free Software Foundation\n" " . ( )\n" -#: main.c:739 +#: main.c:770 msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -1610,59 +1639,58 @@ ", . \n" " .GNU General Public License- \n" -#: main.c:745 +#: main.c:781 +#, fuzzy msgid "" "You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" msgstr "" ";GNU General Public License \n" "Free Software Foundation, Inc.- , \n" ".51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\n" -#: main.c:781 +#: main.c:816 msgid "-Ft does not set FS to tab in POSIX awk" msgstr "awk POSIX TAB FS- -Ft" -#: main.c:1018 +#: main.c:1060 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" "\n" msgstr "" -#: main.c:1038 +#: main.c:1080 #, c-format msgid "`%s' is not a legal variable name" msgstr "" -#: main.c:1041 +#: main.c:1083 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "" -#: main.c:1074 +#: main.c:1122 msgid "floating point exception" msgstr " " -#: main.c:1081 +#: main.c:1129 msgid "fatal error: internal error" msgstr " : " # FIXME: I wonder how many people will understand what "fd 2" means. -#: main.c:1132 +#: main.c:1180 #, c-format msgid "no pre-opened fd %d" msgstr " %d / " # FIXME: /dev/null might not be known to all. -#: main.c:1139 +#: main.c:1187 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "/dev/null- %d / " -#: main.c:1162 main.c:1171 +#: main.c:1210 main.c:1219 #, c-format msgid "could not find groups: %s" msgstr "%s : " @@ -1688,23 +1716,28 @@ msgid "fatal: " msgstr "fatal: " -#: node.c:59 node.c:66 node.c:75 node.c:90 node.c:119 +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 msgid "can't convert string to float" msgstr " " -#: node.c:414 +#: node.c:406 msgid "backslash at end of string" msgstr " " -#: node.c:604 +#: node.c:548 +#, fuzzy, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "`**' awk" + +#: node.c:599 msgid "POSIX does not allow `\\x' escapes" msgstr "`\\x' POSIX " -#: node.c:610 +#: node.c:605 msgid "no hex digits in `\\x' escape sequence" msgstr "`\\x' " -#: node.c:644 +#: node.c:639 #, c-format msgid "escape sequence `\\%c' treated as plain `%c'" msgstr " `\\%c' `%c' " @@ -1714,31 +1747,31 @@ msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" msgstr "%s %s `%s' close-on-exec (fcntl: %s) " -#: profile.c:91 +#: profile.c:92 #, c-format msgid "could not open `%s' for writing: %s" msgstr " `%s' (%s) " -#: profile.c:467 +#: profile.c:450 #, fuzzy, c-format msgid "internal error: %s with null vname" msgstr " vname- Node_var : " -#: profile.c:531 +#: profile.c:514 msgid "# treated internally as `delete'" msgstr "" -#: profile.c:1168 +#: profile.c:1147 #, c-format msgid "# this is a dynamically loaded extension function" msgstr "" -#: profile.c:1199 +#: profile.c:1178 #, c-format msgid "\t# gawk profile, created %s\n" msgstr "\t# %s gawk \n" -#: profile.c:1202 +#: profile.c:1181 #, c-format msgid "" "\t# BEGIN block(s)\n" @@ -1747,7 +1780,7 @@ "\t# BEGIN \n" "\n" -#: profile.c:1212 +#: profile.c:1191 #, c-format msgid "" "\t# Rule(s)\n" @@ -1756,7 +1789,7 @@ "\t# ()\n" "\n" -#: profile.c:1218 +#: profile.c:1197 #, c-format msgid "" "\t# END block(s)\n" @@ -1765,7 +1798,7 @@ "\t# END \n" "\n" -#: profile.c:1238 +#: profile.c:1217 #, c-format msgid "" "\n" @@ -1774,83 +1807,86 @@ "\n" "\t# - ,\n" -#: profile.c:1453 +#: profile.c:1470 #, c-format msgid "unexpected type %s in prec_level" msgstr "prec_level- %s " -#: regcomp.c:160 +#: regcomp.c:132 msgid "Success" msgstr "" -#: regcomp.c:163 +#: regcomp.c:135 msgid "No match" msgstr " " -#: regcomp.c:166 +#: regcomp.c:138 msgid "Invalid regular expression" msgstr " " -#: regcomp.c:169 +#: regcomp.c:141 msgid "Invalid collation character" msgstr "- " -#: regcomp.c:172 +#: regcomp.c:144 msgid "Invalid character class name" msgstr " - " -#: regcomp.c:175 +#: regcomp.c:147 msgid "Trailing backslash" msgstr "`\\' " -#: regcomp.c:178 +#: regcomp.c:150 msgid "Invalid back reference" msgstr " - " -#: regcomp.c:181 +#: regcomp.c:153 msgid "Unmatched [ or [^" msgstr "- [^ [" -#: regcomp.c:184 +#: regcomp.c:156 msgid "Unmatched ( or \\(" msgstr "- \\( (" -#: regcomp.c:187 +#: regcomp.c:159 msgid "Unmatched \\{" msgstr "- \\{" -#: regcomp.c:190 +#: regcomp.c:162 msgid "Invalid content of \\{\\}" msgstr "\\{\\} " -#: regcomp.c:193 +#: regcomp.c:165 msgid "Invalid range end" msgstr " " -#: regcomp.c:196 +#: regcomp.c:168 msgid "Memory exhausted" msgstr " " -#: regcomp.c:199 +#: regcomp.c:171 msgid "Invalid preceding regular expression" msgstr " " -#: regcomp.c:202 +#: regcomp.c:174 msgid "Premature end of regular expression" msgstr " " -#: regcomp.c:205 +#: regcomp.c:177 msgid "Regular expression too big" msgstr " " -#: regcomp.c:208 +#: regcomp.c:180 msgid "Unmatched ) or \\)" msgstr "- \\) )" -#: regcomp.c:688 +#: regcomp.c:664 msgid "No previous regular expression" msgstr " " +#~ msgid "remote port invalid in `%s'" +#~ msgstr "`%s'- " + #~ msgid "function %s called\n" #~ msgstr "`%s' \n" diff -urN gawk-3.1.5/po/it.po gawk-3.1.6/po/it.po --- gawk-3.1.5/po/it.po 2005-07-26 20:54:59.000000000 +0300 +++ gawk-3.1.6/po/it.po 2007-10-02 22:14:52.000000000 +0200 @@ -1,14 +1,14 @@ # Italian messages for GNU Awk -# Copyright (C) 2002-2005 Free Software Foundation, Inc. -# Antonio Colombo . +# Copyright (C) 2002-2007 Free Software Foundation, Inc. +# Antonio Colombo . # msgid "" msgstr "" -"Project-Id-Version: gawk 3.1.35\n" +"Project-Id-Version: gawk 3.1.5h\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" -"POT-Creation-Date: 2005-07-06 17:20+0300\n" -"PO-Revision-Date: 2005-06-22 14:00+0100\n" -"Last-Translator: Antonio Colombo \n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" +"PO-Revision-Date: 2007-09-30 23:20+0100\n" +"Last-Translator: Antonio Colombo \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" @@ -34,352 +34,364 @@ msgid "from %s" msgstr "da %s" -#: array.c:511 +#: array.c:514 #, c-format msgid "reference to uninitialized element `%s[\"%s\"]'" msgstr "referenza a elemento non inizializzato `%s[\"%s\"]'" -#: array.c:517 +#: array.c:520 #, c-format msgid "subscript of array `%s' is null string" msgstr "l'indice del vettore '%s' una stringa nulla" -#: array.c:621 +#: array.c:624 #, c-format msgid "delete: index `%s' not in array `%s'" msgstr "delete: indice `%s' non presente nel vettore `%s'" -#: array.c:791 +#: array.c:793 #, c-format msgid "%s: empty (null)\n" msgstr "%s: vuoto (nullo)\n" -#: array.c:796 +#: array.c:798 #, c-format msgid "%s: empty (zero)\n" msgstr "%s: vuoto (zero)\n" -#: array.c:800 +#: array.c:802 #, c-format msgid "%s: table_size = %d, array_size = %d\n" msgstr "%s: dimensione_tabella = %d, dimensione_vettore = %d\n" -#: array.c:829 +#: array.c:831 #, c-format msgid "%s: is parameter\n" msgstr "%s: parametro\n" -#: array.c:834 +#: array.c:836 #, c-format msgid "%s: array_ref to %s\n" msgstr "%s: referenza_vettoriale a %s\n" -#: awkgram.y:208 +#: awkgram.y:215 #, c-format msgid "%s blocks must have an action part" msgstr "blocchi %s richiedono una 'azione'" -#: awkgram.y:211 +#: awkgram.y:218 msgid "each rule must have a pattern or an action part" msgstr "ogni regola deve avere una parte 'espressione' o una parte 'azione'" -#: awkgram.y:267 +#: awkgram.y:254 awkgram.y:263 +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "il vecchio awk non supporta pi di una regola `BEGIN' o `END'" + +#: awkgram.y:282 #, c-format msgid "`%s' is a built-in function, it cannot be redefined" msgstr "`%s' una funzione interna, non si pu ridefinire" -#: awkgram.y:313 +#: awkgram.y:328 msgid "regexp constant `//' looks like a C++ comment, but is not" msgstr "espressione regolare costante `//' sembra un commento C, ma non lo " -#: awkgram.y:316 +#: awkgram.y:331 #, c-format msgid "regexp constant `/%s/' looks like a C comment, but is not" msgstr "espressione regolare costante `/%s/' sembra un commento C, ma non lo " -#: awkgram.y:343 awkgram.y:623 +#: awkgram.y:358 awkgram.y:653 msgid "statement may have no effect" msgstr "istruzione che pu non aver alcun effetto" -#: awkgram.y:440 awkgram.y:460 +#: awkgram.y:455 awkgram.y:479 #, c-format msgid "`%s' used in %s action" msgstr "`%s' usato in 'azione' %s" -#: awkgram.y:453 awkgram.y:456 +#: awkgram.y:470 awkgram.y:474 msgid "`nextfile' is a gawk extension" msgstr "`nextfile' un'estensione gawk" -#: awkgram.y:470 +#: awkgram.y:489 msgid "`return' used outside function context" msgstr "`return' usato fuori da una funzione" -#: awkgram.y:512 +#: awkgram.y:531 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" msgstr "`print' da solo in BEGIN o END dovrebbe forse essere `print \"\"'" -#: awkgram.y:525 awkgram.y:532 +#: awkgram.y:547 awkgram.y:555 msgid "`delete array' is a gawk extension" msgstr "`delete array' un'estensione gawk" -#: awkgram.y:540 awkgram.y:547 +#: awkgram.y:569 awkgram.y:577 msgid "`delete(array)' is a non-portable tawk extension" msgstr "`delete(array)' un'estensione tawk non-portabile" -#: awkgram.y:591 +#: awkgram.y:621 #, c-format msgid "duplicate case values in switch body: %s" msgstr "valori di 'case' doppi all'interno di uno 'switch': %s" -#: awkgram.y:601 +#: awkgram.y:631 msgid "Duplicate `default' detected in switch body" msgstr "Valori per difetto doppi all'interno di uno 'switch'" -#: awkgram.y:690 +#: awkgram.y:720 msgid "multistage two-way pipelines don't work" msgstr "'pipelines' multistadio bidirezionali non funzionano" -#: awkgram.y:781 +#: awkgram.y:811 msgid "regular expression on right of assignment" msgstr "espressione regolare usata per assegnare un valore" -#: awkgram.y:804 +#: awkgram.y:834 msgid "regular expression on left of `~' or `!~' operator" msgstr "espressione regolare prima di operatore `~' o `!~'" -#: awkgram.y:812 +#: awkgram.y:840 awkgram.y:913 +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "il vecchio awk non supporta la parola-chiave `in' se non dopo `for'" + +#: awkgram.y:846 msgid "regular expression on right of comparison" msgstr "espressione regolare a destra in un confronto" -#: awkgram.y:879 +#: awkgram.y:903 msgid "non-redirected `getline' undefined inside END action" msgstr "`getline' non re-diretta indefinita dentro 'azione' END" -#: awkgram.y:906 +#: awkgram.y:914 +msgid "old awk does not support multidimensional arrays" +msgstr "il vecchio awk non supporta vettori multidimensionali" + +#: awkgram.y:960 msgid "call of `length' without parentheses is not portable" msgstr "chiamata a `length' senza parentesi non portabile" -#: awkgram.y:909 +#: awkgram.y:965 msgid "call of `length' without parentheses is deprecated by POSIX" msgstr "chiamata a `length' senza parentesi sconsigliata da POSIX" -#: awkgram.y:962 +#: awkgram.y:1019 msgid "use of non-array as array" msgstr "uso di non-vettore come vettore" -#: awkgram.y:964 +#: awkgram.y:1022 msgid "invalid subscript expression" msgstr "espressione indice invalida" -#: awkgram.y:1171 +#: awkgram.y:1249 msgid "unexpected newline or end of string" msgstr "carattere 'a capo' o fine stringa inaspettati" -#: awkgram.y:1267 +#: awkgram.y:1366 msgid "empty program text on command line" msgstr "programma nullo sulla linea comandi" -#: awkgram.y:1320 +#: awkgram.y:1422 #, c-format msgid "can't open source file `%s' for reading (%s)" msgstr "non riesco ad aprire file sorgente `%s' in lettura (%s)" -#: awkgram.y:1397 +#: awkgram.y:1520 #, c-format msgid "can't read sourcefile `%s' (%s)" msgstr "non riesco a leggere file sorgente `%s' (%s)" -#: awkgram.y:1405 +#: awkgram.y:1528 #, c-format msgid "source file `%s' is empty" msgstr "file sorgente `%s' vuoto" -#: awkgram.y:1596 awkgram.y:1718 awkgram.y:1736 awkgram.y:2107 awkgram.y:2194 +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 msgid "source file does not end in newline" msgstr "file sorgente non termina con carattere 'a capo'" -#: awkgram.y:1658 +#: awkgram.y:1782 msgid "unterminated regexp ends with `\\' at end of file" msgstr "espressione regolare non completata termina con `\\' a fine file" -#: awkgram.y:1682 +#: awkgram.y:1806 #, c-format msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" "%s: %d: modificatore di espressione regolare tawk `/.../%c' non valido in " "gawk" -#: awkgram.y:1686 +#: awkgram.y:1810 #, c-format msgid "tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "modificatore di espressione regolare tawk `/.../%c' non valido in gawk" -#: awkgram.y:1693 +#: awkgram.y:1817 msgid "unterminated regexp" msgstr "espressione regolare non completata" -#: awkgram.y:1696 +#: awkgram.y:1820 msgid "unterminated regexp at end of file" msgstr "espressione regolare non completata a fine file" -#: awkgram.y:1762 +#: awkgram.y:1889 msgid "use of `\\ #...' line continuation is not portable" msgstr "uso di `\\ #...' continuazione linea non portabile" -#: awkgram.y:1774 +#: awkgram.y:1902 msgid "backslash not last character on line" msgstr "'\\' non l'ultimo carattere della linea" -#: awkgram.y:1819 +#: awkgram.y:1947 msgid "POSIX does not allow operator `**='" msgstr "POSIX non permette l'operatore `**='" -#: awkgram.y:1821 +#: awkgram.y:1949 msgid "old awk does not support operator `**='" msgstr "il vecchio awk non supporta l'operatore `**='" -#: awkgram.y:1830 +#: awkgram.y:1958 msgid "POSIX does not allow operator `**'" msgstr "POSIX non permette l'operatore `**'" -#: awkgram.y:1832 +#: awkgram.y:1960 msgid "old awk does not support operator `**'" msgstr "il vecchio awk non supporta l'operatore `**'" -#: awkgram.y:1863 +#: awkgram.y:1991 msgid "operator `^=' is not supported in old awk" msgstr "l'operatore `^=' non supportato nel vecchio awk" -#: awkgram.y:1871 +#: awkgram.y:1999 msgid "operator `^' is not supported in old awk" msgstr "l'operatore `^' non supportato nel vecchio awk" -#: awkgram.y:1955 awkgram.y:1970 +#: awkgram.y:2083 awkgram.y:2098 msgid "unterminated string" msgstr "stringa non terminata" -#: awkgram.y:2155 +#: awkgram.y:2283 #, c-format msgid "invalid char '%c' in expression" msgstr "carattere '%c' invalido in un'espressione" -#: awkgram.y:2203 +#: awkgram.y:2331 #, c-format msgid "`%s' is a gawk extension" msgstr "`%s' un'estensione gawk" -#: awkgram.y:2206 +#: awkgram.y:2334 #, c-format msgid "`%s' is a Bell Labs extension" msgstr "`%s' un'estensione Bell Labs" -#: awkgram.y:2209 +#: awkgram.y:2337 #, c-format msgid "POSIX does not allow `%s'" msgstr "POSIX non permette `%s'" -#: awkgram.y:2213 +#: awkgram.y:2341 #, c-format msgid "`%s' is not supported in old awk" msgstr "`%s' non supportato nel vecchio awk" -#: awkgram.y:2239 +#: awkgram.y:2367 msgid "`goto' considered harmful!\n" msgstr "`goto' considerato pericoloso!\n" -#: awkgram.y:2301 +#: awkgram.y:2429 #, c-format msgid "%d is invalid as number of arguments for %s" msgstr "%d invalido come numero di argomenti per %s" -#: awkgram.y:2320 awkgram.y:2323 +#: awkgram.y:2448 awkgram.y:2451 msgid "match: third argument is a gawk extension" msgstr "match: il terzo argomento un'estensione gawk" -#: awkgram.y:2336 +#: awkgram.y:2464 #, c-format msgid "%s: string literal as last arg of substitute has no effect" msgstr "%s: una stringa come ultimo argomento di 'substitute' non ha effetto" -#: awkgram.y:2339 +#: awkgram.y:2467 #, c-format msgid "%s third parameter is not a changeable object" msgstr "il terzo parametro di '%s' non un oggetto modificabile" -#: awkgram.y:2366 awkgram.y:2369 +#: awkgram.y:2494 awkgram.y:2497 msgid "close: second argument is a gawk extension" msgstr "close: il secondo argomento un'estensione gawk" -#: awkgram.y:2379 +#: awkgram.y:2507 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" msgstr "" "uso scorretto di dcgettext(_\"...\"): togliere il carattere '_' iniziale" -#: awkgram.y:2394 +#: awkgram.y:2522 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" msgstr "" "uso scorretto di dcngettext(_\"...\"): togliere il carattere '_' iniziale" -#: awkgram.y:2465 +#: awkgram.y:2594 #, c-format msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" msgstr "funzione `%s': parametro #%d, `%s', duplica parametro #%d" -#: awkgram.y:2498 +#: awkgram.y:2627 #, c-format msgid "function `%s': parameter `%s' shadows global variable" msgstr "funzione `%s': parametro `%s' nasconde variabile globale" -#: awkgram.y:2610 +#: awkgram.y:2739 #, c-format msgid "could not open `%s' for writing (%s)" msgstr "non riesco ad aprire `%s' in scrittura (%s)" -#: awkgram.y:2611 profile.c:93 +#: awkgram.y:2740 profile.c:94 msgid "sending profile to standard error" msgstr "mando profilo a 'standard error'" -#: awkgram.y:2643 +#: awkgram.y:2772 #, c-format msgid "%s: close failed (%s)" msgstr "%s: 'close' fallita (%s)" -#: awkgram.y:2764 +#: awkgram.y:2893 msgid "shadow_funcs() called twice!" msgstr "shadow_funcs() chiamata due volte!" -#: awkgram.y:2791 +#: awkgram.y:2920 msgid "there were shadowed variables." msgstr "c'erano variabili nascoste." -#: awkgram.y:2864 +#: awkgram.y:2993 #, c-format msgid "function `%s': can't use function name as parameter name" msgstr "funzione `%s': non posso usare nome della funzione come nome parametro" -#: awkgram.y:2874 +#: awkgram.y:3003 #, c-format msgid "function name `%s' previously defined" msgstr "funzione di nome `%s' definita in precedenza" -#: awkgram.y:3025 awkgram.y:3031 +#: awkgram.y:3154 awkgram.y:3160 #, c-format msgid "function `%s' called but never defined" msgstr "funzione `%s' chiamata ma mai definita" -#: awkgram.y:3034 +#: awkgram.y:3163 #, c-format msgid "function `%s' defined but never called" msgstr "funzione `%s' definita ma mai chiamata" -#: awkgram.y:3061 +#: awkgram.y:3190 #, c-format msgid "regexp constant for parameter #%d yields boolean value" msgstr "" "espressione regolare di valore costante per parametro #%d genera valore " "booleano" -#: awkgram.y:3105 +#: awkgram.y:3234 #, c-format msgid "" "function `%s' called with space between name and `(',\n" @@ -388,199 +400,199 @@ "funzione `%s' chiamata con spazio tra il nome e `(',\n" "o usata come variabile o vettore" -#: builtin.c:145 +#: builtin.c:119 #, c-format msgid "%s to \"%s\" failed (%s)" msgstr "%s a \"%s\" fallita (%s)" -#: builtin.c:146 +#: builtin.c:120 msgid "standard output" msgstr "standard output" -#: builtin.c:147 +#: builtin.c:121 msgid "reason unknown" msgstr "ragione indeterminata" -#: builtin.c:160 +#: builtin.c:134 msgid "exp: received non-numeric argument" msgstr "exp: argomento non numerico" -#: builtin.c:166 +#: builtin.c:140 #, c-format msgid "exp: argument %g is out of range" msgstr "exp: argomento %g non accettabile" -#: builtin.c:224 +#: builtin.c:198 #, c-format msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" msgstr "" "fflush: non posso scaricare: 'pipe' `%s' aperta in lettura, non in scrittura" -#: builtin.c:227 +#: builtin.c:201 #, c-format msgid "fflush: cannot flush: file `%s' opened for reading, not writing" msgstr "" "fflush: non posso scaricare: file `%s' aperto in lettura, non in scrittura" -#: builtin.c:239 +#: builtin.c:213 #, c-format msgid "fflush: `%s' is not an open file, pipe or co-process" msgstr "fflush: `%s' non un file aperto, una 'pipe' o un co-processo" -#: builtin.c:332 +#: builtin.c:306 msgid "index: received non-string first argument" msgstr "index: il primo argomento non una stringa" -#: builtin.c:334 +#: builtin.c:308 msgid "index: received non-string second argument" msgstr "index: il secondo argomento non una stringa" -#: builtin.c:449 +#: builtin.c:423 msgid "int: received non-numeric argument" msgstr "int: argomento non numerico" -#: builtin.c:472 +#: builtin.c:448 msgid "`length(array)' is a gawk extension" msgstr "`length(array)' un'estensione gawk" -#: builtin.c:481 +#: builtin.c:458 msgid "length: received non-string argument" msgstr "length: l'argomento non una stringa" -#: builtin.c:506 +#: builtin.c:483 msgid "log: received non-numeric argument" msgstr "log: argomento non numerico" -#: builtin.c:509 +#: builtin.c:486 #, c-format msgid "log: received negative argument %g" msgstr "log: argomento negativo %g" -#: builtin.c:673 builtin.c:676 +#: builtin.c:693 builtin.c:696 msgid "must use `count$' on all formats or none" msgstr "'count$' va usato per tutti i formati o per nessuno" -#: builtin.c:778 +#: builtin.c:799 msgid "`$' is not permitted in awk formats" msgstr "`$' non permesso nei 'format' awk" -#: builtin.c:784 +#: builtin.c:805 msgid "arg count with `$' must be > 0" msgstr "il numero di argomento con `$' deve essere > 0" -#: builtin.c:786 +#: builtin.c:807 #, c-format msgid "arg count %ld greater than total number of supplied arguments" msgstr "" "numero di argomenti (%ld) maggiore del numero totale di argomenti specificati" -#: builtin.c:788 +#: builtin.c:809 msgid "`$' not permitted after period in format" msgstr "`$' non permesso dopo un punto nel 'format'" -#: builtin.c:801 +#: builtin.c:822 msgid "no `$' supplied for positional field width or precision" msgstr "" "nessun `$' specificato per larghezza o precisione di un campo posizionale" -#: builtin.c:867 +#: builtin.c:888 msgid "`l' is meaningless in awk formats; ignored" msgstr "`l' non ha senso nei 'format' awk; ignorata" -#: builtin.c:871 +#: builtin.c:892 msgid "`l' is not permitted in POSIX awk formats" msgstr "`l' non permessa nei 'format' awk POSIX" -#: builtin.c:882 +#: builtin.c:903 msgid "`L' is meaningless in awk formats; ignored" msgstr "`L' non ha senso nei 'format' awk; ignorata" -#: builtin.c:886 +#: builtin.c:907 msgid "`L' is not permitted in POSIX awk formats" msgstr "`L' non permessa nei 'format' awk POSIX" -#: builtin.c:897 +#: builtin.c:918 msgid "`h' is meaningless in awk formats; ignored" msgstr "`h' non ha senso nei 'format' awk; ignorata" -#: builtin.c:901 +#: builtin.c:922 msgid "`h' is not permitted in POSIX awk formats" msgstr "`h' non permessa nei 'format' awk POSIX" -#: builtin.c:1132 +#: builtin.c:1182 #, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" msgstr "[s]printf: valore %g non accettabile per il 'format' `%%%c'" -#: builtin.c:1198 +#: builtin.c:1266 msgid "not enough arguments to satisfy format string" msgstr "mancano argomenti per completare il 'format'" -#: builtin.c:1200 +#: builtin.c:1268 msgid "^ ran out for this one" msgstr "^ uscito per questo" -#: builtin.c:1205 +#: builtin.c:1274 msgid "[s]printf: format specifier does not have control letter" msgstr "[s]printf: il designatore di 'format' non ha una lettera di controllo" -#: builtin.c:1208 +#: builtin.c:1277 msgid "too many arguments supplied for format string" msgstr "troppi argomenti specificati per il 'format'" -#: builtin.c:1274 builtin.c:1277 +#: builtin.c:1352 builtin.c:1355 msgid "printf: no arguments" msgstr "printf: manca argomento" -#: builtin.c:1301 +#: builtin.c:1379 msgid "sqrt: received non-numeric argument" msgstr "sqrt: argomento non numerico" -#: builtin.c:1305 +#: builtin.c:1383 #, c-format msgid "sqrt: called with negative argument %g" msgstr "sqrt: chiamata con argomento negativo %g" -#: builtin.c:1329 +#: builtin.c:1407 #, c-format msgid "substr: start index %g is invalid, using 1" msgstr "substr: indice di partenza %g invalido, uso 1" -#: builtin.c:1334 +#: builtin.c:1412 #, c-format msgid "substr: non-integer start index %g will be truncated" msgstr "substr: indice di partenza non intero %g: sar troncato" -#: builtin.c:1353 +#: builtin.c:1431 #, c-format msgid "substr: length %g is not >= 1" msgstr "substr: lunghezza %g non >= 1" -#: builtin.c:1355 +#: builtin.c:1433 #, c-format msgid "substr: length %g is not >= 0" msgstr "substr: lunghezza %g non >= 0" -#: builtin.c:1362 +#: builtin.c:1440 #, c-format msgid "substr: non-integer length %g will be truncated" msgstr "substr: lunghezza non intera %g: sar truncata" -#: builtin.c:1367 +#: builtin.c:1445 #, c-format msgid "substr: length %g too big for string indexing, truncating to %g" msgstr "substr: lunghezza %g troppo elevata per indice stringa, tronco a %g" -#: builtin.c:1379 +#: builtin.c:1457 msgid "substr: source string is zero length" msgstr "substr: stringa di partenza lunga zero" -#: builtin.c:1395 +#: builtin.c:1473 #, c-format msgid "substr: start index %g is past end of string" msgstr "substr: indice di partenza %g oltre la fine della stringa" -#: builtin.c:1403 +#: builtin.c:1481 #, c-format msgid "" "substr: length %g at start index %g exceeds length of first argument (%lu)" @@ -588,182 +600,182 @@ "substr: lunghezza %g all'indice di partenza %g supera la lunghezza del primo " "argomento (%lu)" -#: builtin.c:1478 +#: builtin.c:1558 msgid "strftime: received non-string first argument" msgstr "strftime: il primo argomento non una stringa" -#: builtin.c:1484 +#: builtin.c:1564 msgid "strftime: received empty format string" msgstr "strftime: 'format' una stringa nulla" -#: builtin.c:1493 +#: builtin.c:1573 msgid "strftime: received non-numeric second argument" msgstr "strftime: il secondo argomento non numerico" -#: builtin.c:1556 +#: builtin.c:1650 msgid "mktime: received non-string argument" msgstr "mktime: l'argomento non una stringa" -#: builtin.c:1601 +#: builtin.c:1695 msgid "system: received non-string argument" msgstr "system: l'argomento non una stringa" -#: builtin.c:1722 eval.c:2039 +#: builtin.c:1816 eval.c:2041 #, c-format msgid "reference to uninitialized field `$%d'" msgstr "referenza a variabile non inizializzata `$%d'" -#: builtin.c:1827 +#: builtin.c:1921 msgid "tolower: received non-string argument" msgstr "tolower: l'argomento non una stringa" -#: builtin.c:1857 +#: builtin.c:1951 msgid "toupper: received non-string argument" msgstr "toupper: l'argomento non una stringa" -#: builtin.c:1890 +#: builtin.c:1984 msgid "atan2: received non-numeric first argument" msgstr "atan2: il primo argomento non numerico" -#: builtin.c:1892 +#: builtin.c:1986 msgid "atan2: received non-numeric second argument" msgstr "atan2: il secondo argomento non numerico" -#: builtin.c:1911 +#: builtin.c:2005 msgid "sin: received non-numeric argument" msgstr "sin: l'argomento non numerico" -#: builtin.c:1927 +#: builtin.c:2021 msgid "cos: received non-numeric argument" msgstr "cos: l'argomento non numerico" -#: builtin.c:1977 +#: builtin.c:2071 msgid "srand: received non-numeric argument" msgstr "srand: l'argomento non numerico" -#: builtin.c:2012 +#: builtin.c:2106 msgid "match: third argument is not an array" msgstr "match: il terzo argomento non un vettore" -#: builtin.c:2555 +#: builtin.c:2650 msgid "gensub: third argument of 0 treated as 1" msgstr "gensub: il terzo argomento 0, trattato come 1" -#: builtin.c:2715 +#: builtin.c:2766 msgid "lshift: received non-numeric first argument" msgstr "lshift: il primo argomento non numerico" -#: builtin.c:2717 +#: builtin.c:2768 msgid "lshift: received non-numeric second argument" msgstr "lshift: il secondo argomento non numerico" -#: builtin.c:2723 +#: builtin.c:2774 #, c-format msgid "lshift(%lf, %lf): negative values will give strange results" msgstr "lshift(%lf, %lf): valori negativi daranno risultati strani" -#: builtin.c:2725 +#: builtin.c:2776 #, c-format msgid "lshift(%lf, %lf): fractional values will be truncated" msgstr "lshift(%lf, %lf): valori con decimali verranno troncati" -#: builtin.c:2727 +#: builtin.c:2778 #, c-format msgid "lshift(%lf, %lf): too large shift value will give strange results" msgstr "lshift(%lf, %lf): valori troppo alti daranno risultati strani" -#: builtin.c:2753 +#: builtin.c:2804 msgid "rshift: received non-numeric first argument" msgstr "rshift: il primo argomento non numerico" -#: builtin.c:2755 +#: builtin.c:2806 msgid "rshift: received non-numeric second argument" msgstr "rshift: il secondo argomento non numerico" -#: builtin.c:2761 +#: builtin.c:2812 #, c-format msgid "rshift(%lf, %lf): negative values will give strange results" msgstr "rshift(%lf, %lf): valori negativi daranno risultati strani" -#: builtin.c:2763 +#: builtin.c:2814 #, c-format msgid "rshift(%lf, %lf): fractional values will be truncated" msgstr "rshift(%lf, %lf): valori con decimali verranno troncati" -#: builtin.c:2765 +#: builtin.c:2816 #, c-format msgid "rshift(%lf, %lf): too large shift value will give strange results" msgstr "rshift(%lf, %lf): valori troppo alti daranno risultati strani" -#: builtin.c:2791 +#: builtin.c:2842 msgid "and: received non-numeric first argument" msgstr "and: il primo argomento non numerico" -#: builtin.c:2793 +#: builtin.c:2844 msgid "and: received non-numeric second argument" msgstr "and: il secondo argomento non numerico" -#: builtin.c:2799 +#: builtin.c:2850 #, c-format msgid "and(%lf, %lf): negative values will give strange results" msgstr "and(%lf, %lf): valori negativi daranno risultati strani" -#: builtin.c:2801 +#: builtin.c:2852 #, c-format msgid "and(%lf, %lf): fractional values will be truncated" msgstr "and(%lf, %lf): valori con decimali verranno troncati" -#: builtin.c:2827 +#: builtin.c:2878 msgid "or: received non-numeric first argument" msgstr "or: il primo argomento non numerico" -#: builtin.c:2829 +#: builtin.c:2880 msgid "or: received non-numeric second argument" msgstr "or: il secondo argomento non numerico" -#: builtin.c:2835 +#: builtin.c:2886 #, c-format msgid "or(%lf, %lf): negative values will give strange results" msgstr "or(%lf, %lf): valori negativi daranno risultati strani" -#: builtin.c:2837 +#: builtin.c:2888 #, c-format msgid "or(%lf, %lf): fractional values will be truncated" msgstr "or(%lf, %lf): valori con decimali verranno troncati" -#: builtin.c:2863 +#: builtin.c:2914 msgid "xor: received non-numeric first argument" msgstr "xor: il primo argomento non numerico" -#: builtin.c:2865 +#: builtin.c:2916 msgid "xor: received non-numeric second argument" msgstr "xor: il secondo argomento non numerico" -#: builtin.c:2871 +#: builtin.c:2922 #, c-format msgid "xor(%lf, %lf): negative values will give strange results" msgstr "xor(%lf, %lf): valori negativi daranno risultati strani" -#: builtin.c:2873 +#: builtin.c:2924 #, c-format msgid "xor(%lf, %lf): fractional values will be truncated" msgstr "xor(%lf, %lf): valori con decimali verranno troncati" -#: builtin.c:2897 +#: builtin.c:2948 msgid "compl: received non-numeric argument" msgstr "compl: l'argomento non numerico" -#: builtin.c:2903 +#: builtin.c:2954 #, c-format msgid "compl(%lf): negative value will give strange results" msgstr "compl(%lf): valore negativo dar risultati strani" -#: builtin.c:2905 +#: builtin.c:2956 #, c-format msgid "compl(%lf): fractional value will be truncated" msgstr "compl(%lf): valore con decimali verr troncato" -#: builtin.c:3078 +#: builtin.c:3129 #, c-format msgid "dcgettext: `%s' is not a valid locale category" msgstr "dcgettext: `%s' non una categoria 'locale' valida" @@ -777,7 +789,7 @@ msgid "buffer overflow in genflags2str" msgstr "superament limiti buffer in 'genflags2str'" -#: eval.c:385 eval.c:391 profile.c:838 +#: eval.c:385 eval.c:391 profile.c:817 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "tentativo di usare vettore `%s' in un contesto scalare" @@ -825,7 +837,7 @@ msgid "statement has no effect" msgstr "istruzione che non fa nulla" -#: eval.c:952 eval.c:1893 +#: eval.c:952 eval.c:1895 #, c-format msgid "can't use function name `%s' as variable or array" msgstr "non posso usare nome di funzione `%s' come variabile o vettore" @@ -835,7 +847,7 @@ msgid "reference to uninitialized argument `%s'" msgstr "referenza ad argomento non inizializzato `%s'" -#: eval.c:974 eval.c:1902 +#: eval.c:974 eval.c:1904 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "referenza a variabile non inizializzata `%s'" @@ -848,44 +860,44 @@ "concatenatione: effetti secondari in una espressione hanno modificato la " "lunghezza di un'altra espressione!" -#: eval.c:1200 +#: eval.c:1202 msgid "assignment used in conditional context" msgstr "assegnamento usato nel contesto di un test condizionale" -#: eval.c:1278 +#: eval.c:1280 msgid "division by zero attempted" msgstr "tentativo di dividere per zero" -#: eval.c:1293 +#: eval.c:1295 #, c-format msgid "division by zero attempted in `%%'" msgstr "divisione per zero tentata in `%%'" -#: eval.c:1308 profile.c:714 +#: eval.c:1310 profile.c:693 #, c-format msgid "illegal type (%s) in tree_eval" msgstr "tipo non ammesso (%s) in 'tree_eval'" -#: eval.c:1471 +#: eval.c:1473 msgid "division by zero attempted in `/='" msgstr "divisione per zero tentata in `/='" -#: eval.c:1493 +#: eval.c:1495 #, c-format msgid "division by zero attempted in `%%='" msgstr "divisione per zero tentata in `%%='" -#: eval.c:1758 +#: eval.c:1760 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "funzione `%s' chiamata con pi argomenti di quelli previsti" -#: eval.c:1802 +#: eval.c:1804 #, c-format msgid "function `%s' not defined" msgstr "funzione `%s' non definita" -#: eval.c:1865 +#: eval.c:1867 #, c-format msgid "" "\n" @@ -896,663 +908,676 @@ "\t# 'Stack' (Pila) Chiamate Funzione:\n" "\n" -#: eval.c:1868 +#: eval.c:1870 #, c-format msgid "\t# -- main --\n" msgstr "\t# -- principale --\n" -#: eval.c:2023 +#: eval.c:2025 msgid "attempt to field reference from non-numeric value" msgstr "tentativo di referenziare campo da valore non numerico" -#: eval.c:2025 +#: eval.c:2027 msgid "attempt to reference from null string" msgstr "tentativo to referenziare da stringa nulla" -#: eval.c:2031 +#: eval.c:2033 #, c-format msgid "attempt to access field %d" msgstr "tentativo di accedere al campo %d" -#: eval.c:2052 eval.c:2059 profile.c:935 +#: eval.c:2054 eval.c:2061 profile.c:914 msgid "assignment is not allowed to result of builtin function" msgstr "assegnamento non permesso al risultato di una funzione interna" -#: eval.c:2123 +#: eval.c:2125 msgid "`IGNORECASE' is a gawk extension" msgstr "`IGNORECASE' un'estensione gawk" -#: eval.c:2153 +#: eval.c:2155 msgid "`BINMODE' is a gawk extension" msgstr "`BINMODE' un'estensione gawk" -#: eval.c:2275 +#: eval.c:2277 #, c-format msgid "bad `%sFMT' specification `%s'" msgstr "specificazione invalida `%sFMT' `%s'" -#: eval.c:2353 +#: eval.c:2355 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "disabilito `--lint' a causa di assegnamento a `LINT'" -#: ext.c:60 ext.c:64 +#: ext.c:62 ext.c:67 msgid "`extension' is a gawk extension" msgstr "`extension' un'estensione gawk" -#: ext.c:74 +#: ext.c:77 #, c-format msgid "extension: cannot open `%s' (%s)\n" msgstr "estensione: non riesco ad aprire `%s' (%s)\n" -#: ext.c:82 +#: ext.c:85 #, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "" "estensione: biblioteca `%s': non riesco a chiamare funzione `%s' (%s)\n" -#: ext.c:102 +#: ext.c:105 msgid "extension: missing function name" msgstr "estensione: manca nome di funzione" -#: ext.c:107 +#: ext.c:110 #, c-format msgid "extension: illegal character `%c' in function name `%s'" msgstr "estensione: carattere non ammesso `%c' nel nome di funzione `%s'" -#: ext.c:113 +#: ext.c:116 #, c-format msgid "extension: can't redefine function `%s'" msgstr "estensione: non riesco a ridefinire funzione `%s'" -#: ext.c:117 +#: ext.c:120 #, c-format msgid "extension: function `%s' already defined" msgstr "estensione: funzione `%s' gi definita" -#: ext.c:122 +#: ext.c:125 #, c-format msgid "extension: can't use gawk built-in `%s' as function name" msgstr "" "estensione: nome funzione interna gawk `%s' non ammesso come nome funzione" -#: ext.c:124 +#: ext.c:127 #, c-format msgid "extension: function name `%s' previously defined" msgstr "estensione: funzione di nome `%s' definita in precedenza" -#: ext.c:201 +#: ext.c:204 #, c-format msgid "function `%s' defined to take no more than %d argument(s)" msgstr "funzione `%s' definita per avere al massimo %d argumenti/o" -#: ext.c:204 +#: ext.c:207 #, c-format msgid "function `%s': missing argument #%d" msgstr "funzione `%s': manca argomento #%d" -#: ext.c:214 +#: ext.c:217 #, c-format msgid "function `%s': argument #%d: attempt to use scalar as an array" msgstr "funzione `%s': argomento #%d: tentativo di usare scalare come vettore" -#: ext.c:218 +#: ext.c:221 #, c-format msgid "function `%s': argument #%d: attempt to use array as a scalar" msgstr "funzione `%s': argomento #%d: tentativo di usare vettore come scalare" -#: ext.c:243 +#: ext.c:246 msgid "Operation Not Supported" msgstr "Operazione Non Supportata" -#: field.c:326 +#: field.c:330 msgid "NF set to negative value" msgstr "NF impostato a un valore negativo" -#: field.c:819 +#: field.c:823 msgid "split: second argument is not an array" msgstr "split: il secondo argomento non un vettore" -#: field.c:853 +#: field.c:857 msgid "split: null string for third arg is a gawk extension" msgstr "split: la stringa nulla come terzo arg. un'estensione gawk" -#: field.c:905 +#: field.c:909 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "`FIELDWIDTHS' un'estensione gawk" -#: field.c:935 field.c:946 +#: field.c:939 field.c:953 #, c-format msgid "invalid FIELDWIDTHS value, near `%s'" msgstr "valore di FIELDWIDTHS invalido, vicino a `%s'" -#: field.c:1027 +#: field.c:1036 msgid "null string for `FS' is a gawk extension" msgstr "la stringa nulla usata come `FS' un'estensione gawk" -#: getopt.c:571 getopt.c:590 +#: field.c:1040 +msgid "old awk does not support regexps as value of `FS'" +msgstr "il vecchio awk non supporta espressioni come valori di `FS'" + +#: getopt.c:571 getopt.c:587 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: opzione `%s' ambigua\n" -#: getopt.c:623 getopt.c:627 +#: getopt.c:620 getopt.c:624 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: opzione `--%s' non prevede un argomento\n" -#: getopt.c:636 getopt.c:641 +#: getopt.c:633 getopt.c:638 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: opzione `%c%s' non prevede un argomento\n" -#: getopt.c:687 getopt.c:709 getopt.c:1040 getopt.c:1062 +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: opzione `%s' richiede un argomento\n" -#: getopt.c:747 getopt.c:750 +#: getopt.c:738 getopt.c:741 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: opzione sconosciuta `--%s'\n" -#: getopt.c:758 getopt.c:761 +#: getopt.c:749 getopt.c:752 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: opzione sconosciuta `%c%s'\n" -#: getopt.c:816 getopt.c:819 +#: getopt.c:804 getopt.c:807 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: opzione non permessa -- %c\n" -#: getopt.c:825 getopt.c:828 +#: getopt.c:813 getopt.c:816 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: opzione non valida -- %c\n" -#: getopt.c:883 getopt.c:902 getopt.c:1115 getopt.c:1136 main.c:448 +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: l'opzione richiede un argomento -- %c\n" -#: getopt.c:955 getopt.c:974 +#: getopt.c:937 getopt.c:953 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: opzione `-W %s' ambigua\n" -#: getopt.c:998 getopt.c:1019 +#: getopt.c:977 getopt.c:995 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: opzione `-W %s' non prevede un argomento\n" -#: io.c:307 +#: io.c:345 #, c-format msgid "cannot open file `%s' for reading (%s)" msgstr "non riesco ad aprire file `%s' in lettura (%s)" -#: io.c:398 +#: io.c:436 #, c-format msgid "close of fd %d (`%s') failed (%s)" msgstr "chiusura di fd %d (`%s') fallita (%s)" -#: io.c:536 +#: io.c:575 #, c-format msgid "invalid tree type %s in redirect()" msgstr "tipo di albero invalido %s in redirect()" -#: io.c:542 +#: io.c:581 #, c-format msgid "expression in `%s' redirection only has numeric value" msgstr "espressione nella re-direzione `%s' ha solo un valore numerico" -#: io.c:548 +#: io.c:587 #, c-format msgid "expression for `%s' redirection has null string value" msgstr "espressione nella re-direzione `%s' ha per valore la stringa nulla" -#: io.c:553 +#: io.c:592 #, c-format msgid "filename `%s' for `%s' redirection may be result of logical expression" msgstr "" "nome file `%s' per la re-direzione `%s' pu essere il risultato di una " "espressione logica" -#: io.c:591 +#: io.c:630 #, c-format msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" msgstr "mistura non necessaria di `>' e `>>' per il file `%.*s'" -#: io.c:643 +#: io.c:682 #, c-format msgid "can't open pipe `%s' for output (%s)" msgstr "non posso aprire 'pipe' `%s' in scrittura (%s)" -#: io.c:652 +#: io.c:691 #, c-format msgid "can't open pipe `%s' for input (%s)" msgstr "non posso aprire 'pipe' `%s' in lettura (%s)" -#: io.c:665 +#: io.c:698 io.c:1448 +#, c-format +msgid "file `%s' is a directory" +msgstr "file `%s' una 'directory'" + +#: io.c:706 #, c-format msgid "can't open two way socket `%s' for input/output (%s)" msgstr "" "non posso aprire 'socket' bidirezionale `%s' per lettura/scrittura (%s)" -#: io.c:669 +#: io.c:710 #, c-format msgid "can't open two way pipe `%s' for input/output (%s)" msgstr "non posso aprire 'pipe' bidirezionale `%s' per lettura/scrittura (%s)" -#: io.c:745 +#: io.c:786 #, c-format msgid "can't redirect from `%s' (%s)" msgstr "non posso re-dirigere da `%s' (%s)" -#: io.c:748 +#: io.c:789 #, c-format msgid "can't redirect to `%s' (%s)" msgstr "non posso re-dirigere a `%s' (%s)" -#: io.c:787 +#: io.c:828 msgid "" "reached system limit for open files: starting to multiplex file descriptors" msgstr "" "numero massimo consentito di file aperti raggiunto: comincio a riutilizzare " "i descrittori di file" -#: io.c:803 +#: io.c:844 #, c-format msgid "close of `%s' failed (%s)." msgstr "chiusura di `%s' fallita (%s)." -#: io.c:811 +#: io.c:852 msgid "too many pipes or input files open" msgstr "troppe 'pipe' o file di input aperti" -#: io.c:834 +#: io.c:875 msgid "close: second argument must be `to' or `from'" msgstr "close: il secondo argomento deve essere `a' o `da'" -#: io.c:848 +#: io.c:889 #, c-format msgid "close: `%.*s' is not an open file, pipe or co-process" msgstr "close: `%.*s' non un file aperto, una 'pipe' o un co-processo" -#: io.c:852 +#: io.c:893 msgid "close of redirection that was never opened" msgstr "chiusura di una re-direzione mai aperta" -#: io.c:948 +#: io.c:989 #, c-format msgid "close: redirection `%s' not opened with `|&', second argument ignored" msgstr "close: re-direzione `%s' non aperta con `|&', ignoro secondo argomento" -#: io.c:964 +#: io.c:1005 #, c-format msgid "failure status (%d) on pipe close of `%s' (%s)" msgstr "errore ritornato (%d) dalla chiusura della 'pipe' `%s' (%s)" -#: io.c:967 +#: io.c:1008 #, c-format msgid "failure status (%d) on file close of `%s' (%s)" msgstr "errore ritornato (%d) dalla chiusura del file `%s' (%s)" -#: io.c:987 +#: io.c:1028 #, c-format msgid "no explicit close of socket `%s' provided" msgstr "nessuna chiusura esplicita richiesta per 'socket' `%s'" -#: io.c:990 +#: io.c:1031 #, c-format msgid "no explicit close of co-process `%s' provided" msgstr "nessuna chiusura esplicita richiesta per co-processo `%s'" -#: io.c:993 +#: io.c:1034 #, c-format msgid "no explicit close of pipe `%s' provided" msgstr "nessuna chiusura esplicita richiesta per 'pipe' `%s'" -#: io.c:996 +#: io.c:1037 #, c-format msgid "no explicit close of file `%s' provided" msgstr "nessuna chiusura esplicita richiesta per file `%s'" -#: io.c:1025 io.c:1080 main.c:718 main.c:756 +#: io.c:1066 io.c:1121 main.c:749 main.c:791 #, c-format msgid "error writing standard output (%s)" msgstr "errore scrivendo 'standard output' (%s)" -#: io.c:1029 io.c:1085 +#: io.c:1070 io.c:1126 #, c-format msgid "error writing standard error (%s)" msgstr "errore scrivendo 'standard error' (%s)" -#: io.c:1037 +#: io.c:1078 #, c-format msgid "pipe flush of `%s' failed (%s)." msgstr "scaricamento di 'pipe' `%s' fallita (%s)." -#: io.c:1040 +#: io.c:1081 #, c-format msgid "co-process flush of pipe to `%s' failed (%s)." msgstr "scaricamento da co-processo di 'pipe' a `%s' fallita (%s)." -#: io.c:1043 +#: io.c:1084 #, c-format msgid "file flush of `%s' failed (%s)." msgstr "scaricamento di file `%s' fallita (%s)." -#: io.c:1205 +#: io.c:1198 +#, c-format +msgid "local port %s invalid in `/inet'" +msgstr "porta locale %s invalida in `/inet'" + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "host remoto e informazione di porta (%s, %s) invalidi" + +#: io.c:1250 msgid "/inet/raw client not ready yet, sorry" msgstr "spiacente, 'client' /inet/raw non ancora pronto" -#: io.c:1207 io.c:1244 +#: io.c:1253 io.c:1289 msgid "only root may use `/inet/raw'." msgstr "solo root pu usare `/inet/raw'." -#: io.c:1242 +#: io.c:1287 msgid "/inet/raw server not ready yet, sorry" msgstr "spiacente, 'server' /inet/raw non ancora pronto" -#: io.c:1332 +#: io.c:1385 #, c-format msgid "no (known) protocol supplied in special filename `%s'" msgstr "nessuno protocollo (conosciuto) specificato nel filename speciale `%s'" -#: io.c:1350 +#: io.c:1399 #, c-format msgid "special file name `%s' is incomplete" msgstr "nome file speciale `%s' incompleto" -#: io.c:1362 -#, c-format -msgid "local port invalid in `%s'" -msgstr "porta locale invalida in `%s'" - -#: io.c:1374 +#: io.c:1414 msgid "must supply a remote hostname to `/inet'" msgstr "va fornito nome di 'host' remoto a `/inet'" -#: io.c:1389 +#: io.c:1432 msgid "must supply a remote port to `/inet'" msgstr "va fornita porta remota a `/inet'" -#: io.c:1395 -#, c-format -msgid "remote port invalid in `%s'" -msgstr "porta remota invalida in `%s'" - -#: io.c:1405 +#: io.c:1439 msgid "TCP/IP communications are not supported" msgstr "comunicazioni TCP/IP non supportate" -#: io.c:1414 io.c:1595 -#, c-format -msgid "file `%s' is a directory" -msgstr "file `%s' una 'directory'" - -#: io.c:1484 +#: io.c:1509 #, c-format msgid "use `PROCINFO[\"%s\"]' instead of `%s'" msgstr "usa `PROCINFO[\"%s\"]' invece che `%s'" -#: io.c:1516 +#: io.c:1547 msgid "use `PROCINFO[...]' instead of `/dev/user'" msgstr "usa `PROCINFO[...]' invece che `/dev/user'" -#: io.c:1581 io.c:1763 +#: io.c:1612 io.c:1798 #, c-format msgid "could not open `%s', mode `%s'" msgstr "non riesco ad aprire `%s', modo `%s'" -#: io.c:1814 +#: io.c:1849 #, c-format msgid "close of master pty failed (%s)" msgstr "fallita chiusura di 'pty' principale (%s)" -#: io.c:1816 io.c:1968 io.c:2119 +#: io.c:1851 io.c:2003 io.c:2154 #, c-format msgid "close of stdout in child failed (%s)" msgstr "fallita chiusura di 'stdout' nel processo-figlio (%s)" -#: io.c:1819 +#: io.c:1854 #, c-format msgid "moving slave pty to stdout in child failed (dup: %s)" msgstr "" "fallito trasferimento di 'pty' secondaria a 'stdout' nel processo-figlio " "(dup: %s)" -#: io.c:1821 io.c:1973 +#: io.c:1856 io.c:2008 #, c-format msgid "close of stdin in child failed (%s)" msgstr "fallita chiusura di 'stdin' nel processo-figlio (%s)" -#: io.c:1824 +#: io.c:1859 #, c-format msgid "moving slave pty to stdin in child failed (dup: %s)" msgstr "" "fallito trasferimento di 'pty' secondaria a 'stdin' nel processo-figlio " "(dup: %s)" -#: io.c:1826 io.c:1845 +#: io.c:1861 io.c:1880 #, c-format msgid "close of slave pty failed (%s)" msgstr "fallita chiusura di 'pty' secondaria (%s)" -#: io.c:1919 io.c:1971 io.c:2100 io.c:2122 +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 #, c-format msgid "moving pipe to stdout in child failed (dup: %s)" msgstr "fallito passaggio di 'pipe' a 'stdout' nel processo-figlio (dup: %s)" -#: io.c:1923 io.c:1976 +#: io.c:1958 io.c:2011 #, c-format msgid "moving pipe to stdin in child failed (dup: %s)" msgstr "fallito passaggio di pipe a 'stdin' nel processo-figlio (dup: %s)" -#: io.c:1940 io.c:2113 +#: io.c:1975 io.c:2148 msgid "restoring stdout in parent process failed\n" msgstr "fallito ripristino di 'stdout' nel processo-padre\n" -#: io.c:1945 +#: io.c:1980 msgid "restoring stdin in parent process failed\n" msgstr "fallito ripristino di 'stdin' nel processo-padre\n" -#: io.c:1979 io.c:2124 io.c:2135 +#: io.c:2014 io.c:2159 io.c:2170 #, c-format msgid "close of pipe failed (%s)" msgstr "fallita chiusura di 'pipe' (%s)" -#: io.c:2024 +#: io.c:2059 msgid "`|&' not supported" msgstr "`|&' non supportato" -#: io.c:2090 +#: io.c:2125 #, c-format msgid "cannot open pipe `%s' (%s)" msgstr "non riesco ad aprire 'pipe' `%s' (%s)" -#: io.c:2131 +#: io.c:2166 #, c-format msgid "cannot create child process for `%s' (fork: %s)" msgstr "non riesco a creare processo-figlio per `%s' (fork: %s)" -#: io.c:2506 +#: io.c:2548 #, c-format msgid "data file `%s' is empty" msgstr "file dati `%s' vuoto" -#: io.c:2547 io.c:2555 +#: io.c:2589 io.c:2597 msgid "could not allocate more input memory" msgstr "non riesco ad allocare ulteriore memoria per l'input" -#: io.c:2919 io.c:2984 +#: io.c:2965 io.c:3038 #, c-format msgid "error reading input file `%s': %s" msgstr "errore leggendo file di input `%s': %s" -#: io.c:3109 +#: io.c:3163 msgid "multicharacter value of `RS' is a gawk extension" msgstr "valore multicarattere per `RS' un'estensione gawk" -#: main.c:338 +#: main.c:351 msgid "`-m[fr]' option irrelevant in gawk" msgstr "`-m[fr]' opzione irrilevante per gawk" -#: main.c:340 +#: main.c:353 msgid "-m option usage: `-m[fr] nnn'" msgstr "-m uso opzione: `-m[fr] nnn'" -#: main.c:357 +#: main.c:370 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: opzione `-W %s' non riconosciuta, ignorata\n" -#: main.c:394 +#: main.c:407 msgid "empty argument to `--source' ignored" msgstr "argomento di `--source' mancante, comando ignorato" -#: main.c:467 +#: main.c:480 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" msgstr "variable d'ambiente `POSIXLY_CORRECT' impostata: attivo `--posix'" -#: main.c:472 +#: main.c:486 msgid "`--posix' overrides `--traditional'" msgstr "`--posix' annulla `--traditional'" -#: main.c:483 +#: main.c:497 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" msgstr "`--posix'/`--traditional' annulla `--non-decimal-data'" -#: main.c:487 +#: main.c:501 #, c-format msgid "running %s setuid root may be a security problem" msgstr "eseguire %s con 'setuid' root pu essere un rischio per la sicurezza" -#: main.c:528 +#: main.c:542 #, c-format msgid "can't set binary mode on stdin (%s)" msgstr "non posso impostare modalit binaria su 'stdin'(%s)" -#: main.c:531 +#: main.c:545 #, c-format msgid "can't set binary mode on stdout (%s)" msgstr "non posso impostare modalit binaria su 'stdout'(%s)" -#: main.c:533 +#: main.c:547 #, c-format msgid "can't set binary mode on stderr (%s)" msgstr "non posso impostare modalit binaria su 'stderr'(%s)" -#: main.c:572 +#: main.c:586 msgid "no program text at all!" msgstr "manca del tutto il testo del programma!" -#: main.c:665 +#: main.c:690 #, c-format msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" msgstr "Uso: %s [opzioni in stile POSIX o GNU] -f fileprog [--] file ...\n" -#: main.c:667 +#: main.c:692 #, c-format msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" msgstr "Usage: %s [opzioni in stile POSIX o GNU] [--] %cprogramma%c file ...\n" -#: main.c:672 +#: main.c:697 msgid "POSIX options:\t\tGNU long options:\n" msgstr "Opzioni POSIX:\t\topzioni lunghe GNU:\n" -#: main.c:673 +#: main.c:698 msgid "\t-f progfile\t\t--file=progfile\n" msgstr "\t-f fileprog\t\t--file=fileprog\n" -#: main.c:674 +#: main.c:699 msgid "\t-F fs\t\t\t--field-separator=fs\n" msgstr "\t-F fs\t\t\t--field-separator=fs\n" -#: main.c:675 +#: main.c:700 msgid "\t-v var=val\t\t--assign=var=val\n" msgstr "\t-v var=valore\t\t--assign=var=valore\n" -#: main.c:676 +#: main.c:701 msgid "\t-m[fr] val\n" msgstr "\t-m[fr] valore\n" -#: main.c:677 +#: main.c:702 msgid "\t-W compat\t\t--compat\n" msgstr "\t-W compat\t\t--compat\n" -#: main.c:678 +#: main.c:703 msgid "\t-W copyleft\t\t--copyleft\n" msgstr "\t-W copyleft\t\t--copyleft\n" -#: main.c:679 +#: main.c:704 msgid "\t-W copyright\t\t--copyright\n" msgstr "\t-W copyright\t\t--copyright\n" -#: main.c:680 +#: main.c:705 msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" msgstr "\t-W dump-variables[=file]\t--dump-variables[=file]\n" -#: main.c:681 +#: main.c:706 msgid "\t-W exec=file\t\t--exec=file\n" msgstr "\t-W exec[=file]\t--exec[=file]\n" -#: main.c:682 +#: main.c:707 msgid "\t-W gen-po\t\t--gen-po\n" msgstr "\t-W gen-po\t\t--gen-po\n" -#: main.c:683 +#: main.c:708 msgid "\t-W help\t\t\t--help\n" msgstr "\t-W help\t\t\t--help\n" -#: main.c:684 +#: main.c:709 msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" msgstr "\t-W lint[=fatal]\t\t--lint[=fatal]\n" -#: main.c:685 +#: main.c:710 msgid "\t-W lint-old\t\t--lint-old\n" msgstr "\t-W lint-old\t\t--lint-old\n" -#: main.c:686 +#: main.c:711 msgid "\t-W non-decimal-data\t--non-decimal-data\n" msgstr "\t-W non-decimal-data\t--non-decimal-data\n" -#: main.c:688 +#: main.c:713 msgid "\t-W nostalgia\t\t--nostalgia\n" msgstr "\t-W nostalgia\t\t--nostalgia\n" -#: main.c:691 +#: main.c:716 msgid "\t-W parsedebug\t\t--parsedebug\n" msgstr "\t-W parsedebug\t\t--parsedebug\n" -#: main.c:693 +#: main.c:718 msgid "\t-W profile[=file]\t--profile[=file]\n" msgstr "\t-W profile[=file]\t--profile[=file]\n" -#: main.c:694 +#: main.c:719 msgid "\t-W posix\t\t--posix\n" msgstr "\t-W posix\t\t--posix\n" -#: main.c:695 +#: main.c:720 msgid "\t-W re-interval\t\t--re-interval\n" msgstr "\t-W re-interval\t\t--re-interval\n" -#: main.c:696 +#: main.c:721 msgid "\t-W source=program-text\t--source=program-text\n" msgstr "\t-W source=testo-programma\t--source=testo-programma\n" -#: main.c:697 +#: main.c:722 msgid "\t-W traditional\t\t--traditional\n" msgstr "\t-W traditional\t\t--traditional\n" -#: main.c:698 +#: main.c:723 msgid "\t-W usage\t\t--usage\n" msgstr "\t-W usage\t\t--usage\n" -#: main.c:699 +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "\t-W use-lc-numeric\t--use-lc-numeric\n" + +#: main.c:725 msgid "\t-W version\t\t--version\n" msgstr "\t-W version\t\t--version\n" -#: main.c:703 +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 msgid "" "\n" "To report bugs, see node `Bugs' in `gawk.info', which is\n" @@ -1564,7 +1589,7 @@ "sezione `Reporting Problems and Bugs' nella versione a stampa.\n" "\n" -#: main.c:707 +#: main.c:738 msgid "" "gawk is a pattern scanning and processing language.\n" "By default it reads standard input and writes standard output.\n" @@ -1574,7 +1599,7 @@ "Senza parametri, legge da 'standard input' e scrive su 'standard output'.\n" "\n" -#: main.c:711 +#: main.c:742 msgid "" "Examples:\n" "\tgawk '{ sum += $1 }; END { print sum }' file\n" @@ -1584,14 +1609,14 @@ "\tgawk '{ sum += $1 }; END { print sum }' file\n" "\tgawk -F: '{ print $1 }' /etc/passwd\n" -#: main.c:731 +#: main.c:762 #, c-format msgid "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" +"the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" msgstr "" @@ -1599,11 +1624,11 @@ "\n" "Questo software libero; lo puoi distribuire e/o modificare\n" "alle condizioni stabilite nella 'GNU General Public License' pubblicata\n" -"dalla Free Software Foundation; fai riferimento alla versione 2 della\n" +"dalla Free Software Foundation; fai riferimento alla versione 3 della\n" "Licenza, o (a tua scelta) a una qualsiasi versione successiva.\n" "\n" -#: main.c:739 +#: main.c:770 msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -1617,23 +1642,20 @@ "Vedi la 'GNU General Public License' per ulteriori dettagli.\n" "\n" -#: main.c:745 +#: main.c:781 msgid "" "You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" -msgstr "" -"Dovresti aver ricevuto una copia della 'GNU General Public License'\n" -"assieme a questo programma; se non cos, scrivi alla Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" +msgstr "" +"Dovresti aver ricevuto una copia della GNU General Public License\n" +"assieme a questo programma; se non cos, vedi http://www.gnu.org/" +"licenses/.\n" -#: main.c:781 +#: main.c:816 msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft non imposta FS a 'tab' nell'awk POSIX" -#: main.c:1018 +#: main.c:1060 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -1642,35 +1664,35 @@ "%s: `%s' argomento di `-v' non in forma `var=valore'\n" "\n" -#: main.c:1038 +#: main.c:1080 #, c-format msgid "`%s' is not a legal variable name" msgstr "`%s' non un nome di variabile ammesso" -#: main.c:1041 +#: main.c:1083 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "`%s' non un nome di variabile, cerco il file `%s=%s'" -#: main.c:1074 +#: main.c:1122 msgid "floating point exception" msgstr "eccezione floating point" -#: main.c:1081 +#: main.c:1129 msgid "fatal error: internal error" msgstr "errore fatale: errore interno" -#: main.c:1132 +#: main.c:1180 #, c-format msgid "no pre-opened fd %d" msgstr "manca 'fd' predefinita %d" -#: main.c:1139 +#: main.c:1187 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "non riesco a predefinire /dev/null per 'fd' %d" -#: main.c:1162 main.c:1171 +#: main.c:1210 main.c:1219 #, c-format msgid "could not find groups: %s" msgstr "non riesco a trovare gruppi: %s" @@ -1692,57 +1714,62 @@ msgid "fatal: " msgstr "fatale: " -#: node.c:59 node.c:66 node.c:75 node.c:90 node.c:119 +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 msgid "can't convert string to float" msgstr "non riesco a convertire stringa a valore in virgola mobile" -#: node.c:414 +#: node.c:406 msgid "backslash at end of string" msgstr "'\\' a fine stringa" -#: node.c:604 +#: node.c:548 +#, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "il vecchio awk non supporta la sequenza di escape '\\%c'" + +#: node.c:599 msgid "POSIX does not allow `\\x' escapes" -msgstr "POSIX non permette formato `\\x'" +msgstr "POSIX non permette escape `\\x'" -#: node.c:610 +#: node.c:605 msgid "no hex digits in `\\x' escape sequence" -msgstr "niente cifre esadecimanli nel formato `\\x'" +msgstr "niente cifre esadecimanli nella sequenza di escape `\\x'" -#: node.c:644 +#: node.c:639 #, c-format msgid "escape sequence `\\%c' treated as plain `%c'" -msgstr " sequenza in formato `\\%c' considerata come semplice `%c'" +msgstr "sequenza di escape `\\%c' considerata come semplice `%c'" #: posix/gawkmisc.c:172 #, c-format msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" msgstr "%s %s `%s': non riesco a impostare 'close-on-exec': (fcntl: %s)" -#: profile.c:91 +#: profile.c:92 #, c-format msgid "could not open `%s' for writing: %s" msgstr "non riesco ad aprire `%s' in scrittura: %s" -#: profile.c:467 +#: profile.c:450 #, c-format msgid "internal error: %s with null vname" msgstr "errore interno: %s con 'vname' nullo" -#: profile.c:531 +#: profile.c:514 msgid "# treated internally as `delete'" msgstr "# gestito internamente come 'delete' (cancellazione)" -#: profile.c:1168 +#: profile.c:1147 #, c-format msgid "# this is a dynamically loaded extension function" msgstr "# questa una funzione di estensione caricata dinamicamente" -#: profile.c:1199 +#: profile.c:1178 #, c-format msgid "\t# gawk profile, created %s\n" msgstr "\t# profilo gawk, creato %s\n" -#: profile.c:1202 +#: profile.c:1181 #, c-format msgid "" "\t# BEGIN block(s)\n" @@ -1751,7 +1778,7 @@ "\t# blocco(hi) BEGIN\n" "\n" -#: profile.c:1212 +#: profile.c:1191 #, c-format msgid "" "\t# Rule(s)\n" @@ -1760,7 +1787,7 @@ "\t# Regola(e)\n" "\n" -#: profile.c:1218 +#: profile.c:1197 #, c-format msgid "" "\t# END block(s)\n" @@ -1769,7 +1796,7 @@ "\t# blocco(hi) END\n" "\n" -#: profile.c:1238 +#: profile.c:1217 #, c-format msgid "" "\n" @@ -1778,79 +1805,79 @@ "\n" "\t# Funzioni, listate in ordine alfabetico\n" -#: profile.c:1453 +#: profile.c:1470 #, c-format msgid "unexpected type %s in prec_level" msgstr "tipo non previsto %s in 'prec_level'" -#: regcomp.c:160 +#: regcomp.c:132 msgid "Success" msgstr "Successo" -#: regcomp.c:163 +#: regcomp.c:135 msgid "No match" msgstr "Nessuna corrispondenza" -#: regcomp.c:166 +#: regcomp.c:138 msgid "Invalid regular expression" msgstr "Espressione regolare invalida" -#: regcomp.c:169 +#: regcomp.c:141 msgid "Invalid collation character" msgstr "Carattere di ordinamento non valido" -#: regcomp.c:172 +#: regcomp.c:144 msgid "Invalid character class name" msgstr "Nome di 'classe di caratteri' invalido" -#: regcomp.c:175 +#: regcomp.c:147 msgid "Trailing backslash" msgstr "'\\' finale" -#: regcomp.c:178 +#: regcomp.c:150 msgid "Invalid back reference" msgstr "Riferimento indietro invalido" -#: regcomp.c:181 +#: regcomp.c:153 msgid "Unmatched [ or [^" msgstr "[ or [^ non chiusa" -#: regcomp.c:184 +#: regcomp.c:156 msgid "Unmatched ( or \\(" msgstr "( or \\( non chiusa" -#: regcomp.c:187 +#: regcomp.c:159 msgid "Unmatched \\{" msgstr "\\{ non chiusa" -#: regcomp.c:190 +#: regcomp.c:162 msgid "Invalid content of \\{\\}" msgstr "Contenuto di \\{\\} invalido" -#: regcomp.c:193 +#: regcomp.c:165 msgid "Invalid range end" msgstr "Fine di intervallo invalido" -#: regcomp.c:196 +#: regcomp.c:168 msgid "Memory exhausted" msgstr "Memoria esaurita" -#: regcomp.c:199 +#: regcomp.c:171 msgid "Invalid preceding regular expression" msgstr "Espressione regolare precedente invalida" -#: regcomp.c:202 +#: regcomp.c:174 msgid "Premature end of regular expression" msgstr "Fine di expressione regolare inaspettata" -#: regcomp.c:205 +#: regcomp.c:177 msgid "Regular expression too big" msgstr "Espressione regolare troppo complessa" -#: regcomp.c:208 +#: regcomp.c:180 msgid "Unmatched ) or \\)" msgstr ") or \\) non aperta" -#: regcomp.c:688 +#: regcomp.c:664 msgid "No previous regular expression" msgstr "Nessuna espressione regolare precedente" diff -urN gawk-3.1.5/po/ja.po gawk-3.1.6/po/ja.po --- gawk-3.1.5/po/ja.po 2005-07-06 17:20:05.000000000 +0300 +++ gawk-3.1.6/po/ja.po 2007-09-30 22:33:28.000000000 +0200 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gawk 3.1.4l\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" -"POT-Creation-Date: 2005-07-06 17:20+0300\n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" "PO-Revision-Date: 2005-06-27 02:37+1000\n" "Last-Translator: Makoto Hosoya \n" "Language-Team: Japanese \n" @@ -35,352 +35,367 @@ msgid "from %s" msgstr "%s " -#: array.c:511 +#: array.c:514 #, c-format msgid "reference to uninitialized element `%s[\"%s\"]'" msgstr "Ƥʤ `%s[\"%s\"]' 򻲾ȤƤޤ" -#: array.c:517 +#: array.c:520 #, c-format msgid "subscript of array `%s' is null string" msgstr "ź `%s' Ǥ" -#: array.c:621 +#: array.c:624 #, c-format msgid "delete: index `%s' not in array `%s'" msgstr "delete: `%2$s' ˻ɸ `%1$s' Ϥޤ" -#: array.c:791 +#: array.c:793 #, c-format msgid "%s: empty (null)\n" msgstr "%s: (null)\n" -#: array.c:796 +#: array.c:798 #, c-format msgid "%s: empty (zero)\n" msgstr "%s: (zero)\n" -#: array.c:800 +#: array.c:802 #, c-format msgid "%s: table_size = %d, array_size = %d\n" msgstr "%s: ơ֥륵 (table_size) = %d, 󥵥 (array_size) = %d\n" -#: array.c:829 +#: array.c:831 #, c-format msgid "%s: is parameter\n" msgstr "%s: ϥѥ᡼Ǥ\n" -#: array.c:834 +#: array.c:836 #, c-format msgid "%s: array_ref to %s\n" msgstr "%s: %s ؤ󻲾 (array_ref)\n" -#: awkgram.y:208 +#: awkgram.y:215 #, c-format msgid "%s blocks must have an action part" msgstr "%s ֥åˤϥɬܤǤ" -#: awkgram.y:211 +#: awkgram.y:218 msgid "each rule must have a pattern or an action part" msgstr "ƥ롼ˤϥѥޤϥɬܤǤ" -#: awkgram.y:267 +#: awkgram.y:254 awkgram.y:263 +#, fuzzy +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "黻 `**' ϸŤ awk ǻȤޤ" + +#: awkgram.y:282 #, c-format msgid "`%s' is a built-in function, it cannot be redefined" msgstr "`%s' ȹߴؿǤǤޤ" -#: awkgram.y:313 +#: awkgram.y:328 msgid "regexp constant `//' looks like a C++ comment, but is not" msgstr "ɽ `//' C++Ȥ˻Ƥޤ㤤ޤ" -#: awkgram.y:316 +#: awkgram.y:331 #, c-format msgid "regexp constant `/%s/' looks like a C comment, but is not" msgstr "ɽ `/%s/' CȤ˻Ƥޤ㤤ޤ" -#: awkgram.y:343 awkgram.y:623 +#: awkgram.y:358 awkgram.y:653 msgid "statement may have no effect" msgstr "̿ʸˤϸ̵̤⤷ޤ" -#: awkgram.y:440 awkgram.y:460 +#: awkgram.y:455 awkgram.y:479 #, c-format msgid "`%s' used in %s action" msgstr "`%s' %s ΥǻȤޤ" -#: awkgram.y:453 awkgram.y:456 +#: awkgram.y:470 awkgram.y:474 msgid "`nextfile' is a gawk extension" msgstr "`nextfile' gawk ͭγĥǤ" -#: awkgram.y:470 +#: awkgram.y:489 msgid "`return' used outside function context" msgstr "`return' ؿʸγǻȤޤ" -#: awkgram.y:512 +#: awkgram.y:531 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" msgstr "" "BEGIN ޤ END 롼ΰ̵ `print' `print \"\"' Ȼפ" "" -#: awkgram.y:525 awkgram.y:532 +#: awkgram.y:547 awkgram.y:555 msgid "`delete array' is a gawk extension" msgstr "`delete array' gawk ͭγĥǤ" -#: awkgram.y:540 awkgram.y:547 +#: awkgram.y:569 awkgram.y:577 msgid "`delete(array)' is a non-portable tawk extension" msgstr "`delete(array)' tawk ͭγĥǤ¾ awk ǤϻѤǤޤ" -#: awkgram.y:591 +#: awkgram.y:621 #, c-format msgid "duplicate case values in switch body: %s" msgstr "switch ʸ˽ʣ case ͤѤƤޤ: %s" -#: awkgram.y:601 +#: awkgram.y:631 msgid "Duplicate `default' detected in switch body" msgstr "switch ʸ `default' ʣƤޤ" -#: awkgram.y:690 +#: awkgram.y:720 msgid "multistage two-way pipelines don't work" msgstr "¿ʳѥפѤϻѤǤޤ" -#: awkgram.y:781 +#: awkgram.y:811 msgid "regular expression on right of assignment" msgstr "ɽαդ˻ѤƤޤ" -#: awkgram.y:804 +#: awkgram.y:834 msgid "regular expression on left of `~' or `!~' operator" msgstr "`~' `!~' 黻ҤκդɽѤƤޤ" -#: awkgram.y:812 +#: awkgram.y:840 awkgram.y:913 +#, fuzzy +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "黻 `**' ϸŤ awk ǻȤޤ" + +#: awkgram.y:846 msgid "regular expression on right of comparison" msgstr "ӼαդɽѤƤޤ" -#: awkgram.y:879 +#: awkgram.y:903 msgid "non-redirected `getline' undefined inside END action" msgstr "쥯ȤƤʤ `getline' END Ǥ̤Ǥ" -#: awkgram.y:906 +#: awkgram.y:914 +#, fuzzy +msgid "old awk does not support multidimensional arrays" +msgstr "黻 `**' ϸŤ awk ǻȤޤ" + +#: awkgram.y:960 msgid "call of `length' without parentheses is not portable" msgstr "̵ `length' ¾ awk ǻѤǤޤ" -#: awkgram.y:909 +#: awkgram.y:965 msgid "call of `length' without parentheses is deprecated by POSIX" msgstr "POSIX ϳ̵Ǥ `length' λѤ侩ޤ" -#: awkgram.y:962 +#: awkgram.y:1019 msgid "use of non-array as array" msgstr "ǤʤΤȤƻѤƤޤ" -#: awkgram.y:964 +#: awkgram.y:1022 msgid "invalid subscript expression" msgstr "źǤ" -#: awkgram.y:1171 +#: awkgram.y:1249 msgid "unexpected newline or end of string" msgstr "ͽ۳βԤޤʸνüޤ" -#: awkgram.y:1267 +#: awkgram.y:1366 msgid "empty program text on command line" msgstr "ޥɹԤΥץɽǤ" -#: awkgram.y:1320 +#: awkgram.y:1422 #, c-format msgid "can't open source file `%s' for reading (%s)" msgstr "ե `%s' ɤ߹ि˳ޤ (%s)" -#: awkgram.y:1397 +#: awkgram.y:1520 #, c-format msgid "can't read sourcefile `%s' (%s)" msgstr "ե `%s' ɤ߹ޤ (%s)" -#: awkgram.y:1405 +#: awkgram.y:1528 #, c-format msgid "source file `%s' is empty" msgstr "ե `%s' ϶Ǥ" -#: awkgram.y:1596 awkgram.y:1718 awkgram.y:1736 awkgram.y:2107 awkgram.y:2194 +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 msgid "source file does not end in newline" msgstr "ե뤬ԤǽäƤޤ" -#: awkgram.y:1658 +#: awkgram.y:1782 msgid "unterminated regexp ends with `\\' at end of file" msgstr "üƤʤɽեǸ `\\' ǽäƤޤ" -#: awkgram.y:1682 +#: awkgram.y:1806 #, c-format msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "%s: %d: tawk ɽ `/.../%c' gawk ǻѤǤޤ" -#: awkgram.y:1686 +#: awkgram.y:1810 #, c-format msgid "tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "tawk ɽ `/.../%c' gawk ǻѤǤޤ" -#: awkgram.y:1693 +#: awkgram.y:1817 msgid "unterminated regexp" msgstr "ɽüƤޤ" -#: awkgram.y:1696 +#: awkgram.y:1820 msgid "unterminated regexp at end of file" msgstr "եɽüƤޤ" -#: awkgram.y:1762 +#: awkgram.y:1889 msgid "use of `\\ #...' line continuation is not portable" msgstr "`\\ #...' ιԷ³¾ awk ǻȤޤ" -#: awkgram.y:1774 +#: awkgram.y:1902 msgid "backslash not last character on line" msgstr "Хåå夬ԺǸʸˤʤäƤޤ" -#: awkgram.y:1819 +#: awkgram.y:1947 msgid "POSIX does not allow operator `**='" msgstr "POSIX ϱ黻 `**=' Ĥޤ" -#: awkgram.y:1821 +#: awkgram.y:1949 msgid "old awk does not support operator `**='" msgstr "黻 `**=' ϸŤ awk ǻȤޤ" -#: awkgram.y:1830 +#: awkgram.y:1958 msgid "POSIX does not allow operator `**'" msgstr "POSIX Ǥϱ黻 `**' ĤƤޤ" -#: awkgram.y:1832 +#: awkgram.y:1960 msgid "old awk does not support operator `**'" msgstr "黻 `**' ϸŤ awk ǻȤޤ" -#: awkgram.y:1863 +#: awkgram.y:1991 msgid "operator `^=' is not supported in old awk" msgstr "黻 `^=' ϸŤ awk ǻȤޤ" -#: awkgram.y:1871 +#: awkgram.y:1999 msgid "operator `^' is not supported in old awk" msgstr "黻 `^' ϸŤ awk ǻȤޤ" -#: awkgram.y:1955 awkgram.y:1970 +#: awkgram.y:2083 awkgram.y:2098 msgid "unterminated string" msgstr "ʸ󤬽üƤޤ" -#: awkgram.y:2155 +#: awkgram.y:2283 #, c-format msgid "invalid char '%c' in expression" msgstr "ɽ char '%c' Ǥ" -#: awkgram.y:2203 +#: awkgram.y:2331 #, c-format msgid "`%s' is a gawk extension" msgstr "`%s' gawk ͭγĥǤ" -#: awkgram.y:2206 +#: awkgram.y:2334 #, c-format msgid "`%s' is a Bell Labs extension" msgstr "`%s' ϥ٥븦ˤĥǤ" -#: awkgram.y:2209 +#: awkgram.y:2337 #, c-format msgid "POSIX does not allow `%s'" msgstr "POSIX `%s' Ĥޤ" -#: awkgram.y:2213 +#: awkgram.y:2341 #, c-format msgid "`%s' is not supported in old awk" msgstr "`%s' ϸŤ awk ǻѤǤޤ" -#: awkgram.y:2239 +#: awkgram.y:2367 msgid "`goto' considered harmful!\n" msgstr "`goto' ͭǤ!\n" -#: awkgram.y:2301 +#: awkgram.y:2429 #, c-format msgid "%d is invalid as number of arguments for %s" msgstr "%d %s ˻ȤοȤƤǤ" -#: awkgram.y:2320 awkgram.y:2323 +#: awkgram.y:2448 awkgram.y:2451 msgid "match: third argument is a gawk extension" msgstr "match: 軰 gawk ͭγĥǤ" -#: awkgram.y:2336 +#: awkgram.y:2464 #, c-format msgid "%s: string literal as last arg of substitute has no effect" msgstr "%s: ʸƥ֤Ǹΰ˻Ѥȸ̤ޤ" -#: awkgram.y:2339 +#: awkgram.y:2467 #, c-format msgid "%s third parameter is not a changeable object" msgstr "%s 軰ѥ᡼ϲѥ֥ȤǤϤޤ" -#: awkgram.y:2366 awkgram.y:2369 +#: awkgram.y:2494 awkgram.y:2497 msgid "close: second argument is a gawk extension" msgstr "close: gawk ͭγĥǤ" -#: awkgram.y:2379 +#: awkgram.y:2507 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" msgstr "" "dcgettext(_\"...\")λȤְäƤޤ: ǽΥƤ" "" -#: awkgram.y:2394 +#: awkgram.y:2522 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" msgstr "" "dcngettext(_\"...\")λȤְäƤޤ: ǽΥ" "" -#: awkgram.y:2465 +#: awkgram.y:2594 #, c-format msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" msgstr "ؿ `%s': ѥ᡼ #%d, `%s' ѥ᡼ #%d ȽʣƤޤ" -#: awkgram.y:2498 +#: awkgram.y:2627 #, c-format msgid "function `%s': parameter `%s' shadows global variable" msgstr "ؿ `%s': ѥ᡼ `%s' ѿʤƤޤ" -#: awkgram.y:2610 +#: awkgram.y:2739 #, c-format msgid "could not open `%s' for writing (%s)" msgstr "`%s' Ѥ˳ޤǤ (%s)" -#: awkgram.y:2611 profile.c:93 +#: awkgram.y:2740 profile.c:94 msgid "sending profile to standard error" msgstr "ץեɸ२顼äƤޤ" -#: awkgram.y:2643 +#: awkgram.y:2772 #, c-format msgid "%s: close failed (%s)" msgstr "%s: Ĥ뤳ȤǤޤ (%s)" -#: awkgram.y:2764 +#: awkgram.y:2893 msgid "shadow_funcs() called twice!" msgstr "shadow_funcs() ƤӽФƤޤ!" -#: awkgram.y:2791 +#: awkgram.y:2920 msgid "there were shadowed variables." msgstr "ʤ줿ѿޤ" -#: awkgram.y:2864 +#: awkgram.y:2993 #, c-format msgid "function `%s': can't use function name as parameter name" msgstr "ؿ `%s': ؿ̾ϥѥ᡼̾˻ѤǤޤ" -#: awkgram.y:2874 +#: awkgram.y:3003 #, c-format msgid "function name `%s' previously defined" msgstr "ؿ̾ `%s' ѤߤǤ" -#: awkgram.y:3025 awkgram.y:3031 +#: awkgram.y:3154 awkgram.y:3160 #, c-format msgid "function `%s' called but never defined" msgstr "̤δؿ `%s' ƤӽФޤ" -#: awkgram.y:3034 +#: awkgram.y:3163 #, c-format msgid "function `%s' defined but never called" msgstr "줿ؿ `%s' ϰ٤ƤӽФޤǤ" -#: awkgram.y:3061 +#: awkgram.y:3190 #, c-format msgid "regexp constant for parameter #%d yields boolean value" msgstr "ѥ᡼ #%d ɽϥ֡ͤϤޤ" -#: awkgram.y:3105 +#: awkgram.y:3234 #, c-format msgid "" "function `%s' called with space between name and `(',\n" @@ -389,381 +404,381 @@ "ؿ̾ `(' δ֤˥ڡƴؿ `%s' ƤӽФƤޤ\n" "ޤϡѿȤƻȤƤޤ" -#: builtin.c:145 +#: builtin.c:119 #, c-format msgid "%s to \"%s\" failed (%s)" msgstr "%s \"%s\" ؽϤǤޤ (%s)" -#: builtin.c:146 +#: builtin.c:120 msgid "standard output" msgstr "ɸ" -#: builtin.c:147 +#: builtin.c:121 msgid "reason unknown" msgstr "" -#: builtin.c:160 +#: builtin.c:134 msgid "exp: received non-numeric argument" msgstr "exp: ͤǤϤޤ" -#: builtin.c:166 +#: builtin.c:140 #, c-format msgid "exp: argument %g is out of range" msgstr "exp: %g ϰϤĶƤޤ" -#: builtin.c:224 +#: builtin.c:198 #, c-format msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" msgstr "fflush: եåԲ: ѥ `%s' ɤ߹ѤǤ" -#: builtin.c:227 +#: builtin.c:201 #, c-format msgid "fflush: cannot flush: file `%s' opened for reading, not writing" msgstr "fflush: եåԲ: ե `%s' ɤ߹ѤǤ" -#: builtin.c:239 +#: builtin.c:213 #, c-format msgid "fflush: `%s' is not an open file, pipe or co-process" msgstr "" "fflush: `%s' ϥե뤫ѥפ¹ԥץǤʤФʤޤ" -#: builtin.c:332 +#: builtin.c:306 msgid "index: received non-string first argument" msgstr "index: ʸǤϤޤ" -#: builtin.c:334 +#: builtin.c:308 msgid "index: received non-string second argument" msgstr "index: ʸǤϤޤ" -#: builtin.c:449 +#: builtin.c:423 msgid "int: received non-numeric argument" msgstr "int: ͤǤϤޤ" -#: builtin.c:472 +#: builtin.c:448 #, fuzzy msgid "`length(array)' is a gawk extension" msgstr "`delete array' gawk ͭγĥǤ" -#: builtin.c:481 +#: builtin.c:458 msgid "length: received non-string argument" msgstr "length: ʸǤϤޤ" -#: builtin.c:506 +#: builtin.c:483 msgid "log: received non-numeric argument" msgstr "log: ͤǤϤޤ" -#: builtin.c:509 +#: builtin.c:486 #, c-format msgid "log: received negative argument %g" msgstr "log: %g ͤǤ" -#: builtin.c:673 builtin.c:676 +#: builtin.c:693 builtin.c:696 msgid "must use `count$' on all formats or none" msgstr "" "`count$ǤƤν񼰻ŬѤ롢ޤƤŬѤʤΤɤ餫Ǥ" "ޤ" -#: builtin.c:778 +#: builtin.c:799 msgid "`$' is not permitted in awk formats" msgstr "`$' awk ǤϻȤޤ" -#: builtin.c:784 +#: builtin.c:805 msgid "arg count with `$' must be > 0" msgstr " `$' ˻ȤͤǤ" -#: builtin.c:786 +#: builtin.c:807 #, c-format msgid "arg count %ld greater than total number of supplied arguments" msgstr " %ld ͿƤοĶƤޤ" -#: builtin.c:788 +#: builtin.c:809 msgid "`$' not permitted after period in format" msgstr "`$' Ͻ񼰻Υԥꥪ `.' θ˻ѤǤޤ" -#: builtin.c:801 +#: builtin.c:822 msgid "no `$' supplied for positional field width or precision" msgstr "եޤ٤λҤ `$' ͿƤޤ" -#: builtin.c:867 +#: builtin.c:888 msgid "`l' is meaningless in awk formats; ignored" msgstr "awk ν񼰻Ǥ `l' ̵̣Ǥ̵뤷ޤ" -#: builtin.c:871 +#: builtin.c:892 msgid "`l' is not permitted in POSIX awk formats" msgstr "POSIX awk Ǥ `l' ϻѤǤޤ" -#: builtin.c:882 +#: builtin.c:903 msgid "`L' is meaningless in awk formats; ignored" msgstr "awk ν񼰻Ǥ `L' ̵̣Ǥ̵뤷ޤ" -#: builtin.c:886 +#: builtin.c:907 msgid "`L' is not permitted in POSIX awk formats" msgstr "POSIX awk Ǥ `L' ϻѤǤޤ" -#: builtin.c:897 +#: builtin.c:918 msgid "`h' is meaningless in awk formats; ignored" msgstr "awk ν񼰻Ǥ `h' ̵̣Ǥ̵뤷ޤ" -#: builtin.c:901 +#: builtin.c:922 msgid "`h' is not permitted in POSIX awk formats" msgstr "POSIX awk Ǥ `h' ϻѤǤޤ" -#: builtin.c:1132 +#: builtin.c:1182 #, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" msgstr "[s]printf: %g ͤ `%%%c' εϰϤĶƤޤ" -#: builtin.c:1198 +#: builtin.c:1266 msgid "not enough arguments to satisfy format string" msgstr "񼰻ꤹ뤿ΰ­ޤ" -#: builtin.c:1200 +#: builtin.c:1268 msgid "^ ran out for this one" msgstr "^ ­ޤ" -#: builtin.c:1205 +#: builtin.c:1274 msgid "[s]printf: format specifier does not have control letter" msgstr "[s]printf: 񼰻Ҥʸޤ" -#: builtin.c:1208 +#: builtin.c:1277 msgid "too many arguments supplied for format string" msgstr "񼰻ʸΰ¿᤮ޤ" -#: builtin.c:1274 builtin.c:1277 +#: builtin.c:1352 builtin.c:1355 msgid "printf: no arguments" msgstr "printf: ޤ" -#: builtin.c:1301 +#: builtin.c:1379 msgid "sqrt: received non-numeric argument" msgstr "sqrt: ͤǤϤޤ" -#: builtin.c:1305 +#: builtin.c:1383 #, c-format msgid "sqrt: called with negative argument %g" msgstr "sqrt: %g ѤƤޤ" -#: builtin.c:1329 +#: builtin.c:1407 #, c-format msgid "substr: start index %g is invalid, using 1" msgstr "substr: ɸ %g Ǥ1 Ȥޤ" -#: builtin.c:1334 +#: builtin.c:1412 #, c-format msgid "substr: non-integer start index %g will be truncated" msgstr "substr: ɸ %g ξʲڤΤƤޤ" -#: builtin.c:1353 +#: builtin.c:1431 #, c-format msgid "substr: length %g is not >= 1" msgstr "substr: ʸ %g 1 ʾǤϤޤ" -#: builtin.c:1355 +#: builtin.c:1433 #, c-format msgid "substr: length %g is not >= 0" msgstr "substr: ʸ %g 0 ʾǤϤޤ" -#: builtin.c:1362 +#: builtin.c:1440 #, c-format msgid "substr: non-integer length %g will be truncated" msgstr "substr: ʸ %g ξʲڤΤƤޤ" -#: builtin.c:1367 +#: builtin.c:1445 #, c-format msgid "substr: length %g too big for string indexing, truncating to %g" msgstr "substr: ʸ %g ϺͤĶƤޤ%g Ȥޤ" -#: builtin.c:1379 +#: builtin.c:1457 msgid "substr: source string is zero length" msgstr "substr: ʸĹǤ" -#: builtin.c:1395 +#: builtin.c:1473 #, c-format msgid "substr: start index %g is past end of string" msgstr "substr: ɸ %g ʸĹĶƤޤ" -#: builtin.c:1403 +#: builtin.c:1481 #, c-format msgid "" "substr: length %g at start index %g exceeds length of first argument (%lu)" msgstr "" "substr: ɸ %2$g ʸ %1$g ʸĹ %3$lu ĶƤޤ" -#: builtin.c:1478 +#: builtin.c:1558 msgid "strftime: received non-string first argument" msgstr "strftime: ʸǤϤޤ" -#: builtin.c:1484 +#: builtin.c:1564 msgid "strftime: received empty format string" msgstr "strftime: 񼰻ʸ󤬶Ǥ" -#: builtin.c:1493 +#: builtin.c:1573 msgid "strftime: received non-numeric second argument" msgstr "strftime: ͤǤϤޤ" -#: builtin.c:1556 +#: builtin.c:1650 msgid "mktime: received non-string argument" msgstr "mktime: ʸǤϤޤ" -#: builtin.c:1601 +#: builtin.c:1695 msgid "system: received non-string argument" msgstr "system: ʸǤϤޤ" -#: builtin.c:1722 eval.c:2039 +#: builtin.c:1816 eval.c:2041 #, c-format msgid "reference to uninitialized field `$%d'" msgstr "Ƥʤե `$%d' 򻲾ȤƤޤ" -#: builtin.c:1827 +#: builtin.c:1921 msgid "tolower: received non-string argument" msgstr "tolower: ʸǤϤޤ" -#: builtin.c:1857 +#: builtin.c:1951 msgid "toupper: received non-string argument" msgstr "toupper: ʸǤϤޤ" -#: builtin.c:1890 +#: builtin.c:1984 msgid "atan2: received non-numeric first argument" msgstr "atan2: ͤǤϤޤ" -#: builtin.c:1892 +#: builtin.c:1986 msgid "atan2: received non-numeric second argument" msgstr "atan2: ͤǤϤޤ" -#: builtin.c:1911 +#: builtin.c:2005 msgid "sin: received non-numeric argument" msgstr "sin: ͤǤϤޤ" -#: builtin.c:1927 +#: builtin.c:2021 msgid "cos: received non-numeric argument" msgstr "cos: ͤǤϤޤ" -#: builtin.c:1977 +#: builtin.c:2071 msgid "srand: received non-numeric argument" msgstr "srand: ͤǤϤޤ" -#: builtin.c:2012 +#: builtin.c:2106 msgid "match: third argument is not an array" msgstr "match: 軰̾ǤϤޤ" -#: builtin.c:2555 +#: builtin.c:2650 msgid "gensub: third argument of 0 treated as 1" msgstr "gensub: 軰 0 Ǥ1 ˻Ѥޤ" -#: builtin.c:2715 +#: builtin.c:2766 msgid "lshift: received non-numeric first argument" msgstr "lshift: ͤǤϤޤ" -#: builtin.c:2717 +#: builtin.c:2768 msgid "lshift: received non-numeric second argument" msgstr "lshift: ͤǤϤޤ" -#: builtin.c:2723 +#: builtin.c:2774 #, c-format msgid "lshift(%lf, %lf): negative values will give strange results" msgstr "lshift(%lf, %lf): οͤѤȰ۾ʷ̤ˤʤޤ" -#: builtin.c:2725 +#: builtin.c:2776 #, c-format msgid "lshift(%lf, %lf): fractional values will be truncated" msgstr "lshift(%lf, %lf): ʲڤΤƤˤʤޤ" -#: builtin.c:2727 +#: builtin.c:2778 #, c-format msgid "lshift(%lf, %lf): too large shift value will give strange results" msgstr "lshift(%lf, %lf): եͤ礭᤮Ȱ۾ʷ̤ˤʤޤ" -#: builtin.c:2753 +#: builtin.c:2804 msgid "rshift: received non-numeric first argument" msgstr "rshift: ͤǤϤޤ" -#: builtin.c:2755 +#: builtin.c:2806 msgid "rshift: received non-numeric second argument" msgstr "rshift: ͤǤϤޤ" -#: builtin.c:2761 +#: builtin.c:2812 #, c-format msgid "rshift(%lf, %lf): negative values will give strange results" msgstr "rshift(%lf, %lf): οͤѤȰ۾ʷ̤ˤʤޤ" -#: builtin.c:2763 +#: builtin.c:2814 #, c-format msgid "rshift(%lf, %lf): fractional values will be truncated" msgstr "rshift(%lf, %lf): ʲڤΤƤˤʤޤ" -#: builtin.c:2765 +#: builtin.c:2816 #, c-format msgid "rshift(%lf, %lf): too large shift value will give strange results" msgstr "rshift(%lf, %lf): եͤ礭᤮Ȱ۾ʷ̤ˤʤޤ" -#: builtin.c:2791 +#: builtin.c:2842 msgid "and: received non-numeric first argument" msgstr "and: ͤǤϤޤ" -#: builtin.c:2793 +#: builtin.c:2844 msgid "and: received non-numeric second argument" msgstr "and: ͤǤϤޤ" -#: builtin.c:2799 +#: builtin.c:2850 #, c-format msgid "and(%lf, %lf): negative values will give strange results" msgstr "and(%lf, %lf): οͤѤȰ۾ʷ̤ˤʤޤ" -#: builtin.c:2801 +#: builtin.c:2852 #, c-format msgid "and(%lf, %lf): fractional values will be truncated" msgstr "and(%lf, %lf): ʲڤΤƤˤʤޤ" -#: builtin.c:2827 +#: builtin.c:2878 msgid "or: received non-numeric first argument" msgstr "or: ͤǤϤޤ" -#: builtin.c:2829 +#: builtin.c:2880 msgid "or: received non-numeric second argument" msgstr "or: ͤǤϤޤ" -#: builtin.c:2835 +#: builtin.c:2886 #, c-format msgid "or(%lf, %lf): negative values will give strange results" msgstr "or(%lf, %lf): οͤѤȰ۾ʷ̤ˤʤޤ" -#: builtin.c:2837 +#: builtin.c:2888 #, c-format msgid "or(%lf, %lf): fractional values will be truncated" msgstr "or(%lf, %lf): ʲڤΤƤˤʤޤ" -#: builtin.c:2863 +#: builtin.c:2914 msgid "xor: received non-numeric first argument" msgstr "xor: ͤǤϤޤ" -#: builtin.c:2865 +#: builtin.c:2916 msgid "xor: received non-numeric second argument" msgstr "xor: ͤǤϤޤ" -#: builtin.c:2871 +#: builtin.c:2922 #, c-format msgid "xor(%lf, %lf): negative values will give strange results" msgstr "xor(%lf, %lf): οͤѤȰ۾ʷ̤ˤʤޤ" -#: builtin.c:2873 +#: builtin.c:2924 #, c-format msgid "xor(%lf, %lf): fractional values will be truncated" msgstr "xor(%lf, %lf): ʲڤΤƤˤʤޤ" -#: builtin.c:2897 +#: builtin.c:2948 msgid "compl: received non-numeric argument" msgstr "compl: ͤǤϤޤ" -#: builtin.c:2903 +#: builtin.c:2954 #, c-format msgid "compl(%lf): negative value will give strange results" msgstr "compl(%lf): οͤѤȰ۾ʷ̤ˤʤޤ" -#: builtin.c:2905 +#: builtin.c:2956 #, c-format msgid "compl(%lf): fractional value will be truncated" msgstr "compl(%lf): ʲڤΤƤˤʤޤ" -#: builtin.c:3078 +#: builtin.c:3129 #, c-format msgid "dcgettext: `%s' is not a valid locale category" msgstr "dcgettext: `%s' ʥ롦ƥ꡼Ǥ" @@ -777,7 +792,7 @@ msgid "buffer overflow in genflags2str" msgstr "genflags2str Хåե̤Ķᤷޤ" -#: eval.c:385 eval.c:391 profile.c:838 +#: eval.c:385 eval.c:391 profile.c:817 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "顼Ķ `%s' ѤƤޤ" @@ -824,7 +839,7 @@ msgid "statement has no effect" msgstr "̿ʸ˸̤Ϥޤ" -#: eval.c:952 eval.c:1893 +#: eval.c:952 eval.c:1895 #, c-format msgid "can't use function name `%s' as variable or array" msgstr "ؿ̾ `%s' ѿˤϻȤޤ" @@ -834,7 +849,7 @@ msgid "reference to uninitialized argument `%s'" msgstr "Ƥʤ `%s' 򻲾ȤƤޤ" -#: eval.c:974 eval.c:1902 +#: eval.c:974 eval.c:1904 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "Ƥʤѿ `%s' 򻲾ȤƤޤ" @@ -847,44 +862,44 @@ "concatenationʸϢ: μѤǡ⤦ĹѤޤ" "!" -#: eval.c:1200 +#: eval.c:1202 msgid "assignment used in conditional context" msgstr "ʸǤ" -#: eval.c:1278 +#: eval.c:1280 msgid "division by zero attempted" msgstr "ǤνԤޤ" -#: eval.c:1293 +#: eval.c:1295 #, c-format msgid "division by zero attempted in `%%'" msgstr "`%%' ǥǤνԤޤ" -#: eval.c:1308 profile.c:714 +#: eval.c:1310 profile.c:693 #, c-format msgid "illegal type (%s) in tree_eval" msgstr "tree_eval ʥ (%s) ѤƤޤ" -#: eval.c:1471 +#: eval.c:1473 msgid "division by zero attempted in `/='" msgstr "`/=' ǥǤνԤޤ" -#: eval.c:1493 +#: eval.c:1495 #, c-format msgid "division by zero attempted in `%%='" msgstr "`%%=' ǥǤνԤޤ" -#: eval.c:1758 +#: eval.c:1760 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "Ƥ¿Ȥäƴؿ `%s' ƤӽФޤ" -#: eval.c:1802 +#: eval.c:1804 #, c-format msgid "function `%s' not defined" msgstr "ؿ `%s' Ƥޤ" -#: eval.c:1865 +#: eval.c:1867 #, c-format msgid "" "\n" @@ -895,669 +910,683 @@ "\t# ƽдؿå:\n" "\n" -#: eval.c:1868 +#: eval.c:1870 #, c-format msgid "\t# -- main --\n" msgstr "\t# -- ᥤ --\n" -#: eval.c:2023 +#: eval.c:2025 msgid "attempt to field reference from non-numeric value" msgstr "ͰʳͤȤäƥեɤ򻲾ȤƤޤ" -#: eval.c:2025 +#: eval.c:2027 msgid "attempt to reference from null string" msgstr "ȤäƻȤƤޤ" -#: eval.c:2031 +#: eval.c:2033 #, c-format msgid "attempt to access field %d" msgstr "ե %d 򻲾ȤƤޤ" -#: eval.c:2052 eval.c:2059 profile.c:935 +#: eval.c:2054 eval.c:2061 profile.c:914 msgid "assignment is not allowed to result of builtin function" msgstr "ȹؿͤϤǤޤ" -#: eval.c:2123 +#: eval.c:2125 msgid "`IGNORECASE' is a gawk extension" msgstr "`IGNORECASE' gawk ͭγĥǤ" -#: eval.c:2153 +#: eval.c:2155 msgid "`BINMODE' is a gawk extension" msgstr "`BINMODE' gawk ͭγĥǤ" -#: eval.c:2275 +#: eval.c:2277 #, c-format msgid "bad `%sFMT' specification `%s'" msgstr "`%sFMT' λ `%s' ְäƤޤ" -#: eval.c:2353 +#: eval.c:2355 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "`LINT' ؤ˽ `--lint' ̵ˤޤ" -#: ext.c:60 ext.c:64 +#: ext.c:62 ext.c:67 msgid "`extension' is a gawk extension" msgstr "`extension' gawk ͭγĥǤ" -#: ext.c:74 +#: ext.c:77 #, c-format msgid "extension: cannot open `%s' (%s)\n" msgstr "extension: `%s' 򳫤ޤ (%s)\n" -#: ext.c:82 +#: ext.c:85 #, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "extension: 饤֥ `%s': ؿ `%s' ƤӽФޤ (%s)\n" -#: ext.c:102 +#: ext.c:105 msgid "extension: missing function name" msgstr "extension: ؿ̾ޤ" -#: ext.c:107 +#: ext.c:110 #, c-format msgid "extension: illegal character `%c' in function name `%s'" msgstr "extension: ؿ̾ `%2$s' ʸ `%1$c' ȤƤޤ" -#: ext.c:113 +#: ext.c:116 #, c-format msgid "extension: can't redefine function `%s'" msgstr "extension: ؿ `%s' Ǥޤ" -#: ext.c:117 +#: ext.c:120 #, c-format msgid "extension: function `%s' already defined" msgstr "extension: ؿ `%s' ϴƤޤ" -#: ext.c:122 +#: ext.c:125 #, c-format msgid "extension: can't use gawk built-in `%s' as function name" msgstr "extension: Ȥ߹ߴؿ `%s' ϴؿ̾˻Ȥޤ" -#: ext.c:124 +#: ext.c:127 #, c-format msgid "extension: function name `%s' previously defined" msgstr "extension: ؿ̾ `%s' ϴƤޤ" -#: ext.c:201 +#: ext.c:204 #, c-format msgid "function `%s' defined to take no more than %d argument(s)" msgstr "ؿ `%s' ˻Ȥο `%d' ʲƤޤ" -#: ext.c:204 +#: ext.c:207 #, c-format msgid "function `%s': missing argument #%d" msgstr "ؿ `%s': #%d ޤ" -#: ext.c:214 +#: ext.c:217 #, c-format msgid "function `%s': argument #%d: attempt to use scalar as an array" msgstr "ؿ `%s': #%d: 顼ȤƻѤƤޤ" -#: ext.c:218 +#: ext.c:221 #, c-format msgid "function `%s': argument #%d: attempt to use array as a scalar" msgstr "ؿ `%s': #%d: 򥹥顼ȤƻѤƤޤ" -#: ext.c:243 +#: ext.c:246 msgid "Operation Not Supported" msgstr "ϼƤޤ" -#: field.c:326 +#: field.c:330 msgid "NF set to negative value" msgstr "NF ͤǤ" -#: field.c:819 +#: field.c:823 msgid "split: second argument is not an array" msgstr "split: ǤϤޤ" -#: field.c:853 +#: field.c:857 msgid "split: null string for third arg is a gawk extension" msgstr "split: 軰˶ѤΤ gawk ͭγĥǤ" -#: field.c:905 +#: field.c:909 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "`FIELDWIDTHS' gawk ͭγĥǤ" -#: field.c:935 field.c:946 +#: field.c:939 field.c:953 #, c-format msgid "invalid FIELDWIDTHS value, near `%s'" msgstr "`%s' ն FIELDWIDTHS ͤǤ" -#: field.c:1027 +#: field.c:1036 msgid "null string for `FS' is a gawk extension" msgstr "`FS' ˶ѤΤ gawk ͭγĥǤ" -#: getopt.c:571 getopt.c:590 +#: field.c:1040 +#, fuzzy +msgid "old awk does not support regexps as value of `FS'" +msgstr "黻 `**' ϸŤ awk ǻȤޤ" + +#: getopt.c:571 getopt.c:587 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: ץ `%s' ۣǤ\n" -#: getopt.c:623 getopt.c:627 +#: getopt.c:620 getopt.c:624 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: ץ `--%s' ˰Ϥޤ\n" -#: getopt.c:636 getopt.c:641 +#: getopt.c:633 getopt.c:638 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: ץ `%c%s' ˰Ϥޤ\n" -#: getopt.c:687 getopt.c:709 getopt.c:1040 getopt.c:1062 +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: ץ `%s' ˤϰɬפǤ\n" -#: getopt.c:747 getopt.c:750 +#: getopt.c:738 getopt.c:741 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: ǧǤʤץ `--%s'\n" -#: getopt.c:758 getopt.c:761 +#: getopt.c:749 getopt.c:752 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: ǧǤʤץ `%c%s'\n" -#: getopt.c:816 getopt.c:819 +#: getopt.c:804 getopt.c:807 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: ʥץ -- %c\n" -#: getopt.c:825 getopt.c:828 +#: getopt.c:813 getopt.c:816 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: ̵ʥץ -- %c\n" -#: getopt.c:883 getopt.c:902 getopt.c:1115 getopt.c:1136 main.c:448 +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: ɬפʥץ -- %c\n" -#: getopt.c:955 getopt.c:974 +#: getopt.c:937 getopt.c:953 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: ץ `-W %s' ۣǤ\n" -#: getopt.c:998 getopt.c:1019 +#: getopt.c:977 getopt.c:995 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: ץ `-W %s' ˰Ϥޤ\n" -#: io.c:307 +#: io.c:345 #, c-format msgid "cannot open file `%s' for reading (%s)" msgstr "ե `%s' ɤ߹ि˳ޤ (%s)" -#: io.c:398 +#: io.c:436 #, c-format msgid "close of fd %d (`%s') failed (%s)" msgstr "fd %d (`%s') Ĥ뤳ȤǤޤ (%s)" -#: io.c:536 +#: io.c:575 #, c-format msgid "invalid tree type %s in redirect()" msgstr "redirect() ʥĥ꡼ %s ѤƤޤ" -#: io.c:542 +#: io.c:581 #, c-format msgid "expression in `%s' redirection only has numeric value" msgstr "`%s' 쥯Ȥ̿ἰ˿ͤҤƤޤ" -#: io.c:548 +#: io.c:587 #, c-format msgid "expression for `%s' redirection has null string value" msgstr "`%s' 쥯Ȥ̿ἰǤ" -#: io.c:553 +#: io.c:592 #, c-format msgid "filename `%s' for `%s' redirection may be result of logical expression" msgstr "" "`%2$s' 쥯Ȥ黻η̤Ȼפե̾ `%1$s' ȤƤ" "" -#: io.c:591 +#: io.c:630 #, c-format msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" msgstr "ե `%.*s' ɬװʾ `>' `>>' ȹ礻Ƥޤ" -#: io.c:643 +#: io.c:682 #, c-format msgid "can't open pipe `%s' for output (%s)" msgstr "Ѥ˥ѥ `%s' 򳫤ޤ (%s)" -#: io.c:652 +#: io.c:691 #, c-format msgid "can't open pipe `%s' for input (%s)" msgstr "Ѥ˥ѥ `%s' 򳫤ޤ (%s)" -#: io.c:665 +#: io.c:698 io.c:1448 +#, c-format +msgid "file `%s' is a directory" +msgstr "ե `%s' ϥǥ쥯ȥǤ" + +#: io.c:706 #, c-format msgid "can't open two way socket `%s' for input/output (%s)" msgstr "Ѥå `%s' ޤ (%s)" -#: io.c:669 +#: io.c:710 #, c-format msgid "can't open two way pipe `%s' for input/output (%s)" msgstr "Ѥѥ `%s' ޤ (%s)" -#: io.c:745 +#: io.c:786 #, c-format msgid "can't redirect from `%s' (%s)" msgstr "`%s' 쥯ȤǤޤ (%s)" -#: io.c:748 +#: io.c:789 #, c-format msgid "can't redirect to `%s' (%s)" msgstr "`%s' ˥쥯ȤǤޤ (%s)" -#: io.c:787 +#: io.c:828 msgid "" "reached system limit for open files: starting to multiplex file descriptors" msgstr "" "Ƥեοƥ¤ãޤե뵭һҤ¿Ų" "" -#: io.c:803 +#: io.c:844 #, c-format msgid "close of `%s' failed (%s)." msgstr "`%s' Ĥޤ (%s)" -#: io.c:811 +#: io.c:852 msgid "too many pipes or input files open" msgstr "Ƥѥפޤϥեο¿᤮ޤ" -#: io.c:834 +#: io.c:875 msgid "close: second argument must be `to' or `from'" msgstr "close: ˻ѤǤΤ `to' ޤ `from' Ǥ" -#: io.c:848 +#: io.c:889 #, c-format msgid "close: `%.*s' is not an open file, pipe or co-process" msgstr "" "close: `%.*s' ϥե롢ѥס¹ԥץΤǤ⤢ޤ" -#: io.c:852 +#: io.c:893 msgid "close of redirection that was never opened" msgstr "Ƥʤ쥯ȤĤ褦ȤƤޤ" -#: io.c:948 +#: io.c:989 #, c-format msgid "close: redirection `%s' not opened with `|&', second argument ignored" msgstr "" "close: 쥯 `%s' `|&' ȤäƤޤ̵뤷ޤ" -#: io.c:964 +#: io.c:1005 #, c-format msgid "failure status (%d) on pipe close of `%s' (%s)" msgstr "ѥ `%2$s' ĤȤξ֥ɤ (%1$d) Ǥ (%3$s)" -#: io.c:967 +#: io.c:1008 #, c-format msgid "failure status (%d) on file close of `%s' (%s)" msgstr "ե `%2$s' ĤȤξ֥ɤ (%1$d) Ǥ (%3$s)" -#: io.c:987 +#: io.c:1028 #, c-format msgid "no explicit close of socket `%s' provided" msgstr "å `%s' ĤƤޤ" -#: io.c:990 +#: io.c:1031 #, c-format msgid "no explicit close of co-process `%s' provided" msgstr "¹ԥץ `%s' ĤƤޤ" -#: io.c:993 +#: io.c:1034 #, c-format msgid "no explicit close of pipe `%s' provided" msgstr "ѥ `%s' ĤƤޤ" -#: io.c:996 +#: io.c:1037 #, c-format msgid "no explicit close of file `%s' provided" msgstr "ե `%s' ĤƤޤ" -#: io.c:1025 io.c:1080 main.c:718 main.c:756 +#: io.c:1066 io.c:1121 main.c:749 main.c:791 #, c-format msgid "error writing standard output (%s)" msgstr "ɸϤؤνߥ顼 (%s)" -#: io.c:1029 io.c:1085 +#: io.c:1070 io.c:1126 #, c-format msgid "error writing standard error (%s)" msgstr "ɸ२顼ؤνߥ顼 (%s)" -#: io.c:1037 +#: io.c:1078 #, c-format msgid "pipe flush of `%s' failed (%s)." msgstr "ѥ `%s' եåǤޤ (%s)" -#: io.c:1040 +#: io.c:1081 #, c-format msgid "co-process flush of pipe to `%s' failed (%s)." msgstr "`%s' ³ѥפ¹ԥץեåǤޤ (%s)" -#: io.c:1043 +#: io.c:1084 #, c-format msgid "file flush of `%s' failed (%s)." msgstr "ե `%s' եåǤޤ (%s)" -#: io.c:1205 +#: io.c:1198 +#, fuzzy, c-format +msgid "local port %s invalid in `/inet'" +msgstr "`%s' ΥݡȤ̵Ǥ" + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "" + +#: io.c:1250 msgid "/inet/raw client not ready yet, sorry" msgstr "ǰʤ顢/inet/raw 饤ȤνǤƤޤ" -#: io.c:1207 io.c:1244 +#: io.c:1253 io.c:1289 msgid "only root may use `/inet/raw'." msgstr "`/inet/raw' root 桼Τ߻ѤǤޤ" -#: io.c:1242 +#: io.c:1287 msgid "/inet/raw server not ready yet, sorry" msgstr "ǰʤ顢/inet/raw СνǤƤޤ" -#: io.c:1332 +#: io.c:1385 #, c-format msgid "no (known) protocol supplied in special filename `%s'" msgstr "" "ڥե̾ `%s' ˡǧǤ˥ץȥ뤬ꤵƤޤ" -#: io.c:1350 +#: io.c:1399 #, c-format msgid "special file name `%s' is incomplete" msgstr "ڥե̾ `%s' ԴǤ" -#: io.c:1362 -#, c-format -msgid "local port invalid in `%s'" -msgstr "`%s' ΥݡȤ̵Ǥ" - -#: io.c:1374 +#: io.c:1414 msgid "must supply a remote hostname to `/inet'" msgstr "`/inet' ˤϥ⡼ȥۥ̾ɬפǤ" -#: io.c:1389 +#: io.c:1432 msgid "must supply a remote port to `/inet'" msgstr "`/inet' ˤϥ⡼ȥݡֹ椬ɬפǤ" -#: io.c:1395 -#, c-format -msgid "remote port invalid in `%s'" -msgstr "`%s' Υ⡼ȥݡȤ̵Ǥ" - -#: io.c:1405 +#: io.c:1439 msgid "TCP/IP communications are not supported" msgstr "TCP/IP ³ϻѤǤޤ" -#: io.c:1414 io.c:1595 -#, c-format -msgid "file `%s' is a directory" -msgstr "ե `%s' ϥǥ쥯ȥǤ" - -#: io.c:1484 +#: io.c:1509 #, c-format msgid "use `PROCINFO[\"%s\"]' instead of `%s'" msgstr "`%2$s' `PROCINFO[\"%1$s\"]' ѤƤ" -#: io.c:1516 +#: io.c:1547 msgid "use `PROCINFO[...]' instead of `/dev/user'" msgstr "`/dev/user' `PROCINFO[...]' ѤƤ" -#: io.c:1581 io.c:1763 +#: io.c:1612 io.c:1798 #, c-format msgid "could not open `%s', mode `%s'" msgstr "`%s' (⡼ `%s') 򳫤ޤ" -#: io.c:1814 +#: io.c:1849 #, c-format msgid "close of master pty failed (%s)" msgstr "ޥ pty Ĥޤ (%s)" -#: io.c:1816 io.c:1968 io.c:2119 +#: io.c:1851 io.c:2003 io.c:2154 #, c-format msgid "close of stdout in child failed (%s)" msgstr "ҥץɸϤĤޤ (%s)" -#: io.c:1819 +#: io.c:1854 #, c-format msgid "moving slave pty to stdout in child failed (dup: %s)" msgstr "ҥץ졼 pty ɸϤ˰ưǤޤ (dup: %s)" -#: io.c:1821 io.c:1973 +#: io.c:1856 io.c:2008 #, c-format msgid "close of stdin in child failed (%s)" msgstr "ҥץɸϤĤޤ (%s)" -#: io.c:1824 +#: io.c:1859 #, c-format msgid "moving slave pty to stdin in child failed (dup: %s)" msgstr "ҥץ졼 pty ɸϤ˰ưǤޤ (dup: %s)" -#: io.c:1826 io.c:1845 +#: io.c:1861 io.c:1880 #, c-format msgid "close of slave pty failed (%s)" msgstr "졼 pty Ĥޤ (%s)" -#: io.c:1919 io.c:1971 io.c:2100 io.c:2122 +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 #, c-format msgid "moving pipe to stdout in child failed (dup: %s)" msgstr "ҥץѥפɸϤ˰ưǤޤ (dup: %s)" -#: io.c:1923 io.c:1976 +#: io.c:1958 io.c:2011 #, c-format msgid "moving pipe to stdin in child failed (dup: %s)" msgstr "ҥץѥפɸϤ˰ưǤޤ (dup: %s)" -#: io.c:1940 io.c:2113 +#: io.c:1975 io.c:2148 msgid "restoring stdout in parent process failed\n" msgstr "ƥץɸϤǤޤ\n" -#: io.c:1945 +#: io.c:1980 msgid "restoring stdin in parent process failed\n" msgstr "ƥץɸϤǤޤ\n" -#: io.c:1979 io.c:2124 io.c:2135 +#: io.c:2014 io.c:2159 io.c:2170 #, c-format msgid "close of pipe failed (%s)" msgstr "ѥפĤޤ (%s)" -#: io.c:2024 +#: io.c:2059 msgid "`|&' not supported" msgstr "`|&' ϻѤǤޤ" -#: io.c:2090 +#: io.c:2125 #, c-format msgid "cannot open pipe `%s' (%s)" msgstr "ѥ `%s' ޤ (%s)" -#: io.c:2131 +#: io.c:2166 #, c-format msgid "cannot create child process for `%s' (fork: %s)" msgstr "`%s' Ѥλҥץ¹ԤǤޤ (fork: %s)" -#: io.c:2506 +#: io.c:2548 #, c-format msgid "data file `%s' is empty" msgstr "ǡե `%s' ϶Ǥ" -#: io.c:2547 io.c:2555 +#: io.c:2589 io.c:2597 msgid "could not allocate more input memory" msgstr "ѥ꡼򤳤ʾݤǤޤ" -#: io.c:2919 io.c:2984 +#: io.c:2965 io.c:3038 #, c-format msgid "error reading input file `%s': %s" msgstr "ϥե `%s' ɤ߹˥顼ȯޤ: %s" -#: io.c:3109 +#: io.c:3163 msgid "multicharacter value of `RS' is a gawk extension" msgstr "ʣʸ `RS' ˻ѤΤ gawk ͭγĥǤ" -#: main.c:338 +#: main.c:351 msgid "`-m[fr]' option irrelevant in gawk" msgstr "gawk Ǥϥץ `-m[fr]' ˸̤Ϥޤ" -#: main.c:340 +#: main.c:353 msgid "-m option usage: `-m[fr] nnn'" msgstr "-m ץλˡ: `-m[fr] '" -#: main.c:357 +#: main.c:370 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: ץ `-W %s' ǧǤޤ̵뤷ޤ\n" -#: main.c:394 +#: main.c:407 msgid "empty argument to `--source' ignored" msgstr " `--source' ̵뤵ޤ" -#: main.c:467 +#: main.c:480 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" msgstr "" "Ķѿ `POSIXLY_CORRECT' ꤵƤޤץ `--posix' ͭ" "ޤ" -#: main.c:472 +#: main.c:486 msgid "`--posix' overrides `--traditional'" msgstr "ץ `--posix' `--traditional' ̵ˤޤ" -#: main.c:483 +#: main.c:497 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" msgstr "" "ץ `--posix'/`--traditional' `--non-decimal-data' ̵ˤޤ" -#: main.c:487 +#: main.c:501 #, c-format msgid "running %s setuid root may be a security problem" msgstr "" "setuid root %s ¹Ԥȡƥ꤬ȯ礬" "" -#: main.c:528 +#: main.c:542 #, c-format msgid "can't set binary mode on stdin (%s)" msgstr "ɸϤХʥ⡼ɤǤޤ (%s)" -#: main.c:531 +#: main.c:545 #, c-format msgid "can't set binary mode on stdout (%s)" msgstr "ɸϤХʥ⡼ɤǤޤ (%s)" -#: main.c:533 +#: main.c:547 #, c-format msgid "can't set binary mode on stderr (%s)" msgstr "ɸ२顼Хʥ⡼ɤǤޤ (%s)" -#: main.c:572 +#: main.c:586 msgid "no program text at all!" msgstr "ץʸޤ!" -#: main.c:665 +#: main.c:690 #, c-format msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" msgstr "" "Ȥ: %s [POSIX ޤ GNU ץ] -f ץե [--] " "ե \n" -#: main.c:667 +#: main.c:692 #, c-format msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" msgstr "" "Ȥ: %s [POSIX ޤ GNU ץ] [--] %cץ%c ϥե" " \n" -#: main.c:672 +#: main.c:697 msgid "POSIX options:\t\tGNU long options:\n" msgstr "POSIX ץ:\t\tGNU Ĺץ\n" -#: main.c:673 +#: main.c:698 msgid "\t-f progfile\t\t--file=progfile\n" msgstr "\t-f ץե\t\t--file=ץե\n" -#: main.c:674 +#: main.c:699 msgid "\t-F fs\t\t\t--field-separator=fs\n" msgstr "" "\t-F եɥѥ졼\t\t\t--field-separator=եɥѥ졼\n" -#: main.c:675 +#: main.c:700 msgid "\t-v var=val\t\t--assign=var=val\n" msgstr "\t-v ѿ=\t\t--assign=ѿ=\n" -#: main.c:676 +#: main.c:701 msgid "\t-m[fr] val\n" msgstr "\t-m[fr] \n" -#: main.c:677 +#: main.c:702 msgid "\t-W compat\t\t--compat\n" msgstr "\t-W compat\t\t--compat\n" -#: main.c:678 +#: main.c:703 msgid "\t-W copyleft\t\t--copyleft\n" msgstr "\t-W copyleft\t\t--copyleft\n" -#: main.c:679 +#: main.c:704 msgid "\t-W copyright\t\t--copyright\n" msgstr "\t-W copyright\t\t--copyright\n" -#: main.c:680 +#: main.c:705 msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" msgstr "\t-W dump-variables[=ե]\t--dump-variables[=ե]\n" -#: main.c:681 +#: main.c:706 msgid "\t-W exec=file\t\t--exec=file\n" msgstr "\t-W exec=ե\t\t--exec=ե\n" -#: main.c:682 +#: main.c:707 msgid "\t-W gen-po\t\t--gen-po\n" msgstr "\t-W gen-po\t\t--gen-po\n" -#: main.c:683 +#: main.c:708 msgid "\t-W help\t\t\t--help\n" msgstr "\t-W help\t\t\t--help\n" -#: main.c:684 +#: main.c:709 msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" msgstr "\t-W lint[=fatal]\t\t--lint[=fatal]\n" -#: main.c:685 +#: main.c:710 msgid "\t-W lint-old\t\t--lint-old\n" msgstr "\t-W lint-old\t\t--lint-old\n" -#: main.c:686 +#: main.c:711 msgid "\t-W non-decimal-data\t--non-decimal-data\n" msgstr "\t-W non-decimal-data\t--non-decimal-data\n" -#: main.c:688 +#: main.c:713 msgid "\t-W nostalgia\t\t--nostalgia\n" msgstr "\t-W nostalgia\t\t--nostalgia\n" -#: main.c:691 +#: main.c:716 msgid "\t-W parsedebug\t\t--parsedebug\n" msgstr "\t-W parsedebug\t\t--parsedebug\n" -#: main.c:693 +#: main.c:718 msgid "\t-W profile[=file]\t--profile[=file]\n" msgstr "\t-W profile[=ե]\t--profile[=ե]\n" -#: main.c:694 +#: main.c:719 msgid "\t-W posix\t\t--posix\n" msgstr "\t-W posix\t\t--posix\n" -#: main.c:695 +#: main.c:720 msgid "\t-W re-interval\t\t--re-interval\n" msgstr "\t-W re-interval\t\t--re-interval\n" -#: main.c:696 +#: main.c:721 msgid "\t-W source=program-text\t--source=program-text\n" msgstr "\t-W source=ץʸ\t--source=ץʸ\n" -#: main.c:697 +#: main.c:722 msgid "\t-W traditional\t\t--traditional\n" msgstr "\t-W traditional\t\t--traditional\n" -#: main.c:698 +#: main.c:723 msgid "\t-W usage\t\t--usage\n" msgstr "\t-W usage\t\t--usage\n" -#: main.c:699 +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "" + +#: main.c:725 msgid "\t-W version\t\t--version\n" msgstr "\t-W version\t\t--version\n" -#: main.c:703 +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 msgid "" "\n" "To report bugs, see node `Bugs' in `gawk.info', which is\n" @@ -1570,7 +1599,7 @@ "ϡ`Reporting Problems and Bugs' Ǥ\n" "\n" -#: main.c:707 +#: main.c:738 msgid "" "gawk is a pattern scanning and processing language.\n" "By default it reads standard input and writes standard output.\n" @@ -1580,7 +1609,7 @@ "ǥեǤϡɸϤɤ߹ߡɸϤ˽񤭽Фޤ\n" "\n" -#: main.c:711 +#: main.c:742 msgid "" "Examples:\n" "\tgawk '{ sum += $1 }; END { print sum }' file\n" @@ -1590,14 +1619,14 @@ "\tgawk '{ sum += $1 }; END { print sum }' ϥե\n" "\tgawk -F: '{ print $1 }' /etc/passwd\n" -#: main.c:731 +#: main.c:762 #, c-format msgid "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" +"the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" msgstr "" @@ -1608,7 +1637,7 @@ "˽ۡڤ/ޤϡѹä뤳ȤǤޤ\n" "\n" -#: main.c:739 +#: main.c:770 msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -1622,12 +1651,11 @@ "ܤϡGNU General Public License 򻲾ȤƤ\n" "\n" -#: main.c:745 +#: main.c:781 +#, fuzzy msgid "" "You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" msgstr "" "ܥץˤϡGNU General Public License źդƤϤǤ\n" "⤷ܥץȰ GNU General Public License ꤷʤä\n" @@ -1636,11 +1664,11 @@ "\t59 Temple Place - Suite 330, Boston, MA 02111-1307, USA\n" "ؽ̤ǤΤ餻\n" -#: main.c:781 +#: main.c:816 msgid "-Ft does not set FS to tab in POSIX awk" msgstr "POSIX ͤ awk Ǥ -Ft FS 򥿥֤Ǥޤ" -#: main.c:1018 +#: main.c:1060 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -1649,35 +1677,35 @@ "%s: ץ `-v' ΰ `%s' `ѿ=' ηˤʤäƤޤ\n" "\n" -#: main.c:1038 +#: main.c:1080 #, c-format msgid "`%s' is not a legal variable name" msgstr "`%s' ѿ̾Ǥ" -#: main.c:1041 +#: main.c:1083 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "`%s' ѿ̾ǤϤޤ`%s=%s' Υեõޤ" -#: main.c:1074 +#: main.c:1122 msgid "floating point exception" msgstr "ư㳰" -#: main.c:1081 +#: main.c:1129 msgid "fatal error: internal error" msgstr "̿Ū顼: 顼" -#: main.c:1132 +#: main.c:1180 #, c-format msgid "no pre-opened fd %d" msgstr "fd %d ˳Ƥޤ" -#: main.c:1139 +#: main.c:1187 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr " fd %d Ѥ /dev/null 򳫤ޤ" -#: main.c:1162 main.c:1171 +#: main.c:1210 main.c:1219 #, c-format msgid "could not find groups: %s" msgstr "롼פĤޤ: %s" @@ -1699,23 +1727,28 @@ msgid "fatal: " msgstr "̿Ū: " -#: node.c:59 node.c:66 node.c:75 node.c:90 node.c:119 +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 msgid "can't convert string to float" msgstr "ʸ󤫤ưѴǤޤ" -#: node.c:414 +#: node.c:406 msgid "backslash at end of string" msgstr "ʸν˥Хåå夬ȤƤޤ" -#: node.c:604 +#: node.c:548 +#, fuzzy, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "黻 `**' ϸŤ awk ǻȤޤ" + +#: node.c:599 msgid "POSIX does not allow `\\x' escapes" msgstr "POSIX `\\x' פĤޤ" -#: node.c:610 +#: node.c:605 msgid "no hex digits in `\\x' escape sequence" msgstr "`\\x' ץ󥹤 16 ʿޤ" -#: node.c:644 +#: node.c:639 #, c-format msgid "escape sequence `\\%c' treated as plain `%c'" msgstr "ץ `\\%c' `%c' Ʊ˰ޤ" @@ -1725,31 +1758,31 @@ msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" msgstr "%s %s `%s': close-on-exec Ǥޤ: (fcntl: %s)" -#: profile.c:91 +#: profile.c:92 #, c-format msgid "could not open `%s' for writing: %s" msgstr "`%s' Ѥ˳ޤǤ: %s" -#: profile.c:467 +#: profile.c:450 #, c-format msgid "internal error: %s with null vname" msgstr "顼: %s vname ̵Ǥ" -#: profile.c:531 +#: profile.c:514 msgid "# treated internally as `delete'" msgstr "# Ǥ `delete' Ȥưޤ" -#: profile.c:1168 +#: profile.c:1147 #, c-format msgid "# this is a dynamically loaded extension function" msgstr "# ưŪ˥ɤ줿ĥǽǤ" -#: profile.c:1199 +#: profile.c:1178 #, c-format msgid "\t# gawk profile, created %s\n" msgstr "\t# gawk ץե롢 %s\n" -#: profile.c:1202 +#: profile.c:1181 #, c-format msgid "" "\t# BEGIN block(s)\n" @@ -1758,7 +1791,7 @@ "\t# BEGIN ֥å\n" "\n" -#: profile.c:1212 +#: profile.c:1191 #, c-format msgid "" "\t# Rule(s)\n" @@ -1767,7 +1800,7 @@ "\t# 롼\n" "\n" -#: profile.c:1218 +#: profile.c:1197 #, c-format msgid "" "\t# END block(s)\n" @@ -1776,7 +1809,7 @@ "\t# END ֥å\n" "\n" -#: profile.c:1238 +#: profile.c:1217 #, c-format msgid "" "\n" @@ -1785,79 +1818,82 @@ "\n" "\t# ؿʥե٥åȽ\n" -#: profile.c:1453 +#: profile.c:1470 #, c-format msgid "unexpected type %s in prec_level" msgstr "prec_level %s ͽ۳ΥפǤ" -#: regcomp.c:160 +#: regcomp.c:132 msgid "Success" msgstr "" -#: regcomp.c:163 +#: regcomp.c:135 msgid "No match" msgstr "̵" -#: regcomp.c:166 +#: regcomp.c:138 msgid "Invalid regular expression" msgstr "̵ɽ" -#: regcomp.c:169 +#: regcomp.c:141 msgid "Invalid collation character" msgstr "̵ʾȹʸ" -#: regcomp.c:172 +#: regcomp.c:144 msgid "Invalid character class name" msgstr "̵ʸ饹̾" -#: regcomp.c:175 +#: regcomp.c:147 msgid "Trailing backslash" msgstr "Ǹ˥Хåå夬դƤޤ" -#: regcomp.c:178 +#: regcomp.c:150 msgid "Invalid back reference" msgstr "ؤλȤ̵Ǥ" -#: regcomp.c:181 +#: regcomp.c:153 msgid "Unmatched [ or [^" msgstr "[ ޤ [^ бޤ" -#: regcomp.c:184 +#: regcomp.c:156 msgid "Unmatched ( or \\(" msgstr "( ޤ \\( бޤ" -#: regcomp.c:187 +#: regcomp.c:159 msgid "Unmatched \\{" msgstr "\\{ бޤ" -#: regcomp.c:190 +#: regcomp.c:162 msgid "Invalid content of \\{\\}" msgstr "\\{\\} Ƥ̵Ǥ" -#: regcomp.c:193 +#: regcomp.c:165 msgid "Invalid range end" msgstr "ϰϻνü̵Ǥ" -#: regcomp.c:196 +#: regcomp.c:168 msgid "Memory exhausted" msgstr "꡼­ޤ" -#: regcomp.c:199 +#: regcomp.c:171 msgid "Invalid preceding regular expression" msgstr "Ԥɽ̵Ǥ" -#: regcomp.c:202 +#: regcomp.c:174 msgid "Premature end of regular expression" msgstr "ɽüƤޤ" -#: regcomp.c:205 +#: regcomp.c:177 msgid "Regular expression too big" msgstr "ɽĹ᤮ޤ" -#: regcomp.c:208 +#: regcomp.c:180 msgid "Unmatched ) or \\)" msgstr ") ޤ \\) бޤ" -#: regcomp.c:688 +#: regcomp.c:664 msgid "No previous regular expression" msgstr "˻ѤɽϤޤ" + +#~ msgid "remote port invalid in `%s'" +#~ msgstr "`%s' Υ⡼ȥݡȤ̵Ǥ" diff -urN gawk-3.1.5/po/nl.po gawk-3.1.6/po/nl.po --- gawk-3.1.5/po/nl.po 2005-07-06 17:20:05.000000000 +0300 +++ gawk-3.1.6/po/nl.po 2007-10-20 22:49:11.000000000 +0200 @@ -1,19 +1,19 @@ -# Translation of gawk-3.1.4l to Dutch. -# Copyright (C) 2005 Free Software Foundation, Inc. -# Benno Schulenberg , 2005. +# Translation of gawk-3.1.5h to Dutch. +# Copyright (C) 2005, 2007 Free Software Foundation, Inc. # +# Benno Schulenberg , 2005, 2007. msgid "" msgstr "" -"Project-Id-Version: gawk 3.1.4l\n" +"Project-Id-Version: gawk 3.1.5h\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" -"POT-Creation-Date: 2005-07-06 17:20+0300\n" -"PO-Revision-Date: 2005-06-24 22:39+0200\n" -"Last-Translator: Benno Schulenberg \n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" +"PO-Revision-Date: 2007-10-02 12:43+0200\n" +"Last-Translator: Benno Schulenberg \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.10.1\n" +"X-Generator: KBabel 1.11.4\n" #: array.c:112 #, c-format @@ -35,347 +35,359 @@ msgid "from %s" msgstr "van %s" -#: array.c:511 +#: array.c:514 #, c-format msgid "reference to uninitialized element `%s[\"%s\"]'" msgstr "verwijzing naar ongeïnitialiseerd element '%s[\"%s\"]'" -#: array.c:517 +#: array.c:520 #, c-format msgid "subscript of array `%s' is null string" msgstr "index van array '%s' is lege string" -#: array.c:621 +#: array.c:624 #, c-format msgid "delete: index `%s' not in array `%s'" msgstr "delete: index '%s' niet in array '%s' " -#: array.c:791 +#: array.c:793 #, c-format msgid "%s: empty (null)\n" msgstr "%s: leeg (nil)\n" -#: array.c:796 +#: array.c:798 #, c-format msgid "%s: empty (zero)\n" msgstr "%s: leeg (nul)\n" -#: array.c:800 +#: array.c:802 #, c-format msgid "%s: table_size = %d, array_size = %d\n" msgstr "%s: tabelgrootte = %d, arraygrootte = %d\n" -#: array.c:829 +#: array.c:831 #, c-format msgid "%s: is parameter\n" msgstr "%s: is een parameter\n" -#: array.c:834 +#: array.c:836 #, c-format msgid "%s: array_ref to %s\n" msgstr "%s: array-verwijzing naar %s\n" -#: awkgram.y:208 +#: awkgram.y:215 #, c-format msgid "%s blocks must have an action part" msgstr "%s-blokken horen een actiedeel te hebben" -#: awkgram.y:211 +#: awkgram.y:218 msgid "each rule must have a pattern or an action part" msgstr "elke regel hoort een patroon of een actiedeel te hebben" -#: awkgram.y:267 +#: awkgram.y:254 awkgram.y:263 +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "oude 'awk' staat meerdere 'BEGIN'- en 'END'-regels niet toe" + +#: awkgram.y:282 #, c-format msgid "`%s' is a built-in function, it cannot be redefined" msgstr "'%s' is een ingebouwde functie en is niet te herdefiniëren" -#: awkgram.y:313 +#: awkgram.y:328 msgid "regexp constant `//' looks like a C++ comment, but is not" -msgstr "regexp-constante '/s/' lijkt C-commentaar, maar is het niet" +msgstr "regexp-constante '//' lijkt op C-commentaar, maar is het niet" -#: awkgram.y:316 +#: awkgram.y:331 #, c-format msgid "regexp constant `/%s/' looks like a C comment, but is not" -msgstr "regexp-constante '/%s/' lijkt C-commentaar, maar is het niet" +msgstr "regexp-constante '/%s/' lijkt op C-commentaar, maar is het niet" -#: awkgram.y:343 awkgram.y:623 +#: awkgram.y:358 awkgram.y:653 msgid "statement may have no effect" msgstr "opdracht heeft mogelijk geen effect" -#: awkgram.y:440 awkgram.y:460 +#: awkgram.y:455 awkgram.y:479 #, c-format msgid "`%s' used in %s action" msgstr "'%s' wordt gebruikt in %s-actie" -#: awkgram.y:453 awkgram.y:456 +#: awkgram.y:470 awkgram.y:474 msgid "`nextfile' is a gawk extension" msgstr "'nextfile' is een gawk-uitbreiding" -#: awkgram.y:470 +#: awkgram.y:489 msgid "`return' used outside function context" msgstr "'return' wordt gebruikt buiten functiecontext" -#: awkgram.y:512 +#: awkgram.y:531 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" msgstr "" "kale 'print' in BEGIN- of END-regel moet vermoedelijk 'print \"\"' zijn" -#: awkgram.y:525 awkgram.y:532 +#: awkgram.y:547 awkgram.y:555 msgid "`delete array' is a gawk extension" msgstr "'delete array' is een gawk-uitbreiding" -#: awkgram.y:540 awkgram.y:547 +#: awkgram.y:569 awkgram.y:577 msgid "`delete(array)' is a non-portable tawk extension" msgstr "'delete(array)' is een niet-overdraagbare tawk-uitbreiding" -#: awkgram.y:591 +#: awkgram.y:621 #, c-format msgid "duplicate case values in switch body: %s" -msgstr "dubbele case-waarde in switch-opdracht: %s" +msgstr "dubbele 'case'-waarde in 'switch'-opdracht: %s" -#: awkgram.y:601 +#: awkgram.y:631 msgid "Duplicate `default' detected in switch body" -msgstr "dubbele 'default' in switch-opdracht" +msgstr "dubbele 'default' in 'switch'-opdracht" -#: awkgram.y:690 +#: awkgram.y:720 msgid "multistage two-way pipelines don't work" -msgstr "meerfase-tweerichtings-pipelines werken niet" +msgstr "meerfase-tweerichtings-pijplijnen werken niet" -#: awkgram.y:781 +#: awkgram.y:811 msgid "regular expression on right of assignment" msgstr "reguliere expressie rechts van toewijzing" -#: awkgram.y:804 +#: awkgram.y:834 msgid "regular expression on left of `~' or `!~' operator" -msgstr "reguliere expressie links van '~' of '!~' operator" +msgstr "reguliere expressie links van operator '~' of '!~'" + +#: awkgram.y:840 awkgram.y:913 +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "oude 'awk' kent het sleutelwoord 'in' niet, behalve na 'for'" -#: awkgram.y:812 +#: awkgram.y:846 msgid "regular expression on right of comparison" msgstr "reguliere expressie rechts van vergelijking" -#: awkgram.y:879 +#: awkgram.y:903 msgid "non-redirected `getline' undefined inside END action" msgstr "onherverwezen 'getline' is ongedefinieerd binnen END-actie" -#: awkgram.y:906 +#: awkgram.y:914 +msgid "old awk does not support multidimensional arrays" +msgstr "oude 'awk' kent geen meerdimensionale arrays" + +#: awkgram.y:960 msgid "call of `length' without parentheses is not portable" msgstr "aanroep van 'length' zonder haakjes is niet overdraagbaar" -#: awkgram.y:909 +#: awkgram.y:965 msgid "call of `length' without parentheses is deprecated by POSIX" msgstr "aanroep van 'length' zonder haakjes wordt door POSIX afgeraden" -#: awkgram.y:962 +#: awkgram.y:1019 msgid "use of non-array as array" msgstr "non-array wordt gebruikt als array" -#: awkgram.y:964 +#: awkgram.y:1022 msgid "invalid subscript expression" msgstr "ongeldige index-expressie" -#: awkgram.y:1171 +#: awkgram.y:1249 msgid "unexpected newline or end of string" msgstr "onverwacht regeleinde of einde van string" -#: awkgram.y:1267 +#: awkgram.y:1366 msgid "empty program text on command line" msgstr "lege programmatekst op commandoregel" -#: awkgram.y:1320 +#: awkgram.y:1422 #, c-format msgid "can't open source file `%s' for reading (%s)" msgstr "kan bronbestand '%s' niet openen om te lezen (%s)" -#: awkgram.y:1397 +#: awkgram.y:1520 #, c-format msgid "can't read sourcefile `%s' (%s)" msgstr "kan bronbestand '%s' niet lezen (%s)" -#: awkgram.y:1405 +#: awkgram.y:1528 #, c-format msgid "source file `%s' is empty" msgstr "bronbestand '%s' is leeg" -#: awkgram.y:1596 awkgram.y:1718 awkgram.y:1736 awkgram.y:2107 awkgram.y:2194 +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 msgid "source file does not end in newline" -msgstr "bronbestand eindigt niet met een regeleinde" +msgstr "bronbestand eindigt niet met een regeleindeteken (LF)" -#: awkgram.y:1658 +#: awkgram.y:1782 msgid "unterminated regexp ends with `\\' at end of file" msgstr "onafgesloten reguliere expressie eindigt met '\\' aan bestandseinde" -#: awkgram.y:1682 +#: awkgram.y:1806 #, c-format msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" -msgstr "%s: %d: regex-optie '/.../%c' van tawk werkt niet in gawk" +msgstr "%s: %d: regexp-optie '/.../%c' van tawk werkt niet in gawk" -#: awkgram.y:1686 +#: awkgram.y:1810 #, c-format msgid "tawk regex modifier `/.../%c' doesn't work in gawk" -msgstr "regex-optie '/.../%c' van tawk werkt niet in gawk" +msgstr "regexp-optie '/.../%c' van tawk werkt niet in gawk" -#: awkgram.y:1693 +#: awkgram.y:1817 msgid "unterminated regexp" msgstr "onafgesloten reguliere expressie" -#: awkgram.y:1696 +#: awkgram.y:1820 msgid "unterminated regexp at end of file" msgstr "onafgesloten reguliere expressie aan bestandseinde" -#: awkgram.y:1762 +#: awkgram.y:1889 msgid "use of `\\ #...' line continuation is not portable" msgstr "gebruik van regelvoortzetting '\\ #...' is niet overdraagbaar" -#: awkgram.y:1774 +#: awkgram.y:1902 msgid "backslash not last character on line" msgstr "backslash is niet het laatste teken op de regel" -#: awkgram.y:1819 +#: awkgram.y:1947 msgid "POSIX does not allow operator `**='" msgstr "POSIX staat operator '**=' niet toe" -#: awkgram.y:1821 +#: awkgram.y:1949 msgid "old awk does not support operator `**='" -msgstr "oude awk ondersteunt operator '**=' niet" +msgstr "oude 'awk' kent de operator '**=' niet" -#: awkgram.y:1830 +#: awkgram.y:1958 msgid "POSIX does not allow operator `**'" msgstr "POSIX staat operator '**' niet toe" -#: awkgram.y:1832 +#: awkgram.y:1960 msgid "old awk does not support operator `**'" -msgstr "oude awk ondersteunt operator '**' niet" +msgstr "oude 'awk' kent de operator '**' niet" -#: awkgram.y:1863 +#: awkgram.y:1991 msgid "operator `^=' is not supported in old awk" -msgstr "oude awk ondersteunt operator '^=' niet" +msgstr "oude 'awk' kent de operator '^=' niet" -#: awkgram.y:1871 +#: awkgram.y:1999 msgid "operator `^' is not supported in old awk" -msgstr "oude awk ondersteunt operator '^' niet" +msgstr "oude 'awk' kent de operator '^' niet" -#: awkgram.y:1955 awkgram.y:1970 +#: awkgram.y:2083 awkgram.y:2098 msgid "unterminated string" msgstr "onafgesloten string" -#: awkgram.y:2155 +#: awkgram.y:2283 #, c-format msgid "invalid char '%c' in expression" msgstr "ongeldig teken '%c' in expressie" -#: awkgram.y:2203 +#: awkgram.y:2331 #, c-format msgid "`%s' is a gawk extension" msgstr "'%s' is een gawk-uitbreiding" -#: awkgram.y:2206 +#: awkgram.y:2334 #, c-format msgid "`%s' is a Bell Labs extension" msgstr "'%s' is een uitbreiding door Bell Labs" -#: awkgram.y:2209 +#: awkgram.y:2337 #, c-format msgid "POSIX does not allow `%s'" msgstr "POSIX staat '%s' niet toe" -#: awkgram.y:2213 +#: awkgram.y:2341 #, c-format msgid "`%s' is not supported in old awk" -msgstr "oude awk ondersteunt '%s' niet" +msgstr "oude 'awk' kent '%s' niet" -#: awkgram.y:2239 +#: awkgram.y:2367 msgid "`goto' considered harmful!\n" msgstr "'goto' wordt als schadelijk beschouwd!\n" -#: awkgram.y:2301 +#: awkgram.y:2429 #, c-format msgid "%d is invalid as number of arguments for %s" msgstr "%d is een ongeldig aantal argumenten voor %s" -#: awkgram.y:2320 awkgram.y:2323 +#: awkgram.y:2448 awkgram.y:2451 msgid "match: third argument is a gawk extension" msgstr "match: derde argument is een gawk-uitbreiding" -#: awkgram.y:2336 +#: awkgram.y:2464 #, c-format msgid "%s: string literal as last arg of substitute has no effect" msgstr "%s: een stringwaarde als laatste vervangingsargument heeft geen effect" -#: awkgram.y:2339 +#: awkgram.y:2467 #, c-format msgid "%s third parameter is not a changeable object" msgstr "%s: derde parameter is geen veranderbaar object" -#: awkgram.y:2366 awkgram.y:2369 +#: awkgram.y:2494 awkgram.y:2497 msgid "close: second argument is a gawk extension" msgstr "close: tweede argument is een gawk-uitbreiding" -#: awkgram.y:2379 +#: awkgram.y:2507 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" msgstr "dcgettext(_\"...\") is onjuist: verwijder het liggende streepje" -#: awkgram.y:2394 +#: awkgram.y:2522 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" msgstr "dcngettext(_\"...\") is onjuist: verwijder het liggende streepje" -#: awkgram.y:2465 +#: awkgram.y:2594 #, c-format msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" msgstr "functie '%s': parameter #%d, '%s', dupliceert parameter #%d" -#: awkgram.y:2498 +#: awkgram.y:2627 #, c-format msgid "function `%s': parameter `%s' shadows global variable" msgstr "functie '%s': parameter '%s' schaduwt een globale variabele" -#: awkgram.y:2610 +#: awkgram.y:2739 #, c-format msgid "could not open `%s' for writing (%s)" msgstr "kan '%s' niet openen om te schrijven (%s)" -#: awkgram.y:2611 profile.c:93 +#: awkgram.y:2740 profile.c:94 msgid "sending profile to standard error" msgstr "profiel gaat naar standaardfoutuitvoer" -#: awkgram.y:2643 +#: awkgram.y:2772 #, c-format msgid "%s: close failed (%s)" msgstr "%s: sluiten is mislukt (%s)" -#: awkgram.y:2764 +#: awkgram.y:2893 msgid "shadow_funcs() called twice!" msgstr "shadow_funcs() twee keer aangeroepen!" -#: awkgram.y:2791 +#: awkgram.y:2920 msgid "there were shadowed variables." msgstr "er waren geschaduwde variabelen." -#: awkgram.y:2864 +#: awkgram.y:2993 #, c-format msgid "function `%s': can't use function name as parameter name" msgstr "functie '%s': kan functienaam niet als parameternaam gebruiken" -#: awkgram.y:2874 +#: awkgram.y:3003 #, c-format msgid "function name `%s' previously defined" msgstr "functienaam '%s' is al eerder gedefinieerd" -#: awkgram.y:3025 awkgram.y:3031 +#: awkgram.y:3154 awkgram.y:3160 #, c-format msgid "function `%s' called but never defined" msgstr "functie '%s' aangeroepen maar nergens gedefinieerd" -#: awkgram.y:3034 +#: awkgram.y:3163 #, c-format msgid "function `%s' defined but never called" msgstr "functie '%s' gedefinieerd maar nergens aangeroepen" -#: awkgram.y:3061 +#: awkgram.y:3190 #, c-format msgid "regexp constant for parameter #%d yields boolean value" msgstr "regexp-constante als parameter #%d levert booleanwaarde op" -#: awkgram.y:3105 +#: awkgram.y:3234 #, c-format msgid "" "function `%s' called with space between name and `(',\n" @@ -384,201 +396,200 @@ "functie '%s' aangeroepen met spatie tussen naam en '(',\n" "of gebruikt als variabele of array" -#: builtin.c:145 +#: builtin.c:119 #, c-format msgid "%s to \"%s\" failed (%s)" msgstr "%s naar \"%s\" is mislukt (%s)" -#: builtin.c:146 +#: builtin.c:120 msgid "standard output" msgstr "standaarduitvoer" -#: builtin.c:147 +#: builtin.c:121 msgid "reason unknown" msgstr "reden onbekend" -#: builtin.c:160 +#: builtin.c:134 msgid "exp: received non-numeric argument" msgstr "exp: argument is geen getal" -#: builtin.c:166 +#: builtin.c:140 #, c-format msgid "exp: argument %g is out of range" msgstr "exp: argument %g ligt buiten toegestane bereik" -#: builtin.c:224 +#: builtin.c:198 #, c-format msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" msgstr "" -"fflush: kan pipe niet leegmaken: '%s' is geopend om te lezen, niet om te " +"fflush: kan pijp niet leegmaken: '%s' is geopend om te lezen, niet om te " "schrijven" -#: builtin.c:227 +#: builtin.c:201 #, c-format msgid "fflush: cannot flush: file `%s' opened for reading, not writing" msgstr "" "fflush: kan bestand niet leegmaken: '%s' is geopend om te lezen, niet om te " "schrijven" -#: builtin.c:239 +#: builtin.c:213 #, c-format msgid "fflush: `%s' is not an open file, pipe or co-process" -msgstr "fflush: '%s' is geen geopend bestand, pipe, of co-proces" +msgstr "fflush: '%s' is geen open bestand, pijp, of co-proces" -#: builtin.c:332 +#: builtin.c:306 msgid "index: received non-string first argument" msgstr "index: eerste argument is geen string" -#: builtin.c:334 +#: builtin.c:308 msgid "index: received non-string second argument" msgstr "index: tweede argument is geen string" -#: builtin.c:449 +#: builtin.c:423 msgid "int: received non-numeric argument" msgstr "int: argument is geen getal" -#: builtin.c:472 -#, fuzzy +#: builtin.c:448 msgid "`length(array)' is a gawk extension" -msgstr "'delete array' is een gawk-uitbreiding" +msgstr "'length(array)' is een gawk-uitbreiding" -#: builtin.c:481 +#: builtin.c:458 msgid "length: received non-string argument" msgstr "length: argument is geen string" -#: builtin.c:506 +#: builtin.c:483 msgid "log: received non-numeric argument" msgstr "log: argument is geen getal" -#: builtin.c:509 +#: builtin.c:486 #, c-format msgid "log: received negative argument %g" msgstr "log: argument %g is negatief" -#: builtin.c:673 builtin.c:676 +#: builtin.c:693 builtin.c:696 msgid "must use `count$' on all formats or none" msgstr "'count$' hoort in alle opmaken gebruikt te worden, of in geen" -#: builtin.c:778 +#: builtin.c:799 msgid "`$' is not permitted in awk formats" msgstr "'$' is niet toegestaan in awk-opmaak" -#: builtin.c:784 +#: builtin.c:805 msgid "arg count with `$' must be > 0" msgstr "het aantal argumenten met '$' moet > 0 zijn" -#: builtin.c:786 +#: builtin.c:807 #, c-format msgid "arg count %ld greater than total number of supplied arguments" msgstr "argumentental %ld is groter dan het gegeven aantal argumenten" -#: builtin.c:788 +#: builtin.c:809 msgid "`$' not permitted after period in format" msgstr "'$' is niet toegestaan na een punt in de opmaak" -#: builtin.c:801 +#: builtin.c:822 msgid "no `$' supplied for positional field width or precision" msgstr "geen '$' opgegeven bij positionele veldbreedte of -precisie" -#: builtin.c:867 +#: builtin.c:888 msgid "`l' is meaningless in awk formats; ignored" msgstr "'l' is betekenisloos in awk-opmaak; genegeerd" -#: builtin.c:871 +#: builtin.c:892 msgid "`l' is not permitted in POSIX awk formats" msgstr "'l' is niet toegestaan in POSIX awk-opmaak" -#: builtin.c:882 +#: builtin.c:903 msgid "`L' is meaningless in awk formats; ignored" msgstr "'L' is betekenisloos in awk-opmaak; genegeerd" -#: builtin.c:886 +#: builtin.c:907 msgid "`L' is not permitted in POSIX awk formats" msgstr "'L' is niet toegestaan in POSIX awk-opmaak" -#: builtin.c:897 +#: builtin.c:918 msgid "`h' is meaningless in awk formats; ignored" msgstr "'h' is betekenisloos in awk-opmaak; genegeerd" -#: builtin.c:901 +#: builtin.c:922 msgid "`h' is not permitted in POSIX awk formats" msgstr "'h' is niet toegestaan in POSIX awk-opmaak" -#: builtin.c:1132 +#: builtin.c:1182 #, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" msgstr "[s]printf: waarde %g ligt buiten toegestaan bereik voor opmaak '%%%c'" -#: builtin.c:1198 +#: builtin.c:1266 msgid "not enough arguments to satisfy format string" msgstr "niet genoeg argumenten voor opmaakstring" -#: builtin.c:1200 +#: builtin.c:1268 msgid "^ ran out for this one" msgstr "niet genoeg ^ voor deze" -#: builtin.c:1205 +#: builtin.c:1274 msgid "[s]printf: format specifier does not have control letter" msgstr "[s]printf: opmaakaanduiding mist een stuurletter" -#: builtin.c:1208 +#: builtin.c:1277 msgid "too many arguments supplied for format string" msgstr "te veel argumenten voor opmaakstring" -#: builtin.c:1274 builtin.c:1277 +#: builtin.c:1352 builtin.c:1355 msgid "printf: no arguments" msgstr "printf: geen argumenten" -#: builtin.c:1301 +#: builtin.c:1379 msgid "sqrt: received non-numeric argument" msgstr "sqrt: argument is geen getal" -#: builtin.c:1305 +#: builtin.c:1383 #, c-format msgid "sqrt: called with negative argument %g" msgstr "sqrt: argument %g is negatief" -#: builtin.c:1329 +#: builtin.c:1407 #, c-format msgid "substr: start index %g is invalid, using 1" -msgstr "substr: startindex %g is ongeldig, 1 wordt gebruikt" +msgstr "substr: startindex %g is ongeldig; 1 wordt gebruikt" -#: builtin.c:1334 +#: builtin.c:1412 #, c-format msgid "substr: non-integer start index %g will be truncated" -msgstr "substr: startindex %g is geen integer, wordt afgekapt" +msgstr "substr: startindex %g is geen integer; wordt afgekapt" -#: builtin.c:1353 +#: builtin.c:1431 #, c-format msgid "substr: length %g is not >= 1" msgstr "substr: lengte %g is niet >= 1" -#: builtin.c:1355 +#: builtin.c:1433 #, c-format msgid "substr: length %g is not >= 0" msgstr "substr: lengte %g is niet >= 0" -#: builtin.c:1362 +#: builtin.c:1440 #, c-format msgid "substr: non-integer length %g will be truncated" -msgstr "substr: lengte %g is geen integer, wordt afgekapt" +msgstr "substr: lengte %g is geen integer; wordt afgekapt" -#: builtin.c:1367 +#: builtin.c:1445 #, c-format msgid "substr: length %g too big for string indexing, truncating to %g" msgstr "" -"substr: lengte %g is te groot voor stringindexering, wordt verkort tot %g" +"substr: lengte %g is te groot voor stringindexering; wordt verkort tot %g" -#: builtin.c:1379 +#: builtin.c:1457 msgid "substr: source string is zero length" msgstr "substr: bronstring heeft lengte nul" -#: builtin.c:1395 +#: builtin.c:1473 #, c-format msgid "substr: start index %g is past end of string" msgstr "substr: startindex %g ligt voorbij het einde van de string" -#: builtin.c:1403 +#: builtin.c:1481 #, c-format msgid "" "substr: length %g at start index %g exceeds length of first argument (%lu)" @@ -586,182 +597,182 @@ "substr: lengte %g bij startindex %g is groter dan de lengte van het eerste " "argument (%lu)" -#: builtin.c:1478 +#: builtin.c:1558 msgid "strftime: received non-string first argument" msgstr "strftime: eerste argument is geen string" -#: builtin.c:1484 +#: builtin.c:1564 msgid "strftime: received empty format string" msgstr "strftime: opmaakstring is leeg" -#: builtin.c:1493 +#: builtin.c:1573 msgid "strftime: received non-numeric second argument" msgstr "strftime: tweede argument is geen getal" -#: builtin.c:1556 +#: builtin.c:1650 msgid "mktime: received non-string argument" msgstr "mktime: argument is geen string" -#: builtin.c:1601 +#: builtin.c:1695 msgid "system: received non-string argument" msgstr "system: argument is geen string" -#: builtin.c:1722 eval.c:2039 +#: builtin.c:1816 eval.c:2041 #, c-format msgid "reference to uninitialized field `$%d'" msgstr "verwijzing naar ongeïnitialiseerd veld '$%d'" -#: builtin.c:1827 +#: builtin.c:1921 msgid "tolower: received non-string argument" msgstr "tolower: argument is geen string" -#: builtin.c:1857 +#: builtin.c:1951 msgid "toupper: received non-string argument" msgstr "toupper: argument is geen string" -#: builtin.c:1890 +#: builtin.c:1984 msgid "atan2: received non-numeric first argument" msgstr "atan2: eerste argument is geen getal" -#: builtin.c:1892 +#: builtin.c:1986 msgid "atan2: received non-numeric second argument" msgstr "atan2: tweede argument is geen getal" -#: builtin.c:1911 +#: builtin.c:2005 msgid "sin: received non-numeric argument" msgstr "sin: argument is geen getal" -#: builtin.c:1927 +#: builtin.c:2021 msgid "cos: received non-numeric argument" msgstr "cos: argument is geen getal" -#: builtin.c:1977 +#: builtin.c:2071 msgid "srand: received non-numeric argument" msgstr "srand: argument is geen getal" -#: builtin.c:2012 +#: builtin.c:2106 msgid "match: third argument is not an array" msgstr "match: derde argument is geen array" -#: builtin.c:2555 +#: builtin.c:2650 msgid "gensub: third argument of 0 treated as 1" -msgstr "gensub: derde argument is 0, wordt beschouwd als 1" +msgstr "gensub: derde argument is 0; wordt beschouwd als 1" -#: builtin.c:2715 +#: builtin.c:2766 msgid "lshift: received non-numeric first argument" msgstr "lshift: eerste argument is geen getal" -#: builtin.c:2717 +#: builtin.c:2768 msgid "lshift: received non-numeric second argument" msgstr "lshift: tweede argument is geen getal" -#: builtin.c:2723 +#: builtin.c:2774 #, c-format msgid "lshift(%lf, %lf): negative values will give strange results" msgstr "lshift(%lf, %lf): negatieve waarden geven rare resultaten" -#: builtin.c:2725 +#: builtin.c:2776 #, c-format msgid "lshift(%lf, %lf): fractional values will be truncated" msgstr "lshift(%lf, %lf): cijfers na de komma worden afgekapt" -#: builtin.c:2727 +#: builtin.c:2778 #, c-format msgid "lshift(%lf, %lf): too large shift value will give strange results" msgstr "lshift(%lf, %lf): te grote opschuifwaarden geven rare resultaten" -#: builtin.c:2753 +#: builtin.c:2804 msgid "rshift: received non-numeric first argument" msgstr "rshift: eerste argument is geen getal" -#: builtin.c:2755 +#: builtin.c:2806 msgid "rshift: received non-numeric second argument" msgstr "rshift: tweede argument is geen getal" -#: builtin.c:2761 +#: builtin.c:2812 #, c-format msgid "rshift(%lf, %lf): negative values will give strange results" msgstr "rshift(%lf, %lf): negatieve waarden geven rare resultaten" -#: builtin.c:2763 +#: builtin.c:2814 #, c-format msgid "rshift(%lf, %lf): fractional values will be truncated" msgstr "rshift(%lf, %lf): cijfers na de komma worden afgekapt" -#: builtin.c:2765 +#: builtin.c:2816 #, c-format msgid "rshift(%lf, %lf): too large shift value will give strange results" msgstr "rshift(%lf, %lf): te grote opschuifwaarden geven rare resultaten" -#: builtin.c:2791 +#: builtin.c:2842 msgid "and: received non-numeric first argument" msgstr "and: eerste argument is geen getal" -#: builtin.c:2793 +#: builtin.c:2844 msgid "and: received non-numeric second argument" msgstr "and: tweede argument is geen getal" -#: builtin.c:2799 +#: builtin.c:2850 #, c-format msgid "and(%lf, %lf): negative values will give strange results" msgstr "and(%lf, %lf): negatieve waarden geven rare resultaten" -#: builtin.c:2801 +#: builtin.c:2852 #, c-format msgid "and(%lf, %lf): fractional values will be truncated" msgstr "and(%lf, %lf): cijfers na de komma worden afgekapt" -#: builtin.c:2827 +#: builtin.c:2878 msgid "or: received non-numeric first argument" msgstr "or: eerste argument is geen getal" -#: builtin.c:2829 +#: builtin.c:2880 msgid "or: received non-numeric second argument" msgstr "or: tweede argument is geen getal" -#: builtin.c:2835 +#: builtin.c:2886 #, c-format msgid "or(%lf, %lf): negative values will give strange results" msgstr "or(%lf, %lf): negatieve waarden geven rare resultaten" -#: builtin.c:2837 +#: builtin.c:2888 #, c-format msgid "or(%lf, %lf): fractional values will be truncated" msgstr "or(%lf, %lf): cijfers na de komma worden afgekapt" -#: builtin.c:2863 +#: builtin.c:2914 msgid "xor: received non-numeric first argument" msgstr "xor: eerste argument is geen getal" -#: builtin.c:2865 +#: builtin.c:2916 msgid "xor: received non-numeric second argument" msgstr "xor: tweede argument is geen getal" -#: builtin.c:2871 +#: builtin.c:2922 #, c-format msgid "xor(%lf, %lf): negative values will give strange results" msgstr "xor(%lf, %lf): negatieve waarden geven rare resultaten" -#: builtin.c:2873 +#: builtin.c:2924 #, c-format msgid "xor(%lf, %lf): fractional values will be truncated" msgstr "xor(%lf, %lf): cijfers na de komma worden afgekapt" -#: builtin.c:2897 +#: builtin.c:2948 msgid "compl: received non-numeric argument" msgstr "compl: argument is geen getal" -#: builtin.c:2903 +#: builtin.c:2954 #, c-format msgid "compl(%lf): negative value will give strange results" msgstr "compl(%lf): negatieve waarden geven rare resultaten" -#: builtin.c:2905 +#: builtin.c:2956 #, c-format msgid "compl(%lf): fractional value will be truncated" msgstr "compl(%lf): cijfers na de komma worden afgekapt" -#: builtin.c:3078 +#: builtin.c:3129 #, c-format msgid "dcgettext: `%s' is not a valid locale category" msgstr "dcgettext: '%s' is geen geldige lokale categorie" @@ -773,9 +784,9 @@ #: eval.c:353 msgid "buffer overflow in genflags2str" -msgstr "bufferoverloop in genflags2str" +msgstr "bufferoverloop in genflags2str()" -#: eval.c:385 eval.c:391 profile.c:838 +#: eval.c:385 eval.c:391 profile.c:817 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "array '%s' wordt gebruikt in een scalaire context" @@ -823,7 +834,7 @@ msgid "statement has no effect" msgstr "opdracht heeft geen effect" -#: eval.c:952 eval.c:1893 +#: eval.c:952 eval.c:1895 #, c-format msgid "can't use function name `%s' as variable or array" msgstr "kan functienaam '%s' niet als variabele of array gebruiken" @@ -833,7 +844,7 @@ msgid "reference to uninitialized argument `%s'" msgstr "verwijzing naar ongeïnitialiseerd argument '%s'" -#: eval.c:974 eval.c:1902 +#: eval.c:974 eval.c:1904 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "verwijzing naar ongeïnitialiseerde variabele '%s'" @@ -846,44 +857,44 @@ "concatenation: neveneffecten in de ene expressie hebben de lengte van een " "andere veranderd!" -#: eval.c:1200 +#: eval.c:1202 msgid "assignment used in conditional context" msgstr "toewijzing wordt gebruikt in een conditionele context" -#: eval.c:1278 +#: eval.c:1280 msgid "division by zero attempted" msgstr "deling door nul" -#: eval.c:1293 +#: eval.c:1295 #, c-format msgid "division by zero attempted in `%%'" msgstr "deling door nul in '%%'" -#: eval.c:1308 profile.c:714 +#: eval.c:1310 profile.c:693 #, c-format msgid "illegal type (%s) in tree_eval" -msgstr "ongeldig type (%s) in tree_eval" +msgstr "ongeldig type (%s) in tree_eval()" -#: eval.c:1471 +#: eval.c:1473 msgid "division by zero attempted in `/='" msgstr "deling door nul in '/='" -#: eval.c:1493 +#: eval.c:1495 #, c-format msgid "division by zero attempted in `%%='" msgstr "deling door nul in '%%='" -#: eval.c:1758 +#: eval.c:1760 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "functie '%s' aangeroepen met meer argumenten dan gedeclareerd" -#: eval.c:1802 +#: eval.c:1804 #, c-format msgid "function `%s' not defined" msgstr "functie '%s' is niet gedefinieerd" -#: eval.c:1865 +#: eval.c:1867 #, c-format msgid "" "\n" @@ -894,665 +905,680 @@ "\t# Functieaanroepen-stack:\n" "\n" -#: eval.c:1868 +#: eval.c:1870 #, c-format msgid "\t# -- main --\n" msgstr "\t# -- hoofd --\n" -#: eval.c:2023 +#: eval.c:2025 msgid "attempt to field reference from non-numeric value" msgstr "veldverwijzingspoging via een waarde die geen getal is" -#: eval.c:2025 +#: eval.c:2027 msgid "attempt to reference from null string" msgstr "verwijzingspoging via een lege string" -#: eval.c:2031 +#: eval.c:2033 #, c-format msgid "attempt to access field %d" msgstr "toegangspoging tot veld %d" -#: eval.c:2052 eval.c:2059 profile.c:935 +#: eval.c:2054 eval.c:2061 profile.c:914 msgid "assignment is not allowed to result of builtin function" msgstr "" "toewijzing aan het resultaat van een ingebouwde functie is niet toegestaan" -#: eval.c:2123 +#: eval.c:2125 msgid "`IGNORECASE' is a gawk extension" msgstr "'IGNORECASE' is een gawk-uitbreiding" -#: eval.c:2153 +#: eval.c:2155 msgid "`BINMODE' is a gawk extension" msgstr "'BINMODE' is een gawk-uitbreiding" -#: eval.c:2275 +#: eval.c:2277 #, c-format msgid "bad `%sFMT' specification `%s'" msgstr "onjuiste opgave van '%sFMT': '%s'" -#: eval.c:2353 +#: eval.c:2355 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "'--lint' wordt uitgeschakeld wegens toewijzing aan 'LINT'" -#: ext.c:60 ext.c:64 +#: ext.c:62 ext.c:67 msgid "`extension' is a gawk extension" msgstr "'extension' is een gawk-uitbreiding" -#: ext.c:74 +#: ext.c:77 #, c-format msgid "extension: cannot open `%s' (%s)\n" msgstr "extension: kan '%s' niet openen (%s)\n" -#: ext.c:82 +#: ext.c:85 #, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "extension: bibliotheek '%s': kan functie '%s' niet aanroepen (%s)\n" -#: ext.c:102 +#: ext.c:105 msgid "extension: missing function name" msgstr "extension: ontbrekende functienaam" -#: ext.c:107 +#: ext.c:110 #, c-format msgid "extension: illegal character `%c' in function name `%s'" msgstr "extension: ongeldig teken '%c' in functienaam '%s'" -#: ext.c:113 +#: ext.c:116 #, c-format msgid "extension: can't redefine function `%s'" msgstr "extension: kan functie '%s' niet herdefiniëren" -#: ext.c:117 +#: ext.c:120 #, c-format msgid "extension: function `%s' already defined" msgstr "extension: functie '%s' is al gedefinieerd" -#: ext.c:122 +#: ext.c:125 #, c-format msgid "extension: can't use gawk built-in `%s' as function name" msgstr "extension: kan in gawk ingebouwde '%s' niet als functienaam gebruiken" -#: ext.c:124 +#: ext.c:127 #, c-format msgid "extension: function name `%s' previously defined" msgstr "extension: functienaam '%s' is al eerder gedefinieerd" -#: ext.c:201 +#: ext.c:204 #, c-format msgid "function `%s' defined to take no more than %d argument(s)" msgstr "" "functie '%s' is gedefinieerd om niet meer dan %d argument(en) te accepteren" -#: ext.c:204 +#: ext.c:207 #, c-format msgid "function `%s': missing argument #%d" msgstr "functie '%s': ontbrekend argument #%d" -#: ext.c:214 +#: ext.c:217 #, c-format msgid "function `%s': argument #%d: attempt to use scalar as an array" msgstr "functie '%s': argument #%d: een scalair wordt gebruikt als array" -#: ext.c:218 +#: ext.c:221 #, c-format msgid "function `%s': argument #%d: attempt to use array as a scalar" msgstr "functie '%s': argument #%d: een array wordt gebruikt als scalair" -#: ext.c:243 +#: ext.c:246 msgid "Operation Not Supported" msgstr "Actie wordt niet ondersteund" -#: field.c:326 +#: field.c:330 msgid "NF set to negative value" msgstr "NF is op een negatieve waarde gezet" -#: field.c:819 +#: field.c:823 msgid "split: second argument is not an array" msgstr "split: tweede argument is geen array" -#: field.c:853 +#: field.c:857 msgid "split: null string for third arg is a gawk extension" msgstr "split: lege string als derde argument is een gawk-uitbreiding" -#: field.c:905 +#: field.c:909 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "'FIELDWIDTHS' is een gawk-uitbreiding" -#: field.c:935 field.c:946 +#: field.c:939 field.c:953 #, c-format msgid "invalid FIELDWIDTHS value, near `%s'" msgstr "ongeldige waarde voor FIELDWIDTHS, nabij '%s'" -#: field.c:1027 +#: field.c:1036 msgid "null string for `FS' is a gawk extension" msgstr "een lege string als 'FS' is een gawk-uitbreiding" -#: getopt.c:571 getopt.c:590 +#: field.c:1040 +msgid "old awk does not support regexps as value of `FS'" +msgstr "oude 'awk' staat geen reguliere expressies toe als waarde van 'FS'" + +#: getopt.c:571 getopt.c:587 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: optie '%s' is niet eenduidig\n" -#: getopt.c:623 getopt.c:627 +#: getopt.c:620 getopt.c:624 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: optie '--%s' staat geen argument toe\n" -#: getopt.c:636 getopt.c:641 +#: getopt.c:633 getopt.c:638 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: optie '%c%s' staat geen argument toe\n" -#: getopt.c:687 getopt.c:709 getopt.c:1040 getopt.c:1062 +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: optie '%s' vereist een argument\n" -#: getopt.c:747 getopt.c:750 +#: getopt.c:738 getopt.c:741 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: onbekende optie '--%s'\n" -#: getopt.c:758 getopt.c:761 +#: getopt.c:749 getopt.c:752 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: onbekende optie '%c%s'\n" -#: getopt.c:816 getopt.c:819 +#: getopt.c:804 getopt.c:807 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: ongeldige optie -- %c\n" -#: getopt.c:825 getopt.c:828 +#: getopt.c:813 getopt.c:816 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: ongeldige optie -- %c\n" -#: getopt.c:883 getopt.c:902 getopt.c:1115 getopt.c:1136 main.c:448 +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: optie vereist een argument -- %c\n" -#: getopt.c:955 getopt.c:974 +#: getopt.c:937 getopt.c:953 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: optie '-W %s' is niet eenduidig\n" -#: getopt.c:998 getopt.c:1019 +#: getopt.c:977 getopt.c:995 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: optie '-W %s' staat geen argument toe\n" -#: io.c:307 +#: io.c:345 #, c-format msgid "cannot open file `%s' for reading (%s)" msgstr "kan bestand '%s' niet openen om te lezen (%s)" -#: io.c:398 +#: io.c:436 #, c-format msgid "close of fd %d (`%s') failed (%s)" -msgstr "sluiten van fd %d ('%s') is mislukt (%s)" +msgstr "sluiten van bestandsdescriptor %d ('%s') is mislukt (%s)" -#: io.c:536 +#: io.c:575 #, c-format msgid "invalid tree type %s in redirect()" msgstr "ongeldig boomtype %s in redirect()" -#: io.c:542 +#: io.c:581 #, c-format msgid "expression in `%s' redirection only has numeric value" msgstr "expressie in omleiding '%s' heeft alleen een getal als waarde" -#: io.c:548 +#: io.c:587 #, c-format msgid "expression for `%s' redirection has null string value" msgstr "expressie voor omleiding '%s' heeft een lege string als waarde" -#: io.c:553 +#: io.c:592 #, c-format msgid "filename `%s' for `%s' redirection may be result of logical expression" msgstr "" "bestandsnaam '%s' voor omleiding '%s' kan het resultaat zijn van een " "logische expressie" -#: io.c:591 +#: io.c:630 #, c-format msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" msgstr "onnodige mix van '>' en '>>' voor bestand '%.*s'" -#: io.c:643 +#: io.c:682 #, c-format msgid "can't open pipe `%s' for output (%s)" -msgstr "kan pipe '%s' niet openen voor uitvoer (%s)" +msgstr "kan pijp '%s' niet openen voor uitvoer (%s)" -#: io.c:652 +#: io.c:691 #, c-format msgid "can't open pipe `%s' for input (%s)" -msgstr "kan pipe '%s' niet openen voor invoer (%s)" +msgstr "kan pijp '%s' niet openen voor invoer (%s)" + +#: io.c:698 io.c:1448 +#, c-format +msgid "file `%s' is a directory" +msgstr "'%s' is een map" -#: io.c:665 +#: io.c:706 #, c-format msgid "can't open two way socket `%s' for input/output (%s)" -msgstr "kan tweerichtings-socket '%s' niet openen voor invoer/uitvoer (%s)" +msgstr "kan tweerichtings-socket '%s' niet openen voor in- en uitvoer (%s)" -#: io.c:669 +#: io.c:710 #, c-format msgid "can't open two way pipe `%s' for input/output (%s)" -msgstr "kan tweerichtings-pipe '%s' niet openen voor invoer/uitvoer (%s)" +msgstr "kan tweerichtings-pijp '%s' niet openen voor in- en uitvoer (%s)" -#: io.c:745 +#: io.c:786 #, c-format msgid "can't redirect from `%s' (%s)" msgstr "kan niet omleiden van '%s' (%s)" -#: io.c:748 +#: io.c:789 #, c-format msgid "can't redirect to `%s' (%s)" msgstr "kan niet omleiden naar '%s' (%s)" -#: io.c:787 +#: io.c:828 msgid "" "reached system limit for open files: starting to multiplex file descriptors" msgstr "" "systeemgrens voor aantal open bestanden is bereikt: begonnen met multiplexen" -#: io.c:803 +#: io.c:844 #, c-format msgid "close of `%s' failed (%s)." -msgstr "sluiten van '%s' is mislukt (%s)." +msgstr "sluiten van '%s' is mislukt (%s)" -#: io.c:811 +#: io.c:852 msgid "too many pipes or input files open" -msgstr "te veel pipes of invoerbestanden geopend" +msgstr "te veel pijpen of invoerbestanden geopend" -#: io.c:834 +#: io.c:875 msgid "close: second argument must be `to' or `from'" msgstr "close: tweede argument moet 'to' of 'from' zijn" -#: io.c:848 +#: io.c:889 #, c-format msgid "close: `%.*s' is not an open file, pipe or co-process" -msgstr "close: '%.*s' is geen open bestand, pipe, of co-proces" +msgstr "close: '%.*s' is geen open bestand, pijp, of co-proces" -#: io.c:852 +#: io.c:893 msgid "close of redirection that was never opened" msgstr "sluiten van een nooit-geopende omleiding" -#: io.c:948 +#: io.c:989 #, c-format msgid "close: redirection `%s' not opened with `|&', second argument ignored" msgstr "" -"close: omleiding '%s' is niet geopend met '|&'; tweede argument genegeerd" +"close: omleiding '%s' is niet geopend met '|&'; tweede argument wordt " +"genegeerd" -#: io.c:964 +#: io.c:1005 #, c-format msgid "failure status (%d) on pipe close of `%s' (%s)" -msgstr "afsluitwaarde %d bij mislukte sluiting van pipe '%s' (%s)" +msgstr "afsluitwaarde %d bij mislukte sluiting van pijp '%s' (%s)" -#: io.c:967 +#: io.c:1008 #, c-format msgid "failure status (%d) on file close of `%s' (%s)" msgstr "afsluitwaarde %d bij mislukte sluiting van bestand '%s' (%s)" -#: io.c:987 +#: io.c:1028 #, c-format msgid "no explicit close of socket `%s' provided" msgstr "geen expliciete sluiting van socket '%s' aangegeven" -#: io.c:990 +#: io.c:1031 #, c-format msgid "no explicit close of co-process `%s' provided" msgstr "geen expliciete sluiting van co-proces '%s' aangegeven" -#: io.c:993 +#: io.c:1034 #, c-format msgid "no explicit close of pipe `%s' provided" -msgstr "geen expliciete sluiting van pipe '%s' aangegeven" +msgstr "geen expliciete sluiting van pijp '%s' aangegeven" -#: io.c:996 +#: io.c:1037 #, c-format msgid "no explicit close of file `%s' provided" msgstr "geen expliciete sluiting van bestand '%s' aangegeven" -#: io.c:1025 io.c:1080 main.c:718 main.c:756 +#: io.c:1066 io.c:1121 main.c:749 main.c:791 #, c-format msgid "error writing standard output (%s)" msgstr "fout tijdens schrijven van standaarduitvoer (%s)" -#: io.c:1029 io.c:1085 +#: io.c:1070 io.c:1126 #, c-format msgid "error writing standard error (%s)" msgstr "fout tijdens schrijven van standaardfoutuitvoer (%s)" -#: io.c:1037 +#: io.c:1078 #, c-format msgid "pipe flush of `%s' failed (%s)." -msgstr "leegmaken van pipe '%s' is mislukt (%s)." +msgstr "leegmaken van pijp '%s' is mislukt (%s)" -#: io.c:1040 +#: io.c:1081 #, c-format msgid "co-process flush of pipe to `%s' failed (%s)." -msgstr "leegmaken door co-proces van pipe naar '%s' is mislukt (%s)." +msgstr "leegmaken door co-proces van pijp naar '%s' is mislukt (%s)" -#: io.c:1043 +#: io.c:1084 #, c-format msgid "file flush of `%s' failed (%s)." -msgstr "leegmaken van bestand '%s' is mislukt (%s)." +msgstr "leegmaken van bestand '%s' is mislukt (%s)" -#: io.c:1205 +#: io.c:1198 +#, c-format +msgid "local port %s invalid in `/inet'" +msgstr "lokale poort %s is ongeldig in '/inet'" + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "host- en poortinformatie (%s, %s) zijn ongeldig" + +#: io.c:1250 msgid "/inet/raw client not ready yet, sorry" -msgstr "cliënt van /inet/raw is nog niet klaar, sorry" +msgstr "cliënt van '/inet/raw' is nog niet klaar, sorry" -#: io.c:1207 io.c:1244 +#: io.c:1253 io.c:1289 msgid "only root may use `/inet/raw'." -msgstr "alleen root mag '/inet/raw' gebruiken." +msgstr "Alleen root mag '/inet/raw' gebruiken." -#: io.c:1242 +#: io.c:1287 msgid "/inet/raw server not ready yet, sorry" -msgstr "server van /inet/raw is nog niet klaar, sorry" +msgstr "server van '/inet/raw' is nog niet klaar, sorry" -#: io.c:1332 +#: io.c:1385 #, c-format msgid "no (known) protocol supplied in special filename `%s'" msgstr "geen (bekend) protocol aangegeven in speciale bestandsnaam '%s'" -#: io.c:1350 +#: io.c:1399 #, c-format msgid "special file name `%s' is incomplete" msgstr "speciale bestandsnaam '%s' is onvolledig" -#: io.c:1362 -#, c-format -msgid "local port invalid in `%s'" -msgstr "ongeldige lokale poort in '%s'" - -#: io.c:1374 +#: io.c:1414 msgid "must supply a remote hostname to `/inet'" msgstr "'/inet' heeft een gindse hostnaam nodig" -#: io.c:1389 +#: io.c:1432 msgid "must supply a remote port to `/inet'" msgstr "'/inet' heeft een gindse poort nodig" -#: io.c:1395 -#, c-format -msgid "remote port invalid in `%s'" -msgstr "ongeldige gindse poort in '%s'" - -#: io.c:1405 +#: io.c:1439 msgid "TCP/IP communications are not supported" msgstr "TCP/IP-communicatie wordt niet ondersteund" -#: io.c:1414 io.c:1595 -#, c-format -msgid "file `%s' is a directory" -msgstr "bestand '%s' is een map" - -#: io.c:1484 +#: io.c:1509 #, c-format msgid "use `PROCINFO[\"%s\"]' instead of `%s'" msgstr "gebruik 'PROCINFO[\"%s\"]' in plaats van '%s'" -#: io.c:1516 +#: io.c:1547 msgid "use `PROCINFO[...]' instead of `/dev/user'" msgstr "gebruik 'PROCINFO[...]' in plaats van '/dev/user'" -#: io.c:1581 io.c:1763 +#: io.c:1612 io.c:1798 #, c-format msgid "could not open `%s', mode `%s'" -msgstr "kan '%s' niet openen, modus '%s'" +msgstr "kan '%s' niet openen -- modus '%s'" -#: io.c:1814 +#: io.c:1849 #, c-format msgid "close of master pty failed (%s)" -msgstr "kan meester-pty van kindproces niet sluiten (%s)" +msgstr "kan meester-pty van dochterproces niet sluiten (%s)" -#: io.c:1816 io.c:1968 io.c:2119 +#: io.c:1851 io.c:2003 io.c:2154 #, c-format msgid "close of stdout in child failed (%s)" -msgstr "kan standaarduitvoer van kindproces niet sluiten (%s)" +msgstr "kan standaarduitvoer van dochterproces niet sluiten (%s)" -#: io.c:1819 +#: io.c:1854 #, c-format msgid "moving slave pty to stdout in child failed (dup: %s)" msgstr "" -"kan slaaf-pty niet overzetten naar standaarduitvoer van kindproces (dup: %s)" +"kan slaaf-pty niet overzetten naar standaarduitvoer van dochterproces (dup: %" +"s)" -#: io.c:1821 io.c:1973 +#: io.c:1856 io.c:2008 #, c-format msgid "close of stdin in child failed (%s)" -msgstr "kan standaardinvoer van kindproces niet sluiten (%s)" +msgstr "kan standaardinvoer van dochterproces niet sluiten (%s)" -#: io.c:1824 +#: io.c:1859 #, c-format msgid "moving slave pty to stdin in child failed (dup: %s)" msgstr "" -"kan slaaf-pty niet overzetten naar standaardinvoer van kindproces (dup: %s)" +"kan slaaf-pty niet overzetten naar standaardinvoer van dochterproces (dup: %" +"s)" -#: io.c:1826 io.c:1845 +#: io.c:1861 io.c:1880 #, c-format msgid "close of slave pty failed (%s)" msgstr "kan slaaf-pty niet sluiten (%s)" -#: io.c:1919 io.c:1971 io.c:2100 io.c:2122 +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 #, c-format msgid "moving pipe to stdout in child failed (dup: %s)" msgstr "" -"kan pipe niet overzetten naar standaarduitvoer van kindproces (dup: %s)" +"kan pijp niet overzetten naar standaarduitvoer van dochterproces (dup: %s)" -#: io.c:1923 io.c:1976 +#: io.c:1958 io.c:2011 #, c-format msgid "moving pipe to stdin in child failed (dup: %s)" -msgstr "kan pipe niet overzetten naar standaardinvoer van kindproces (dup: %s)" +msgstr "" +"kan pijp niet overzetten naar standaardinvoer van dochterproces (dup: %s)" -#: io.c:1940 io.c:2113 +#: io.c:1975 io.c:2148 msgid "restoring stdout in parent process failed\n" msgstr "kan standaarduitvoer van ouderproces niet herstellen\n" -#: io.c:1945 +#: io.c:1980 msgid "restoring stdin in parent process failed\n" msgstr "kan standaardinvoer van ouderproces niet herstellen\n" -#: io.c:1979 io.c:2124 io.c:2135 +#: io.c:2014 io.c:2159 io.c:2170 #, c-format msgid "close of pipe failed (%s)" -msgstr "kan pipe niet sluiten (%s)" +msgstr "kan pijp niet sluiten (%s)" -#: io.c:2024 +#: io.c:2059 msgid "`|&' not supported" msgstr "'|&' wordt niet ondersteund" -#: io.c:2090 +#: io.c:2125 #, c-format msgid "cannot open pipe `%s' (%s)" -msgstr "kan pipe '%s' niet openen (%s)" +msgstr "kan pijp '%s' niet openen (%s)" -#: io.c:2131 +#: io.c:2166 #, c-format msgid "cannot create child process for `%s' (fork: %s)" -msgstr "kan voor '%s' geen kindproces maken (fork: %s)" +msgstr "kan voor '%s' geen dochterproces starten (fork: %s)" -#: io.c:2506 +#: io.c:2548 #, c-format msgid "data file `%s' is empty" msgstr "databestand '%s' is leeg" -#: io.c:2547 io.c:2555 +#: io.c:2589 io.c:2597 msgid "could not allocate more input memory" msgstr "kan geen extra invoergeheugen meer toewijzen" -#: io.c:2919 io.c:2984 +#: io.c:2965 io.c:3038 #, c-format msgid "error reading input file `%s': %s" msgstr "fout tijdens lezen van invoerbestand '%s': %s" -#: io.c:3109 +#: io.c:3163 msgid "multicharacter value of `RS' is a gawk extension" msgstr "een 'RS' van meerdere tekens is een gawk-uitbreiding" -#: main.c:338 +#: main.c:351 msgid "`-m[fr]' option irrelevant in gawk" msgstr "optie '-m[fr]' is irrelevant in gawk" -#: main.c:340 +#: main.c:353 msgid "-m option usage: `-m[fr] nnn'" msgstr "gebruikswijze van optie -m: '-m[fr] nnn'" -#: main.c:357 +#: main.c:370 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: optie '-W %s' is onbekend; genegeerd\n" -#: main.c:394 +#: main.c:407 msgid "empty argument to `--source' ignored" msgstr "argument van '--source' is leeg; genegeerd" -#: main.c:467 +#: main.c:480 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" msgstr "omgevingsvariabele 'POSIXLY_CORRECT' is gezet: '--posix' ingeschakeld" -#: main.c:472 +#: main.c:486 msgid "`--posix' overrides `--traditional'" msgstr "'--posix' overstijgt '--traditional'" -#: main.c:483 +#: main.c:497 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" msgstr "'--posix'/'--traditional' overstijgen '--non-decimal-data'" -#: main.c:487 +#: main.c:501 #, c-format msgid "running %s setuid root may be a security problem" -msgstr "het uitvoeren van %s als setuid root kan een veiligheidsrisico zijn" +msgstr "het uitvoeren van %s als 'setuid root' kan een veiligheidsrisico zijn" -#: main.c:528 +#: main.c:542 #, c-format msgid "can't set binary mode on stdin (%s)" msgstr "kan standaardinvoer niet in binaire modus plaatsen (%s)" -#: main.c:531 +#: main.c:545 #, c-format msgid "can't set binary mode on stdout (%s)" msgstr "kan standaarduitvoer niet in binaire modus plaatsen (%s)" -#: main.c:533 +#: main.c:547 #, c-format msgid "can't set binary mode on stderr (%s)" msgstr "kan standaardfoutuitvoer niet in binaire modus plaatsen (%s)" -#: main.c:572 +#: main.c:586 msgid "no program text at all!" msgstr "helemaal geen programmatekst!" -#: main.c:665 +#: main.c:690 #, c-format msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" -msgstr "" -"Gebruik: %s [opties in POSIX- of GNU-stijl] -f programmabestand [--] " -"bestand ...\n" +msgstr "Gebruik: %s [opties] -f programmabestand [--] bestand...\n" -#: main.c:667 +#: main.c:692 #, c-format msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" msgstr "" -"Gebruik: %s [opties in POSIX- of GNU-stijl] [--] %cprogramma%c bestand ...\n" +" of: %s [opties] [--] %cprogrammatekst%c bestand...\n" "\n" -#: main.c:672 +#: main.c:697 msgid "POSIX options:\t\tGNU long options:\n" -msgstr "\tPOSIX-opties:\t\t\tlange GNU-opties:\n" +msgstr "\tPOSIX-opties:\t\t\tequivalente GNU-opties:\n" -#: main.c:673 +#: main.c:698 msgid "\t-f progfile\t\t--file=progfile\n" msgstr "\t-f programmabestand\t\t--file=programmabestand\n" -#: main.c:674 +#: main.c:699 msgid "\t-F fs\t\t\t--field-separator=fs\n" msgstr "\t-F veldscheidingsteken\t\t--field-separator=veldscheidingsteken\n" -#: main.c:675 +#: main.c:700 msgid "\t-v var=val\t\t--assign=var=val\n" msgstr "\t-v var=waarde\t\t\t--assign=var=waarde\n" -#: main.c:676 +#: main.c:701 msgid "\t-m[fr] val\n" msgstr "\t-m[fr] waarde\n" -#: main.c:677 +#: main.c:702 msgid "\t-W compat\t\t--compat\n" msgstr "\t-W compat\t\t\t--compat\n" -#: main.c:678 +#: main.c:703 msgid "\t-W copyleft\t\t--copyleft\n" msgstr "\t-W copyleft\t\t\t--copyleft\n" -#: main.c:679 +#: main.c:704 msgid "\t-W copyright\t\t--copyright\n" msgstr "\t-W copyright\t\t\t--copyright\n" -#: main.c:680 +#: main.c:705 msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" msgstr "\t-W dump-variables[=bestand]\t--dump-variables[=bestand]\n" -#: main.c:681 +#: main.c:706 msgid "\t-W exec=file\t\t--exec=file\n" msgstr "\t-W exec=bestand\t\t\t--exec=bestand\n" -#: main.c:682 +#: main.c:707 msgid "\t-W gen-po\t\t--gen-po\n" msgstr "\t-W gen-po\t\t\t--gen-po\n" -#: main.c:683 +#: main.c:708 msgid "\t-W help\t\t\t--help\n" msgstr "\t-W help\t\t\t\t--help\n" -#: main.c:684 +#: main.c:709 msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" msgstr "\t-W lint[=fatal]\t\t\t--lint[=fatal]\n" -#: main.c:685 +#: main.c:710 msgid "\t-W lint-old\t\t--lint-old\n" msgstr "\t-W lint-old\t\t\t--lint-old\n" -#: main.c:686 +#: main.c:711 msgid "\t-W non-decimal-data\t--non-decimal-data\n" msgstr "\t-W non-decimal-data\t\t--non-decimal-data\n" -#: main.c:688 +#: main.c:713 msgid "\t-W nostalgia\t\t--nostalgia\n" msgstr "\t-W nostalgia\t\t\t--nostalgia\n" -#: main.c:691 +#: main.c:716 msgid "\t-W parsedebug\t\t--parsedebug\n" msgstr "\t-W parsedebug\t\t\t--parsedebug\n" -#: main.c:693 +#: main.c:718 msgid "\t-W profile[=file]\t--profile[=file]\n" msgstr "\t-W profile[=bestand]\t\t--profile[=bestand]\n" -#: main.c:694 +#: main.c:719 msgid "\t-W posix\t\t--posix\n" msgstr "\t-W posix\t\t\t--posix\n" -#: main.c:695 +#: main.c:720 msgid "\t-W re-interval\t\t--re-interval\n" msgstr "\t-W re-interval\t\t\t--re-interval\n" -#: main.c:696 +#: main.c:721 msgid "\t-W source=program-text\t--source=program-text\n" msgstr "\t-W source=programmatekst\t--source=programmatekst\n" -#: main.c:697 +#: main.c:722 msgid "\t-W traditional\t\t--traditional\n" msgstr "\t-W traditional\t\t\t--traditional\n" -#: main.c:698 +#: main.c:723 msgid "\t-W usage\t\t--usage\n" msgstr "\t-W usage\t\t\t--usage\n" -#: main.c:699 +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "\t-W use-lc-numeric\t\t--use-lc-numeric\n" + +#: main.c:725 msgid "\t-W version\t\t--version\n" msgstr "\t-W version\t\t\t--version\n" -#: main.c:703 +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 msgid "" "\n" "To report bugs, see node `Bugs' in `gawk.info', which is\n" @@ -1560,22 +1586,22 @@ "\n" msgstr "" "\n" -"Voor het rapporteren van gebreken, zie de node 'Bugs' in 'gawk.info',\n" -"ofwel de sectie 'Reporting Problems and Bugs' in de gedrukte versie.\n" +"Voor het rapporteren van programmagebreken, zie 'info gawk bugs'\n" +"of de sectie 'Reporting Problems and Bugs' in de gedrukte versie.\n" "Meld fouten in de vertaling aan .\n" "\n" -#: main.c:707 +#: main.c:738 msgid "" "gawk is a pattern scanning and processing language.\n" "By default it reads standard input and writes standard output.\n" "\n" msgstr "" -"gawk is een patroonherkennings- en bewerkingsprogramma.\n" -"Bij verstek leest het standaardinvoer en schrijft naar standaarduitvoer.\n" +"'gawk' is een patroonherkennings- en bewerkingsprogramma.\n" +"Standaard leest het van standaardinvoer en schrijft naar standaarduitvoer.\n" "\n" -#: main.c:711 +#: main.c:742 msgid "" "Examples:\n" "\tgawk '{ sum += $1 }; END { print sum }' file\n" @@ -1585,25 +1611,25 @@ "\tgawk '{ som += $1 }; END { print som }' bestand\n" "\tgawk -F: '{ print $1 }' /etc/passwd\n" -#: main.c:731 +#: main.c:762 #, c-format msgid "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" +"the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" msgstr "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" -"Dit is vrije programmatuur; u mag het verspreiden en/of wijzigen\n" -"onder de voorwaarden van de GNU General Public License zoals uitgegeven\n" -"door de Free Software Foundation; naar keuze ofwel onder versie 2\n" -"of onder een nieuwere versie van die licentie.\n" +"Dit programma is vrije software; u mag het verder verspreiden en/of\n" +"wijzigen onder de voorwaarden van de GNU General Public License zoals\n" +"uitgegeven door de Free Software Foundation, naar keuze ofwel onder\n" +"versie 3 of onder een nieuwere versie van die licentie.\n" -#: main.c:739 +#: main.c:770 msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -1611,29 +1637,26 @@ "GNU General Public License for more details.\n" "\n" msgstr "" -"Dit programma wordt uitgegeven in de hoop dat het bruikbaar is,\n" +"Dit programma wordt uitgegeven in de hoop dat het nuttig is,\n" "maar ZONDER ENIGE GARANTIE; zelfs zonder de impliciete garantie\n" "van VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD DOEL.\n" -"Zie de GNU General Public License voor nadere details.\n" +"Zie de GNU General Public License voor meer details.\n" "\n" -#: main.c:745 +#: main.c:781 msgid "" "You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" msgstr "" "Bij dit programma hoort u een kopie van de GNU General Public License\n" -"ontvangen te hebben; is dat niet het geval, schrijf dan naar\n" -"Free Software Foundation, Inc., 51 Franklin Street, fifth floor\n" -"Boston, MA 02110-1301, USA.\n" +"ontvangen te hebben; is dit niet het geval, dan kunt u deze licentie\n" +"ook vinden op http://www.gnu.org/licenses/.\n" -#: main.c:781 +#: main.c:816 msgid "-Ft does not set FS to tab in POSIX awk" -msgstr "-Ft maakt van FS geen tab in POSIX awk" +msgstr "-Ft maakt van FS geen tab in POSIX-awk" -#: main.c:1018 +#: main.c:1060 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -1642,35 +1665,35 @@ "%s: argument '%s' van '-v' is niet van de vorm 'var=waarde'\n" "\n" -#: main.c:1038 +#: main.c:1080 #, c-format msgid "`%s' is not a legal variable name" msgstr "'%s' is geen geldige variabelenaam" -#: main.c:1041 +#: main.c:1083 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "'%s' is geen variabelenaam, zoekend naar bestand '%s=%s'" -#: main.c:1074 +#: main.c:1122 msgid "floating point exception" msgstr "drijvende-komma-berekeningsfout" -#: main.c:1081 +#: main.c:1129 msgid "fatal error: internal error" -msgstr "fatale fout: interne fout" +msgstr "fatale fout: **interne fout**" -#: main.c:1132 +#: main.c:1180 #, c-format msgid "no pre-opened fd %d" -msgstr "geen reeds-geopende fd %d" +msgstr "geen reeds-geopende bestandsdescriptor %d" -#: main.c:1139 +#: main.c:1187 #, c-format msgid "could not pre-open /dev/null for fd %d" -msgstr "kan /dev/null niet openen voor fd %d" +msgstr "kan /dev/null niet openen voor bestandsdescriptor %d" -#: main.c:1162 main.c:1171 +#: main.c:1210 main.c:1219 #, c-format msgid "could not find groups: %s" msgstr "kan groepen niet vinden: %s" @@ -1692,23 +1715,28 @@ msgid "fatal: " msgstr "fataal: " -#: node.c:59 node.c:66 node.c:75 node.c:90 node.c:119 +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 msgid "can't convert string to float" -msgstr "kan string niet naar drijvende-komma-getal converteren" +msgstr "kan string niet converteren naar drijvende-komma-getal" -#: node.c:414 +#: node.c:406 msgid "backslash at end of string" msgstr "backslash aan het einde van de string" -#: node.c:604 +#: node.c:548 +#, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "oude 'awk' kent de stuurcodereeks '\\%c' niet" + +#: node.c:599 msgid "POSIX does not allow `\\x' escapes" -msgstr "POSIX staat geen '\\x' stuurcodes toe" +msgstr "POSIX staat stuurcode '\\x' niet toe" -#: node.c:610 +#: node.c:605 msgid "no hex digits in `\\x' escape sequence" msgstr "geen hex cijfers in stuurcodereeks '\\x'" -#: node.c:644 +#: node.c:639 #, c-format msgid "escape sequence `\\%c' treated as plain `%c'" msgstr "stuurcodereeks '\\%c' behandeld als normale '%c'" @@ -1718,31 +1746,31 @@ msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" msgstr "%s %s '%s': kan close-on-exec niet activeren: (fcntl: %s)" -#: profile.c:91 +#: profile.c:92 #, c-format msgid "could not open `%s' for writing: %s" msgstr "kan '%s' niet openen om te schrijven: %s" -#: profile.c:467 +#: profile.c:450 #, c-format msgid "internal error: %s with null vname" -msgstr "interne fout: %s heeft een lege vname" +msgstr "**interne fout**: %s heeft een lege vname" -#: profile.c:531 +#: profile.c:514 msgid "# treated internally as `delete'" msgstr "# wordt intern behandeld als 'delete'" -#: profile.c:1168 +#: profile.c:1147 #, c-format msgid "# this is a dynamically loaded extension function" msgstr "# dit is een dynamisch geladen uitbreidingsfunctie" -#: profile.c:1199 +#: profile.c:1178 #, c-format msgid "\t# gawk profile, created %s\n" msgstr "\t# gawk-profiel, gemaakt %s\n" -#: profile.c:1202 +#: profile.c:1181 #, c-format msgid "" "\t# BEGIN block(s)\n" @@ -1751,7 +1779,7 @@ "\t# BEGIN-blok(ken)\n" "\n" -#: profile.c:1212 +#: profile.c:1191 #, c-format msgid "" "\t# Rule(s)\n" @@ -1760,7 +1788,7 @@ "\t# Regel(s)\n" "\n" -#: profile.c:1218 +#: profile.c:1197 #, c-format msgid "" "\t# END block(s)\n" @@ -1769,7 +1797,7 @@ "\t# END-blok(ken)\n" "\n" -#: profile.c:1238 +#: profile.c:1217 #, c-format msgid "" "\n" @@ -1778,79 +1806,79 @@ "\n" "\t# Functies, alfabetisch geordend\n" -#: profile.c:1453 +#: profile.c:1470 #, c-format msgid "unexpected type %s in prec_level" msgstr "onverwacht type %s in prec_level" -#: regcomp.c:160 +#: regcomp.c:132 msgid "Success" msgstr "Gelukt" -#: regcomp.c:163 +#: regcomp.c:135 msgid "No match" msgstr "Geen overeenkomsten" -#: regcomp.c:166 +#: regcomp.c:138 msgid "Invalid regular expression" msgstr "Ongeldige reguliere expressie" -#: regcomp.c:169 +#: regcomp.c:141 msgid "Invalid collation character" -msgstr "Ongeldig verbindingsteken" +msgstr "Ongeldig samengesteld teken" -#: regcomp.c:172 +#: regcomp.c:144 msgid "Invalid character class name" msgstr "Ongeldige tekenklassenaam" -#: regcomp.c:175 +#: regcomp.c:147 msgid "Trailing backslash" msgstr "Backslash aan het eind" -#: regcomp.c:178 +#: regcomp.c:150 msgid "Invalid back reference" msgstr "Ongeldige terugverwijzing" -#: regcomp.c:181 +#: regcomp.c:153 msgid "Unmatched [ or [^" msgstr "Ongepaarde [ of [^" -#: regcomp.c:184 +#: regcomp.c:156 msgid "Unmatched ( or \\(" msgstr "Ongepaarde ( of \\(" -#: regcomp.c:187 +#: regcomp.c:159 msgid "Unmatched \\{" msgstr "Ongepaarde \\{" -#: regcomp.c:190 +#: regcomp.c:162 msgid "Invalid content of \\{\\}" msgstr "Ongeldige inhoud van \\{\\}" -#: regcomp.c:193 +#: regcomp.c:165 msgid "Invalid range end" -msgstr "Ongeldig reekseinde" +msgstr "Ongeldig bereikeinde" -#: regcomp.c:196 +#: regcomp.c:168 msgid "Memory exhausted" -msgstr "Onvoldoende geheugen" +msgstr "Onvoldoende geheugen beschikbaar" -#: regcomp.c:199 +#: regcomp.c:171 msgid "Invalid preceding regular expression" msgstr "Ongeldige voorafgaande reguliere expressie" -#: regcomp.c:202 +#: regcomp.c:174 msgid "Premature end of regular expression" msgstr "Voortijdig einde van reguliere expressie" -#: regcomp.c:205 +#: regcomp.c:177 msgid "Regular expression too big" msgstr "Reguliere expressie is te groot" -#: regcomp.c:208 +#: regcomp.c:180 msgid "Unmatched ) or \\)" msgstr "Ongepaarde ) of \\)" -#: regcomp.c:688 +#: regcomp.c:664 msgid "No previous regular expression" msgstr "Geen eerdere reguliere expressie" diff -urN gawk-3.1.5/po/pl.po gawk-3.1.6/po/pl.po --- gawk-3.1.5/po/pl.po 2005-07-06 17:20:05.000000000 +0300 +++ gawk-3.1.6/po/pl.po 2007-09-30 22:33:27.000000000 +0200 @@ -1,14 +1,14 @@ # Polish translations for GNU AWK package. -# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. -# Wojciech Polak , 2003, 2004, 2005. +# Copyright (C) 2003, 2004, 2005, 2007 Free Software Foundation, Inc. +# Wojciech Polak , 2003, 2004, 2005, 2007. # additional help by Sergey Poznyakoff , 2003. # msgid "" msgstr "" -"Project-Id-Version: gawk 3.1.4l\n" +"Project-Id-Version: gawk 3.1.5f\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" -"POT-Creation-Date: 2005-07-06 17:20+0300\n" -"PO-Revision-Date: 2005-06-26 23:55+0200\n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" +"PO-Revision-Date: 2007-08-17 20:05+0200\n" "Last-Translator: Wojciech Polak \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" @@ -37,357 +37,370 @@ msgid "from %s" msgstr "od %s" -#: array.c:511 +#: array.c:514 #, c-format msgid "reference to uninitialized element `%s[\"%s\"]'" msgstr "odwoanie do niezainicjowanego elementu `%s[\"%s\"]'" -#: array.c:517 +#: array.c:520 #, c-format msgid "subscript of array `%s' is null string" msgstr "indeks tablicy `%s' jest zerowym acuchem" -#: array.c:621 +#: array.c:624 #, c-format msgid "delete: index `%s' not in array `%s'" msgstr "delete: indeks `%s' nie jest w tablicy `%s'" -#: array.c:791 +#: array.c:793 #, c-format msgid "%s: empty (null)\n" msgstr "%s: pusty (null)\n" -#: array.c:796 +#: array.c:798 #, c-format msgid "%s: empty (zero)\n" msgstr "%s: pusty (zero)\n" -#: array.c:800 +#: array.c:802 #, c-format msgid "%s: table_size = %d, array_size = %d\n" msgstr "%s: table_size = %d, array_size = %d\n" -#: array.c:829 +#: array.c:831 #, c-format msgid "%s: is parameter\n" msgstr "%s: jest parametrem\n" -#: array.c:834 +#: array.c:836 #, c-format msgid "%s: array_ref to %s\n" msgstr "%s: array_ref do %s\n" -#: awkgram.y:208 +#: awkgram.y:215 #, c-format msgid "%s blocks must have an action part" msgstr "%s blokw musi posiada cz dotyczc akcji" -#: awkgram.y:211 +#: awkgram.y:218 msgid "each rule must have a pattern or an action part" msgstr "kada regua musi posiada wzorzec lub cz dotyczc akcji" -#: awkgram.y:267 +#: awkgram.y:254 awkgram.y:263 +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "stary awk nie wspiera wielokrotnych regu `BEGIN' lub `END'" + +#: awkgram.y:282 #, c-format msgid "`%s' is a built-in function, it cannot be redefined" msgstr "" "`%s' jest funkcj wbudowan, wic nie moe zosta ponownie zdefiniowana" -#: awkgram.y:313 +#: awkgram.y:328 msgid "regexp constant `//' looks like a C++ comment, but is not" msgstr "" "stae wyraenie regularne `//' wyglda jak komentarz C++, ale nim nie jest" -#: awkgram.y:316 +#: awkgram.y:331 #, c-format msgid "regexp constant `/%s/' looks like a C comment, but is not" msgstr "" "stae wyraenie regularne `/%s/' wyglda jak komentarz C, ale nim nie jest" -#: awkgram.y:343 awkgram.y:623 +#: awkgram.y:358 awkgram.y:653 msgid "statement may have no effect" msgstr "instrukcja moe nie mie adnego efektu" -#: awkgram.y:440 awkgram.y:460 +#: awkgram.y:455 awkgram.y:479 #, c-format msgid "`%s' used in %s action" msgstr "`%s' uyty w akcji %s" -#: awkgram.y:453 awkgram.y:456 +#: awkgram.y:470 awkgram.y:474 msgid "`nextfile' is a gawk extension" msgstr "`nextfile' jest rozszerzeniem gawk" -#: awkgram.y:470 +#: awkgram.y:489 msgid "`return' used outside function context" msgstr "`return' uyty poza kontekstem funkcji" -#: awkgram.y:512 +#: awkgram.y:531 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" msgstr "" "zwyky `print' w reguach BEGIN lub END powinien prawdopodobnie by jako " "`print \"\"'" -#: awkgram.y:525 awkgram.y:532 +#: awkgram.y:547 awkgram.y:555 msgid "`delete array' is a gawk extension" msgstr "`delete tablica' jest rozszerzeniem gawk" -#: awkgram.y:540 awkgram.y:547 +#: awkgram.y:569 awkgram.y:577 msgid "`delete(array)' is a non-portable tawk extension" msgstr "`delete(tablica)' jest nieprzenonym rozszerzeniem tawk" -#: awkgram.y:591 +#: awkgram.y:621 #, c-format msgid "duplicate case values in switch body: %s" msgstr "powielone wartoci case w ciele switch: %s" -#: awkgram.y:601 +#: awkgram.y:631 msgid "Duplicate `default' detected in switch body" msgstr "wykryto powielony `default' w ciele switch" -#: awkgram.y:690 +#: awkgram.y:720 msgid "multistage two-way pipelines don't work" msgstr "wieloetapowe dwukierunkowe linie potokowe nie dziaaj" -#: awkgram.y:781 +#: awkgram.y:811 msgid "regular expression on right of assignment" msgstr "wyraanie regularne po prawej stronie przypisania" -#: awkgram.y:804 +#: awkgram.y:834 msgid "regular expression on left of `~' or `!~' operator" msgstr "wyraenie regularne po lewej stronie operatora `~' lub `!~'" -#: awkgram.y:812 +#: awkgram.y:840 awkgram.y:913 +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "" +"stary awk nie wspiera sowa kluczowego `in', z wyjtkiem po sowie `for'" + +#: awkgram.y:846 msgid "regular expression on right of comparison" msgstr "wyraenie regularne po prawej stronie porwnania" -#: awkgram.y:879 +#: awkgram.y:903 msgid "non-redirected `getline' undefined inside END action" msgstr "" "komenda `getline' bez przekierowania nie jest zdefiniowana wewntrz akcji END" -#: awkgram.y:906 +#: awkgram.y:914 +msgid "old awk does not support multidimensional arrays" +msgstr "stary awk nie wspiera wielowymiarowych tablic" + +#: awkgram.y:960 msgid "call of `length' without parentheses is not portable" msgstr "wywoanie `length' bez nawiasw jest nieprzenone" -#: awkgram.y:909 +#: awkgram.y:965 msgid "call of `length' without parentheses is deprecated by POSIX" msgstr "wywoanie `length' bez podania nawiasw jest niezalecane przez POSIX" -#: awkgram.y:962 +#: awkgram.y:1019 msgid "use of non-array as array" msgstr "uycie nie-tablicy jako tablicy" -#: awkgram.y:964 +#: awkgram.y:1022 msgid "invalid subscript expression" msgstr "nieprawidowe wyraenie indeksowe" -#: awkgram.y:1171 +#: awkgram.y:1249 msgid "unexpected newline or end of string" msgstr "niespodziewany znak nowego wiersza lub koca acucha" -#: awkgram.y:1267 +#: awkgram.y:1366 msgid "empty program text on command line" msgstr "pusty tekst programu w linii polece" -#: awkgram.y:1320 +#: awkgram.y:1422 #, c-format msgid "can't open source file `%s' for reading (%s)" msgstr "nie mona otworzy pliku rdowego `%s' do czytania (%s)" -#: awkgram.y:1397 +#: awkgram.y:1520 #, c-format msgid "can't read sourcefile `%s' (%s)" msgstr "nie mona otworzy pliku rdowego `%s' (%s)" -#: awkgram.y:1405 +#: awkgram.y:1528 #, c-format msgid "source file `%s' is empty" msgstr "plik rdowy `%s' jest pusty" -#: awkgram.y:1596 awkgram.y:1718 awkgram.y:1736 awkgram.y:2107 awkgram.y:2194 +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 msgid "source file does not end in newline" msgstr "plik rdowy nie posiada na kocu znaku nowego wiersza" -#: awkgram.y:1658 +#: awkgram.y:1782 msgid "unterminated regexp ends with `\\' at end of file" msgstr "" "niezakoczone prawidowo wyraenie regularne koczy si znakiem `\\' na " "kocu pliku" -#: awkgram.y:1682 +#: awkgram.y:1806 #, c-format msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" "%s: %d: modyfikator wyraenia regularnego `/.../%c' tawk nie dziaa w gawk" -#: awkgram.y:1686 +#: awkgram.y:1810 #, c-format msgid "tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "modyfikator wyraenia regularnego `/.../%c' tawk nie dziaa w gawk" -#: awkgram.y:1693 +#: awkgram.y:1817 msgid "unterminated regexp" msgstr "niezakoczone wyraenie regularne" -#: awkgram.y:1696 +#: awkgram.y:1820 msgid "unterminated regexp at end of file" msgstr "niezakoczone wyraenie regularne na kocu pliku" -#: awkgram.y:1762 +#: awkgram.y:1889 msgid "use of `\\ #...' line continuation is not portable" msgstr "uycie `\\ #...' kontynuacji linii nie jest przenone" -#: awkgram.y:1774 +#: awkgram.y:1902 msgid "backslash not last character on line" msgstr "backslash nie jest ostatnim znakiem w wierszu" -#: awkgram.y:1819 +#: awkgram.y:1947 msgid "POSIX does not allow operator `**='" msgstr "POSIX nie zezwala na operator `**='" -#: awkgram.y:1821 +#: awkgram.y:1949 msgid "old awk does not support operator `**='" msgstr "stary awk nie wspiera operatora `**='" -#: awkgram.y:1830 +#: awkgram.y:1958 msgid "POSIX does not allow operator `**'" msgstr "POSIX nie zezwala na operator `**'" -#: awkgram.y:1832 +#: awkgram.y:1960 msgid "old awk does not support operator `**'" msgstr "stary awk nie wspiera operatora `**'" -#: awkgram.y:1863 +#: awkgram.y:1991 msgid "operator `^=' is not supported in old awk" msgstr "operator `^=' nie jest wspierany w starym awk" -#: awkgram.y:1871 +#: awkgram.y:1999 msgid "operator `^' is not supported in old awk" msgstr "operator `^' nie jest wspierany w starym awk" -#: awkgram.y:1955 awkgram.y:1970 +#: awkgram.y:2083 awkgram.y:2098 msgid "unterminated string" msgstr "niezakoczony acuch" -#: awkgram.y:2155 +#: awkgram.y:2283 #, c-format msgid "invalid char '%c' in expression" msgstr "nieprawidowy znak '%c' w wyraeniu" -#: awkgram.y:2203 +#: awkgram.y:2331 #, c-format msgid "`%s' is a gawk extension" msgstr "`%s' jest rozszerzeniem gawk" -#: awkgram.y:2206 +#: awkgram.y:2334 #, c-format msgid "`%s' is a Bell Labs extension" msgstr "`%s' jest rozszerzeniem Bell Labs" -#: awkgram.y:2209 +#: awkgram.y:2337 #, c-format msgid "POSIX does not allow `%s'" msgstr "POSIX nie zezwala na `%s'" -#: awkgram.y:2213 +#: awkgram.y:2341 #, c-format msgid "`%s' is not supported in old awk" msgstr "`%s' nie jest wspierany w starym awk" -#: awkgram.y:2239 +#: awkgram.y:2367 msgid "`goto' considered harmful!\n" msgstr "`goto' uwaane za szkodliwe!\n" -#: awkgram.y:2301 +#: awkgram.y:2429 #, c-format msgid "%d is invalid as number of arguments for %s" msgstr "%d jest nieprawidowe jako liczba argumentw dla %s" -#: awkgram.y:2320 awkgram.y:2323 +#: awkgram.y:2448 awkgram.y:2451 msgid "match: third argument is a gawk extension" msgstr "match: trzeci argument jest rozszerzeniem gawk" -#: awkgram.y:2336 +#: awkgram.y:2464 #, c-format msgid "%s: string literal as last arg of substitute has no effect" msgstr "" "%s: litera acuchowy jako ostatni argument podstawienia nie ma adnego " "efektu" -#: awkgram.y:2339 +#: awkgram.y:2467 #, c-format msgid "%s third parameter is not a changeable object" msgstr "%s trzeci parametr nie jest zmiennym obiektem" -#: awkgram.y:2366 awkgram.y:2369 +#: awkgram.y:2494 awkgram.y:2497 msgid "close: second argument is a gawk extension" msgstr "close: drugi argument jest rozszerzeniem gawk" -#: awkgram.y:2379 +#: awkgram.y:2507 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" msgstr "nieprawidowe uycie dcgettext(_\"...\"): usu znak podkrelenia" -#: awkgram.y:2394 +#: awkgram.y:2522 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" msgstr "nieprawidowe uycie dcngettext(_\"...\"): usu znak podkrelenia" -#: awkgram.y:2465 +#: awkgram.y:2594 #, c-format msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" msgstr "funkcja `%s': parametr #%d, `%s', powiela parametr #%d" -#: awkgram.y:2498 +#: awkgram.y:2627 #, c-format msgid "function `%s': parameter `%s' shadows global variable" msgstr "funkcja `%s': parametr `%s' zasania globaln zmienn" -#: awkgram.y:2610 +#: awkgram.y:2739 #, c-format msgid "could not open `%s' for writing (%s)" msgstr "nie mona otworzy `%s' do zapisu (%s)" -#: awkgram.y:2611 profile.c:93 +#: awkgram.y:2740 profile.c:94 msgid "sending profile to standard error" msgstr "wysyanie profilu na standardowe wyjcie diagnostyczne" -#: awkgram.y:2643 +#: awkgram.y:2772 #, c-format msgid "%s: close failed (%s)" msgstr "%s: zamknicie nie powiodo si (%s)" -#: awkgram.y:2764 +#: awkgram.y:2893 msgid "shadow_funcs() called twice!" msgstr "shadow_funcs() wywoana podwjnie!" -#: awkgram.y:2791 +#: awkgram.y:2920 msgid "there were shadowed variables." msgstr "wystpiy przykryte zmienne." -#: awkgram.y:2864 +#: awkgram.y:2993 #, c-format msgid "function `%s': can't use function name as parameter name" msgstr "funkcja `%s': nie mona uy nazwy funkcji jako nazwy parametru" -#: awkgram.y:2874 +#: awkgram.y:3003 #, c-format msgid "function name `%s' previously defined" msgstr "nazwa funkcji `%s' zostaa zdefiniowana poprzednio" -#: awkgram.y:3025 awkgram.y:3031 +#: awkgram.y:3154 awkgram.y:3160 #, c-format msgid "function `%s' called but never defined" msgstr "funkcja `%s' zostaa wywoana, ale nigdy nie zostaa zdefiniowana" -#: awkgram.y:3034 +#: awkgram.y:3163 #, c-format msgid "function `%s' defined but never called" msgstr "funkcja `%s' zostaa zdefiniowana, ale nigdy nie zostaa wywoana" -#: awkgram.y:3061 +#: awkgram.y:3190 #, c-format msgid "regexp constant for parameter #%d yields boolean value" msgstr "stae wyraenie regularne dla parametru #%d daje warto logiczn" -#: awkgram.y:3105 +#: awkgram.y:3234 #, c-format msgid "" "function `%s' called with space between name and `(',\n" @@ -397,201 +410,200 @@ "`(',\n" "lub uyta jako zmienna lub jako tablica" -#: builtin.c:145 +#: builtin.c:119 #, c-format msgid "%s to \"%s\" failed (%s)" msgstr "%s do \"%s\" nie powid si (%s)" -#: builtin.c:146 +#: builtin.c:120 msgid "standard output" msgstr "standardowe wyjcie" -#: builtin.c:147 +#: builtin.c:121 msgid "reason unknown" msgstr "nieznany powd" -#: builtin.c:160 +#: builtin.c:134 msgid "exp: received non-numeric argument" msgstr "exp: otrzymano argument nie bdcy liczb" -#: builtin.c:166 +#: builtin.c:140 #, c-format msgid "exp: argument %g is out of range" msgstr "exp: argument %g jest poza zasigiem" -#: builtin.c:224 +#: builtin.c:198 #, c-format msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" msgstr "" "fflush: nie mona oprni: potok `%s' otwarty do czytania, a nie do zapisu" -#: builtin.c:227 +#: builtin.c:201 #, c-format msgid "fflush: cannot flush: file `%s' opened for reading, not writing" msgstr "" "fflush: nie mona oprni: plik `%s' otwarty do czytania, a nie do zapisu" -#: builtin.c:239 +#: builtin.c:213 #, c-format msgid "fflush: `%s' is not an open file, pipe or co-process" msgstr "fflush: `%s' nie jest ani otwartym plikiem, ani potokiem, ani procesem" -#: builtin.c:332 +#: builtin.c:306 msgid "index: received non-string first argument" msgstr "index: otrzymano pierwszy argument, ktry nie jest acuchem" -#: builtin.c:334 +#: builtin.c:308 msgid "index: received non-string second argument" msgstr "index: otrzymano drugi argument, ktry nie jest acuchem" -#: builtin.c:449 +#: builtin.c:423 msgid "int: received non-numeric argument" msgstr "int: otrzymano argument, ktry nie jest liczb" -#: builtin.c:472 -#, fuzzy +#: builtin.c:448 msgid "`length(array)' is a gawk extension" -msgstr "`delete tablica' jest rozszerzeniem gawk" +msgstr "`length(tablica)' jest rozszerzeniem gawk" -#: builtin.c:481 +#: builtin.c:458 msgid "length: received non-string argument" msgstr "length: otrzymano argument, ktry nie jest acuchem" -#: builtin.c:506 +#: builtin.c:483 msgid "log: received non-numeric argument" msgstr "log: otrzymano argument, ktry nie jest liczb" -#: builtin.c:509 +#: builtin.c:486 #, c-format msgid "log: received negative argument %g" msgstr "log: otrzymano ujemny argument %g" -#: builtin.c:673 builtin.c:676 +#: builtin.c:693 builtin.c:696 msgid "must use `count$' on all formats or none" msgstr "naley uy `count$' we wszystkich formatach lub nic" -#: builtin.c:778 +#: builtin.c:799 msgid "`$' is not permitted in awk formats" msgstr "`$' jest niedozwolony w formatach awk" -#: builtin.c:784 +#: builtin.c:805 msgid "arg count with `$' must be > 0" msgstr "argument count z `$' musi by > 0" -#: builtin.c:786 +#: builtin.c:807 #, c-format msgid "arg count %ld greater than total number of supplied arguments" msgstr "argument count %ld wikszy ni cakowita suma argumentw dostarczonych" -#: builtin.c:788 +#: builtin.c:809 msgid "`$' not permitted after period in format" msgstr "`$' jest niedozwolony po kropce w formacie" -#: builtin.c:801 +#: builtin.c:822 msgid "no `$' supplied for positional field width or precision" msgstr "brak `$' dla pozycyjnej szerokoci pola lub precyzji" -#: builtin.c:867 +#: builtin.c:888 msgid "`l' is meaningless in awk formats; ignored" msgstr "`l' jest bezsensowny w formatach awk; zignorowany" -#: builtin.c:871 +#: builtin.c:892 msgid "`l' is not permitted in POSIX awk formats" msgstr "`l' jest niedozwolony w formatach POSIX awk" -#: builtin.c:882 +#: builtin.c:903 msgid "`L' is meaningless in awk formats; ignored" msgstr "`L' jest bezsensowny w formatach awk; zignorowany" -#: builtin.c:886 +#: builtin.c:907 msgid "`L' is not permitted in POSIX awk formats" msgstr "`L' jest niedozwolony w formatach POSIX awk" -#: builtin.c:897 +#: builtin.c:918 msgid "`h' is meaningless in awk formats; ignored" msgstr "`h' jest bezsensowny w formatach awk; zignorowany" -#: builtin.c:901 +#: builtin.c:922 msgid "`h' is not permitted in POSIX awk formats" msgstr "`h' jest niedozwolony w formatach POSIX awk" -#: builtin.c:1132 +#: builtin.c:1182 #, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" msgstr "[s]printf: warto %g jest poza zasigiem dla formatu `%%%c'" -#: builtin.c:1198 +#: builtin.c:1266 msgid "not enough arguments to satisfy format string" msgstr "" "brak wystarczajcej liczby argumentw, aby zaspokoi acuch formatujcy" -#: builtin.c:1200 +#: builtin.c:1268 msgid "^ ran out for this one" msgstr "zabrako ^" -#: builtin.c:1205 +#: builtin.c:1274 msgid "[s]printf: format specifier does not have control letter" msgstr "[s]printf: specyfikator formatu nie posiada kontrolnej litery" -#: builtin.c:1208 +#: builtin.c:1277 msgid "too many arguments supplied for format string" msgstr "zbyt duo podanych argumentw w acuchu formatujcym" -#: builtin.c:1274 builtin.c:1277 +#: builtin.c:1352 builtin.c:1355 msgid "printf: no arguments" msgstr "printf: brak argumentw" -#: builtin.c:1301 +#: builtin.c:1379 msgid "sqrt: received non-numeric argument" msgstr "sqrt: otrzymano argument, ktry nie jest liczb" -#: builtin.c:1305 +#: builtin.c:1383 #, c-format msgid "sqrt: called with negative argument %g" msgstr "sqrt: wywoana z ujemnym argumentem %g" -#: builtin.c:1329 +#: builtin.c:1407 #, c-format msgid "substr: start index %g is invalid, using 1" msgstr "substr: pocztkowy indeks %g jest nieprawidowy, nastpi uycie 1" -#: builtin.c:1334 +#: builtin.c:1412 #, c-format msgid "substr: non-integer start index %g will be truncated" msgstr "" "substr: pocztkowy indeks %g, ktry nie jest liczb cakowit, zostanie " "obcity" -#: builtin.c:1353 +#: builtin.c:1431 #, c-format msgid "substr: length %g is not >= 1" msgstr "substr: dugo %g nie jest >= 1" -#: builtin.c:1355 +#: builtin.c:1433 #, c-format msgid "substr: length %g is not >= 0" msgstr "substr: dugo %g nie jest >= 0" -#: builtin.c:1362 +#: builtin.c:1440 #, c-format msgid "substr: non-integer length %g will be truncated" msgstr "substr: dugo %g, ktra nie jest liczb cakowit, zostanie obcita" -#: builtin.c:1367 +#: builtin.c:1445 #, c-format msgid "substr: length %g too big for string indexing, truncating to %g" msgstr "substr: dugo %g zbyt dua dla indeksu acucha, obcinanie do %g" -#: builtin.c:1379 +#: builtin.c:1457 msgid "substr: source string is zero length" msgstr "substr: acuch rdowy ma zerow dugo" -#: builtin.c:1395 +#: builtin.c:1473 #, c-format msgid "substr: start index %g is past end of string" msgstr "substr: pocztkowy indeks %g ley poza kocem acucha" -#: builtin.c:1403 +#: builtin.c:1481 #, c-format msgid "" "substr: length %g at start index %g exceeds length of first argument (%lu)" @@ -599,184 +611,184 @@ "substr: dugo %g zaczynajc od %g przekracza dugo pierwszego argumentu " "(%lu)" -#: builtin.c:1478 +#: builtin.c:1558 msgid "strftime: received non-string first argument" msgstr "strftime: otrzymano pierwszy argument, ktry nie jest acuchem" -#: builtin.c:1484 +#: builtin.c:1564 msgid "strftime: received empty format string" msgstr "strftime: otrzymano pusty acuch formatujcy" -#: builtin.c:1493 +#: builtin.c:1573 msgid "strftime: received non-numeric second argument" msgstr "strftime: otrzymano drugi argument, ktry nie jest liczb" -#: builtin.c:1556 +#: builtin.c:1650 msgid "mktime: received non-string argument" msgstr "mktime: otrzymano argument, ktry nie jest acuchem" -#: builtin.c:1601 +#: builtin.c:1695 msgid "system: received non-string argument" msgstr "system: otrzymano argument, ktry nie jest acuchem" -#: builtin.c:1722 eval.c:2039 +#: builtin.c:1816 eval.c:2041 #, c-format msgid "reference to uninitialized field `$%d'" msgstr "odwoanie do niezainicjowanego pola `$%d'" -#: builtin.c:1827 +#: builtin.c:1921 msgid "tolower: received non-string argument" msgstr "tolower: otrzymano argument, ktry nie jest acuchem" -#: builtin.c:1857 +#: builtin.c:1951 msgid "toupper: received non-string argument" msgstr "toupper: otrzymano argument, ktry nie jest acuchem" -#: builtin.c:1890 +#: builtin.c:1984 msgid "atan2: received non-numeric first argument" msgstr "atan2: otrzymano pierwszy argument, ktry nie jest liczb" -#: builtin.c:1892 +#: builtin.c:1986 msgid "atan2: received non-numeric second argument" msgstr "atan2: otrzymano drugi argument, ktry nie jest liczb" -#: builtin.c:1911 +#: builtin.c:2005 msgid "sin: received non-numeric argument" msgstr "sin: otrzymano argument, ktry nie jest liczb" -#: builtin.c:1927 +#: builtin.c:2021 msgid "cos: received non-numeric argument" msgstr "cos: otrzymano argument, ktry nie jest liczb" -#: builtin.c:1977 +#: builtin.c:2071 msgid "srand: received non-numeric argument" msgstr "srand: otrzymano argument, ktry nie jest liczb" -#: builtin.c:2012 +#: builtin.c:2106 msgid "match: third argument is not an array" msgstr "match: otrzymano trzeci argument, ktry nie jest tablic" -#: builtin.c:2555 +#: builtin.c:2650 msgid "gensub: third argument of 0 treated as 1" msgstr "gensub: trzeci argument 0 potraktowany jako 1" -#: builtin.c:2715 +#: builtin.c:2766 msgid "lshift: received non-numeric first argument" msgstr "lshift: otrzymano pierwszy argument, ktry nie jest liczb" -#: builtin.c:2717 +#: builtin.c:2768 msgid "lshift: received non-numeric second argument" msgstr "lshift: otrzymano drugi argument, ktry nie jest liczb" -#: builtin.c:2723 +#: builtin.c:2774 #, c-format msgid "lshift(%lf, %lf): negative values will give strange results" msgstr "lshift(%lf, %lf): ujemne wartoci spowoduj dziwne wyniki" -#: builtin.c:2725 +#: builtin.c:2776 #, c-format msgid "lshift(%lf, %lf): fractional values will be truncated" msgstr "lshift(%lf, %lf): uamkowe wartoci zostan obcite" -#: builtin.c:2727 +#: builtin.c:2778 #, c-format msgid "lshift(%lf, %lf): too large shift value will give strange results" msgstr "" "lshift(%lf, %lf): zbyt dua warto przesunicia spowoduje dziwne wyniki" -#: builtin.c:2753 +#: builtin.c:2804 msgid "rshift: received non-numeric first argument" msgstr "rshift: otrzymano pierwszy argument, ktry nie jest liczb" -#: builtin.c:2755 +#: builtin.c:2806 msgid "rshift: received non-numeric second argument" msgstr "rshift: otrzymano drugi argument, ktry nie jest liczb" -#: builtin.c:2761 +#: builtin.c:2812 #, c-format msgid "rshift(%lf, %lf): negative values will give strange results" msgstr "rshift(%lf, %lf): ujemne wartoci spowoduj dziwne wyniki" -#: builtin.c:2763 +#: builtin.c:2814 #, c-format msgid "rshift(%lf, %lf): fractional values will be truncated" msgstr "rshift(%lf, %lf): uamkowe wartoci zostan obcite" -#: builtin.c:2765 +#: builtin.c:2816 #, c-format msgid "rshift(%lf, %lf): too large shift value will give strange results" msgstr "" "rshift(%lf, %lf): zbyt dua warto przesunicia spowoduje dziwne wyniki" -#: builtin.c:2791 +#: builtin.c:2842 msgid "and: received non-numeric first argument" msgstr "and: otrzymano pierwszy argument, ktry nie jest liczb" -#: builtin.c:2793 +#: builtin.c:2844 msgid "and: received non-numeric second argument" msgstr "and: otrzymano drugi argument, ktry nie jest liczb" -#: builtin.c:2799 +#: builtin.c:2850 #, c-format msgid "and(%lf, %lf): negative values will give strange results" msgstr "and(%lf, %lf): ujemne wartoci spowoduj dziwne wyniki" -#: builtin.c:2801 +#: builtin.c:2852 #, c-format msgid "and(%lf, %lf): fractional values will be truncated" msgstr "and(%lf, %lf): uamkowe wartoci zostan obcite" -#: builtin.c:2827 +#: builtin.c:2878 msgid "or: received non-numeric first argument" msgstr "or: otrzymano pierwszy argument, ktry nie jest liczb" -#: builtin.c:2829 +#: builtin.c:2880 msgid "or: received non-numeric second argument" msgstr "or: otrzymano drugi argument, ktry nie jest liczb" -#: builtin.c:2835 +#: builtin.c:2886 #, c-format msgid "or(%lf, %lf): negative values will give strange results" msgstr "or(%lf, %lf): ujemne wartoci spowoduj dziwne wyniki" -#: builtin.c:2837 +#: builtin.c:2888 #, c-format msgid "or(%lf, %lf): fractional values will be truncated" msgstr "or(%lf, %lf): uamkowe wartoci zostan obcite" -#: builtin.c:2863 +#: builtin.c:2914 msgid "xor: received non-numeric first argument" msgstr "xor: otrzymano pierwszy argument, ktry nie jest liczb" -#: builtin.c:2865 +#: builtin.c:2916 msgid "xor: received non-numeric second argument" msgstr "xor: otrzymano drugi argument, ktry nie jest liczb" -#: builtin.c:2871 +#: builtin.c:2922 #, c-format msgid "xor(%lf, %lf): negative values will give strange results" msgstr "xor(%lf, %lf): ujemne wartoci spowoduj dziwne wyniki" -#: builtin.c:2873 +#: builtin.c:2924 #, c-format msgid "xor(%lf, %lf): fractional values will be truncated" msgstr "xor(%lf, %lf): uamkowe wartoci zostan obcite" -#: builtin.c:2897 +#: builtin.c:2948 msgid "compl: received non-numeric argument" msgstr "compl: otrzymano argument, ktry nie jest liczb" -#: builtin.c:2903 +#: builtin.c:2954 #, c-format msgid "compl(%lf): negative value will give strange results" msgstr "compl(%lf): ujemne wartoci spowoduj dziwne wyniki" -#: builtin.c:2905 +#: builtin.c:2956 #, c-format msgid "compl(%lf): fractional value will be truncated" msgstr "compl(%lf): uamkowe wartoci zostan obcite" -#: builtin.c:3078 +#: builtin.c:3129 #, c-format msgid "dcgettext: `%s' is not a valid locale category" msgstr "dcgettext: `%s' nie jest prawidow kategori lokalizacji" @@ -790,7 +802,7 @@ msgid "buffer overflow in genflags2str" msgstr "przepenienie bufora w genflags2str" -#: eval.c:385 eval.c:391 profile.c:838 +#: eval.c:385 eval.c:391 profile.c:817 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "prba uycia tablicy `%s' w kontekcie skalaru" @@ -838,7 +850,7 @@ msgid "statement has no effect" msgstr "instrukcja nie ma adnego efektu" -#: eval.c:952 eval.c:1893 +#: eval.c:952 eval.c:1895 #, c-format msgid "can't use function name `%s' as variable or array" msgstr "nie mona uy nazwy funkcji `%s' jako zmiennej lub tablicy" @@ -848,7 +860,7 @@ msgid "reference to uninitialized argument `%s'" msgstr "odwoanie do niezainicjowanego argumentu `%s'" -#: eval.c:974 eval.c:1902 +#: eval.c:974 eval.c:1904 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "odwoanie do niezainicjowanej zmiennej `%s'" @@ -861,46 +873,46 @@ "konkatenacja: skutki uboczne w jednym wyraeniu spowodoway zmian dugoci " "innego wyraenia!" -#: eval.c:1200 +#: eval.c:1202 msgid "assignment used in conditional context" msgstr "przypisanie uyte w kontekcie warunkowym" -#: eval.c:1278 +#: eval.c:1280 msgid "division by zero attempted" msgstr "prba dzielenia przez zero" -#: eval.c:1293 +#: eval.c:1295 #, c-format msgid "division by zero attempted in `%%'" msgstr "prba dzielenia przez zero w `%%'" -#: eval.c:1308 profile.c:714 +#: eval.c:1310 profile.c:693 #, c-format msgid "illegal type (%s) in tree_eval" msgstr "nieprawidowy typ (%s) w tree_eval" -#: eval.c:1471 +#: eval.c:1473 msgid "division by zero attempted in `/='" msgstr "prba dzielenia przez zero w `/='" -#: eval.c:1493 +#: eval.c:1495 #, c-format msgid "division by zero attempted in `%%='" msgstr "prba dzielenia przez zero w `%%='" -#: eval.c:1758 +#: eval.c:1760 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "" "funkcja `%s' zostaa wywoana z wiksz iloci argumentw ni zostao to " "zadeklarowane" -#: eval.c:1802 +#: eval.c:1804 #, c-format msgid "function `%s' not defined" msgstr "funkcja `%s' nie zostaa zdefiniowana" -#: eval.c:1865 +#: eval.c:1867 #, c-format msgid "" "\n" @@ -911,677 +923,690 @@ "\t# Stos Wywoawczy Funkcji:\n" "\n" -#: eval.c:1868 +#: eval.c:1870 #, c-format msgid "\t# -- main --\n" msgstr "\t# -- gwne --\n" -#: eval.c:2023 +#: eval.c:2025 msgid "attempt to field reference from non-numeric value" msgstr "prba odwoania do pola poprzez nienumeryczn warto" -#: eval.c:2025 +#: eval.c:2027 msgid "attempt to reference from null string" msgstr "prba odwoania z zerowego acucha" -#: eval.c:2031 +#: eval.c:2033 #, c-format msgid "attempt to access field %d" msgstr "prba dostpu do pola %d" -#: eval.c:2052 eval.c:2059 profile.c:935 +#: eval.c:2054 eval.c:2061 profile.c:914 msgid "assignment is not allowed to result of builtin function" msgstr "przypisanie do wyniku wbudowanej funkcji nie jest dozwolone" -#: eval.c:2123 +#: eval.c:2125 msgid "`IGNORECASE' is a gawk extension" msgstr "`IGNORECASE' jest rozszerzeniem gawk" -#: eval.c:2153 +#: eval.c:2155 msgid "`BINMODE' is a gawk extension" msgstr "`BINMODE' jest rozszerzeniem gawk" -#: eval.c:2275 +#: eval.c:2277 #, c-format msgid "bad `%sFMT' specification `%s'" msgstr "za specyfikacja `%sFMT' `%s'" -#: eval.c:2353 +#: eval.c:2355 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "wyczenie `--lint' z powodu przypisania do `LINT'" -#: ext.c:60 ext.c:64 +#: ext.c:62 ext.c:67 msgid "`extension' is a gawk extension" msgstr "`extension' jest rozszerzeniem gawk" -#: ext.c:74 +#: ext.c:77 #, c-format msgid "extension: cannot open `%s' (%s)\n" msgstr "rozszerzenie: nie mona otworzy `%s' (%s)\n" -#: ext.c:82 +#: ext.c:85 #, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "rozszerzenie: biblioteka `%s': nie mona wywoa funkcji `%s' (%s)\n" -#: ext.c:102 +#: ext.c:105 msgid "extension: missing function name" msgstr "rozszerzenie: brakujca nazwa funkcji" -#: ext.c:107 +#: ext.c:110 #, c-format msgid "extension: illegal character `%c' in function name `%s'" msgstr "rozszerzenie: nieprawidowy znak `%c' w nazwie funkcji `%s'" -#: ext.c:113 +#: ext.c:116 #, c-format msgid "extension: can't redefine function `%s'" msgstr "rozszerzenie: nie mona zredefiniowa funkcji `%s'" -#: ext.c:117 +#: ext.c:120 #, c-format msgid "extension: function `%s' already defined" msgstr "rozserzenie: funkcja `%s' zostaa ju zdefiniowana" -#: ext.c:122 +#: ext.c:125 #, c-format msgid "extension: can't use gawk built-in `%s' as function name" msgstr "rozszerzenie: nie mona uy wbudowanej w gawk `%s' jako nazwy funkcji" -#: ext.c:124 +#: ext.c:127 #, c-format msgid "extension: function name `%s' previously defined" msgstr "rozserzenie: nazwa funkcji `%s' zostaa zdefiniowana wczeniej" -#: ext.c:201 +#: ext.c:204 #, c-format msgid "function `%s' defined to take no more than %d argument(s)" msgstr "funkcja `%s' zdefiniowana aby pobra nie wicej ni %d argument(w)" -#: ext.c:204 +#: ext.c:207 #, c-format msgid "function `%s': missing argument #%d" msgstr "funkcja `%s': brakuje #%d argumentu" -#: ext.c:214 +#: ext.c:217 #, c-format msgid "function `%s': argument #%d: attempt to use scalar as an array" msgstr "funkcja `%s': argument #%d: prba uycia skalaru jako tablicy" -#: ext.c:218 +#: ext.c:221 #, c-format msgid "function `%s': argument #%d: attempt to use array as a scalar" msgstr "funkcja `%s': argument #%d: prba uycia tablicy jako skalaru" -#: ext.c:243 +#: ext.c:246 msgid "Operation Not Supported" msgstr "Operacja nie jest wspierana" -#: field.c:326 +#: field.c:330 msgid "NF set to negative value" msgstr "NF ustawiony na warto ujemn" -#: field.c:819 +#: field.c:823 msgid "split: second argument is not an array" msgstr "split: drugi argument nie jest tablic" -#: field.c:853 +#: field.c:857 msgid "split: null string for third arg is a gawk extension" msgstr "split: zerowy acuch dla trzeciego argumentu jest rozszerzeniem gawk" -#: field.c:905 +#: field.c:909 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "`FIELDWIDTHS' jest rozszerzeniem gawk" -#: field.c:935 field.c:946 +#: field.c:939 field.c:953 #, c-format msgid "invalid FIELDWIDTHS value, near `%s'" msgstr "nieprawidowa warto FIELDWIDTHS, w pobliu `%s'" -#: field.c:1027 +#: field.c:1036 msgid "null string for `FS' is a gawk extension" msgstr "zerowy acuch dla `FS' jest rozszerzeniem gawk" -#: getopt.c:571 getopt.c:590 +#: field.c:1040 +msgid "old awk does not support regexps as value of `FS'" +msgstr "stary awk nie wspiera wyrae regularnych jako wartoci `FS'" + +#: getopt.c:571 getopt.c:587 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: opcja `%s' jest niejednoznaczna\n" -#: getopt.c:623 getopt.c:627 +#: getopt.c:620 getopt.c:624 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: opcja `--%s' nie moe mie argumentw\n" -#: getopt.c:636 getopt.c:641 +#: getopt.c:633 getopt.c:638 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: opcja `%c%s' nie moe mie argumentw\n" -#: getopt.c:687 getopt.c:709 getopt.c:1040 getopt.c:1062 +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: opcja `%s' musi mie argument\n" -#: getopt.c:747 getopt.c:750 +#: getopt.c:738 getopt.c:741 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: nieznana opcja `--%s'\n" -#: getopt.c:758 getopt.c:761 +#: getopt.c:749 getopt.c:752 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: nieznana opcja `%c%s'\n" -#: getopt.c:816 getopt.c:819 +#: getopt.c:804 getopt.c:807 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: niewaciwa opcja -- %c\n" -#: getopt.c:825 getopt.c:828 +#: getopt.c:813 getopt.c:816 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: bdna opcja -- %c\n" -#: getopt.c:883 getopt.c:902 getopt.c:1115 getopt.c:1136 main.c:448 +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: opcja musi mie argument -- %c\n" -#: getopt.c:955 getopt.c:974 +#: getopt.c:937 getopt.c:953 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: opcja `-W %s' jest niejednoznaczna\n" -#: getopt.c:998 getopt.c:1019 +#: getopt.c:977 getopt.c:995 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: opcja `-W %s' nie moe mie argumentw\n" -#: io.c:307 +#: io.c:345 #, c-format msgid "cannot open file `%s' for reading (%s)" msgstr "nie mona otworzy pliku `%s' do czytania (%s)" -#: io.c:398 +#: io.c:436 #, c-format msgid "close of fd %d (`%s') failed (%s)" msgstr "zamknicie fd %d (`%s') nie powiodo si (%s)" -#: io.c:536 +#: io.c:575 #, c-format msgid "invalid tree type %s in redirect()" msgstr "nieprawidowy typ drzewa %s w funkcji redirect()" -#: io.c:542 +#: io.c:581 #, c-format msgid "expression in `%s' redirection only has numeric value" msgstr "wyraenie w przekierowaniu `%s' ma tylko warto numeryczn" -#: io.c:548 +#: io.c:587 #, c-format msgid "expression for `%s' redirection has null string value" msgstr "wyraenie dla przekierowania `%s' ma zerow warto acucha" -#: io.c:553 +#: io.c:592 #, c-format msgid "filename `%s' for `%s' redirection may be result of logical expression" msgstr "" "nazwa pliku `%s' dla przekierowania `%s' moe by rezultatem logicznego " "wyraenia" -#: io.c:591 +#: io.c:630 #, c-format msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" msgstr "niepotrzebne mieszanie `>' i `>>' dla pliku `%.*s'" -#: io.c:643 +#: io.c:682 #, c-format msgid "can't open pipe `%s' for output (%s)" msgstr "nie mona otworzy potoku `%s' jako wyjcia (%s)" -#: io.c:652 +#: io.c:691 #, c-format msgid "can't open pipe `%s' for input (%s)" msgstr "nie mona otworzy potoku `%s' jako wejcia (%s)" -#: io.c:665 +#: io.c:698 io.c:1448 +#, c-format +msgid "file `%s' is a directory" +msgstr "plik `%s' jest katalogiem" + +#: io.c:706 #, c-format msgid "can't open two way socket `%s' for input/output (%s)" msgstr "" "nie mona otworzy dwukierunkowego gniazda `%s' jako wejcia/wyjcia (%s)" -#: io.c:669 +#: io.c:710 #, c-format msgid "can't open two way pipe `%s' for input/output (%s)" msgstr "" "nie mona otworzy dwukierunkowego potoku `%s' jako wejcia/wyjcia (%s)" -#: io.c:745 +#: io.c:786 #, c-format msgid "can't redirect from `%s' (%s)" msgstr "nie mona przekierowa z `%s' (%s)" -#: io.c:748 +#: io.c:789 #, c-format msgid "can't redirect to `%s' (%s)" msgstr "nie mona przekierowa do `%s' (%s)" -#: io.c:787 +#: io.c:828 msgid "" "reached system limit for open files: starting to multiplex file descriptors" msgstr "" "osignito systemowy limit otwartych plikw: rozpoczcie multipleksowania " "deskryptorw plikw" -#: io.c:803 +#: io.c:844 #, c-format msgid "close of `%s' failed (%s)." msgstr "zamknicie `%s' nie powiodo si (%s)." -#: io.c:811 +#: io.c:852 msgid "too many pipes or input files open" msgstr "zbyt duo otwartych potokw lub plikw wejciowych" -#: io.c:834 +#: io.c:875 msgid "close: second argument must be `to' or `from'" msgstr "close: drugim argumentem musi by `to' lub `from'" -#: io.c:848 +#: io.c:889 #, c-format msgid "close: `%.*s' is not an open file, pipe or co-process" msgstr "" "close: `%.*s' nie jest ani otwartym plikiem, ani potokiem, ani procesem" -#: io.c:852 +#: io.c:893 msgid "close of redirection that was never opened" msgstr "zamknicie przekierowania, ktre nigdy nie zostao otwarte" -#: io.c:948 +#: io.c:989 #, c-format msgid "close: redirection `%s' not opened with `|&', second argument ignored" msgstr "" "close: przekierowanie `%s' nie zostao otwarte z `|&', drugi argument " "zignorowany" -#: io.c:964 +#: io.c:1005 #, c-format msgid "failure status (%d) on pipe close of `%s' (%s)" msgstr "status awarii (%d) podczas zamykania potoku `%s' (%s)" -#: io.c:967 +#: io.c:1008 #, c-format msgid "failure status (%d) on file close of `%s' (%s)" msgstr "status awarii (%d) podczas zamykania pliku `%s' (%s)" -#: io.c:987 +#: io.c:1028 #, c-format msgid "no explicit close of socket `%s' provided" msgstr "brak jawnego zamknicia gniazdka `%s'" -#: io.c:990 +#: io.c:1031 #, c-format msgid "no explicit close of co-process `%s' provided" msgstr "brak jawnego zamknicia procesu pomocniczego `%s'" -#: io.c:993 +#: io.c:1034 #, c-format msgid "no explicit close of pipe `%s' provided" msgstr "brak jawnego zamknicia potoku `%s'" -#: io.c:996 +#: io.c:1037 #, c-format msgid "no explicit close of file `%s' provided" msgstr "brak jawnego zamknicia pliku `%s'" -#: io.c:1025 io.c:1080 main.c:718 main.c:756 +#: io.c:1066 io.c:1121 main.c:749 main.c:791 #, c-format msgid "error writing standard output (%s)" msgstr "bd podczas zapisu na standardowe wyjcie (%s)" -#: io.c:1029 io.c:1085 +#: io.c:1070 io.c:1126 #, c-format msgid "error writing standard error (%s)" msgstr "bd podczas zapisu na standardowe wyjcie diagnostyczne (%s)" -#: io.c:1037 +#: io.c:1078 #, c-format msgid "pipe flush of `%s' failed (%s)." msgstr "oprnienie potoku `%s' nie powiodo si (%s)." -#: io.c:1040 +#: io.c:1081 #, c-format msgid "co-process flush of pipe to `%s' failed (%s)." msgstr "" "oprnienie potoku do `%s' przez proces pomocniczy nie powiodo si (%s)." -#: io.c:1043 +#: io.c:1084 #, c-format msgid "file flush of `%s' failed (%s)." msgstr "oprnienie pliku `%s' nie powiodo si (%s)." -#: io.c:1205 +#: io.c:1198 +#, c-format +msgid "local port %s invalid in `/inet'" +msgstr "nieprawidowy lokalny port %s w `/inet'" + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "informacje o zdalnym hocie i porcie s nieprawidowe (%s, %s)" + +#: io.c:1250 msgid "/inet/raw client not ready yet, sorry" msgstr "klient /inet/raw nie jest jeszcze gotowy, przykro mi" -#: io.c:1207 io.c:1244 +#: io.c:1253 io.c:1289 msgid "only root may use `/inet/raw'." msgstr "tylko superuytkownik (root) moe uy `/inet/raw'." -#: io.c:1242 +#: io.c:1287 msgid "/inet/raw server not ready yet, sorry" msgstr "serwer /inet/raw nie jest jeszcze gotowy, przykro mi" -#: io.c:1332 +#: io.c:1385 #, c-format msgid "no (known) protocol supplied in special filename `%s'" msgstr "nie dostarczono (znanego) protokou w specjalnym pliku `%s'" -#: io.c:1350 +#: io.c:1399 #, c-format msgid "special file name `%s' is incomplete" msgstr "specjalna nazwa pliku `%s' jest niekompletna" -#: io.c:1362 -#, c-format -msgid "local port invalid in `%s'" -msgstr "nieprawidowy lokalny port `%s'" - -#: io.c:1374 +#: io.c:1414 msgid "must supply a remote hostname to `/inet'" msgstr "naley dostarczy nazw zdalnego hosta do `/inet'" -#: io.c:1389 +#: io.c:1432 msgid "must supply a remote port to `/inet'" msgstr "naley dostarczy numer zdalnego portu do `/inet'" -#: io.c:1395 -#, c-format -msgid "remote port invalid in `%s'" -msgstr "nieprawidowy zdalny port w `%s'" - -#: io.c:1405 +#: io.c:1439 msgid "TCP/IP communications are not supported" msgstr "Komunikacja TCP/IP nie jest wspierana" -#: io.c:1414 io.c:1595 -#, c-format -msgid "file `%s' is a directory" -msgstr "plik `%s' jest katalogiem" - -#: io.c:1484 +#: io.c:1509 #, c-format msgid "use `PROCINFO[\"%s\"]' instead of `%s'" msgstr "uyj `PROCINFO[\"%s\"]' zamiast `%s'" -#: io.c:1516 +#: io.c:1547 msgid "use `PROCINFO[...]' instead of `/dev/user'" msgstr "uyj `PROCINFO[...]' zamiast `/dev/user'" -#: io.c:1581 io.c:1763 +#: io.c:1612 io.c:1798 #, c-format msgid "could not open `%s', mode `%s'" msgstr "nie mona otworzy `%s', tryb `%s'" -#: io.c:1814 +#: io.c:1849 #, c-format msgid "close of master pty failed (%s)" msgstr "zamknicie nadrzdnego pty nie powiodo si (%s)" -#: io.c:1816 io.c:1968 io.c:2119 +#: io.c:1851 io.c:2003 io.c:2154 #, c-format msgid "close of stdout in child failed (%s)" msgstr "" "zamknicie standardowego wyjcia w procesie potomnym nie powiodo si (%s)" -#: io.c:1819 +#: io.c:1854 #, c-format msgid "moving slave pty to stdout in child failed (dup: %s)" msgstr "" "przesunicie podlegego pty na standardowe wyjcie w procesie potomnym nie " "powiodo si (dup: %s)" -#: io.c:1821 io.c:1973 +#: io.c:1856 io.c:2008 #, c-format msgid "close of stdin in child failed (%s)" msgstr "" "zamknicie standardowego wejcia w procesie potomnym nie powiodo si (%s)" -#: io.c:1824 +#: io.c:1859 #, c-format msgid "moving slave pty to stdin in child failed (dup: %s)" msgstr "" "przesunicie podlegego pty na standardowe wejcie w procesie potomnym nie " "powiodo si (dup: %s)" -#: io.c:1826 io.c:1845 +#: io.c:1861 io.c:1880 #, c-format msgid "close of slave pty failed (%s)" msgstr "zamknicie podlegego pty nie powiodo si (%s)" -#: io.c:1919 io.c:1971 io.c:2100 io.c:2122 +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 #, c-format msgid "moving pipe to stdout in child failed (dup: %s)" msgstr "" "przesunicie potoku na standardowe wyjcie w procesie potomnym nie powiodo " "si (dup: %s)" -#: io.c:1923 io.c:1976 +#: io.c:1958 io.c:2011 #, c-format msgid "moving pipe to stdin in child failed (dup: %s)" msgstr "" "przesunicie potoku na standardowe wejcie w procesie potomnym nie powiodo " "si (dup: %s)" -#: io.c:1940 io.c:2113 +#: io.c:1975 io.c:2148 msgid "restoring stdout in parent process failed\n" msgstr "" "odzyskanie standardowego wyjcia w procesie potomnym nie powiodo si\n" -#: io.c:1945 +#: io.c:1980 msgid "restoring stdin in parent process failed\n" msgstr "" "odzyskanie standardowego wejcia w procesie potomnym nie powiodo si\n" -#: io.c:1979 io.c:2124 io.c:2135 +#: io.c:2014 io.c:2159 io.c:2170 #, c-format msgid "close of pipe failed (%s)" msgstr "zamknicie potoku nie powiodo si (%s)" -#: io.c:2024 +#: io.c:2059 msgid "`|&' not supported" msgstr "`|&' nie jest wspierany" -#: io.c:2090 +#: io.c:2125 #, c-format msgid "cannot open pipe `%s' (%s)" msgstr "nie mona otworzy potoku `%s' (%s)" -#: io.c:2131 +#: io.c:2166 #, c-format msgid "cannot create child process for `%s' (fork: %s)" msgstr "nie mona utworzy procesu potomnego dla `%s' (fork: %s)" -#: io.c:2506 +#: io.c:2548 #, c-format msgid "data file `%s' is empty" msgstr "plik danych `%s' jest pusty" -#: io.c:2547 io.c:2555 +#: io.c:2589 io.c:2597 msgid "could not allocate more input memory" msgstr "nie mona zarezerwowa wicej pamici wejciowej" -#: io.c:2919 io.c:2984 +#: io.c:2965 io.c:3038 #, c-format msgid "error reading input file `%s': %s" msgstr "bd podczas czytania z pliku `%s': %s" -#: io.c:3109 +#: io.c:3163 msgid "multicharacter value of `RS' is a gawk extension" msgstr "wieloznakowa warto `RS' jest rozszerzeniem gawk" -#: main.c:338 +#: main.c:351 msgid "`-m[fr]' option irrelevant in gawk" msgstr "nieistotna opcja `-m[fr]' w gawk" -#: main.c:340 +#: main.c:353 msgid "-m option usage: `-m[fr] nnn'" msgstr "uycie opcji -m: `-m[fr] nnn'" -#: main.c:357 +#: main.c:370 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: opcja `-W %s' nierozpoznana i zignorowana\n" -#: main.c:394 +#: main.c:407 msgid "empty argument to `--source' ignored" msgstr "pusty argument dla opcji `--source' zosta zignorowany" -#: main.c:467 +#: main.c:480 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" msgstr "" "zmienna rodowiskowa `POSIXLY_CORRECT' ustawiona: `--posix' zosta wczony" -#: main.c:472 +#: main.c:486 msgid "`--posix' overrides `--traditional'" msgstr "opcja `--posix' zostanie uyta nad `--traditional'" -#: main.c:483 +#: main.c:497 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" msgstr "`--posix'/`--traditional' uyte nad opcj `--non-decimal-data'" -#: main.c:487 +#: main.c:501 #, c-format msgid "running %s setuid root may be a security problem" msgstr "" "uruchamianie %s setuid root moe by problemem pod wzgldem bezpieczestwa" -#: main.c:528 +#: main.c:542 #, c-format msgid "can't set binary mode on stdin (%s)" msgstr "nie mona ustawi trybu binarnego na standardowym wejciu (%s)" -#: main.c:531 +#: main.c:545 #, c-format msgid "can't set binary mode on stdout (%s)" msgstr "nie mona ustawi trybu binarnego na standardowym wyjciu (%s)" -#: main.c:533 +#: main.c:547 #, c-format msgid "can't set binary mode on stderr (%s)" msgstr "nie mona ustawi trybu binarnego na wyjciu diagnostycznym (%s)" -#: main.c:572 +#: main.c:586 msgid "no program text at all!" msgstr "brak tekstu programu!" -#: main.c:665 +#: main.c:690 #, c-format msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" msgstr "" "Uycie: %s [styl opcji POSIX lub GNU] -f plik_z_programem [--] plik ...\n" -#: main.c:667 +#: main.c:692 #, c-format msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" msgstr "Uycie: %s [styl opcji POSIX lub GNU] [--] %cprogram%c plik ...\n" -#: main.c:672 +#: main.c:697 msgid "POSIX options:\t\tGNU long options:\n" msgstr "Opcje POSIX:\t\tDugie opcje GNU:\n" -#: main.c:673 +#: main.c:698 msgid "\t-f progfile\t\t--file=progfile\n" msgstr "\t-f program\t\t--file=program\n" -#: main.c:674 +#: main.c:699 msgid "\t-F fs\t\t\t--field-separator=fs\n" msgstr "\t-F fs\t\t\t--field-separator=fs\n" -#: main.c:675 +#: main.c:700 msgid "\t-v var=val\t\t--assign=var=val\n" msgstr "\t-v zmienna=warto\t--assign=zmienna=warto\n" -#: main.c:676 +#: main.c:701 msgid "\t-m[fr] val\n" msgstr "\t-m[fr] warto\n" -#: main.c:677 +#: main.c:702 msgid "\t-W compat\t\t--compat\n" msgstr "\t-W compat\t\t--compat\n" -#: main.c:678 +#: main.c:703 msgid "\t-W copyleft\t\t--copyleft\n" msgstr "\t-W copyleft\t\t--copyleft\n" -#: main.c:679 +#: main.c:704 msgid "\t-W copyright\t\t--copyright\n" msgstr "\t-W copyright\t\t--copyright\n" -#: main.c:680 +#: main.c:705 msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" msgstr "\t-W dump-variables[=plik]\t--dump-variables[=plik]\n" -#: main.c:681 +#: main.c:706 msgid "\t-W exec=file\t\t--exec=file\n" msgstr "\t-W exec=plik\t\t--exec=plik\n" -#: main.c:682 +#: main.c:707 msgid "\t-W gen-po\t\t--gen-po\n" msgstr "\t-W gen-po\t\t--gen-po\n" -#: main.c:683 +#: main.c:708 msgid "\t-W help\t\t\t--help\n" msgstr "\t-W help\t\t\t--help\n" -#: main.c:684 +#: main.c:709 msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" msgstr "\t-W lint[=fatal]\t\t--lint[=fatal]\n" -#: main.c:685 +#: main.c:710 msgid "\t-W lint-old\t\t--lint-old\n" msgstr "\t-W lint-old\t\t--lint-old\n" -#: main.c:686 +#: main.c:711 msgid "\t-W non-decimal-data\t--non-decimal-data\n" msgstr "\t-W non-decimal-data\t--non-decimal-data\n" -#: main.c:688 +#: main.c:713 msgid "\t-W nostalgia\t\t--nostalgia\n" msgstr "\t-W nostalgia\t\t--nostalgia\n" -#: main.c:691 +#: main.c:716 msgid "\t-W parsedebug\t\t--parsedebug\n" msgstr "\t-W parsedebug\t\t--parsedebug\n" -#: main.c:693 +#: main.c:718 msgid "\t-W profile[=file]\t--profile[=file]\n" msgstr "\t-W profile[=plik]\t--profile[=plik]\n" -#: main.c:694 +#: main.c:719 msgid "\t-W posix\t\t--posix\n" msgstr "\t-W posix\t\t--posix\n" -#: main.c:695 +#: main.c:720 msgid "\t-W re-interval\t\t--re-interval\n" msgstr "\t-W re-interval\t\t--re-interval\n" -#: main.c:696 +#: main.c:721 msgid "\t-W source=program-text\t--source=program-text\n" msgstr "\t-W source=tekst-programu\t--source=tekst-programu\n" -#: main.c:697 +#: main.c:722 msgid "\t-W traditional\t\t--traditional\n" msgstr "\t-W traditional\t\t--traditional\n" -#: main.c:698 +#: main.c:723 msgid "\t-W usage\t\t--usage\n" msgstr "\t-W usage\t\t--usage\n" -#: main.c:699 +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "" + +#: main.c:725 msgid "\t-W version\t\t--version\n" msgstr "\t-W version\t\t--version\n" -#: main.c:703 +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 msgid "" "\n" "To report bugs, see node `Bugs' in `gawk.info', which is\n" @@ -1594,7 +1619,7 @@ "dokumentacji.\n" "\n" -#: main.c:707 +#: main.c:738 msgid "" "gawk is a pattern scanning and processing language.\n" "By default it reads standard input and writes standard output.\n" @@ -1604,7 +1629,7 @@ "Program domylnie czyta standardowe wejcie i zapisuje standardowe wyjcie.\n" "\n" -#: main.c:711 +#: main.c:742 msgid "" "Examples:\n" "\tgawk '{ sum += $1 }; END { print sum }' file\n" @@ -1614,14 +1639,14 @@ "\tgawk '{ suma += $1 }; END { print suma }' plik\n" "\tgawk -F: '{ print $1 }' /etc/passwd\n" -#: main.c:731 +#: main.c:762 #, c-format msgid "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" +"the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" msgstr "" @@ -1629,11 +1654,11 @@ "\n" "Ten program jest wolnym oprogramowaniem; moesz go rozprowadza dalej\n" "i/lub modyfikowa na warunkach Powszechnej Licencji Publicznej GNU,\n" -"wydanej przez Fundacj Wolnego Oprogramowania - wedug wersji 2-giej\n" +"wydanej przez Fundacj Wolnego Oprogramowania - wedug wersji 3-giej\n" "tej Licencji lub ktrej z pniejszych wersji.\n" "\n" -#: main.c:739 +#: main.c:770 msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -1648,23 +1673,22 @@ "Powszechn Licencj Publiczn GNU.\n" "\n" -#: main.c:745 +#: main.c:781 +#, fuzzy msgid "" "You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" msgstr "" "Z pewnoci wraz z niniejszym programem otrzymae te egzemplarz\n" "Powszechnej Licencji Publicznej GNU (GNU General Public License);\n" "jeli za nie - napisz do Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\n" -#: main.c:781 +#: main.c:816 msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft nie ustawia FS na znak tabulatora w POSIX awk" -#: main.c:1018 +#: main.c:1060 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -1673,35 +1697,35 @@ "%s: argument `%s' dla `-v' nie jest zgodny ze skadni `zmienna=warto'\n" "\n" -#: main.c:1038 +#: main.c:1080 #, c-format msgid "`%s' is not a legal variable name" msgstr "`%s' nie jest dozwolon nazw zmiennej" -#: main.c:1041 +#: main.c:1083 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "`%s' nie jest nazw zmiennej, szukanie pliku `%s=%s'" -#: main.c:1074 +#: main.c:1122 msgid "floating point exception" msgstr "wyjtek zmiennopozycyjny" -#: main.c:1081 +#: main.c:1129 msgid "fatal error: internal error" msgstr "fatalny bd: wewntrzny bd" -#: main.c:1132 +#: main.c:1180 #, c-format msgid "no pre-opened fd %d" msgstr "brak ju otwartego fd %d" -#: main.c:1139 +#: main.c:1187 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "nie mona otworzy zawczasu /dev/null dla fd %d" -#: main.c:1162 main.c:1171 +#: main.c:1210 main.c:1219 #, c-format msgid "could not find groups: %s" msgstr "nie mona znale grup: %s" @@ -1723,23 +1747,28 @@ msgid "fatal: " msgstr "fatalny bd: " -#: node.c:59 node.c:66 node.c:75 node.c:90 node.c:119 +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 msgid "can't convert string to float" msgstr "nie mona zamieni acucha do liczby zmiennopozycyjnej" -#: node.c:414 +#: node.c:406 msgid "backslash at end of string" msgstr "backslash na kocu acucha" -#: node.c:604 +#: node.c:548 +#, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "stary awk nie wspiera sekwencji ucieczki `\\%c'" + +#: node.c:599 msgid "POSIX does not allow `\\x' escapes" msgstr "POSIX nie zezwala na sekwencj ucieczki `\\x'" -#: node.c:610 +#: node.c:605 msgid "no hex digits in `\\x' escape sequence" msgstr "brak liczb szesnastkowych w sekwencji ucieczki `\\x'" -#: node.c:644 +#: node.c:639 #, c-format msgid "escape sequence `\\%c' treated as plain `%c'" msgstr "sekwencja ucieczki `\\%c' potraktowana jako zwyke `%c'" @@ -1749,31 +1778,31 @@ msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" msgstr "%s %s `%s': nie mona ustawi close-on-exec: (fcntl: %s)" -#: profile.c:91 +#: profile.c:92 #, c-format msgid "could not open `%s' for writing: %s" msgstr "nie mona otworzy `%s' do zapisu: %s" -#: profile.c:467 +#: profile.c:450 #, c-format msgid "internal error: %s with null vname" msgstr "wewntrzny bd: %s z zerowym vname" -#: profile.c:531 +#: profile.c:514 msgid "# treated internally as `delete'" msgstr "# potraktowany wewntrznie jako `delete'" -#: profile.c:1168 +#: profile.c:1147 #, c-format msgid "# this is a dynamically loaded extension function" msgstr "# to jest dynamicznie adowana funkcja rozszerzenie" -#: profile.c:1199 +#: profile.c:1178 #, c-format msgid "\t# gawk profile, created %s\n" msgstr "\t# profil programu gawk, utworzony %s\n" -#: profile.c:1202 +#: profile.c:1181 #, c-format msgid "" "\t# BEGIN block(s)\n" @@ -1782,7 +1811,7 @@ "\t# blok(i) BEGIN\n" "\n" -#: profile.c:1212 +#: profile.c:1191 #, c-format msgid "" "\t# Rule(s)\n" @@ -1791,7 +1820,7 @@ "\t# Reguy\n" "\n" -#: profile.c:1218 +#: profile.c:1197 #, c-format msgid "" "\t# END block(s)\n" @@ -1800,7 +1829,7 @@ "\t# blok(i) END\n" "\n" -#: profile.c:1238 +#: profile.c:1217 #, c-format msgid "" "\n" @@ -1809,83 +1838,86 @@ "\n" "\t# Funkcje, spis alfabetyczny\n" -#: profile.c:1453 +#: profile.c:1470 #, c-format msgid "unexpected type %s in prec_level" msgstr "niespodziewany typ %s w prec_level" -#: regcomp.c:160 +#: regcomp.c:132 msgid "Success" msgstr "Sukces" -#: regcomp.c:163 +#: regcomp.c:135 msgid "No match" msgstr "Brak dopasowania" -#: regcomp.c:166 +#: regcomp.c:138 msgid "Invalid regular expression" msgstr "Nieprawidowe wyraenie regularne" -#: regcomp.c:169 +#: regcomp.c:141 msgid "Invalid collation character" msgstr "Nieprawidowy znak porwnania" -#: regcomp.c:172 +#: regcomp.c:144 msgid "Invalid character class name" msgstr "Nieprawidowa nazwa klasy znaku" -#: regcomp.c:175 +#: regcomp.c:147 msgid "Trailing backslash" msgstr "Kocowy znak backslash" -#: regcomp.c:178 +#: regcomp.c:150 msgid "Invalid back reference" msgstr "Nieprawidowe odwoanie wsteczne" -#: regcomp.c:181 +#: regcomp.c:153 msgid "Unmatched [ or [^" msgstr "Niedopasowany znak [ lub [^" -#: regcomp.c:184 +#: regcomp.c:156 msgid "Unmatched ( or \\(" msgstr "Niedopasowany znak ( lub \\(" -#: regcomp.c:187 +#: regcomp.c:159 msgid "Unmatched \\{" msgstr "Niedopasowany znak \\{" -#: regcomp.c:190 +#: regcomp.c:162 msgid "Invalid content of \\{\\}" msgstr "Nieprawidowa zawarto \\{\\}" -#: regcomp.c:193 +#: regcomp.c:165 msgid "Invalid range end" msgstr "Nieprawidowy koniec zakresu" -#: regcomp.c:196 +#: regcomp.c:168 msgid "Memory exhausted" msgstr "Pami wyczerpana" -#: regcomp.c:199 +#: regcomp.c:171 msgid "Invalid preceding regular expression" msgstr "Nieprawidowe poprzedzajce wyraenie regularne" -#: regcomp.c:202 +#: regcomp.c:174 msgid "Premature end of regular expression" msgstr "Przedwczesny koniec wyraenia regularnego" -#: regcomp.c:205 +#: regcomp.c:177 msgid "Regular expression too big" msgstr "Wyraenie regularne jest zbyt due" -#: regcomp.c:208 +#: regcomp.c:180 msgid "Unmatched ) or \\)" msgstr "Niedopasowany znak ) lub \\)" -#: regcomp.c:688 +#: regcomp.c:664 msgid "No previous regular expression" msgstr "Brak poprzedniego wyraenia regularnego" +#~ msgid "remote port invalid in `%s'" +#~ msgstr "nieprawidowy zdalny port w `%s'" + #~ msgid "function %s called\n" #~ msgstr "wywoano funkcj %s\n" diff -urN gawk-3.1.5/po/pt_BR.po gawk-3.1.6/po/pt_BR.po --- gawk-3.1.5/po/pt_BR.po 2005-07-06 17:20:04.000000000 +0300 +++ gawk-3.1.6/po/pt_BR.po 2007-09-30 22:33:27.000000000 +0200 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: gawk 3.1.2g\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" -"POT-Creation-Date: 2005-07-06 17:20+0300\n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" "PO-Revision-Date: 2003-06-26 16:18+0300\n" "Last-Translator: Juan Carlos Castro y Castro \n" "Language-Team: Brazilian Portuguese \n" @@ -35,350 +35,365 @@ msgid "from %s" msgstr "de %s" -#: array.c:511 +#: array.c:514 #, c-format msgid "reference to uninitialized element `%s[\"%s\"]'" msgstr "referncia a elemento no inicializado `%s[\"%s\"]'" -#: array.c:517 +#: array.c:520 #, c-format msgid "subscript of array `%s' is null string" msgstr "ndice do vetor `%s' uma string nula" -#: array.c:621 +#: array.c:624 #, c-format msgid "delete: index `%s' not in array `%s'" msgstr "delete: ndice `%s' no est no vetor `%s'" -#: array.c:791 +#: array.c:793 #, c-format msgid "%s: empty (null)\n" msgstr "%s: vazio (nulo)\n" -#: array.c:796 +#: array.c:798 #, c-format msgid "%s: empty (zero)\n" msgstr "%s: vazio (zero)\n" -#: array.c:800 +#: array.c:802 #, c-format msgid "%s: table_size = %d, array_size = %d\n" msgstr "%s: table_size = %d, array_size = %d\n" -#: array.c:829 +#: array.c:831 #, c-format msgid "%s: is parameter\n" msgstr "%s: parmetro\n" -#: array.c:834 +#: array.c:836 #, c-format msgid "%s: array_ref to %s\n" msgstr "%s: array_ref para %s\n" -#: awkgram.y:208 +#: awkgram.y:215 #, c-format msgid "%s blocks must have an action part" msgstr "blocos %s devem ter uma parte de ao" -#: awkgram.y:211 +#: awkgram.y:218 msgid "each rule must have a pattern or an action part" msgstr "cada regra deve ter um padro ou uma parte de ao" -#: awkgram.y:267 +#: awkgram.y:254 awkgram.y:263 +#, fuzzy +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "o velho awk no suporta o operador `**'" + +#: awkgram.y:282 #, c-format msgid "`%s' is a built-in function, it cannot be redefined" msgstr "`%s' uma funo intrnseca, no pode ser redefinida" -#: awkgram.y:313 +#: awkgram.y:328 #, fuzzy msgid "regexp constant `//' looks like a C++ comment, but is not" msgstr "constante de expr. reg. `/%s/' parece um comentrio C, mas no " -#: awkgram.y:316 +#: awkgram.y:331 #, c-format msgid "regexp constant `/%s/' looks like a C comment, but is not" msgstr "constante de expr. reg. `/%s/' parece um comentrio C, mas no " -#: awkgram.y:343 awkgram.y:623 +#: awkgram.y:358 awkgram.y:653 msgid "statement may have no effect" msgstr "declarao pode no ter efeito" -#: awkgram.y:440 awkgram.y:460 +#: awkgram.y:455 awkgram.y:479 #, c-format msgid "`%s' used in %s action" msgstr "`%s' usado em ao %s" -#: awkgram.y:453 awkgram.y:456 +#: awkgram.y:470 awkgram.y:474 msgid "`nextfile' is a gawk extension" msgstr "`nextfile' uma extenso do gawk" -#: awkgram.y:470 +#: awkgram.y:489 msgid "`return' used outside function context" msgstr "`return' usado fora do contexto de funo" -#: awkgram.y:512 +#: awkgram.y:531 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" msgstr "" "`print' sozinho em regra BEGIN ou END provavelmente deveria ser `print \"\"'" -#: awkgram.y:525 awkgram.y:532 +#: awkgram.y:547 awkgram.y:555 msgid "`delete array' is a gawk extension" msgstr "`delete array' uma extenso do gawk" -#: awkgram.y:540 awkgram.y:547 +#: awkgram.y:569 awkgram.y:577 msgid "`delete(array)' is a non-portable tawk extension" msgstr "`delete(array)' uma extenso no-portvel do tawk" -#: awkgram.y:591 +#: awkgram.y:621 #, c-format msgid "duplicate case values in switch body: %s" msgstr "valores de case duplicados no corpo do switch: %s" -#: awkgram.y:601 +#: awkgram.y:631 msgid "Duplicate `default' detected in switch body" msgstr "Detectado `default' duplicado no corpo do switch" -#: awkgram.y:690 +#: awkgram.y:720 msgid "multistage two-way pipelines don't work" msgstr "pipelines bidirecionais de mltiplos estgios no funcionam" -#: awkgram.y:781 +#: awkgram.y:811 msgid "regular expression on right of assignment" msgstr "expresso regular direita de atribuio" -#: awkgram.y:804 +#: awkgram.y:834 msgid "regular expression on left of `~' or `!~' operator" msgstr "expresso regular esquerda de operador `~' ou `!~'" -#: awkgram.y:812 +#: awkgram.y:840 awkgram.y:913 +#, fuzzy +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "o velho awk no suporta o operador `**'" + +#: awkgram.y:846 msgid "regular expression on right of comparison" msgstr "expresso regular direita de comparao" -#: awkgram.y:879 +#: awkgram.y:903 msgid "non-redirected `getline' undefined inside END action" msgstr "`getline' no-redirecionado no definido dentro da ao END" -#: awkgram.y:906 +#: awkgram.y:914 +#, fuzzy +msgid "old awk does not support multidimensional arrays" +msgstr "o velho awk no suporta o operador `**'" + +#: awkgram.y:960 msgid "call of `length' without parentheses is not portable" msgstr "chamada a `length' sem parnteses no portvel" -#: awkgram.y:909 +#: awkgram.y:965 msgid "call of `length' without parentheses is deprecated by POSIX" msgstr "chamada a `length' sem parnteses obsoleta de acordo com POSIX" -#: awkgram.y:962 +#: awkgram.y:1019 msgid "use of non-array as array" msgstr "uso de no-vetor como vetor" -#: awkgram.y:964 +#: awkgram.y:1022 msgid "invalid subscript expression" msgstr "expresso de ndice invlida" -#: awkgram.y:1171 +#: awkgram.y:1249 msgid "unexpected newline or end of string" msgstr "fim de linha ou de string inesperado" -#: awkgram.y:1267 +#: awkgram.y:1366 msgid "empty program text on command line" msgstr "texto de programa vazio na linha de comando" -#: awkgram.y:1320 +#: awkgram.y:1422 #, c-format msgid "can't open source file `%s' for reading (%s)" msgstr "impossvel abrir arquivo-fonte `%s' para leitura (%s)" -#: awkgram.y:1397 +#: awkgram.y:1520 #, c-format msgid "can't read sourcefile `%s' (%s)" msgstr "impossvel ler arquivo-fonte `%s' (%s)" -#: awkgram.y:1405 +#: awkgram.y:1528 #, c-format msgid "source file `%s' is empty" msgstr "arquivo-fonte `%s' est vazio" -#: awkgram.y:1596 awkgram.y:1718 awkgram.y:1736 awkgram.y:2107 awkgram.y:2194 +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 msgid "source file does not end in newline" msgstr "arquivo-fonte no termina em fim-de-linha" -#: awkgram.y:1658 +#: awkgram.y:1782 msgid "unterminated regexp ends with `\\' at end of file" msgstr "expresso regular inacabada termina com `\\' ao fim do arquivo" -#: awkgram.y:1682 +#: awkgram.y:1806 #, c-format msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -#: awkgram.y:1686 +#: awkgram.y:1810 #, c-format msgid "tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -#: awkgram.y:1693 +#: awkgram.y:1817 msgid "unterminated regexp" msgstr "expresso regular inacabada" -#: awkgram.y:1696 +#: awkgram.y:1820 msgid "unterminated regexp at end of file" msgstr "expresso regular inacabada no fim do arquivo" -#: awkgram.y:1762 +#: awkgram.y:1889 msgid "use of `\\ #...' line continuation is not portable" msgstr "uso da continuao de linha `\\ #...' no portvel" -#: awkgram.y:1774 +#: awkgram.y:1902 msgid "backslash not last character on line" msgstr "`\\' no o ltimo caracter da linha" -#: awkgram.y:1819 +#: awkgram.y:1947 msgid "POSIX does not allow operator `**='" msgstr "POSIX no permite o operador `**='" -#: awkgram.y:1821 +#: awkgram.y:1949 msgid "old awk does not support operator `**='" msgstr "o velho awk no suporta o operador `**='" -#: awkgram.y:1830 +#: awkgram.y:1958 msgid "POSIX does not allow operator `**'" msgstr "POSIX no permite o operador `**'" -#: awkgram.y:1832 +#: awkgram.y:1960 msgid "old awk does not support operator `**'" msgstr "o velho awk no suporta o operador `**'" -#: awkgram.y:1863 +#: awkgram.y:1991 msgid "operator `^=' is not supported in old awk" msgstr "o velho awk no suporta o operador `^='" -#: awkgram.y:1871 +#: awkgram.y:1999 msgid "operator `^' is not supported in old awk" msgstr "o velho awk no suporta o operador `^'" -#: awkgram.y:1955 awkgram.y:1970 +#: awkgram.y:2083 awkgram.y:2098 msgid "unterminated string" msgstr "string inacabada" -#: awkgram.y:2155 +#: awkgram.y:2283 #, c-format msgid "invalid char '%c' in expression" msgstr "caracter invlido '%c' em expresso" -#: awkgram.y:2203 +#: awkgram.y:2331 #, c-format msgid "`%s' is a gawk extension" msgstr "`%s' uma extenso do gawk" -#: awkgram.y:2206 +#: awkgram.y:2334 #, c-format msgid "`%s' is a Bell Labs extension" msgstr "`%s' uma extenso da Bell Labs" -#: awkgram.y:2209 +#: awkgram.y:2337 #, c-format msgid "POSIX does not allow `%s'" msgstr "POSIX no permite `%s'" -#: awkgram.y:2213 +#: awkgram.y:2341 #, c-format msgid "`%s' is not supported in old awk" msgstr "`%s' no suportado no velho awk" -#: awkgram.y:2239 +#: awkgram.y:2367 msgid "`goto' considered harmful!\n" msgstr "`goto' considerado danoso!\n" -#: awkgram.y:2301 +#: awkgram.y:2429 #, c-format msgid "%d is invalid as number of arguments for %s" msgstr "%d invlido como nmero de argumentos para %s" -#: awkgram.y:2320 awkgram.y:2323 +#: awkgram.y:2448 awkgram.y:2451 msgid "match: third argument is a gawk extension" msgstr "match: terceiro argumento uma extenso do gawk" -#: awkgram.y:2336 +#: awkgram.y:2464 #, c-format msgid "%s: string literal as last arg of substitute has no effect" msgstr "" "%s: string literal como ltimo argumento de substituio no tem efeito" -#: awkgram.y:2339 +#: awkgram.y:2467 #, c-format msgid "%s third parameter is not a changeable object" msgstr "terceiro parmetro %s no um objeto modificvel" -#: awkgram.y:2366 awkgram.y:2369 +#: awkgram.y:2494 awkgram.y:2497 msgid "close: second argument is a gawk extension" msgstr "close: segundo argumento uma extenso do gawk" -#: awkgram.y:2379 +#: awkgram.y:2507 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" msgstr "uso de dcgettext(_\"...\") incorreto: remova o `_' precedente" -#: awkgram.y:2394 +#: awkgram.y:2522 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" msgstr "uso de dcngettext(_\"...\") incorreto: remova o `_' precedente" -#: awkgram.y:2465 +#: awkgram.y:2594 #, c-format msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" msgstr "funo `%s': parmetro #%d, `%s', duplica parmetro #%d" -#: awkgram.y:2498 +#: awkgram.y:2627 #, c-format msgid "function `%s': parameter `%s' shadows global variable" msgstr "funo `%s': parmetro `%s' encobre varivel global" -#: awkgram.y:2610 +#: awkgram.y:2739 #, c-format msgid "could not open `%s' for writing (%s)" msgstr "impossvel abrir `%s' para escrita (%s)" -#: awkgram.y:2611 profile.c:93 +#: awkgram.y:2740 profile.c:94 msgid "sending profile to standard error" msgstr "enviando perfil para sada de erros" -#: awkgram.y:2643 +#: awkgram.y:2772 #, c-format msgid "%s: close failed (%s)" msgstr "%s: `close' falhou (%s)" -#: awkgram.y:2764 +#: awkgram.y:2893 msgid "shadow_funcs() called twice!" msgstr "shadow_funcs() chamada duas vezes!" -#: awkgram.y:2791 +#: awkgram.y:2920 msgid "there were shadowed variables." msgstr "houve variveis encobertas." -#: awkgram.y:2864 +#: awkgram.y:2993 #, c-format msgid "function `%s': can't use function name as parameter name" msgstr "funo `%s': no se pode usar o nome da funo como nome de parmetro" -#: awkgram.y:2874 +#: awkgram.y:3003 #, c-format msgid "function name `%s' previously defined" msgstr "nome de funo `%s' definido anteriormente" -#: awkgram.y:3025 awkgram.y:3031 +#: awkgram.y:3154 awkgram.y:3160 #, c-format msgid "function `%s' called but never defined" msgstr "funo `%s' chamada mas nunca definida" -#: awkgram.y:3034 +#: awkgram.y:3163 #, c-format msgid "function `%s' defined but never called" msgstr "funo `%s' definida mas nunca chamada" -#: awkgram.y:3061 +#: awkgram.y:3190 #, c-format msgid "regexp constant for parameter #%d yields boolean value" msgstr "" "constante com expr. regular para parmetro n %d retorna valor booleano" -#: awkgram.y:3105 +#: awkgram.y:3234 #, fuzzy, c-format msgid "" "function `%s' called with space between name and `(',\n" @@ -387,198 +402,198 @@ "funo `%s' chamada com espao entre o nome e o `(',\n" "%s" -#: builtin.c:145 +#: builtin.c:119 #, c-format msgid "%s to \"%s\" failed (%s)" msgstr "%s para \"%s\" falhou (%s)" -#: builtin.c:146 +#: builtin.c:120 msgid "standard output" msgstr "sada padro" -#: builtin.c:147 +#: builtin.c:121 msgid "reason unknown" msgstr "motivo desconhecido" -#: builtin.c:160 +#: builtin.c:134 msgid "exp: received non-numeric argument" msgstr "exp: recebeu argumento no-numrico" -#: builtin.c:166 +#: builtin.c:140 #, c-format msgid "exp: argument %g is out of range" msgstr "exp: argumento %g est fora da faixa" -#: builtin.c:224 +#: builtin.c:198 #, c-format msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" msgstr "" "fflush: erro ao descarregar: pipe `%s' aberto para leitura, no gravao" -#: builtin.c:227 +#: builtin.c:201 #, c-format msgid "fflush: cannot flush: file `%s' opened for reading, not writing" msgstr "" "fflush: erro ao descarregar: arquivo `%s' aberto para leitura, no gravao" -#: builtin.c:239 +#: builtin.c:213 #, c-format msgid "fflush: `%s' is not an open file, pipe or co-process" msgstr "fflush: `%s' no um arquivo aberto, pipe ou co-processo" -#: builtin.c:332 +#: builtin.c:306 msgid "index: received non-string first argument" msgstr "index: recebeu primeiro argumento no-string" -#: builtin.c:334 +#: builtin.c:308 msgid "index: received non-string second argument" msgstr "index: recebeu segundo argumento no-string" -#: builtin.c:449 +#: builtin.c:423 msgid "int: received non-numeric argument" msgstr "int: recebeu argumento no-numrico" -#: builtin.c:472 +#: builtin.c:448 #, fuzzy msgid "`length(array)' is a gawk extension" msgstr "`delete array' uma extenso do gawk" -#: builtin.c:481 +#: builtin.c:458 msgid "length: received non-string argument" msgstr "length: recebeu argumento no-string" -#: builtin.c:506 +#: builtin.c:483 msgid "log: received non-numeric argument" msgstr "log: recebeu argumento no-numrico" -#: builtin.c:509 +#: builtin.c:486 #, c-format msgid "log: received negative argument %g" msgstr "log: recebeu argumento negativo %g" -#: builtin.c:673 builtin.c:676 +#: builtin.c:693 builtin.c:696 msgid "must use `count$' on all formats or none" msgstr "deve usar `count$' em todos os formatos ou nenhum" -#: builtin.c:778 +#: builtin.c:799 msgid "`$' is not permitted in awk formats" msgstr "`$' no permitido em formatos awk" -#: builtin.c:784 +#: builtin.c:805 msgid "arg count with `$' must be > 0" msgstr "n de argumentos com `$' deve ser > 0" -#: builtin.c:786 +#: builtin.c:807 #, c-format msgid "arg count %ld greater than total number of supplied arguments" msgstr "n de argumentos %ld maior que n total de argumentos fornecidos" -#: builtin.c:788 +#: builtin.c:809 msgid "`$' not permitted after period in format" msgstr "`$' no permitido depois de ponto no formato" -#: builtin.c:801 +#: builtin.c:822 msgid "no `$' supplied for positional field width or precision" msgstr "nenhum `$' fornecido para tamanho ou preciso de campo posicional" -#: builtin.c:867 +#: builtin.c:888 msgid "`l' is meaningless in awk formats; ignored" msgstr "`l' no faz sentido em formatos awk; ignorado" -#: builtin.c:871 +#: builtin.c:892 msgid "`l' is not permitted in POSIX awk formats" msgstr "`l' no permitido em formatos POSIX awk" -#: builtin.c:882 +#: builtin.c:903 msgid "`L' is meaningless in awk formats; ignored" msgstr "`L' no faz sentido em formatos awk; ignorado" -#: builtin.c:886 +#: builtin.c:907 msgid "`L' is not permitted in POSIX awk formats" msgstr "`L' no permitido em formatos POSIX awk" -#: builtin.c:897 +#: builtin.c:918 msgid "`h' is meaningless in awk formats; ignored" msgstr "`h' no faz sentido em formatos awk; ignorado" -#: builtin.c:901 +#: builtin.c:922 msgid "`h' is not permitted in POSIX awk formats" msgstr "`h' no permitido em formatos POSIX awk" -#: builtin.c:1132 +#: builtin.c:1182 #, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" msgstr "[s]printf: valor %g fora da faixa para formato `%%%c'" -#: builtin.c:1198 +#: builtin.c:1266 msgid "not enough arguments to satisfy format string" msgstr "argumentos insuficientes para a string de formato" -#: builtin.c:1200 +#: builtin.c:1268 msgid "^ ran out for this one" msgstr "^ acabou para este aqui" -#: builtin.c:1205 +#: builtin.c:1274 msgid "[s]printf: format specifier does not have control letter" msgstr "[s]printf: declarao de formato no tem letra de controle" -#: builtin.c:1208 +#: builtin.c:1277 msgid "too many arguments supplied for format string" msgstr "excesso de argumentos para a string de formato" -#: builtin.c:1274 builtin.c:1277 +#: builtin.c:1352 builtin.c:1355 msgid "printf: no arguments" msgstr "printf: nenhum argumento" -#: builtin.c:1301 +#: builtin.c:1379 msgid "sqrt: received non-numeric argument" msgstr "sqrt: recebeu argumento no-numrico" -#: builtin.c:1305 +#: builtin.c:1383 #, c-format msgid "sqrt: called with negative argument %g" msgstr "sqrt: chamada com argumento negativo %g" -#: builtin.c:1329 +#: builtin.c:1407 #, c-format msgid "substr: start index %g is invalid, using 1" msgstr "substr: posio inicial %g invlida, usando 1" -#: builtin.c:1334 +#: builtin.c:1412 #, c-format msgid "substr: non-integer start index %g will be truncated" msgstr "substr: posio inicial %g no-inteira ser truncada" -#: builtin.c:1353 +#: builtin.c:1431 #, fuzzy, c-format msgid "substr: length %g is not >= 1" msgstr "substr: comprimento %g <= 0" -#: builtin.c:1355 +#: builtin.c:1433 #, fuzzy, c-format msgid "substr: length %g is not >= 0" msgstr "substr: comprimento %g <= 0" -#: builtin.c:1362 +#: builtin.c:1440 #, c-format msgid "substr: non-integer length %g will be truncated" msgstr "substr: comprimento %g no-inteiro ser truncado" -#: builtin.c:1367 +#: builtin.c:1445 #, c-format msgid "substr: length %g too big for string indexing, truncating to %g" msgstr "substr: comprimento %g excessivo para indexao, truncando para %g" -#: builtin.c:1379 +#: builtin.c:1457 msgid "substr: source string is zero length" msgstr "substr: string origem tem comprimento zero" -#: builtin.c:1395 +#: builtin.c:1473 #, c-format msgid "substr: start index %g is past end of string" msgstr "substr: posio inicial %g alm do fim da string" -#: builtin.c:1403 +#: builtin.c:1481 #, c-format msgid "" "substr: length %g at start index %g exceeds length of first argument (%lu)" @@ -586,187 +601,187 @@ "substr: comprimento %g a partir da posio %g excede tamanho do 1 argumento " "(%lu)" -#: builtin.c:1478 +#: builtin.c:1558 msgid "strftime: received non-string first argument" msgstr "strftime: recebeu primeiro argumento no-string" -#: builtin.c:1484 +#: builtin.c:1564 msgid "strftime: received empty format string" msgstr "strftime: recebeu string de formato vazia" -#: builtin.c:1493 +#: builtin.c:1573 msgid "strftime: received non-numeric second argument" msgstr "strftime: recebeu segundo argumento no-numrico" -#: builtin.c:1556 +#: builtin.c:1650 msgid "mktime: received non-string argument" msgstr "mktime: recebeu argumento no-string" -#: builtin.c:1601 +#: builtin.c:1695 msgid "system: received non-string argument" msgstr "system: recebeu argumento no-string" -#: builtin.c:1722 eval.c:2039 +#: builtin.c:1816 eval.c:2041 #, c-format msgid "reference to uninitialized field `$%d'" msgstr "referncia a campo no inicializado `$%d'" -#: builtin.c:1827 +#: builtin.c:1921 msgid "tolower: received non-string argument" msgstr "tolower: recebeu argumento no-string" -#: builtin.c:1857 +#: builtin.c:1951 msgid "toupper: received non-string argument" msgstr "toupper: recebeu argumento no-string" -#: builtin.c:1890 +#: builtin.c:1984 msgid "atan2: received non-numeric first argument" msgstr "atan2: recebeu primeiro argumento no-numrico" -#: builtin.c:1892 +#: builtin.c:1986 msgid "atan2: received non-numeric second argument" msgstr "atan2: recebeu segundo argumento no-numrico" -#: builtin.c:1911 +#: builtin.c:2005 msgid "sin: received non-numeric argument" msgstr "sin: recebeu argumento no-numrico" -#: builtin.c:1927 +#: builtin.c:2021 msgid "cos: received non-numeric argument" msgstr "cos: recebeu argumento no-numrico" -#: builtin.c:1977 +#: builtin.c:2071 msgid "srand: received non-numeric argument" msgstr "srand: recebeu argumento no-numrico" -#: builtin.c:2012 +#: builtin.c:2106 msgid "match: third argument is not an array" msgstr "match: terceiro argumento no um vetor" -#: builtin.c:2555 +#: builtin.c:2650 msgid "gensub: third argument of 0 treated as 1" msgstr "gensub: 3 argumento 0 tratado como 1" -#: builtin.c:2715 +#: builtin.c:2766 msgid "lshift: received non-numeric first argument" msgstr "lshift: recebeu primeiro argumento no-numrico" -#: builtin.c:2717 +#: builtin.c:2768 #, fuzzy msgid "lshift: received non-numeric second argument" msgstr "strftime: recebeu segundo argumento no-numrico" -#: builtin.c:2723 +#: builtin.c:2774 #, c-format msgid "lshift(%lf, %lf): negative values will give strange results" msgstr "lshift(%lf, %lf): valores negativos daro resultados estranhos" -#: builtin.c:2725 +#: builtin.c:2776 #, c-format msgid "lshift(%lf, %lf): fractional values will be truncated" msgstr "lshift(%lf, %lf): valores fracionrios sero truncados" -#: builtin.c:2727 +#: builtin.c:2778 #, c-format msgid "lshift(%lf, %lf): too large shift value will give strange results" msgstr "lshift(%lf, %lf): deslocamento excessivo dar resultados estranhos" -#: builtin.c:2753 +#: builtin.c:2804 msgid "rshift: received non-numeric first argument" msgstr "rshift: recebeu primeiro argumento no-numrico" -#: builtin.c:2755 +#: builtin.c:2806 #, fuzzy msgid "rshift: received non-numeric second argument" msgstr "strftime: recebeu segundo argumento no-numrico" -#: builtin.c:2761 +#: builtin.c:2812 #, c-format msgid "rshift(%lf, %lf): negative values will give strange results" msgstr "rshift(%lf, %lf): valores negativos daro resultados estranhos" -#: builtin.c:2763 +#: builtin.c:2814 #, c-format msgid "rshift(%lf, %lf): fractional values will be truncated" msgstr "rshift(%lf, %lf): valores fracionrios sero truncados" -#: builtin.c:2765 +#: builtin.c:2816 #, c-format msgid "rshift(%lf, %lf): too large shift value will give strange results" msgstr "rshift(%lf, %lf): deslocamento excessivo dar resultados estranhos" -#: builtin.c:2791 +#: builtin.c:2842 msgid "and: received non-numeric first argument" msgstr "and: recebeu primeiro argumento no-numrico" -#: builtin.c:2793 +#: builtin.c:2844 #, fuzzy msgid "and: received non-numeric second argument" msgstr "atan2: recebeu segundo argumento no-numrico" -#: builtin.c:2799 +#: builtin.c:2850 #, c-format msgid "and(%lf, %lf): negative values will give strange results" msgstr "and(%lf, %lf): valores negativos daro resultados estranhos" -#: builtin.c:2801 +#: builtin.c:2852 #, c-format msgid "and(%lf, %lf): fractional values will be truncated" msgstr "and(%lf, %lf): valores fracionrios sero truncados" -#: builtin.c:2827 +#: builtin.c:2878 msgid "or: received non-numeric first argument" msgstr "or: recebeu primeiro argumento no-numrico" -#: builtin.c:2829 +#: builtin.c:2880 #, fuzzy msgid "or: received non-numeric second argument" msgstr "atan2: recebeu segundo argumento no-numrico" -#: builtin.c:2835 +#: builtin.c:2886 #, c-format msgid "or(%lf, %lf): negative values will give strange results" msgstr "or(%lf, %lf): valores negativos daro resultados estranhos" -#: builtin.c:2837 +#: builtin.c:2888 #, c-format msgid "or(%lf, %lf): fractional values will be truncated" msgstr "or(%lf, %lf): valores fracionrios sero truncados" -#: builtin.c:2863 +#: builtin.c:2914 msgid "xor: received non-numeric first argument" msgstr "xor: recebeu primeiro argumento no-numrico" -#: builtin.c:2865 +#: builtin.c:2916 #, fuzzy msgid "xor: received non-numeric second argument" msgstr "atan2: recebeu segundo argumento no-numrico" -#: builtin.c:2871 +#: builtin.c:2922 #, c-format msgid "xor(%lf, %lf): negative values will give strange results" msgstr "xor(%lf, %lf): valores negativos daro resultados estranhos" -#: builtin.c:2873 +#: builtin.c:2924 #, c-format msgid "xor(%lf, %lf): fractional values will be truncated" msgstr "xor(%lf, %lf): valores fracionrios sero truncados" -#: builtin.c:2897 +#: builtin.c:2948 msgid "compl: received non-numeric argument" msgstr "compl: recebeu primeiro argumento no-numrico" -#: builtin.c:2903 +#: builtin.c:2954 #, c-format msgid "compl(%lf): negative value will give strange results" msgstr "compl(%lf): valores negativos daro resultados estranhos" -#: builtin.c:2905 +#: builtin.c:2956 #, c-format msgid "compl(%lf): fractional value will be truncated" msgstr "compl(%lf): valores fracionrios sero truncados" -#: builtin.c:3078 +#: builtin.c:3129 #, c-format msgid "dcgettext: `%s' is not a valid locale category" msgstr "dcgettext: `%s' no uma categoria de \"locale\" vlida" @@ -780,7 +795,7 @@ msgid "buffer overflow in genflags2str" msgstr "estouro de buffer em genflags2str" -#: eval.c:385 eval.c:391 profile.c:838 +#: eval.c:385 eval.c:391 profile.c:817 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "tentativa de usar vetor `%s' em um contexto escalar" @@ -827,7 +842,7 @@ msgid "statement has no effect" msgstr "declarao no tem efeito" -#: eval.c:952 eval.c:1893 +#: eval.c:952 eval.c:1895 #, c-format msgid "can't use function name `%s' as variable or array" msgstr "no se pode usar o nome de funo `%s' como varivel ou vetor" @@ -837,7 +852,7 @@ msgid "reference to uninitialized argument `%s'" msgstr "referncia a argumento no inicializado `%s'" -#: eval.c:974 eval.c:1902 +#: eval.c:974 eval.c:1904 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "referncia a varivel no inicializada `%s'" @@ -850,44 +865,44 @@ "concatenao: efeitos colaterais em um contexto mudaram o comprimento de " "outro!" -#: eval.c:1200 +#: eval.c:1202 msgid "assignment used in conditional context" msgstr "atribuio usada em contexto condicional" -#: eval.c:1278 +#: eval.c:1280 msgid "division by zero attempted" msgstr "tentativa de diviso por zero" -#: eval.c:1293 +#: eval.c:1295 #, c-format msgid "division by zero attempted in `%%'" msgstr "tentativa de diviso por zero em `%%'" -#: eval.c:1308 profile.c:714 +#: eval.c:1310 profile.c:693 #, c-format msgid "illegal type (%s) in tree_eval" msgstr "tipo ilegal (%s) em tree_eval" -#: eval.c:1471 +#: eval.c:1473 msgid "division by zero attempted in `/='" msgstr "tentativa de diviso por zero em `/='" -#: eval.c:1493 +#: eval.c:1495 #, c-format msgid "division by zero attempted in `%%='" msgstr "tentativa de diviso por zero em `%%='" -#: eval.c:1758 +#: eval.c:1760 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "funo `%s' chamada com mais argumentos que os declarados" -#: eval.c:1802 +#: eval.c:1804 #, c-format msgid "function `%s' not defined" msgstr "funo `%s' no definida" -#: eval.c:1865 +#: eval.c:1867 #, c-format msgid "" "\n" @@ -898,660 +913,674 @@ "\t# Pilha de Chamadas de Funo:\n" "\n" -#: eval.c:1868 +#: eval.c:1870 #, c-format msgid "\t# -- main --\n" msgstr "\t# -- main --\n" -#: eval.c:2023 +#: eval.c:2025 msgid "attempt to field reference from non-numeric value" msgstr "tentativa de referncia a campo a partir de valor no-numrico" -#: eval.c:2025 +#: eval.c:2027 msgid "attempt to reference from null string" msgstr "tentativa de referncia a partir de string nula" -#: eval.c:2031 +#: eval.c:2033 #, c-format msgid "attempt to access field %d" msgstr "tentativa de acessar campo %d" -#: eval.c:2052 eval.c:2059 profile.c:935 +#: eval.c:2054 eval.c:2061 profile.c:914 msgid "assignment is not allowed to result of builtin function" msgstr "atribuio no pode resultar de funes intrnsecas" -#: eval.c:2123 +#: eval.c:2125 msgid "`IGNORECASE' is a gawk extension" msgstr "`IGNORECASE' uma extenso do gawk" -#: eval.c:2153 +#: eval.c:2155 msgid "`BINMODE' is a gawk extension" msgstr "`BINMODE' uma extenso do gawk" -#: eval.c:2275 +#: eval.c:2277 #, c-format msgid "bad `%sFMT' specification `%s'" msgstr "especificao `%sFMT' invlida `%s'" -#: eval.c:2353 +#: eval.c:2355 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "desativando `--lint' devido a atribuio a `LINT'" -#: ext.c:60 ext.c:64 +#: ext.c:62 ext.c:67 msgid "`extension' is a gawk extension" msgstr "`extension' uma extenso do gawk" -#: ext.c:74 +#: ext.c:77 #, c-format msgid "extension: cannot open `%s' (%s)\n" msgstr "extension: impossvel abrir `%s' (%s)\n" -#: ext.c:82 +#: ext.c:85 #, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "extension: biblioteca `%s': impossvel chamar funo `%s' (%s)\n" -#: ext.c:102 +#: ext.c:105 msgid "extension: missing function name" msgstr "" -#: ext.c:107 +#: ext.c:110 #, fuzzy, c-format msgid "extension: illegal character `%c' in function name `%s'" msgstr "extension: biblioteca `%s': impossvel chamar funo `%s' (%s)\n" -#: ext.c:113 +#: ext.c:116 #, fuzzy, c-format msgid "extension: can't redefine function `%s'" msgstr "extension: impossvel abrir `%s' (%s)\n" -#: ext.c:117 +#: ext.c:120 #, fuzzy, c-format msgid "extension: function `%s' already defined" msgstr "funo `%s' no definida" -#: ext.c:122 +#: ext.c:125 #, c-format msgid "extension: can't use gawk built-in `%s' as function name" msgstr "" -#: ext.c:124 +#: ext.c:127 #, fuzzy, c-format msgid "extension: function name `%s' previously defined" msgstr "nome de funo `%s' definido anteriormente" -#: ext.c:201 +#: ext.c:204 #, fuzzy, c-format msgid "function `%s' defined to take no more than %d argument(s)" msgstr "funo `%s' definida mas nunca chamada" -#: ext.c:204 +#: ext.c:207 #, fuzzy, c-format msgid "function `%s': missing argument #%d" msgstr "funo `%s' no definida" -#: ext.c:214 +#: ext.c:217 #, fuzzy, c-format msgid "function `%s': argument #%d: attempt to use scalar as an array" msgstr "tentativa de usar escalar `%s' como vetor" -#: ext.c:218 +#: ext.c:221 #, c-format msgid "function `%s': argument #%d: attempt to use array as a scalar" msgstr "" -#: ext.c:243 +#: ext.c:246 msgid "Operation Not Supported" msgstr "Operao No Suportada" -#: field.c:326 +#: field.c:330 msgid "NF set to negative value" msgstr "valor negativo atribudo a NF" -#: field.c:819 +#: field.c:823 msgid "split: second argument is not an array" msgstr "split: segundo argumento no um vetor" -#: field.c:853 +#: field.c:857 msgid "split: null string for third arg is a gawk extension" msgstr "split: string nula para segundo argumento uma extenso do gawk" -#: field.c:905 +#: field.c:909 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "`FIELDWIDTHS' uma extenso do gawk" -#: field.c:935 field.c:946 +#: field.c:939 field.c:953 #, c-format msgid "invalid FIELDWIDTHS value, near `%s'" msgstr "" -#: field.c:1027 +#: field.c:1036 msgid "null string for `FS' is a gawk extension" msgstr "string nula para `FS' uma extenso do gawk" -#: getopt.c:571 getopt.c:590 +#: field.c:1040 +#, fuzzy +msgid "old awk does not support regexps as value of `FS'" +msgstr "o velho awk no suporta o operador `**'" + +#: getopt.c:571 getopt.c:587 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: opo `%s' ambgua\n" -#: getopt.c:623 getopt.c:627 +#: getopt.c:620 getopt.c:624 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: opo `--%s' no aceita argumento\n" -#: getopt.c:636 getopt.c:641 +#: getopt.c:633 getopt.c:638 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: opo `%c%s' no aceita argumento\n" -#: getopt.c:687 getopt.c:709 getopt.c:1040 getopt.c:1062 +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: opo `%s' requer argumento\n" -#: getopt.c:747 getopt.c:750 +#: getopt.c:738 getopt.c:741 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: opo no reconhecida `--%s'\n" -#: getopt.c:758 getopt.c:761 +#: getopt.c:749 getopt.c:752 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: opo no reconhecida `%c%s'\n" -#: getopt.c:816 getopt.c:819 +#: getopt.c:804 getopt.c:807 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: opo ilegal -- %c\n" -#: getopt.c:825 getopt.c:828 +#: getopt.c:813 getopt.c:816 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: opo invlida -- %c\n" -#: getopt.c:883 getopt.c:902 getopt.c:1115 getopt.c:1136 main.c:448 +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: opo requer argumento -- %c\n" -#: getopt.c:955 getopt.c:974 +#: getopt.c:937 getopt.c:953 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: opo `-W %s' ambgua\n" -#: getopt.c:998 getopt.c:1019 +#: getopt.c:977 getopt.c:995 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: opo `-W %s' no aceita argumento\n" -#: io.c:307 +#: io.c:345 #, c-format msgid "cannot open file `%s' for reading (%s)" msgstr "impossvel abrir arquivo `%s' para leitura (%s)" -#: io.c:398 +#: io.c:436 #, c-format msgid "close of fd %d (`%s') failed (%s)" msgstr "fechamento do descritor %d (`%s') falhou (%s)" -#: io.c:536 +#: io.c:575 #, c-format msgid "invalid tree type %s in redirect()" msgstr "tipo de rvore %s invlido em redirect()" -#: io.c:542 +#: io.c:581 #, c-format msgid "expression in `%s' redirection only has numeric value" msgstr "expresso no redirecionamento `%s' s tem valor numrico" -#: io.c:548 +#: io.c:587 #, c-format msgid "expression for `%s' redirection has null string value" msgstr "expresso para o redirecionamento `%s' tem valor string nulo" -#: io.c:553 +#: io.c:592 #, c-format msgid "filename `%s' for `%s' redirection may be result of logical expression" msgstr "" "nome de arquivo `%s' para redirecionamento `%s' pode ser resultado de " "expresso lgica" -#: io.c:591 +#: io.c:630 #, c-format msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" msgstr "mistura desnecessria de `>' e `>>' para arquivo `%.*s'" -#: io.c:643 +#: io.c:682 #, c-format msgid "can't open pipe `%s' for output (%s)" msgstr "impossvel abrir pipe `%s' para sada (%s)" -#: io.c:652 +#: io.c:691 #, c-format msgid "can't open pipe `%s' for input (%s)" msgstr "impossvel abrir pipe `%s' para entrada (%s)" -#: io.c:665 +#: io.c:698 io.c:1448 +#, c-format +msgid "file `%s' is a directory" +msgstr "arquivo `%s' um diretrio" + +#: io.c:706 #, c-format msgid "can't open two way socket `%s' for input/output (%s)" msgstr "impossvel abrir socket bidirecional `%s' para entrada/sada (%s)" -#: io.c:669 +#: io.c:710 #, c-format msgid "can't open two way pipe `%s' for input/output (%s)" msgstr "impossvel abrir pipe bidirecional `%s' para entrada/sada (%s)" -#: io.c:745 +#: io.c:786 #, c-format msgid "can't redirect from `%s' (%s)" msgstr "impossvel redirecionar de `%s' (%s)" -#: io.c:748 +#: io.c:789 #, c-format msgid "can't redirect to `%s' (%s)" msgstr "impossvel redirecionar para `%s' (%s)" -#: io.c:787 +#: io.c:828 msgid "" "reached system limit for open files: starting to multiplex file descriptors" msgstr "" "alcanado limite do sistema para arquivos abertos; comeando a multiplexar " "descritores de arquivos" -#: io.c:803 +#: io.c:844 #, c-format msgid "close of `%s' failed (%s)." msgstr "fechamento de `%s' falhou (%s)" -#: io.c:811 +#: io.c:852 msgid "too many pipes or input files open" msgstr "excesso de pipes ou arquivos de entrada abertos" -#: io.c:834 +#: io.c:875 msgid "close: second argument must be `to' or `from'" msgstr "close: segundo argumento deve ser `to' ou `from'" -#: io.c:848 +#: io.c:889 #, c-format msgid "close: `%.*s' is not an open file, pipe or co-process" msgstr "close: `%.*s' no um arquivo aberto, pipe ou co-processo" -#: io.c:852 +#: io.c:893 msgid "close of redirection that was never opened" msgstr "fechamento de redirecionamento que nunca foi aberto" -#: io.c:948 +#: io.c:989 #, c-format msgid "close: redirection `%s' not opened with `|&', second argument ignored" msgstr "" "close: redirecionamento `%s' no foi aberto com `|&', segundo argumento " "ignorado" -#: io.c:964 +#: io.c:1005 #, c-format msgid "failure status (%d) on pipe close of `%s' (%s)" msgstr "status de falha (%d) ao fechar pipe de `%s' (%s)" -#: io.c:967 +#: io.c:1008 #, c-format msgid "failure status (%d) on file close of `%s' (%s)" msgstr "status de falha (%d) ao fechar arquivo de `%s' (%s)" -#: io.c:987 +#: io.c:1028 #, c-format msgid "no explicit close of socket `%s' provided" msgstr "fechamento explcito do socket `%s' no fornecido" -#: io.c:990 +#: io.c:1031 #, c-format msgid "no explicit close of co-process `%s' provided" msgstr "fechamento explcito do co-processo `%s' no fornecido" -#: io.c:993 +#: io.c:1034 #, c-format msgid "no explicit close of pipe `%s' provided" msgstr "fechamento explcito do pipe `%s' no fornecido" -#: io.c:996 +#: io.c:1037 #, c-format msgid "no explicit close of file `%s' provided" msgstr "fechamento explcito do arquivo `%s' no fornecido" -#: io.c:1025 io.c:1080 main.c:718 main.c:756 +#: io.c:1066 io.c:1121 main.c:749 main.c:791 #, c-format msgid "error writing standard output (%s)" msgstr "erro ao escrever na sada padro (%s)" -#: io.c:1029 io.c:1085 +#: io.c:1070 io.c:1126 #, c-format msgid "error writing standard error (%s)" msgstr "erro ao escrever na sada padro de erros (%s)" -#: io.c:1037 +#: io.c:1078 #, c-format msgid "pipe flush of `%s' failed (%s)." msgstr "descarga de pipe de `%s' falhou (%s)." -#: io.c:1040 +#: io.c:1081 #, c-format msgid "co-process flush of pipe to `%s' failed (%s)." msgstr "descarga de co-processo de pipe para `%s' falhou (%s)." -#: io.c:1043 +#: io.c:1084 #, c-format msgid "file flush of `%s' failed (%s)." msgstr "descarga de arquivo de `%s' falhou (%s)." -#: io.c:1205 +#: io.c:1198 +#, fuzzy, c-format +msgid "local port %s invalid in `/inet'" +msgstr "porta local invlida em `%s'" + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "" + +#: io.c:1250 msgid "/inet/raw client not ready yet, sorry" msgstr "infelizmente, o cliente de /inet/raw no est concludo" -#: io.c:1207 io.c:1244 +#: io.c:1253 io.c:1289 msgid "only root may use `/inet/raw'." msgstr "apenas root pode usar `/inet/raw'." -#: io.c:1242 +#: io.c:1287 msgid "/inet/raw server not ready yet, sorry" msgstr "infelizmente, o servidor de /inet/raw no est concludo" -#: io.c:1332 +#: io.c:1385 #, c-format msgid "no (known) protocol supplied in special filename `%s'" msgstr "" "nenhum protocolo (conhecido) fornecido em nome de arquivo especial `%s'" -#: io.c:1350 +#: io.c:1399 #, c-format msgid "special file name `%s' is incomplete" msgstr "nome de arquivo especial `%s' est incompleto" -#: io.c:1362 -#, c-format -msgid "local port invalid in `%s'" -msgstr "porta local invlida em `%s'" - -#: io.c:1374 +#: io.c:1414 msgid "must supply a remote hostname to `/inet'" msgstr "deve ser fornecido um nome de host remoto para `/inet'" -#: io.c:1389 +#: io.c:1432 msgid "must supply a remote port to `/inet'" msgstr "deve ser fornecida uma porta remota para `/inet'" -#: io.c:1395 -#, c-format -msgid "remote port invalid in `%s'" -msgstr "porta remota invlida em `%s'" - -#: io.c:1405 +#: io.c:1439 msgid "TCP/IP communications are not supported" msgstr "comunicao TCP/IP no suportada" -#: io.c:1414 io.c:1595 -#, c-format -msgid "file `%s' is a directory" -msgstr "arquivo `%s' um diretrio" - -#: io.c:1484 +#: io.c:1509 #, c-format msgid "use `PROCINFO[\"%s\"]' instead of `%s'" msgstr "use `PROCINFO[\"%s\"]' em vez de `%s'" -#: io.c:1516 +#: io.c:1547 msgid "use `PROCINFO[...]' instead of `/dev/user'" msgstr "use `PROCINFO[...]' em vez de `/dev/user'" -#: io.c:1581 io.c:1763 +#: io.c:1612 io.c:1798 #, c-format msgid "could not open `%s', mode `%s'" msgstr "impossvel abrir `%s', modo `%s'" -#: io.c:1814 +#: io.c:1849 #, c-format msgid "close of master pty failed (%s)" msgstr "falha ao fechar pty mestre (%s)" -#: io.c:1816 io.c:1968 io.c:2119 +#: io.c:1851 io.c:2003 io.c:2154 #, c-format msgid "close of stdout in child failed (%s)" msgstr "falha ao fechar stdout em filho (%s)" -#: io.c:1819 +#: io.c:1854 #, c-format msgid "moving slave pty to stdout in child failed (dup: %s)" msgstr "falha ao mover pty escrava para stdout em filho (dup: %s)" -#: io.c:1821 io.c:1973 +#: io.c:1856 io.c:2008 #, c-format msgid "close of stdin in child failed (%s)" msgstr "falha ao fechar stdin em filho (%s)" -#: io.c:1824 +#: io.c:1859 #, c-format msgid "moving slave pty to stdin in child failed (dup: %s)" msgstr "falha ao mover pty escrava para stdin em filho (dup: %s)" -#: io.c:1826 io.c:1845 +#: io.c:1861 io.c:1880 #, c-format msgid "close of slave pty failed (%s)" msgstr "falha ao fechar pty escrava (%s)" -#: io.c:1919 io.c:1971 io.c:2100 io.c:2122 +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 #, c-format msgid "moving pipe to stdout in child failed (dup: %s)" msgstr "falha ao mover pipe para stdout em processo pai (dup: %s)" -#: io.c:1923 io.c:1976 +#: io.c:1958 io.c:2011 #, c-format msgid "moving pipe to stdin in child failed (dup: %s)" msgstr "falha ao mover pipe para stdin em processo pai (dup: %s)" -#: io.c:1940 io.c:2113 +#: io.c:1975 io.c:2148 msgid "restoring stdout in parent process failed\n" msgstr "falha ao restaurar stdout em processo pai\n" -#: io.c:1945 +#: io.c:1980 msgid "restoring stdin in parent process failed\n" msgstr "falha ao restaurar stdin em processo pai\n" -#: io.c:1979 io.c:2124 io.c:2135 +#: io.c:2014 io.c:2159 io.c:2170 #, c-format msgid "close of pipe failed (%s)" msgstr "falha ao fechar pipe (%s)" -#: io.c:2024 +#: io.c:2059 msgid "`|&' not supported" msgstr "`|&' no suportado" -#: io.c:2090 +#: io.c:2125 #, c-format msgid "cannot open pipe `%s' (%s)" msgstr "impossvel abrir pipe `%s' (%s)" -#: io.c:2131 +#: io.c:2166 #, c-format msgid "cannot create child process for `%s' (fork: %s)" msgstr "impossvel criar processo filho para `%s' (fork: %s)" -#: io.c:2506 +#: io.c:2548 #, c-format msgid "data file `%s' is empty" msgstr "arquivo de dados `%s' vazio" -#: io.c:2547 io.c:2555 +#: io.c:2589 io.c:2597 msgid "could not allocate more input memory" msgstr "impossvel alocar mais memria de entrada" -#: io.c:2919 io.c:2984 +#: io.c:2965 io.c:3038 #, c-format msgid "error reading input file `%s': %s" msgstr "erro ao ler arquivo de entrada `%s': %s" -#: io.c:3109 +#: io.c:3163 msgid "multicharacter value of `RS' is a gawk extension" msgstr "valor de mltiplos caracteres para `RS' uma extenso do gawk" -#: main.c:338 +#: main.c:351 msgid "`-m[fr]' option irrelevant in gawk" msgstr "opo `-m[fr] irrelevante no gawk" -#: main.c:340 +#: main.c:353 msgid "-m option usage: `-m[fr] nnn'" msgstr "uso da opo -m: `-m[fr] nnn'" -#: main.c:357 +#: main.c:370 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: opo `-W %s' no reconhecida, ignorada\n" -#: main.c:394 +#: main.c:407 msgid "empty argument to `--source' ignored" msgstr "argumento vazio para --source ignorado" -#: main.c:467 +#: main.c:480 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" msgstr "varivel de ambiente `POSIXLY_CORRECT' ativada: ligando `--posix'" -#: main.c:472 +#: main.c:486 msgid "`--posix' overrides `--traditional'" msgstr "`--posix' sobrepe `--traditional'" -#: main.c:483 +#: main.c:497 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" msgstr "`--posix'/`--traditional' sobrepe `--non-decimal-data'" -#: main.c:487 +#: main.c:501 #, c-format msgid "running %s setuid root may be a security problem" msgstr "rodar %s com setuid root pode ser um problema de segurana" -#: main.c:528 +#: main.c:542 #, c-format msgid "can't set binary mode on stdin (%s)" msgstr "impossvel ativar modo binrio em stdin (%s)" -#: main.c:531 +#: main.c:545 #, c-format msgid "can't set binary mode on stdout (%s)" msgstr "impossvel ativar modo binrio em stdout (%s)" -#: main.c:533 +#: main.c:547 #, c-format msgid "can't set binary mode on stderr (%s)" msgstr "impossvel ativar modo binrio em stderr (%s)" -#: main.c:572 +#: main.c:586 msgid "no program text at all!" msgstr "nenhum texto de programa" -#: main.c:665 +#: main.c:690 #, c-format msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" msgstr "Uso: %s [opes estilo POSIX ou GNU] -f arqprog [--] arquivo ...\n" -#: main.c:667 +#: main.c:692 #, c-format msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" msgstr "Uso: %s [opes estilo POSIX ou GNU] [--] %cprograma%c arquivo ...\n" -#: main.c:672 +#: main.c:697 msgid "POSIX options:\t\tGNU long options:\n" msgstr "Opes POSIX: \t\tOpes longas GNU:\n" -#: main.c:673 +#: main.c:698 msgid "\t-f progfile\t\t--file=progfile\n" msgstr "\t-f arqprog \t\t--file=arqprog\n" -#: main.c:674 +#: main.c:699 msgid "\t-F fs\t\t\t--field-separator=fs\n" msgstr "\t-F fs\t\t\t--field-separator=fs\n" -#: main.c:675 +#: main.c:700 msgid "\t-v var=val\t\t--assign=var=val\n" msgstr "\t-v var=val\t\t--assign=var=val\n" -#: main.c:676 +#: main.c:701 msgid "\t-m[fr] val\n" msgstr "\t-m[fr] val\n" -#: main.c:677 +#: main.c:702 msgid "\t-W compat\t\t--compat\n" msgstr "\t-W compat\t\t--compat\n" -#: main.c:678 +#: main.c:703 msgid "\t-W copyleft\t\t--copyleft\n" msgstr "\t-W copyleft\t\t--copyleft\n" -#: main.c:679 +#: main.c:704 msgid "\t-W copyright\t\t--copyright\n" msgstr "\t-W copyright\t\t--copyright\n" -#: main.c:680 +#: main.c:705 msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" msgstr "\t-W dump-variables[=arq] \t--dump-variables[=arq]\n" -#: main.c:681 +#: main.c:706 #, fuzzy msgid "\t-W exec=file\t\t--exec=file\n" msgstr "\t-W profile[=arq] \t--profile[=arq]\n" -#: main.c:682 +#: main.c:707 msgid "\t-W gen-po\t\t--gen-po\n" msgstr "\t-W gen-po\t\t--gen-po\n" -#: main.c:683 +#: main.c:708 msgid "\t-W help\t\t\t--help\n" msgstr "\t-W help\t\t\t--help\n" -#: main.c:684 +#: main.c:709 msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" msgstr "\t-W lint[=fatal]\t\t--lint[=fatal]\n" -#: main.c:685 +#: main.c:710 msgid "\t-W lint-old\t\t--lint-old\n" msgstr "\t-W lint-old\t\t--lint-old\n" -#: main.c:686 +#: main.c:711 msgid "\t-W non-decimal-data\t--non-decimal-data\n" msgstr "\t-W non-decimal-data\t--non-decimal-data\n" -#: main.c:688 +#: main.c:713 msgid "\t-W nostalgia\t\t--nostalgia\n" msgstr "\t-W nostalgia\t\t--nostalgia\n" -#: main.c:691 +#: main.c:716 msgid "\t-W parsedebug\t\t--parsedebug\n" msgstr "\t-W parsedebug\t\t--parsedebug\n" -#: main.c:693 +#: main.c:718 msgid "\t-W profile[=file]\t--profile[=file]\n" msgstr "\t-W profile[=arq] \t--profile[=arq]\n" -#: main.c:694 +#: main.c:719 msgid "\t-W posix\t\t--posix\n" msgstr "\t-W posix\t\t--posix\n" -#: main.c:695 +#: main.c:720 msgid "\t-W re-interval\t\t--re-interval\n" msgstr "\t-W re-interval\t\t--re-interval\n" -#: main.c:696 +#: main.c:721 msgid "\t-W source=program-text\t--source=program-text\n" msgstr "\t-W source=program-text\t--source=program-text\n" -#: main.c:697 +#: main.c:722 msgid "\t-W traditional\t\t--traditional\n" msgstr "\t-W traditional\t\t--traditional\n" -#: main.c:698 +#: main.c:723 msgid "\t-W usage\t\t--usage\n" msgstr "\t-W usage\t\t--usage\n" -#: main.c:699 +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "" + +#: main.c:725 msgid "\t-W version\t\t--version\n" msgstr "\t-W version\t\t--version\n" -#: main.c:703 +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 msgid "" "\n" "To report bugs, see node `Bugs' in `gawk.info', which is\n" @@ -1563,7 +1592,7 @@ "seo `Reportando Problemas e Bugs' na verso impressa.\n" "\n" -#: main.c:707 +#: main.c:738 msgid "" "gawk is a pattern scanning and processing language.\n" "By default it reads standard input and writes standard output.\n" @@ -1573,7 +1602,7 @@ "Por padro, o gawk l a entrada padro e escreve na sada padro.\n" "\n" -#: main.c:711 +#: main.c:742 msgid "" "Examples:\n" "\tgawk '{ sum += $1 }; END { print sum }' file\n" @@ -1583,14 +1612,14 @@ "\tgawk '{ soma += $1 }; END { print soma }' arquivo\n" "\tgawk -F: '{ print $1 }' /etc/passwd\n" -#: main.c:731 +#: main.c:762 #, c-format msgid "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" +"the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" msgstr "" @@ -1598,11 +1627,11 @@ "\n" "Este programa Software Livre; voc pode redistribu-lo e/ou modific-lo\n" "de acordo com os termos da Licena Pblica Geral GNU (GNU GPL) na " -"formapublicada pela Free Software Foundation; ou a verso 2 da licena ou " +"formapublicada pela Free Software Foundation; ou a verso 3 da licena ou " "(aoseu critrio) qualquer verso posterior.\n" "\n" -#: main.c:739 +#: main.c:770 msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -1614,23 +1643,22 @@ "QUALQUER GARANTIA. Veja a Licena Pblica Geral GNU (GNU GPL)\n" "para mais detalhes.\n" -#: main.c:745 +#: main.c:781 +#, fuzzy msgid "" "You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" msgstr "" "Voc deve ter recebido uma cpia da Licena Pblica Geral GNU (GNU GPL)\n" "junto com este programa; caso contrrio, escreva Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " "USA.\n" -#: main.c:781 +#: main.c:816 msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft no faz FS ser tab no awk POSIX" -#: main.c:1018 +#: main.c:1060 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -1639,35 +1667,35 @@ "%s: argumento `%s' para `-v' no est na forma `var=valor'\n" "\n" -#: main.c:1038 +#: main.c:1080 #, c-format msgid "`%s' is not a legal variable name" msgstr "`%s' no um nome legal de varivel" -#: main.c:1041 +#: main.c:1083 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "`%s' no um nome de varivel, procurando arquivo `%s=%s'" -#: main.c:1074 +#: main.c:1122 msgid "floating point exception" msgstr "exceo de ponto flutuante" -#: main.c:1081 +#: main.c:1129 msgid "fatal error: internal error" msgstr "erro fatal: erro interno" -#: main.c:1132 +#: main.c:1180 #, c-format msgid "no pre-opened fd %d" msgstr "nenhum descritor pr-aberto %d" -#: main.c:1139 +#: main.c:1187 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "impossvel pr-abrir /dev/null para descritor %d" -#: main.c:1162 main.c:1171 +#: main.c:1210 main.c:1219 #, c-format msgid "could not find groups: %s" msgstr "impossvel achar grupos: %s" @@ -1689,23 +1717,28 @@ msgid "fatal: " msgstr "fatal: " -#: node.c:59 node.c:66 node.c:75 node.c:90 node.c:119 +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 msgid "can't convert string to float" msgstr "impossvel converter string para float" -#: node.c:414 +#: node.c:406 msgid "backslash at end of string" msgstr "barra invertida (\\) no fim da string" -#: node.c:604 +#: node.c:548 +#, fuzzy, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "o velho awk no suporta o operador `**'" + +#: node.c:599 msgid "POSIX does not allow `\\x' escapes" msgstr "POSIX no permite escapes do tipo `\\x'" -#: node.c:610 +#: node.c:605 msgid "no hex digits in `\\x' escape sequence" msgstr "nenhum dgito hexa em seqncia de escape `\\x'" -#: node.c:644 +#: node.c:639 #, c-format msgid "escape sequence `\\%c' treated as plain `%c'" msgstr "seqncia de escape `\\%c' tratada como `%c' normal" @@ -1715,31 +1748,31 @@ msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" msgstr "%s %s `%s': impossvel ativar fechar-ao-executar: (fcntl: %s)" -#: profile.c:91 +#: profile.c:92 #, c-format msgid "could not open `%s' for writing: %s" msgstr "impossvel abrir `%s' para escrita: %s" -#: profile.c:467 +#: profile.c:450 #, c-format msgid "internal error: %s with null vname" msgstr "erro interno: %s com vname nulo" -#: profile.c:531 +#: profile.c:514 msgid "# treated internally as `delete'" msgstr "# tratado internamente como `delete'" -#: profile.c:1168 +#: profile.c:1147 #, c-format msgid "# this is a dynamically loaded extension function" msgstr "" -#: profile.c:1199 +#: profile.c:1178 #, c-format msgid "\t# gawk profile, created %s\n" msgstr "\t# perfil gawk, criado %s\n" -#: profile.c:1202 +#: profile.c:1181 #, c-format msgid "" "\t# BEGIN block(s)\n" @@ -1748,7 +1781,7 @@ "\t# bloco(s) BEGIN\n" "\n" -#: profile.c:1212 +#: profile.c:1191 #, c-format msgid "" "\t# Rule(s)\n" @@ -1757,7 +1790,7 @@ "\t# Regra(s)\n" "\n" -#: profile.c:1218 +#: profile.c:1197 #, c-format msgid "" "\t# END block(s)\n" @@ -1766,7 +1799,7 @@ "\t# bloco(s) END\n" "\n" -#: profile.c:1238 +#: profile.c:1217 #, c-format msgid "" "\n" @@ -1775,83 +1808,86 @@ "\n" "\t# Funes, listadas alfabeticamente\n" -#: profile.c:1453 +#: profile.c:1470 #, c-format msgid "unexpected type %s in prec_level" msgstr "tipo inesperado %s em prec_level" -#: regcomp.c:160 +#: regcomp.c:132 msgid "Success" msgstr "Sucesso" -#: regcomp.c:163 +#: regcomp.c:135 msgid "No match" msgstr "Sem combinao" -#: regcomp.c:166 +#: regcomp.c:138 msgid "Invalid regular expression" msgstr "Expresso regular invlida" -#: regcomp.c:169 +#: regcomp.c:141 msgid "Invalid collation character" msgstr "Caracter de combinao invlido" -#: regcomp.c:172 +#: regcomp.c:144 msgid "Invalid character class name" msgstr "Nome de classe de caracter invlido" -#: regcomp.c:175 +#: regcomp.c:147 msgid "Trailing backslash" msgstr "contra-barra (\\) finalizando" -#: regcomp.c:178 +#: regcomp.c:150 msgid "Invalid back reference" msgstr "Referncia anterior invlida" -#: regcomp.c:181 +#: regcomp.c:153 msgid "Unmatched [ or [^" msgstr "[ ou [^ no emparelhado" -#: regcomp.c:184 +#: regcomp.c:156 msgid "Unmatched ( or \\(" msgstr "( ou \\( no emparelhado" -#: regcomp.c:187 +#: regcomp.c:159 msgid "Unmatched \\{" msgstr "\\{ no emparelhado" -#: regcomp.c:190 +#: regcomp.c:162 msgid "Invalid content of \\{\\}" msgstr "Contedo invlido de \\{\\}" -#: regcomp.c:193 +#: regcomp.c:165 msgid "Invalid range end" msgstr "Fim de faixa invlido" -#: regcomp.c:196 +#: regcomp.c:168 msgid "Memory exhausted" msgstr "Memria esgotada" -#: regcomp.c:199 +#: regcomp.c:171 msgid "Invalid preceding regular expression" msgstr "Expresso regular anterior invlida" -#: regcomp.c:202 +#: regcomp.c:174 msgid "Premature end of regular expression" msgstr "Fim prematuro da expresso regular" -#: regcomp.c:205 +#: regcomp.c:177 msgid "Regular expression too big" msgstr "Expresso regular grande demais" -#: regcomp.c:208 +#: regcomp.c:180 msgid "Unmatched ) or \\)" msgstr ") ou \\) desemparelhado" -#: regcomp.c:688 +#: regcomp.c:664 msgid "No previous regular expression" msgstr "Nenhuma expresso regular anterior" +#~ msgid "remote port invalid in `%s'" +#~ msgstr "porta remota invlida em `%s'" + #~ msgid "function %s called\n" #~ msgstr "funo %s chamada\n" diff -urN gawk-3.1.5/po/ro.po gawk-3.1.6/po/ro.po --- gawk-3.1.5/po/ro.po 2005-07-06 17:20:05.000000000 +0300 +++ gawk-3.1.6/po/ro.po 2007-09-30 22:33:28.000000000 +0200 @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: gawk 3.1.31\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" -"POT-Creation-Date: 2005-07-06 17:20+0300\n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" "PO-Revision-Date: 2003-09-15 17:48+0300\n" "Last-Translator: Eugen Hoanca \n" "Language-Team: Romanian \n" @@ -34,361 +34,376 @@ msgid "from %s" msgstr "%s (din %s)" -#: array.c:511 +#: array.c:514 #, c-format msgid "reference to uninitialized element `%s[\"%s\"]'" msgstr "referin la elementul neiniializat `%s[\"%s\"]'" -#: array.c:517 +#: array.c:520 #, c-format msgid "subscript of array `%s' is null string" msgstr "nscrierea array-ului `%s' este ir null" -#: array.c:621 +#: array.c:624 #, c-format msgid "delete: index `%s' not in array `%s'" msgstr "delete: indexul `%s' nu este n array-ul `%s'" -#: array.c:791 +#: array.c:793 #, c-format msgid "%s: empty (null)\n" msgstr "%s: vid (null)\n" -#: array.c:796 +#: array.c:798 #, c-format msgid "%s: empty (zero)\n" msgstr "%s: vid (zero)\n" -#: array.c:800 +#: array.c:802 #, c-format msgid "%s: table_size = %d, array_size = %d\n" msgstr "%s: table_size = %d, array_size = %d\n" -#: array.c:829 +#: array.c:831 #, fuzzy, c-format msgid "%s: is parameter\n" msgstr "%s: este parametru!\n" -#: array.c:834 +#: array.c:836 #, c-format msgid "%s: array_ref to %s\n" msgstr "%s: array_ref ctre %s\n" -#: awkgram.y:208 +#: awkgram.y:215 #, fuzzy, c-format msgid "%s blocks must have an action part" msgstr "Blocurile de END trebuie s aib un fragment de aciune" -#: awkgram.y:211 +#: awkgram.y:218 #, fuzzy msgid "each rule must have a pattern or an action part" msgstr "Blocurile de END trebuie s aib un fragment de aciune" -#: awkgram.y:267 +#: awkgram.y:254 awkgram.y:263 +#, fuzzy +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "vechiul awk nu supoort operatorul `**'" + +#: awkgram.y:282 #, c-format msgid "`%s' is a built-in function, it cannot be redefined" msgstr "`%s' este funcie intern, nu poate fi redefinit" -#: awkgram.y:313 +#: awkgram.y:328 #, fuzzy msgid "regexp constant `//' looks like a C++ comment, but is not" msgstr "constanta regexp `/%s/' arat ca un comentariu C, dar nu este" -#: awkgram.y:316 +#: awkgram.y:331 #, c-format msgid "regexp constant `/%s/' looks like a C comment, but is not" msgstr "constanta regexp `/%s/' arat ca un comentariu C, dar nu este" -#: awkgram.y:343 awkgram.y:623 +#: awkgram.y:358 awkgram.y:653 msgid "statement may have no effect" msgstr "declaraia poate s nu aib nici un efect" -#: awkgram.y:440 awkgram.y:460 +#: awkgram.y:455 awkgram.y:479 #, fuzzy, c-format msgid "`%s' used in %s action" msgstr "`next' folosit n aciune BEGIN sau END" -#: awkgram.y:453 awkgram.y:456 +#: awkgram.y:470 awkgram.y:474 msgid "`nextfile' is a gawk extension" msgstr "`nextfile' este extensie gawk" -#: awkgram.y:470 +#: awkgram.y:489 msgid "`return' used outside function context" msgstr "`return' folosit n afara contextului funciei" -#: awkgram.y:512 +#: awkgram.y:531 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" msgstr "" "`print' simplu din regulile BEGIN sau END ar trebui s fie probabil `print " "\"\"'" -#: awkgram.y:525 awkgram.y:532 +#: awkgram.y:547 awkgram.y:555 msgid "`delete array' is a gawk extension" msgstr "`delete array' este extensie gawk" -#: awkgram.y:540 awkgram.y:547 +#: awkgram.y:569 awkgram.y:577 #, fuzzy msgid "`delete(array)' is a non-portable tawk extension" msgstr "`delete array' este extensie gawk" -#: awkgram.y:591 +#: awkgram.y:621 #, c-format msgid "duplicate case values in switch body: %s" msgstr "" -#: awkgram.y:601 +#: awkgram.y:631 msgid "Duplicate `default' detected in switch body" msgstr "" -#: awkgram.y:690 +#: awkgram.y:720 msgid "multistage two-way pipelines don't work" msgstr "legturile(pipelines) bidirecionale multistage nu vor funciona" -#: awkgram.y:781 +#: awkgram.y:811 msgid "regular expression on right of assignment" msgstr "expresie regular n dreapta atribuirii" -#: awkgram.y:804 +#: awkgram.y:834 msgid "regular expression on left of `~' or `!~' operator" msgstr "expresie regular n stnga operatorului `~' sau `!~'" -#: awkgram.y:812 +#: awkgram.y:840 awkgram.y:913 +#, fuzzy +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "vechiul awk nu supoort operatorul `**'" + +#: awkgram.y:846 msgid "regular expression on right of comparison" msgstr "expresie regular n dreapta comparaiei" -#: awkgram.y:879 +#: awkgram.y:903 msgid "non-redirected `getline' undefined inside END action" msgstr "`getline' nedefinit i neredirectat nuntrul unei aciuni END" -#: awkgram.y:906 +#: awkgram.y:914 +#, fuzzy +msgid "old awk does not support multidimensional arrays" +msgstr "vechiul awk nu supoort operatorul `**'" + +#: awkgram.y:960 msgid "call of `length' without parentheses is not portable" msgstr "apelarea lui `legth' fr paranteze nu este portabil" -#: awkgram.y:909 +#: awkgram.y:965 msgid "call of `length' without parentheses is deprecated by POSIX" msgstr "apelarea lui `length' fr paranteze nu mai este folosit n POSIX" -#: awkgram.y:962 +#: awkgram.y:1019 msgid "use of non-array as array" msgstr "" -#: awkgram.y:964 +#: awkgram.y:1022 msgid "invalid subscript expression" msgstr "expresie subscript invalid" -#: awkgram.y:1171 +#: awkgram.y:1249 #, fuzzy msgid "unexpected newline or end of string" msgstr "linie nou neateptat" -#: awkgram.y:1267 +#: awkgram.y:1366 msgid "empty program text on command line" msgstr "text program vid n linia de comand" -#: awkgram.y:1320 +#: awkgram.y:1422 #, c-format msgid "can't open source file `%s' for reading (%s)" msgstr "nu se poate deschide fiierul surs `%s' pentru citire (%s)" -#: awkgram.y:1397 +#: awkgram.y:1520 #, c-format msgid "can't read sourcefile `%s' (%s)" msgstr "nu se poate citi fiierul surs `%s' (%s)" -#: awkgram.y:1405 +#: awkgram.y:1528 #, c-format msgid "source file `%s' is empty" msgstr "fiierul surs `%s' este vid" -#: awkgram.y:1596 awkgram.y:1718 awkgram.y:1736 awkgram.y:2107 awkgram.y:2194 +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 msgid "source file does not end in newline" msgstr "fiierul surs nu se termin n linie nou" -#: awkgram.y:1658 +#: awkgram.y:1782 msgid "unterminated regexp ends with `\\' at end of file" msgstr "regexp-ul neterminat se termin cu `\\'` la sfritul fiierului" -#: awkgram.y:1682 +#: awkgram.y:1806 #, c-format msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -#: awkgram.y:1686 +#: awkgram.y:1810 #, c-format msgid "tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -#: awkgram.y:1693 +#: awkgram.y:1817 msgid "unterminated regexp" msgstr "regexp neterminat" -#: awkgram.y:1696 +#: awkgram.y:1820 msgid "unterminated regexp at end of file" msgstr "regexp neterminat la sfritul fiierului" -#: awkgram.y:1762 +#: awkgram.y:1889 msgid "use of `\\ #...' line continuation is not portable" msgstr "folosirea continurii liniei `\\ #...' nu este portabil" -#: awkgram.y:1774 +#: awkgram.y:1902 msgid "backslash not last character on line" msgstr "backslash nu este ultimul caracter din linie" -#: awkgram.y:1819 +#: awkgram.y:1947 msgid "POSIX does not allow operator `**='" msgstr "POSIX nu permite operatorul `**='" -#: awkgram.y:1821 +#: awkgram.y:1949 msgid "old awk does not support operator `**='" msgstr "vechiul awk nu suport operatorul `**='" -#: awkgram.y:1830 +#: awkgram.y:1958 msgid "POSIX does not allow operator `**'" msgstr "POSIX nu permite operatorul `**'" -#: awkgram.y:1832 +#: awkgram.y:1960 msgid "old awk does not support operator `**'" msgstr "vechiul awk nu supoort operatorul `**'" -#: awkgram.y:1863 +#: awkgram.y:1991 msgid "operator `^=' is not supported in old awk" msgstr "operatorul `^=' nu este suportat n vechiul awk" -#: awkgram.y:1871 +#: awkgram.y:1999 msgid "operator `^' is not supported in old awk" msgstr "operator `^' nu este suportat n vechiul awk" -#: awkgram.y:1955 awkgram.y:1970 +#: awkgram.y:2083 awkgram.y:2098 msgid "unterminated string" msgstr "ir de caractere neterminat" -#: awkgram.y:2155 +#: awkgram.y:2283 #, c-format msgid "invalid char '%c' in expression" msgstr "caracter invalid `%c' n expresie" -#: awkgram.y:2203 +#: awkgram.y:2331 #, c-format msgid "`%s' is a gawk extension" msgstr "`%s' este extensie gawk" -#: awkgram.y:2206 +#: awkgram.y:2334 #, c-format msgid "`%s' is a Bell Labs extension" msgstr "`%s' este extensie Bell Labs" -#: awkgram.y:2209 +#: awkgram.y:2337 #, c-format msgid "POSIX does not allow `%s'" msgstr "POSIX nu permite `%s'" -#: awkgram.y:2213 +#: awkgram.y:2341 #, c-format msgid "`%s' is not supported in old awk" msgstr "`%s' nu este suportat n vechiul awk" -#: awkgram.y:2239 +#: awkgram.y:2367 msgid "`goto' considered harmful!\n" msgstr "`goto' este considerat periculos!\n" -#: awkgram.y:2301 +#: awkgram.y:2429 #, c-format msgid "%d is invalid as number of arguments for %s" msgstr "%d este invalid ca numr de argumente pentru %s" -#: awkgram.y:2320 awkgram.y:2323 +#: awkgram.y:2448 awkgram.y:2451 msgid "match: third argument is a gawk extension" msgstr "match: al treilea argument este extensie gawk" -#: awkgram.y:2336 +#: awkgram.y:2464 #, c-format msgid "%s: string literal as last arg of substitute has no effect" msgstr "" "%s: irul de caractere literal ca ultim argument al nlocuitorului nu are " "nici un efect" -#: awkgram.y:2339 +#: awkgram.y:2467 #, fuzzy, c-format msgid "%s third parameter is not a changeable object" msgstr "al treilea parametru al sub nu este un obiect modificabil" -#: awkgram.y:2366 awkgram.y:2369 +#: awkgram.y:2494 awkgram.y:2497 msgid "close: second argument is a gawk extension" msgstr "close: al doilea argument este extensie gawk" -#: awkgram.y:2379 +#: awkgram.y:2507 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" msgstr "" "folosirea lui dcgettext(_\"...\") este incorect: eliminai liniua_jos de " "la nceput" -#: awkgram.y:2394 +#: awkgram.y:2522 #, fuzzy msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" msgstr "" "folosirea lui dcgettext(_\"...\") este incorect: eliminai liniua_jos de " "la nceput" -#: awkgram.y:2465 +#: awkgram.y:2594 #, c-format msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" msgstr "funcia `%s': parametrul #%d, `%s', parametrul duplicat #%d" -#: awkgram.y:2498 +#: awkgram.y:2627 #, c-format msgid "function `%s': parameter `%s' shadows global variable" msgstr "" "funcia `%s': parametrul `%s' nu mai ine cont de(shadows) variabila global" -#: awkgram.y:2610 +#: awkgram.y:2739 #, c-format msgid "could not open `%s' for writing (%s)" msgstr "nu s-a putut deschide `%s' pentru scriere (%s)" -#: awkgram.y:2611 profile.c:93 +#: awkgram.y:2740 profile.c:94 msgid "sending profile to standard error" msgstr "se trimite profilul la dipsozitivul de eroare standard" -#: awkgram.y:2643 +#: awkgram.y:2772 #, c-format msgid "%s: close failed (%s)" msgstr "%s: nchidere euat (%s)" -#: awkgram.y:2764 +#: awkgram.y:2893 msgid "shadow_funcs() called twice!" msgstr "shadow_funcs() apelat de dou ori!" -#: awkgram.y:2791 +#: awkgram.y:2920 msgid "there were shadowed variables." msgstr "" -#: awkgram.y:2864 +#: awkgram.y:2993 #, c-format msgid "function `%s': can't use function name as parameter name" msgstr "funcia `%s': nu se poate folosi numele funciei ca nume de parametru" -#: awkgram.y:2874 +#: awkgram.y:3003 #, c-format msgid "function name `%s' previously defined" msgstr "numele funciei `%s' a mai fost definit nainte" -#: awkgram.y:3025 awkgram.y:3031 +#: awkgram.y:3154 awkgram.y:3160 #, c-format msgid "function `%s' called but never defined" msgstr "funcia `%s' este apelat dar niciodat definit" -#: awkgram.y:3034 +#: awkgram.y:3163 #, c-format msgid "function `%s' defined but never called" msgstr "funcia `%s' este definit dar niciodat apelat" -#: awkgram.y:3061 +#: awkgram.y:3190 #, c-format msgid "regexp constant for parameter #%d yields boolean value" msgstr "" "regexp constant pentru parametrul #%d solicit(yields) valoare boolean" -#: awkgram.y:3105 +#: awkgram.y:3234 #, fuzzy, c-format msgid "" "function `%s' called with space between name and `(',\n" @@ -397,204 +412,204 @@ "funcia `%s' apelat cu un spaiu ntre nume i `(',\n" "%s" -#: builtin.c:145 +#: builtin.c:119 #, c-format msgid "%s to \"%s\" failed (%s)" msgstr "%s ctre \"%s\" euat (%s)" -#: builtin.c:146 +#: builtin.c:120 msgid "standard output" msgstr "ieire(output) standard" -#: builtin.c:147 +#: builtin.c:121 msgid "reason unknown" msgstr "motiv necunoscut" -#: builtin.c:160 +#: builtin.c:134 msgid "exp: received non-numeric argument" msgstr "exp: s-a primit argument nenumeric" -#: builtin.c:166 +#: builtin.c:140 #, c-format msgid "exp: argument %g is out of range" msgstr "exp: argumentul %g este n afara domeniului" -#: builtin.c:224 +#: builtin.c:198 #, c-format msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" msgstr "" "fflush: nu s-a putut face flush: legtura(pipe) `%s' a fost deschis pentru " "citire, nu scriere" -#: builtin.c:227 +#: builtin.c:201 #, c-format msgid "fflush: cannot flush: file `%s' opened for reading, not writing" msgstr "" "fflush: nu s-a putut face flush: fiierul `%s' a fost deschis pentru citire, " "nu scriere" -#: builtin.c:239 +#: builtin.c:213 #, c-format msgid "fflush: `%s' is not an open file, pipe or co-process" msgstr "fflush: `%s' nu este fiier deschis, legtur(pipe) sau co-proces" -#: builtin.c:332 +#: builtin.c:306 msgid "index: received non-string first argument" msgstr "index: s-a primit un prim argument non-ir de caractere" -#: builtin.c:334 +#: builtin.c:308 msgid "index: received non-string second argument" msgstr "index: s-a primit un al doilea argument non-ir de caractere" -#: builtin.c:449 +#: builtin.c:423 msgid "int: received non-numeric argument" msgstr "int: s-a primit argument nenumeric" -#: builtin.c:472 +#: builtin.c:448 #, fuzzy msgid "`length(array)' is a gawk extension" msgstr "`delete array' este extensie gawk" -#: builtin.c:481 +#: builtin.c:458 msgid "length: received non-string argument" msgstr "legth: s-a primit argument non-string" -#: builtin.c:506 +#: builtin.c:483 msgid "log: received non-numeric argument" msgstr "log: s-a primit argument nenumeric" -#: builtin.c:509 +#: builtin.c:486 #, c-format msgid "log: received negative argument %g" msgstr "log: s-a primit argument %g negativ" -#: builtin.c:673 builtin.c:676 +#: builtin.c:693 builtin.c:696 msgid "must use `count$' on all formats or none" msgstr "" -#: builtin.c:778 +#: builtin.c:799 msgid "`$' is not permitted in awk formats" msgstr "`$' nu este permis n formatele awk" -#: builtin.c:784 +#: builtin.c:805 msgid "arg count with `$' must be > 0" msgstr "numrul de arg cu `%' trebuie s fie > 0" -#: builtin.c:786 +#: builtin.c:807 #, fuzzy, c-format msgid "arg count %ld greater than total number of supplied arguments" msgstr "" "numrul de arg %d este mai mare dect numrul total de argumente furnizate" -#: builtin.c:788 +#: builtin.c:809 msgid "`$' not permitted after period in format" msgstr "`$' nu este permis n format dup punct" -#: builtin.c:801 +#: builtin.c:822 msgid "no `$' supplied for positional field width or precision" msgstr "" "nu s-a furnizat nici un `$' pentru cmpul poziional lungime sau precisie" -#: builtin.c:867 +#: builtin.c:888 msgid "`l' is meaningless in awk formats; ignored" msgstr "`l' nu are sens n formatele awk; ignorat" -#: builtin.c:871 +#: builtin.c:892 msgid "`l' is not permitted in POSIX awk formats" msgstr "`l' nu este permis n formatele awk POSIX" -#: builtin.c:882 +#: builtin.c:903 msgid "`L' is meaningless in awk formats; ignored" msgstr "`L' nu are sens n formatele awk; ignorat" -#: builtin.c:886 +#: builtin.c:907 msgid "`L' is not permitted in POSIX awk formats" msgstr "`L' nu este permis n formatele POSIX awk" -#: builtin.c:897 +#: builtin.c:918 msgid "`h' is meaningless in awk formats; ignored" msgstr "`h' nu are sens n formatele awl; ignorat" -#: builtin.c:901 +#: builtin.c:922 msgid "`h' is not permitted in POSIX awk formats" msgstr "`h' nu este permis n formatele POSIX awk" -#: builtin.c:1132 +#: builtin.c:1182 #, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" msgstr "" -#: builtin.c:1198 +#: builtin.c:1266 msgid "not enough arguments to satisfy format string" msgstr "" "nu exist destule argumente pentru satisfacerea formatului irului de " "caractere" -#: builtin.c:1200 +#: builtin.c:1268 msgid "^ ran out for this one" msgstr "^ insuficient pentru aceasta" -#: builtin.c:1205 +#: builtin.c:1274 msgid "[s]printf: format specifier does not have control letter" msgstr "[s]printf: specificatorul de format nu are liter de control" -#: builtin.c:1208 +#: builtin.c:1277 msgid "too many arguments supplied for format string" msgstr "prea multe argumente furnizate pentru formatul irului de caractere" -#: builtin.c:1274 builtin.c:1277 +#: builtin.c:1352 builtin.c:1355 msgid "printf: no arguments" msgstr "printf: nici un argument" -#: builtin.c:1301 +#: builtin.c:1379 msgid "sqrt: received non-numeric argument" msgstr "sqrt: s-a primit argument nenumeric" -#: builtin.c:1305 +#: builtin.c:1383 #, c-format msgid "sqrt: called with negative argument %g" msgstr "sqrt: apelat cu argumentul negativ %g" -#: builtin.c:1329 +#: builtin.c:1407 #, c-format msgid "substr: start index %g is invalid, using 1" msgstr "substr: indexul de start %g este invalid, se folosete -1" -#: builtin.c:1334 +#: builtin.c:1412 #, c-format msgid "substr: non-integer start index %g will be truncated" msgstr "substr: indexul de start ne-ntreg(integer) %g va fi trunchiat" -#: builtin.c:1353 +#: builtin.c:1431 #, fuzzy, c-format msgid "substr: length %g is not >= 1" msgstr "substr: lungimea %g este <= 0" -#: builtin.c:1355 +#: builtin.c:1433 #, fuzzy, c-format msgid "substr: length %g is not >= 0" msgstr "substr: lungimea %g este <= 0" -#: builtin.c:1362 +#: builtin.c:1440 #, c-format msgid "substr: non-integer length %g will be truncated" msgstr "substr lungimea ne-ntregului(integer) %g va fi trunchiat" -#: builtin.c:1367 +#: builtin.c:1445 #, c-format msgid "substr: length %g too big for string indexing, truncating to %g" msgstr "" -#: builtin.c:1379 +#: builtin.c:1457 msgid "substr: source string is zero length" msgstr "substr: irul de caractere surs are lungime zero" -#: builtin.c:1395 +#: builtin.c:1473 #, fuzzy, c-format msgid "substr: start index %g is past end of string" msgstr "substr: indexul de start %d este fostul sfrit de ir de caractere" -#: builtin.c:1403 +#: builtin.c:1481 #, fuzzy, c-format msgid "" "substr: length %g at start index %g exceeds length of first argument (%lu)" @@ -602,195 +617,195 @@ "substr: lungimea %d la indexul de start %d depete lungimea primului " "argument (%d)" -#: builtin.c:1478 +#: builtin.c:1558 #, fuzzy msgid "strftime: received non-string first argument" msgstr "strftime: s-a primit primul argument non ir de caractere" -#: builtin.c:1484 +#: builtin.c:1564 msgid "strftime: received empty format string" msgstr "strftime: s-a primit ir de caractere n format vid" -#: builtin.c:1493 +#: builtin.c:1573 #, fuzzy msgid "strftime: received non-numeric second argument" msgstr "strftime: s-a primit un al doilea argument nenumeric" -#: builtin.c:1556 +#: builtin.c:1650 msgid "mktime: received non-string argument" msgstr "mktime: s-a primit argument non ir de caractere" -#: builtin.c:1601 +#: builtin.c:1695 #, fuzzy msgid "system: received non-string argument" msgstr "system: s-a primit argument non ir de caractere" -#: builtin.c:1722 eval.c:2039 +#: builtin.c:1816 eval.c:2041 #, fuzzy, c-format msgid "reference to uninitialized field `$%d'" msgstr "referin la variabila neiniializat `%s'" -#: builtin.c:1827 +#: builtin.c:1921 #, fuzzy msgid "tolower: received non-string argument" msgstr "tolower: s-a primit argument non-ir de caractere" -#: builtin.c:1857 +#: builtin.c:1951 #, fuzzy msgid "toupper: received non-string argument" msgstr "toupper: s-a primit argument non-ir de caractere" -#: builtin.c:1890 +#: builtin.c:1984 msgid "atan2: received non-numeric first argument" msgstr "atan2: s-a primit un prim argument nenumeric" -#: builtin.c:1892 +#: builtin.c:1986 msgid "atan2: received non-numeric second argument" msgstr "atan2: s-a primit un al doilea argument nenumeric" -#: builtin.c:1911 +#: builtin.c:2005 msgid "sin: received non-numeric argument" msgstr "sin: s-a primit un argument nenumeric" -#: builtin.c:1927 +#: builtin.c:2021 msgid "cos: received non-numeric argument" msgstr "cos: s-a primit un argument nenumeric" -#: builtin.c:1977 +#: builtin.c:2071 msgid "srand: received non-numeric argument" msgstr "srand: s-a primit un argument nenumeric" -#: builtin.c:2012 +#: builtin.c:2106 msgid "match: third argument is not an array" msgstr "match: al treilea argument nu este un array" -#: builtin.c:2555 +#: builtin.c:2650 #, fuzzy msgid "gensub: third argument of 0 treated as 1" msgstr "gensub: al 3-lea argument care este 0 va fi considerat 1" -#: builtin.c:2715 +#: builtin.c:2766 msgid "lshift: received non-numeric first argument" msgstr "lshift: s-a primit un prim argument nenumeric" -#: builtin.c:2717 +#: builtin.c:2768 #, fuzzy msgid "lshift: received non-numeric second argument" msgstr "strftime: s-a primit un al doilea argument nenumeric" -#: builtin.c:2723 +#: builtin.c:2774 #, c-format msgid "lshift(%lf, %lf): negative values will give strange results" msgstr "lshift(%lf, %lf): valorile negative vor furniza rezultate ciudate" -#: builtin.c:2725 +#: builtin.c:2776 #, c-format msgid "lshift(%lf, %lf): fractional values will be truncated" msgstr "lshift(%lf, %lf): valorile fracionale vor fi trunchiate" -#: builtin.c:2727 +#: builtin.c:2778 #, c-format msgid "lshift(%lf, %lf): too large shift value will give strange results" msgstr "" "lshift(%lf, %lf): valorile schimbate prea mult vor da rezultate ciudate" -#: builtin.c:2753 +#: builtin.c:2804 msgid "rshift: received non-numeric first argument" msgstr "rshift: s-a primit un prim argument nenumeric" -#: builtin.c:2755 +#: builtin.c:2806 #, fuzzy msgid "rshift: received non-numeric second argument" msgstr "strftime: s-a primit un al doilea argument nenumeric" -#: builtin.c:2761 +#: builtin.c:2812 #, c-format msgid "rshift(%lf, %lf): negative values will give strange results" msgstr "rshift(%lf, %lf): valorile negative vor da rezultate ciudate" -#: builtin.c:2763 +#: builtin.c:2814 #, c-format msgid "rshift(%lf, %lf): fractional values will be truncated" msgstr "rshift(%lf, %lf): valorile fracionale vor fi trunchiate" -#: builtin.c:2765 +#: builtin.c:2816 #, c-format msgid "rshift(%lf, %lf): too large shift value will give strange results" msgstr "" "rshift(%lf, %lf): valorile schimbate prea mult vor da rezultate ciudate" -#: builtin.c:2791 +#: builtin.c:2842 msgid "and: received non-numeric first argument" msgstr "and: s-a primit un prim argument nenumeric" -#: builtin.c:2793 +#: builtin.c:2844 #, fuzzy msgid "and: received non-numeric second argument" msgstr "atan2: s-a primit un al doilea argument nenumeric" -#: builtin.c:2799 +#: builtin.c:2850 #, c-format msgid "and(%lf, %lf): negative values will give strange results" msgstr "and(%lf, %lf): valorile negative vor da rezultate ciudate" -#: builtin.c:2801 +#: builtin.c:2852 #, c-format msgid "and(%lf, %lf): fractional values will be truncated" msgstr "and(%lf, %lf): valorile fracionale vor fi trunchiate" -#: builtin.c:2827 +#: builtin.c:2878 msgid "or: received non-numeric first argument" msgstr "or: s-a primit un prim argument nenumeric" -#: builtin.c:2829 +#: builtin.c:2880 #, fuzzy msgid "or: received non-numeric second argument" msgstr "atan2: s-a primit un al doilea argument nenumeric" -#: builtin.c:2835 +#: builtin.c:2886 #, c-format msgid "or(%lf, %lf): negative values will give strange results" msgstr "or(%lf, %lf): valorile negative for da rezultate ciudate" -#: builtin.c:2837 +#: builtin.c:2888 #, c-format msgid "or(%lf, %lf): fractional values will be truncated" msgstr "or(%lf, %lf): valorile fracionale vor fi trunchiate" -#: builtin.c:2863 +#: builtin.c:2914 msgid "xor: received non-numeric first argument" msgstr "xor: s-a primit un prim argument nenumeric" -#: builtin.c:2865 +#: builtin.c:2916 #, fuzzy msgid "xor: received non-numeric second argument" msgstr "atan2: s-a primit un al doilea argument nenumeric" -#: builtin.c:2871 +#: builtin.c:2922 #, c-format msgid "xor(%lf, %lf): negative values will give strange results" msgstr "xor(%lf, %lf): valorile negative vor da rezultate ciudate" -#: builtin.c:2873 +#: builtin.c:2924 #, c-format msgid "xor(%lf, %lf): fractional values will be truncated" msgstr "xor(%lf, %lf): valorile fracionale vor fi trunchiate" -#: builtin.c:2897 +#: builtin.c:2948 msgid "compl: received non-numeric argument" msgstr "compl: s-a primit argument nenumeric" -#: builtin.c:2903 +#: builtin.c:2954 #, c-format msgid "compl(%lf): negative value will give strange results" msgstr "compl(%lf): valorile negative vor da rezultate ciudate" -#: builtin.c:2905 +#: builtin.c:2956 #, c-format msgid "compl(%lf): fractional value will be truncated" msgstr "compl(%lf): valorile fracionale vor fi trunchiate" -#: builtin.c:3078 +#: builtin.c:3129 #, c-format msgid "dcgettext: `%s' is not a valid locale category" msgstr "dcgettext: `%s' nu este o categorie local valid" @@ -804,7 +819,7 @@ msgid "buffer overflow in genflags2str" msgstr "depire(overflow) de buffer n genflags2str" -#: eval.c:385 eval.c:391 profile.c:838 +#: eval.c:385 eval.c:391 profile.c:817 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "ncercare de a utiliza array-ul `%s' ntr-un context scalar" @@ -852,7 +867,7 @@ msgid "statement has no effect" msgstr "declaraia nu are nici un efect" -#: eval.c:952 eval.c:1893 +#: eval.c:952 eval.c:1895 #, c-format msgid "can't use function name `%s' as variable or array" msgstr "nu se poate folosi numele funciei `%s' ca variabil sau array" @@ -862,7 +877,7 @@ msgid "reference to uninitialized argument `%s'" msgstr "referin la argumentul neiniializat `%s'" -#: eval.c:974 eval.c:1902 +#: eval.c:974 eval.c:1904 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "referin la variabila neiniializat `%s'" @@ -875,45 +890,45 @@ "concatenation: efectele secundare dintr-o expresie au schimbat lungimea " "alteia!" -#: eval.c:1200 +#: eval.c:1202 msgid "assignment used in conditional context" msgstr "atribuire folosit n context condiional" -#: eval.c:1278 +#: eval.c:1280 msgid "division by zero attempted" msgstr "s-a ncercat mprire la zero" -#: eval.c:1293 +#: eval.c:1295 #, c-format msgid "division by zero attempted in `%%'" msgstr "s-a ncercat mprire la zero n `%%'" -#: eval.c:1308 profile.c:714 +#: eval.c:1310 profile.c:693 #, c-format msgid "illegal type (%s) in tree_eval" msgstr "tip ilegal (%s) n tree_eval" -#: eval.c:1471 +#: eval.c:1473 msgid "division by zero attempted in `/='" msgstr "s-a ncercat mprire la zero n `/='" -#: eval.c:1493 +#: eval.c:1495 #, c-format msgid "division by zero attempted in `%%='" msgstr "s-a ncercat mprire la zero n `%%='" -#: eval.c:1758 +#: eval.c:1760 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "" "funcia `%s' a fost apelat cu mai multe argumente dect cele declarate" -#: eval.c:1802 +#: eval.c:1804 #, c-format msgid "function `%s' not defined" msgstr "funcia `%s' nu este definit" -#: eval.c:1865 +#: eval.c:1867 #, c-format msgid "" "\n" @@ -924,666 +939,680 @@ "\t# Stiva de Apelare a Funciei:\n" "\n" -#: eval.c:1868 +#: eval.c:1870 #, c-format msgid "\t# -- main --\n" msgstr "\t# -- principal(main) --\n" -#: eval.c:2023 +#: eval.c:2025 msgid "attempt to field reference from non-numeric value" msgstr "ncercare de referin la cmp din valoare nenumeric" -#: eval.c:2025 +#: eval.c:2027 msgid "attempt to reference from null string" msgstr "ncercare de referin din ir de caractere vid(null)" -#: eval.c:2031 +#: eval.c:2033 #, c-format msgid "attempt to access field %d" msgstr "ncercare de accesare a cmpului %d" -#: eval.c:2052 eval.c:2059 profile.c:935 +#: eval.c:2054 eval.c:2061 profile.c:914 msgid "assignment is not allowed to result of builtin function" msgstr "atribuirea nu este permis rezultatului funciei interne" -#: eval.c:2123 +#: eval.c:2125 msgid "`IGNORECASE' is a gawk extension" msgstr "`IGNORECASE' este extensie gawk" -#: eval.c:2153 +#: eval.c:2155 msgid "`BINMODE' is a gawk extension" msgstr "`BINMODE' este extensie gawk" -#: eval.c:2275 +#: eval.c:2277 #, c-format msgid "bad `%sFMT' specification `%s'" msgstr "`%sFMT' specificaie `%s' invalid" -#: eval.c:2353 +#: eval.c:2355 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "se dezactiveaz `--lint' din cauza atribuirii lui `LINT'" -#: ext.c:60 ext.c:64 +#: ext.c:62 ext.c:67 msgid "`extension' is a gawk extension" msgstr "`extension' este o extensie gawk" -#: ext.c:74 +#: ext.c:77 #, c-format msgid "extension: cannot open `%s' (%s)\n" msgstr "extension: nu s-a putut deschide `%s' (%s)\n" -#: ext.c:82 +#: ext.c:85 #, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "extension: biblioteca `%s': nu pot apela funcia `%s' (%s)\n" -#: ext.c:102 +#: ext.c:105 msgid "extension: missing function name" msgstr "" -#: ext.c:107 +#: ext.c:110 #, fuzzy, c-format msgid "extension: illegal character `%c' in function name `%s'" msgstr "extension: biblioteca `%s': nu pot apela funcia `%s' (%s)\n" -#: ext.c:113 +#: ext.c:116 #, fuzzy, c-format msgid "extension: can't redefine function `%s'" msgstr "extension: nu s-a putut deschide `%s' (%s)\n" -#: ext.c:117 +#: ext.c:120 #, fuzzy, c-format msgid "extension: function `%s' already defined" msgstr "funcia `%s' nu este definit" -#: ext.c:122 +#: ext.c:125 #, c-format msgid "extension: can't use gawk built-in `%s' as function name" msgstr "" -#: ext.c:124 +#: ext.c:127 #, fuzzy, c-format msgid "extension: function name `%s' previously defined" msgstr "numele funciei `%s' a mai fost definit nainte" -#: ext.c:201 +#: ext.c:204 #, fuzzy, c-format msgid "function `%s' defined to take no more than %d argument(s)" msgstr "funcia `%s' este definit dar niciodat apelat" -#: ext.c:204 +#: ext.c:207 #, fuzzy, c-format msgid "function `%s': missing argument #%d" msgstr "funcia `%s' nu este definit" -#: ext.c:214 +#: ext.c:217 #, fuzzy, c-format msgid "function `%s': argument #%d: attempt to use scalar as an array" msgstr "ncercare de a utiliza scalarul `%s' ca array" -#: ext.c:218 +#: ext.c:221 #, c-format msgid "function `%s': argument #%d: attempt to use array as a scalar" msgstr "" -#: ext.c:243 +#: ext.c:246 msgid "Operation Not Supported" msgstr "Operaie NeSuportat" -#: field.c:326 +#: field.c:330 msgid "NF set to negative value" msgstr "NF setat la valoare negativ" -#: field.c:819 +#: field.c:823 msgid "split: second argument is not an array" msgstr "split: al doilea argument nu este un array" -#: field.c:853 +#: field.c:857 msgid "split: null string for third arg is a gawk extension" msgstr "split: irul nul pentru al treilea arg este o extensie gawk" -#: field.c:905 +#: field.c:909 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "`FIELDWIDTHS' este extensie gawk" -#: field.c:935 field.c:946 +#: field.c:939 field.c:953 #, c-format msgid "invalid FIELDWIDTHS value, near `%s'" msgstr "" -#: field.c:1027 +#: field.c:1036 msgid "null string for `FS' is a gawk extension" msgstr "irul de caractere null pentru `FS' este extensie gawk" -#: getopt.c:571 getopt.c:590 +#: field.c:1040 +#, fuzzy +msgid "old awk does not support regexps as value of `FS'" +msgstr "vechiul awk nu supoort operatorul `**'" + +#: getopt.c:571 getopt.c:587 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: opiunea `%s' este ambigu\n" -#: getopt.c:623 getopt.c:627 +#: getopt.c:620 getopt.c:624 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: opiunea `--%s' nu permite parametri\n" -#: getopt.c:636 getopt.c:641 +#: getopt.c:633 getopt.c:638 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: opiunea `%c%s' nu permite parametri\n" -#: getopt.c:687 getopt.c:709 getopt.c:1040 getopt.c:1062 +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: opiunea `%s' necesit un parametru\n" -#: getopt.c:747 getopt.c:750 +#: getopt.c:738 getopt.c:741 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: opiune necunoscut `--%s'\n" -#: getopt.c:758 getopt.c:761 +#: getopt.c:749 getopt.c:752 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: opiune necunoscut `%c%s'\n" -#: getopt.c:816 getopt.c:819 +#: getopt.c:804 getopt.c:807 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: opiune ilegal -- %c\n" -#: getopt.c:825 getopt.c:828 +#: getopt.c:813 getopt.c:816 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: opiune invalid -- %c\n" -#: getopt.c:883 getopt.c:902 getopt.c:1115 getopt.c:1136 main.c:448 +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: opiunea necesit un parametru -- %c\n" -#: getopt.c:955 getopt.c:974 +#: getopt.c:937 getopt.c:953 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: opiunea `-W %s' este ambigu\n" -#: getopt.c:998 getopt.c:1019 +#: getopt.c:977 getopt.c:995 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: opiunea `-W %s' nu permite parametri\n" -#: io.c:307 +#: io.c:345 #, c-format msgid "cannot open file `%s' for reading (%s)" msgstr "nu s-a putu deschide `%s' pentru citire (%s)" -#: io.c:398 +#: io.c:436 #, c-format msgid "close of fd %d (`%s') failed (%s)" msgstr "nchiderea lui fd %d (`%s') euat (%s)" -#: io.c:536 +#: io.c:575 #, c-format msgid "invalid tree type %s in redirect()" msgstr "tip arbore(tree) invalid %s n redirect()" -#: io.c:542 +#: io.c:581 #, c-format msgid "expression in `%s' redirection only has numeric value" msgstr "expresia din redirectarea `%s' are doar valoare numeric" -#: io.c:548 +#: io.c:587 #, c-format msgid "expression for `%s' redirection has null string value" msgstr "expresia din redirectarea `%s' are valoar de ir null" -#: io.c:553 +#: io.c:592 #, c-format msgid "filename `%s' for `%s' redirection may be result of logical expression" msgstr "" "numele de fiier `%s' pentru redirectarea `%s' poate fi rezultatul unei " "expresii logice" -#: io.c:591 +#: io.c:630 #, c-format msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" msgstr "amestecare nenecesar a `>' i `>>' pentru fiierul `%.*s'" -#: io.c:643 +#: io.c:682 #, c-format msgid "can't open pipe `%s' for output (%s)" msgstr "nu se poate deschide legtura(pipe) `%s' pentru output (%s)" -#: io.c:652 +#: io.c:691 #, c-format msgid "can't open pipe `%s' for input (%s)" msgstr "nu se poate deschide legtura(pipe) `%s' pentru input (%s)" -#: io.c:665 +#: io.c:698 io.c:1448 +#, c-format +msgid "file `%s' is a directory" +msgstr "fiierul `%s' este director" + +#: io.c:706 #, c-format msgid "can't open two way socket `%s' for input/output (%s)" msgstr "" "nu se poate deschide socketul bidirecional `%s' pentru input/output (%s)" -#: io.c:669 +#: io.c:710 #, c-format msgid "can't open two way pipe `%s' for input/output (%s)" msgstr "" "nu se poate deschide legtura(pipe) bidirecional `%s' pentru input/output " "(%s)" -#: io.c:745 +#: io.c:786 #, c-format msgid "can't redirect from `%s' (%s)" msgstr "nu se poate redirecta din `%s' (%s)" -#: io.c:748 +#: io.c:789 #, c-format msgid "can't redirect to `%s' (%s)" msgstr "nu se poate redirecta ctre `%s' (%s)" -#: io.c:787 +#: io.c:828 msgid "" "reached system limit for open files: starting to multiplex file descriptors" msgstr "" "s-a atins limita sistemului pentru fiiere deschise: se ncepe muliplexarea " "desciptorilor de fiier" -#: io.c:803 +#: io.c:844 #, c-format msgid "close of `%s' failed (%s)." msgstr "nchiderea `%s' euat (%s)." -#: io.c:811 +#: io.c:852 msgid "too many pipes or input files open" msgstr "prea multe legturi(pipe) sau fiiere de intrare(input) deschise" -#: io.c:834 +#: io.c:875 msgid "close: second argument must be `to' or `from'" msgstr "close: al doilea argument trebuie s fie `to' sau `from'" -#: io.c:848 +#: io.c:889 #, c-format msgid "close: `%.*s' is not an open file, pipe or co-process" msgstr "" "close: `%.*s' nu este un fiier deschis, o legtur(pipe) sau un coproces" -#: io.c:852 +#: io.c:893 msgid "close of redirection that was never opened" msgstr "nchiderea unei redirectri care n-a fost deschis niciodat" -#: io.c:948 +#: io.c:989 #, c-format msgid "close: redirection `%s' not opened with `|&', second argument ignored" msgstr "" "close: redirectarea `%s' nu a fost deschis cu `|&', al doilea argument " "ignorat" -#: io.c:964 +#: io.c:1005 #, c-format msgid "failure status (%d) on pipe close of `%s' (%s)" msgstr "stare de avarie (%d) n legtura(pipe) nchis n `%s' (%s)" -#: io.c:967 +#: io.c:1008 #, c-format msgid "failure status (%d) on file close of `%s' (%s)" msgstr "stare de avarie (%d) n fiierul nchis n `%s' (%s)" -#: io.c:987 +#: io.c:1028 #, c-format msgid "no explicit close of socket `%s' provided" msgstr "nu s-a furnizat nchiderea explicit a socketului `%s'" -#: io.c:990 +#: io.c:1031 #, c-format msgid "no explicit close of co-process `%s' provided" msgstr "nu s-a furnizat nchiderea explicit a coprocesului `%s' " -#: io.c:993 +#: io.c:1034 #, c-format msgid "no explicit close of pipe `%s' provided" msgstr "nu s-a furnizat nchiderea explicit a legturii(pipe) `%s'" -#: io.c:996 +#: io.c:1037 #, c-format msgid "no explicit close of file `%s' provided" msgstr "nu s-a furnizat nchiderea explicit a fiierului `%s'" -#: io.c:1025 io.c:1080 main.c:718 main.c:756 +#: io.c:1066 io.c:1121 main.c:749 main.c:791 #, c-format msgid "error writing standard output (%s)" msgstr "eroare n scrierea la ieirea(output) standard (%s)" -#: io.c:1029 io.c:1085 +#: io.c:1070 io.c:1126 #, c-format msgid "error writing standard error (%s)" msgstr "eroare n scrierea la dispozitivul standard de eroare (%s)" -#: io.c:1037 +#: io.c:1078 #, c-format msgid "pipe flush of `%s' failed (%s)." msgstr "flush-ul legturii(pipe) `%s' euat (%s)." -#: io.c:1040 +#: io.c:1081 #, c-format msgid "co-process flush of pipe to `%s' failed (%s)." msgstr "flush-ul legturii(pipe) coprocesului la `%s' euat (%s)." -#: io.c:1043 +#: io.c:1084 #, c-format msgid "file flush of `%s' failed (%s)." msgstr "flush-ul de fiier al `%s' euat (%s)." -#: io.c:1205 +#: io.c:1198 +#, fuzzy, c-format +msgid "local port %s invalid in `/inet'" +msgstr "port local invalid n `%s'" + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "" + +#: io.c:1250 msgid "/inet/raw client not ready yet, sorry" msgstr "clientul /inet/raw nu este pregtit nc, scuze" -#: io.c:1207 io.c:1244 +#: io.c:1253 io.c:1289 msgid "only root may use `/inet/raw'." msgstr "doar root-ul poate folosi `/inet/raw'." -#: io.c:1242 +#: io.c:1287 msgid "/inet/raw server not ready yet, sorry" msgstr "serverul /inet/raw nu este pregtit nc, scuze" -#: io.c:1332 +#: io.c:1385 #, c-format msgid "no (known) protocol supplied in special filename `%s'" msgstr "nici un protocol (cunoscut) furnizat n numele de fiier special `%s'" -#: io.c:1350 +#: io.c:1399 #, c-format msgid "special file name `%s' is incomplete" msgstr "numele special de fiier `%s' nu este complet" -#: io.c:1362 -#, c-format -msgid "local port invalid in `%s'" -msgstr "port local invalid n `%s'" - -#: io.c:1374 +#: io.c:1414 msgid "must supply a remote hostname to `/inet'" msgstr "trebuie furnizat un nume de host remote pentru `/inet'" -#: io.c:1389 +#: io.c:1432 msgid "must supply a remote port to `/inet'" msgstr "trebuie furnizat un port remote pentru `/inet'" -#: io.c:1395 -#, c-format -msgid "remote port invalid in `%s'" -msgstr "port remote invalid n `%s'" - -#: io.c:1405 +#: io.c:1439 msgid "TCP/IP communications are not supported" msgstr "Comunicaiile TCP/IP nu sunt suportate" -#: io.c:1414 io.c:1595 -#, c-format -msgid "file `%s' is a directory" -msgstr "fiierul `%s' este director" - -#: io.c:1484 +#: io.c:1509 #, c-format msgid "use `PROCINFO[\"%s\"]' instead of `%s'" msgstr "folosii `PROCINFO[\"%s\"]' n loc de `%s'" -#: io.c:1516 +#: io.c:1547 msgid "use `PROCINFO[...]' instead of `/dev/user'" msgstr "folosii `PROCINFO[...]' n loc de `/dev/user'" -#: io.c:1581 io.c:1763 +#: io.c:1612 io.c:1798 #, c-format msgid "could not open `%s', mode `%s'" msgstr "nu s-a putut deschide `%s', modul `%s'" -#: io.c:1814 +#: io.c:1849 #, fuzzy, c-format msgid "close of master pty failed (%s)" msgstr "nchiderea legturii(pipe) a euat (%s)" -#: io.c:1816 io.c:1968 io.c:2119 +#: io.c:1851 io.c:2003 io.c:2154 #, c-format msgid "close of stdout in child failed (%s)" msgstr "nchiderea stdout n copil(child) a euat (%s)" -#: io.c:1819 +#: io.c:1854 #, fuzzy, c-format msgid "moving slave pty to stdout in child failed (dup: %s)" msgstr "mutarea legturii(pipe) la stdout n copil(child) a euat (dup: %s)" -#: io.c:1821 io.c:1973 +#: io.c:1856 io.c:2008 #, c-format msgid "close of stdin in child failed (%s)" msgstr "nchiderea stdin n copil(child) a euat (%s)" -#: io.c:1824 +#: io.c:1859 #, fuzzy, c-format msgid "moving slave pty to stdin in child failed (dup: %s)" msgstr "mutarea legturii(pipe) la stdin n copil(child) a euat (dup: %s)" -#: io.c:1826 io.c:1845 +#: io.c:1861 io.c:1880 #, fuzzy, c-format msgid "close of slave pty failed (%s)" msgstr "nchiderea legturii(pipe) a euat (%s)" -#: io.c:1919 io.c:1971 io.c:2100 io.c:2122 +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 #, c-format msgid "moving pipe to stdout in child failed (dup: %s)" msgstr "mutarea legturii(pipe) la stdout n copil(child) a euat (dup: %s)" -#: io.c:1923 io.c:1976 +#: io.c:1958 io.c:2011 #, c-format msgid "moving pipe to stdin in child failed (dup: %s)" msgstr "mutarea legturii(pipe) la stdin n copil(child) a euat (dup: %s)" -#: io.c:1940 io.c:2113 +#: io.c:1975 io.c:2148 msgid "restoring stdout in parent process failed\n" msgstr "refacerea stdout n procesul printe a euat\n" -#: io.c:1945 +#: io.c:1980 msgid "restoring stdin in parent process failed\n" msgstr "refacerea stdin n procesul printe a euat\n" -#: io.c:1979 io.c:2124 io.c:2135 +#: io.c:2014 io.c:2159 io.c:2170 #, c-format msgid "close of pipe failed (%s)" msgstr "nchiderea legturii(pipe) a euat (%s)" -#: io.c:2024 +#: io.c:2059 msgid "`|&' not supported" msgstr "`|&' nesuportat" -#: io.c:2090 +#: io.c:2125 #, c-format msgid "cannot open pipe `%s' (%s)" msgstr "nu s-a putut deschide legtura(pipe) `%s' (%s)" -#: io.c:2131 +#: io.c:2166 #, c-format msgid "cannot create child process for `%s' (fork: %s)" msgstr "nu s-a putu crea proces copil(child) pentru `%s' (fork: %s)" -#: io.c:2506 +#: io.c:2548 #, c-format msgid "data file `%s' is empty" msgstr "fiierul de date `%s' este vid" -#: io.c:2547 io.c:2555 +#: io.c:2589 io.c:2597 msgid "could not allocate more input memory" msgstr "" -#: io.c:2919 io.c:2984 +#: io.c:2965 io.c:3038 #, c-format msgid "error reading input file `%s': %s" msgstr "eroare n citirea fiierului de intrare(input) `%s': %s" -#: io.c:3109 +#: io.c:3163 msgid "multicharacter value of `RS' is a gawk extension" msgstr "valoarea multicaracter a `RS' este extensie gawk" -#: main.c:338 +#: main.c:351 msgid "`-m[fr]' option irrelevant in gawk" msgstr "`-m[fr]' opiune irelevant n gawk" -#: main.c:340 +#: main.c:353 msgid "-m option usage: `-m[fr] nnn'" msgstr "folosirea opiunii -m : `-m[fr] nnn'" -#: main.c:357 +#: main.c:370 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: opiunea `-W %s' nu e recunoscut, ignorat\n" -#: main.c:394 +#: main.c:407 msgid "empty argument to `--source' ignored" msgstr "argument vid pentru `--source' ignorat" -#: main.c:467 +#: main.c:480 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" msgstr "" "este setat variabila de mediu `POSIXLY_CORRECT': se activeaz `--posix'" -#: main.c:472 +#: main.c:486 msgid "`--posix' overrides `--traditional'" msgstr "`--posix' suprascrie `--traditional'" -#: main.c:483 +#: main.c:497 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" msgstr "`--posix'/`--traditional' suprascrie `--non-decimal-data'" -#: main.c:487 +#: main.c:501 #, fuzzy, c-format msgid "running %s setuid root may be a security problem" msgstr "dac se ruleaz %s setuid root poate aprea o problem de securitate" -#: main.c:528 +#: main.c:542 #, fuzzy, c-format msgid "can't set binary mode on stdin (%s)" msgstr "nu se poate seta modul pe stdin (%s)" -#: main.c:531 +#: main.c:545 #, fuzzy, c-format msgid "can't set binary mode on stdout (%s)" msgstr "nu se poate seta modul pe stdout (%s)" -#: main.c:533 +#: main.c:547 #, fuzzy, c-format msgid "can't set binary mode on stderr (%s)" msgstr "nu se poate seta modul pe stderr (%s)" -#: main.c:572 +#: main.c:586 msgid "no program text at all!" msgstr "nu exist nici un text de program!" -#: main.c:665 +#: main.c:690 #, c-format msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" msgstr "" "Folosire: %s [opiuni stil POSIX sau GNU] -f fiierprogram [--] fiier ...\n" -#: main.c:667 +#: main.c:692 #, c-format msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" msgstr "" "Folosire: %s [opiuni stil POSIX sau GNU] [--] %cprogram%c fiier ...\n" -#: main.c:672 +#: main.c:697 msgid "POSIX options:\t\tGNU long options:\n" msgstr "opiuni POSIX:\t\topiuni lungi GNU:\n" -#: main.c:673 +#: main.c:698 msgid "\t-f progfile\t\t--file=progfile\n" msgstr "\t-f fiierprogram\t\t--file=fiierprogram\n" -#: main.c:674 +#: main.c:699 msgid "\t-F fs\t\t\t--field-separator=fs\n" msgstr "\t-F fs\t\t\t--field-separator=fs\n" -#: main.c:675 +#: main.c:700 msgid "\t-v var=val\t\t--assign=var=val\n" msgstr "\t-v var=val\t\t--assign=var=val\n" -#: main.c:676 +#: main.c:701 msgid "\t-m[fr] val\n" msgstr "\t-m[fr] val\n" -#: main.c:677 +#: main.c:702 msgid "\t-W compat\t\t--compat\n" msgstr "\t-W compat\t\t--compat\n" -#: main.c:678 +#: main.c:703 msgid "\t-W copyleft\t\t--copyleft\n" msgstr "\t-W copyleft\t\t--copyleft\n" -#: main.c:679 +#: main.c:704 msgid "\t-W copyright\t\t--copyright\n" msgstr "\t-W copyright\t\t--copyright\n" -#: main.c:680 +#: main.c:705 msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" msgstr "\t-W dump-variables[=fiier]\t--dump-variables[=fiier]\n" -#: main.c:681 +#: main.c:706 #, fuzzy msgid "\t-W exec=file\t\t--exec=file\n" msgstr "\t-W profile[=fiier]\t--profile[=fiier]\n" -#: main.c:682 +#: main.c:707 msgid "\t-W gen-po\t\t--gen-po\n" msgstr "\t-W gen-po\t\t--gen-po\n" -#: main.c:683 +#: main.c:708 msgid "\t-W help\t\t\t--help\n" msgstr "\t-W help\t\t\t--help\n" -#: main.c:684 +#: main.c:709 msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" msgstr "\t-W lint[=fatal]\t\t--lint[=fatal]\n" -#: main.c:685 +#: main.c:710 msgid "\t-W lint-old\t\t--lint-old\n" msgstr "\t-W lint-old\t\t--lint-old\n" -#: main.c:686 +#: main.c:711 msgid "\t-W non-decimal-data\t--non-decimal-data\n" msgstr "\t-W non-decimal-data\t--non-decimal-data\n" -#: main.c:688 +#: main.c:713 msgid "\t-W nostalgia\t\t--nostalgia\n" msgstr "\t-W nostalgia\t\t--nostalgia\n" -#: main.c:691 +#: main.c:716 msgid "\t-W parsedebug\t\t--parsedebug\n" msgstr "\t-W parsedebug\t\t--parsedebug\n" -#: main.c:693 +#: main.c:718 msgid "\t-W profile[=file]\t--profile[=file]\n" msgstr "\t-W profile[=fiier]\t--profile[=fiier]\n" -#: main.c:694 +#: main.c:719 msgid "\t-W posix\t\t--posix\n" msgstr "\t-W posix\t\t--posix\n" -#: main.c:695 +#: main.c:720 msgid "\t-W re-interval\t\t--re-interval\n" msgstr "\t-W re-interval\t\t--re-interval\n" -#: main.c:696 +#: main.c:721 msgid "\t-W source=program-text\t--source=program-text\n" msgstr "\t-W source=program-text\t--source=program-text\n" -#: main.c:697 +#: main.c:722 msgid "\t-W traditional\t\t--traditional\n" msgstr "\t-W traditional\t\t--traditional\n" -#: main.c:698 +#: main.c:723 msgid "\t-W usage\t\t--usage\n" msgstr "\t-W usage\t\t--usage\n" -#: main.c:699 +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "" + +#: main.c:725 msgid "\t-W version\t\t--version\n" msgstr "\t-W version\t\t--version\n" -#: main.c:703 +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 #, fuzzy msgid "" "\n" @@ -1592,28 +1621,28 @@ "\n" msgstr "seciunea `Reporting Problems and Bugs' n versiunea tiprit.\n" -#: main.c:707 +#: main.c:738 msgid "" "gawk is a pattern scanning and processing language.\n" "By default it reads standard input and writes standard output.\n" "\n" msgstr "" -#: main.c:711 +#: main.c:742 msgid "" "Examples:\n" "\tgawk '{ sum += $1 }; END { print sum }' file\n" "\tgawk -F: '{ print $1 }' /etc/passwd\n" msgstr "" -#: main.c:731 +#: main.c:762 #, c-format msgid "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" +"the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" msgstr "" @@ -1621,11 +1650,11 @@ "\n" "Acest program este software liber; poate fi redistribuit i/sau modificat\n" "sub termenii Licenei Publice Generale GNU publicat de \n" -"Free Software Foundation; fie versiunea 2 a Licenei, fie\n" +"Free Software Foundation; fie versiunea 3 a Licenei, fie\n" "(la latitudinea dumneavoastr) orice versiune ulterioar.\n" "\n" -#: main.c:739 +#: main.c:770 msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -1640,58 +1669,57 @@ "\n" "\n" -#: main.c:745 +#: main.c:781 +#, fuzzy msgid "" "You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" msgstr "" "Ar fi trebuit s primii o copie a Licenei Publice Generale GNU\n" "mpreun cu acest program; dac nu, scriei la Free Software\n" "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " "USA.\n" -#: main.c:781 +#: main.c:816 msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft nu seteaz FS n tab n POSIX awk" -#: main.c:1018 +#: main.c:1060 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" "\n" msgstr "" -#: main.c:1038 +#: main.c:1080 #, c-format msgid "`%s' is not a legal variable name" msgstr "" -#: main.c:1041 +#: main.c:1083 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "" -#: main.c:1074 +#: main.c:1122 msgid "floating point exception" msgstr "excepie virgul mobil" -#: main.c:1081 +#: main.c:1129 msgid "fatal error: internal error" msgstr "eroare fatal: eroare intern" -#: main.c:1132 +#: main.c:1180 #, c-format msgid "no pre-opened fd %d" msgstr "nici un fd predeschis %d" -#: main.c:1139 +#: main.c:1187 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "nu s-a putut predeschide /dev/null pentru fd %d" -#: main.c:1162 main.c:1171 +#: main.c:1210 main.c:1219 #, c-format msgid "could not find groups: %s" msgstr "nu am putut gsi grupurile: %s" @@ -1713,23 +1741,28 @@ msgid "fatal: " msgstr "fatal: " -#: node.c:59 node.c:66 node.c:75 node.c:90 node.c:119 +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 msgid "can't convert string to float" msgstr "nu se poate converti ir de caractere n float" -#: node.c:414 +#: node.c:406 msgid "backslash at end of string" msgstr "backslash la sfritul irului de caractere" -#: node.c:604 +#: node.c:548 +#, fuzzy, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "vechiul awk nu supoort operatorul `**'" + +#: node.c:599 msgid "POSIX does not allow `\\x' escapes" msgstr "POSIX nu permite escape-uri `\\x'" -#: node.c:610 +#: node.c:605 msgid "no hex digits in `\\x' escape sequence" msgstr "nu exist digii hexa n secvena de escape `\\x'" -#: node.c:644 +#: node.c:639 #, c-format msgid "escape sequence `\\%c' treated as plain `%c'" msgstr "secvena de escape `\\%c' tratat ca `%c' simplu" @@ -1739,31 +1772,31 @@ msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" msgstr "%s %s `%s': nu s-a putut seta close-on-exec: (fcntl: %s)" -#: profile.c:91 +#: profile.c:92 #, c-format msgid "could not open `%s' for writing: %s" msgstr "nu am putut deschide `%s' pentru scriere: %s" -#: profile.c:467 +#: profile.c:450 #, fuzzy, c-format msgid "internal error: %s with null vname" msgstr "eroare intern: Node_var cu vname null" -#: profile.c:531 +#: profile.c:514 msgid "# treated internally as `delete'" msgstr "" -#: profile.c:1168 +#: profile.c:1147 #, c-format msgid "# this is a dynamically loaded extension function" msgstr "" -#: profile.c:1199 +#: profile.c:1178 #, c-format msgid "\t# gawk profile, created %s\n" msgstr "\t# profil gawk, creat %s\n" -#: profile.c:1202 +#: profile.c:1181 #, c-format msgid "" "\t# BEGIN block(s)\n" @@ -1772,7 +1805,7 @@ "\t# bloc(uri) BEGIN\n" "\n" -#: profile.c:1212 +#: profile.c:1191 #, c-format msgid "" "\t# Rule(s)\n" @@ -1781,7 +1814,7 @@ "\t# Regul(i)\n" "\n" -#: profile.c:1218 +#: profile.c:1197 #, c-format msgid "" "\t# END block(s)\n" @@ -1790,7 +1823,7 @@ "\t# bloc(uri) END\n" "\n" -#: profile.c:1238 +#: profile.c:1217 #, c-format msgid "" "\n" @@ -1799,83 +1832,86 @@ "\n" "\t# Funcii, listate alfabetic\n" -#: profile.c:1453 +#: profile.c:1470 #, c-format msgid "unexpected type %s in prec_level" msgstr "tip %s neateptat n prec_level" -#: regcomp.c:160 +#: regcomp.c:132 msgid "Success" msgstr "Succes" -#: regcomp.c:163 +#: regcomp.c:135 msgid "No match" msgstr "Nici o potrivire" -#: regcomp.c:166 +#: regcomp.c:138 msgid "Invalid regular expression" msgstr "Expresie regular invalid" -#: regcomp.c:169 +#: regcomp.c:141 msgid "Invalid collation character" msgstr "Caracter de comparare invalid" -#: regcomp.c:172 +#: regcomp.c:144 msgid "Invalid character class name" msgstr "nume clas caracter invalid" -#: regcomp.c:175 +#: regcomp.c:147 msgid "Trailing backslash" msgstr "Backslash final" -#: regcomp.c:178 +#: regcomp.c:150 msgid "Invalid back reference" msgstr "referin anterioar(back) invalid" -#: regcomp.c:181 +#: regcomp.c:153 msgid "Unmatched [ or [^" msgstr "[ sau [^ fr reciproc" -#: regcomp.c:184 +#: regcomp.c:156 msgid "Unmatched ( or \\(" msgstr "( sau \\( fr reciproc" -#: regcomp.c:187 +#: regcomp.c:159 msgid "Unmatched \\{" msgstr "{ fr reciproc" -#: regcomp.c:190 +#: regcomp.c:162 msgid "Invalid content of \\{\\}" msgstr "Coninut invalid al \\{\\}" -#: regcomp.c:193 +#: regcomp.c:165 msgid "Invalid range end" msgstr "Sfrit de domeniu invalid" -#: regcomp.c:196 +#: regcomp.c:168 msgid "Memory exhausted" msgstr "Memorie plin" -#: regcomp.c:199 +#: regcomp.c:171 msgid "Invalid preceding regular expression" msgstr "Expresie regular anterioar invalid" -#: regcomp.c:202 +#: regcomp.c:174 msgid "Premature end of regular expression" msgstr "Sfrit prematur de expresie regular" -#: regcomp.c:205 +#: regcomp.c:177 msgid "Regular expression too big" msgstr "Expresie regular prea mare" -#: regcomp.c:208 +#: regcomp.c:180 msgid "Unmatched ) or \\)" msgstr ") or \\) fr reciproc" -#: regcomp.c:688 +#: regcomp.c:664 msgid "No previous regular expression" msgstr "Nu exist expresii regulare anterioare" +#~ msgid "remote port invalid in `%s'" +#~ msgstr "port remote invalid n `%s'" + #~ msgid "function %s called\n" #~ msgstr "funcia %s a fost apelat\n" diff -urN gawk-3.1.5/po/rw.po gawk-3.1.6/po/rw.po --- gawk-3.1.5/po/rw.po 2005-07-06 17:20:05.000000000 +0300 +++ gawk-3.1.6/po/rw.po 2007-09-30 22:33:29.000000000 +0200 @@ -16,7 +16,7 @@ msgstr "" "Project-Id-Version: gawk 3.1.4\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" -"POT-Creation-Date: 2005-07-06 17:20+0300\n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" "PO-Revision-Date: 2005-04-04 10:55-0700\n" "Last-Translator: Steven Michael Murphy \n" "Language-Team: Kinyarwanda \n" @@ -44,384 +44,399 @@ msgid "from %s" msgstr "Kuva:" -#: array.c:511 +#: array.c:514 #, fuzzy, c-format msgid "reference to uninitialized element `%s[\"%s\"]'" msgstr "Indango Kuri Itatangijwe Ikigize:" -#: array.c:517 +#: array.c:520 #, fuzzy, c-format msgid "subscript of array `%s' is null string" msgstr "Inyandiko nyesi Bya Imbonerahamwe ni NTAGIHARI Ikurikiranyanyuguti" -#: array.c:621 +#: array.c:624 #, fuzzy, c-format msgid "delete: index `%s' not in array `%s'" msgstr "Gusiba Umubarendanga OYA in Imbonerahamwe" -#: array.c:791 +#: array.c:793 #, fuzzy, c-format msgid "%s: empty (null)\n" msgstr "%s:ubusa NTAGIHARI" -#: array.c:796 +#: array.c:798 #, fuzzy, c-format msgid "%s: empty (zero)\n" msgstr "%s:ubusa Zeru" -#: array.c:800 +#: array.c:802 #, c-format msgid "%s: table_size = %d, array_size = %d\n" msgstr "" -#: array.c:829 +#: array.c:831 #, fuzzy, c-format msgid "%s: is parameter\n" msgstr "%s:ni" -#: array.c:834 +#: array.c:836 #, fuzzy, c-format msgid "%s: array_ref to %s\n" msgstr "%s:Kuri" -#: awkgram.y:208 +#: awkgram.y:215 #, fuzzy, c-format msgid "%s blocks must have an action part" msgstr "%sIgikorwa" -#: awkgram.y:211 +#: awkgram.y:218 #, fuzzy msgid "each rule must have a pattern or an action part" msgstr "a Ishusho Cyangwa Igikorwa" -#: awkgram.y:267 +#: awkgram.y:254 awkgram.y:263 +#, fuzzy +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "ki/ bishaje OYA Gushigikira Mukoresha" + +#: awkgram.y:282 #, fuzzy, c-format msgid "`%s' is a built-in function, it cannot be redefined" msgstr "`%s'ni a in Umumaro" -#: awkgram.y:313 +#: awkgram.y:328 #, fuzzy msgid "regexp constant `//' looks like a C++ comment, but is not" msgstr "nka a C Icyo wongeraho ni OYA" -#: awkgram.y:316 +#: awkgram.y:331 #, fuzzy, c-format msgid "regexp constant `/%s/' looks like a C comment, but is not" msgstr "nka a C Icyo wongeraho ni OYA" -#: awkgram.y:343 awkgram.y:623 +#: awkgram.y:358 awkgram.y:653 #, fuzzy msgid "statement may have no effect" msgstr "Inyandiko Gicurasi Oya INGARUKA" -#: awkgram.y:440 awkgram.y:460 +#: awkgram.y:455 awkgram.y:479 #, fuzzy, c-format msgid "`%s' used in %s action" msgstr "`%s'in Igikorwa" -#: awkgram.y:453 awkgram.y:456 +#: awkgram.y:470 awkgram.y:474 #, fuzzy msgid "`nextfile' is a gawk extension" msgstr "`ni a Umugereka" -#: awkgram.y:470 +#: awkgram.y:489 #, fuzzy msgid "`return' used outside function context" msgstr "`Hanze Umumaro Imvugiro" -#: awkgram.y:512 +#: awkgram.y:531 #, fuzzy msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" msgstr "Byuzuye in Cyangwa Gucapa" -#: awkgram.y:525 awkgram.y:532 +#: awkgram.y:547 awkgram.y:555 #, fuzzy msgid "`delete array' is a gawk extension" msgstr "`Gusiba ni a Umugereka" -#: awkgram.y:540 awkgram.y:547 +#: awkgram.y:569 awkgram.y:577 #, fuzzy msgid "`delete(array)' is a non-portable tawk extension" msgstr "`Gusiba Imbonerahamwe ni a Umugereka" -#: awkgram.y:591 +#: awkgram.y:621 #, fuzzy, c-format msgid "duplicate case values in switch body: %s" msgstr "Gusubiramo Uduciro in Hindura Umubiri" -#: awkgram.y:601 +#: awkgram.y:631 #, fuzzy msgid "Duplicate `default' detected in switch body" msgstr "in Hindura Umubiri" -#: awkgram.y:690 +#: awkgram.y:720 #, fuzzy msgid "multistage two-way pipelines don't work" msgstr "Akazi" -#: awkgram.y:781 +#: awkgram.y:811 #, fuzzy msgid "regular expression on right of assignment" msgstr "Ibisanzwe imvugo ku Iburyo: Bya Igenera" -#: awkgram.y:804 +#: awkgram.y:834 #, fuzzy msgid "regular expression on left of `~' or `!~' operator" msgstr "Ibisanzwe imvugo ku Ibumoso: Bya Cyangwa Mukoresha" -#: awkgram.y:812 +#: awkgram.y:840 awkgram.y:913 +#, fuzzy +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "ki/ bishaje OYA Gushigikira Mukoresha" + +#: awkgram.y:846 #, fuzzy msgid "regular expression on right of comparison" msgstr "Ibisanzwe imvugo ku Iburyo: Bya" -#: awkgram.y:879 +#: awkgram.y:903 #, fuzzy msgid "non-redirected `getline' undefined inside END action" msgstr "kidasobanuye Mo Imbere Igikorwa" -#: awkgram.y:906 +#: awkgram.y:914 +#, fuzzy +msgid "old awk does not support multidimensional arrays" +msgstr "ki/ bishaje OYA Gushigikira Mukoresha" + +#: awkgram.y:960 #, fuzzy msgid "call of `length' without parentheses is not portable" msgstr "Bya ni OYA" -#: awkgram.y:909 +#: awkgram.y:965 #, fuzzy msgid "call of `length' without parentheses is deprecated by POSIX" msgstr "Bya ni Bitemewe. ku" -#: awkgram.y:962 +#: awkgram.y:1019 #, fuzzy msgid "use of non-array as array" msgstr "Gukoresha Bya Imbonerahamwe Nka Imbonerahamwe" -#: awkgram.y:964 +#: awkgram.y:1022 #, fuzzy msgid "invalid subscript expression" msgstr "Sibyo Inyandiko nyesi imvugo" -#: awkgram.y:1171 +#: awkgram.y:1249 #, fuzzy msgid "unexpected newline or end of string" msgstr "Cyangwa Impera Bya Ikurikiranyanyuguti" -#: awkgram.y:1267 +#: awkgram.y:1366 #, fuzzy msgid "empty program text on command line" msgstr "ubusa Porogaramu Umwandiko ku Komandi: Umurongo" -#: awkgram.y:1320 +#: awkgram.y:1422 #, fuzzy, c-format msgid "can't open source file `%s' for reading (%s)" msgstr "Gufungura Inkomoko IDOSIYE kugirango" -#: awkgram.y:1397 +#: awkgram.y:1520 #, fuzzy, c-format msgid "can't read sourcefile `%s' (%s)" msgstr "Gusoma" -#: awkgram.y:1405 +#: awkgram.y:1528 #, fuzzy, c-format msgid "source file `%s' is empty" msgstr "Inkomoko IDOSIYE ni ubusa" -#: awkgram.y:1596 awkgram.y:1718 awkgram.y:1736 awkgram.y:2107 awkgram.y:2194 +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 #, fuzzy msgid "source file does not end in newline" msgstr "Inkomoko IDOSIYE OYA Impera in" -#: awkgram.y:1658 +#: awkgram.y:1782 #, fuzzy msgid "unterminated regexp ends with `\\' at end of file" msgstr "Na: ku Impera Bya IDOSIYE" -#: awkgram.y:1682 +#: awkgram.y:1806 #, c-format msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -#: awkgram.y:1686 +#: awkgram.y:1810 #, c-format msgid "tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -#: awkgram.y:1693 +#: awkgram.y:1817 msgid "unterminated regexp" msgstr "" -#: awkgram.y:1696 +#: awkgram.y:1820 #, fuzzy msgid "unterminated regexp at end of file" msgstr "ku Impera Bya IDOSIYE" -#: awkgram.y:1762 +#: awkgram.y:1889 #, fuzzy msgid "use of `\\ #...' line continuation is not portable" msgstr "Gukoresha Bya Umurongo ni OYA" -#: awkgram.y:1774 +#: awkgram.y:1902 #, fuzzy msgid "backslash not last character on line" msgstr "OYA Iheruka Inyuguti ku Umurongo" -#: awkgram.y:1819 +#: awkgram.y:1947 #, fuzzy msgid "POSIX does not allow operator `**='" msgstr "OYA Kwemerera Mukoresha" -#: awkgram.y:1821 +#: awkgram.y:1949 #, fuzzy msgid "old awk does not support operator `**='" msgstr "ki/ bishaje OYA Gushigikira Mukoresha" -#: awkgram.y:1830 +#: awkgram.y:1958 #, fuzzy msgid "POSIX does not allow operator `**'" msgstr "OYA Kwemerera Mukoresha" -#: awkgram.y:1832 +#: awkgram.y:1960 #, fuzzy msgid "old awk does not support operator `**'" msgstr "ki/ bishaje OYA Gushigikira Mukoresha" -#: awkgram.y:1863 +#: awkgram.y:1991 #, fuzzy msgid "operator `^=' is not supported in old awk" msgstr "Mukoresha ni OYA in ki/ bishaje" -#: awkgram.y:1871 +#: awkgram.y:1999 #, fuzzy msgid "operator `^' is not supported in old awk" msgstr "Mukoresha ni OYA in ki/ bishaje" -#: awkgram.y:1955 awkgram.y:1970 +#: awkgram.y:2083 awkgram.y:2098 #, fuzzy msgid "unterminated string" msgstr "Ikurikiranyanyuguti" -#: awkgram.y:2155 +#: awkgram.y:2283 #, fuzzy, c-format msgid "invalid char '%c' in expression" msgstr "Sibyo INYUGUTI in imvugo" -#: awkgram.y:2203 +#: awkgram.y:2331 #, fuzzy, c-format msgid "`%s' is a gawk extension" msgstr "`%s'ni a Umugereka" -#: awkgram.y:2206 +#: awkgram.y:2334 #, fuzzy, c-format msgid "`%s' is a Bell Labs extension" msgstr "`%s'ni a Umugereka" -#: awkgram.y:2209 +#: awkgram.y:2337 #, fuzzy, c-format msgid "POSIX does not allow `%s'" msgstr "OYA Kwemerera" -#: awkgram.y:2213 +#: awkgram.y:2341 #, fuzzy, c-format msgid "`%s' is not supported in old awk" msgstr "`%s'ni OYA in ki/ bishaje" -#: awkgram.y:2239 +#: awkgram.y:2367 msgid "`goto' considered harmful!\n" msgstr "" -#: awkgram.y:2301 +#: awkgram.y:2429 #, fuzzy, c-format msgid "%d is invalid as number of arguments for %s" msgstr "%dni Sibyo Nka Umubare Bya ingingo kugirango" -#: awkgram.y:2320 awkgram.y:2323 +#: awkgram.y:2448 awkgram.y:2451 #, fuzzy msgid "match: third argument is a gawk extension" msgstr "BIHUYE ni a Umugereka" -#: awkgram.y:2336 +#: awkgram.y:2464 #, fuzzy, c-format msgid "%s: string literal as last arg of substitute has no effect" msgstr "%s:Ikurikiranyanyuguti Nka Iheruka Bya GUSIMBURANYA Oya INGARUKA" -#: awkgram.y:2339 +#: awkgram.y:2467 #, fuzzy, c-format msgid "%s third parameter is not a changeable object" msgstr "%sni OYA a Igikoresho" -#: awkgram.y:2366 awkgram.y:2369 +#: awkgram.y:2494 awkgram.y:2497 #, fuzzy msgid "close: second argument is a gawk extension" msgstr "Gufunga ISEGONDA ni a Umugereka" -#: awkgram.y:2379 +#: awkgram.y:2507 #, fuzzy msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" msgstr "Gukoresha Bya ni Gukuraho... Nyobora" -#: awkgram.y:2394 +#: awkgram.y:2522 #, fuzzy msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" msgstr "Gukoresha Bya ni Gukuraho... Nyobora" -#: awkgram.y:2465 +#: awkgram.y:2594 #, fuzzy, c-format msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" msgstr "Umumaro" -#: awkgram.y:2498 +#: awkgram.y:2627 #, fuzzy, c-format msgid "function `%s': parameter `%s' shadows global variable" msgstr "Umumaro IMPINDURAGACIRO" -#: awkgram.y:2610 +#: awkgram.y:2739 #, fuzzy, c-format msgid "could not open `%s' for writing (%s)" msgstr "OYA Gufungura kugirango" -#: awkgram.y:2611 profile.c:93 +#: awkgram.y:2740 profile.c:94 #, fuzzy msgid "sending profile to standard error" msgstr "Ibijyana Kuri Bisanzwe Ikosa" -#: awkgram.y:2643 +#: awkgram.y:2772 #, fuzzy, c-format msgid "%s: close failed (%s)" msgstr "%s:Gufunga Byanze" -#: awkgram.y:2764 +#: awkgram.y:2893 msgid "shadow_funcs() called twice!" msgstr "" -#: awkgram.y:2791 +#: awkgram.y:2920 #, fuzzy msgid "there were shadowed variables." msgstr "Bihawe igicucu Ibihinduka" -#: awkgram.y:2864 +#: awkgram.y:2993 #, fuzzy, c-format msgid "function `%s': can't use function name as parameter name" msgstr "Umumaro Gukoresha Umumaro Izina: Nka Izina:" -#: awkgram.y:2874 +#: awkgram.y:3003 #, fuzzy, c-format msgid "function name `%s' previously defined" msgstr "Umumaro Izina:" -#: awkgram.y:3025 awkgram.y:3031 +#: awkgram.y:3154 awkgram.y:3160 #, fuzzy, c-format msgid "function `%s' called but never defined" msgstr "Umumaro Nta narimwe" -#: awkgram.y:3034 +#: awkgram.y:3163 #, fuzzy, c-format msgid "function `%s' defined but never called" msgstr "Umumaro Nta narimwe" -#: awkgram.y:3061 +#: awkgram.y:3190 #, fuzzy, c-format msgid "regexp constant for parameter #%d yields boolean value" msgstr "kugirango Icyungo Agaciro" -#: awkgram.y:3105 +#: awkgram.y:3234 #, fuzzy, c-format msgid "" "function `%s' called with space between name and `(',\n" @@ -430,428 +445,428 @@ "Umumaro Na: Umwanya hagati Izina: Na Cyangwa Nka a IMPINDURAGACIRO Cyangwa " "Imbonerahamwe" -#: builtin.c:145 +#: builtin.c:119 #, fuzzy, c-format msgid "%s to \"%s\" failed (%s)" msgstr "%sKuri Byanze" -#: builtin.c:146 +#: builtin.c:120 #, fuzzy msgid "standard output" msgstr "Bisanzwe Ibisohoka" -#: builtin.c:147 +#: builtin.c:121 #, fuzzy msgid "reason unknown" msgstr "Kitazwi" -#: builtin.c:160 +#: builtin.c:134 #, fuzzy msgid "exp: received non-numeric argument" msgstr "EXP BYAKIRIWE Bikurikije umubare" -#: builtin.c:166 +#: builtin.c:140 #, fuzzy, c-format msgid "exp: argument %g is out of range" msgstr "EXP ni Inyuma Bya Urutonde" -#: builtin.c:224 +#: builtin.c:198 #, fuzzy, c-format msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" msgstr "kugirango OYA" -#: builtin.c:227 +#: builtin.c:201 #, fuzzy, c-format msgid "fflush: cannot flush: file `%s' opened for reading, not writing" msgstr "IDOSIYE kugirango OYA" -#: builtin.c:239 +#: builtin.c:213 #, fuzzy, c-format msgid "fflush: `%s' is not an open file, pipe or co-process" msgstr "ni OYA Gufungura IDOSIYE Cyangwa" -#: builtin.c:332 +#: builtin.c:306 #, fuzzy msgid "index: received non-string first argument" msgstr "Umubarendanga BYAKIRIWE Ikurikiranyanyuguti Itangira" -#: builtin.c:334 +#: builtin.c:308 #, fuzzy msgid "index: received non-string second argument" msgstr "Umubarendanga BYAKIRIWE Ikurikiranyanyuguti ISEGONDA" -#: builtin.c:449 +#: builtin.c:423 #, fuzzy msgid "int: received non-numeric argument" msgstr "INT BYAKIRIWE Bikurikije umubare" -#: builtin.c:472 +#: builtin.c:448 #, fuzzy msgid "`length(array)' is a gawk extension" msgstr "`Gusiba ni a Umugereka" -#: builtin.c:481 +#: builtin.c:458 #, fuzzy msgid "length: received non-string argument" msgstr "Uburebure BYAKIRIWE Ikurikiranyanyuguti" -#: builtin.c:506 +#: builtin.c:483 #, fuzzy msgid "log: received non-numeric argument" msgstr "LOG BYAKIRIWE Bikurikije umubare" -#: builtin.c:509 +#: builtin.c:486 #, fuzzy, c-format msgid "log: received negative argument %g" msgstr "LOG BYAKIRIWE" -#: builtin.c:673 builtin.c:676 +#: builtin.c:693 builtin.c:696 #, fuzzy msgid "must use `count$' on all formats or none" msgstr "Gukoresha IBARA ku Byose Imiterere Cyangwa Ntacyo" -#: builtin.c:778 +#: builtin.c:799 #, fuzzy msgid "`$' is not permitted in awk formats" msgstr "`$'ni OYA in Imiterere" -#: builtin.c:784 +#: builtin.c:805 #, fuzzy msgid "arg count with `$' must be > 0" msgstr "IBARA Na: 0" -#: builtin.c:786 +#: builtin.c:807 #, fuzzy, c-format msgid "arg count %ld greater than total number of supplied arguments" msgstr "IBARA Biruta Igiteranyo Umubare Bya ingingo" -#: builtin.c:788 +#: builtin.c:809 #, fuzzy msgid "`$' not permitted after period in format" msgstr "`$'OYA Nyuma Igihe in Imiterere" -#: builtin.c:801 +#: builtin.c:822 #, fuzzy msgid "no `$' supplied for positional field width or precision" msgstr "Oya kugirango Umwanya Ubugari Cyangwa" -#: builtin.c:867 +#: builtin.c:888 #, fuzzy msgid "`l' is meaningless in awk formats; ignored" msgstr "`ni in Imiterere" -#: builtin.c:871 +#: builtin.c:892 #, fuzzy msgid "`l' is not permitted in POSIX awk formats" msgstr "`ni OYA in Imiterere" -#: builtin.c:882 +#: builtin.c:903 #, fuzzy msgid "`L' is meaningless in awk formats; ignored" msgstr "`ni in Imiterere" -#: builtin.c:886 +#: builtin.c:907 #, fuzzy msgid "`L' is not permitted in POSIX awk formats" msgstr "`ni OYA in Imiterere" -#: builtin.c:897 +#: builtin.c:918 #, fuzzy msgid "`h' is meaningless in awk formats; ignored" msgstr "`ni in Imiterere" -#: builtin.c:901 +#: builtin.c:922 #, fuzzy msgid "`h' is not permitted in POSIX awk formats" msgstr "`ni OYA in Imiterere" -#: builtin.c:1132 +#: builtin.c:1182 #, fuzzy, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" msgstr "[S Agaciro ni Inyuma Bya Urutonde kugirango Imiterere" -#: builtin.c:1198 +#: builtin.c:1266 #, fuzzy msgid "not enough arguments to satisfy format string" msgstr "OYA ingingo Kuri Imiterere Ikurikiranyanyuguti" -#: builtin.c:1200 +#: builtin.c:1268 #, fuzzy msgid "^ ran out for this one" msgstr "^Inyuma kugirango iyi" -#: builtin.c:1205 +#: builtin.c:1274 #, fuzzy msgid "[s]printf: format specifier does not have control letter" msgstr "[S Imiterere OYA Igenzura Ibaruwa..." -#: builtin.c:1208 +#: builtin.c:1277 #, fuzzy msgid "too many arguments supplied for format string" msgstr "ingingo kugirango Imiterere Ikurikiranyanyuguti" -#: builtin.c:1274 builtin.c:1277 +#: builtin.c:1352 builtin.c:1355 #, fuzzy msgid "printf: no arguments" msgstr "Oya ingingo" -#: builtin.c:1301 +#: builtin.c:1379 #, fuzzy msgid "sqrt: received non-numeric argument" msgstr "SQRT BYAKIRIWE Bikurikije umubare" -#: builtin.c:1305 +#: builtin.c:1383 #, fuzzy, c-format msgid "sqrt: called with negative argument %g" msgstr "SQRT Na:" -#: builtin.c:1329 +#: builtin.c:1407 #, fuzzy, c-format msgid "substr: start index %g is invalid, using 1" msgstr "Gutangira Umubarendanga ni Sibyo ikoresha 1." -#: builtin.c:1334 +#: builtin.c:1412 #, fuzzy, c-format msgid "substr: non-integer start index %g will be truncated" msgstr "Umubare wuzuye Gutangira Umubarendanga" -#: builtin.c:1353 +#: builtin.c:1431 #, fuzzy, c-format msgid "substr: length %g is not >= 1" msgstr "Uburebure ni OYA 1." -#: builtin.c:1355 +#: builtin.c:1433 #, fuzzy, c-format msgid "substr: length %g is not >= 0" msgstr "Uburebure ni OYA 0" -#: builtin.c:1362 +#: builtin.c:1440 #, fuzzy, c-format msgid "substr: non-integer length %g will be truncated" msgstr "Umubare wuzuye Uburebure" -#: builtin.c:1367 +#: builtin.c:1445 #, fuzzy, c-format msgid "substr: length %g too big for string indexing, truncating to %g" msgstr "Uburebure kugirango Ikurikiranyanyuguti gushyiraho umugereka Kuri" -#: builtin.c:1379 +#: builtin.c:1457 #, fuzzy msgid "substr: source string is zero length" msgstr "Inkomoko Ikurikiranyanyuguti ni Zeru Uburebure" -#: builtin.c:1395 +#: builtin.c:1473 #, fuzzy, c-format msgid "substr: start index %g is past end of string" msgstr "Gutangira Umubarendanga ni Impera Bya Ikurikiranyanyuguti" -#: builtin.c:1403 +#: builtin.c:1481 #, fuzzy, c-format msgid "" "substr: length %g at start index %g exceeds length of first argument (%lu)" msgstr "Uburebure ku Gutangira Umubarendanga Uburebure Bya Itangira" -#: builtin.c:1478 +#: builtin.c:1558 #, fuzzy msgid "strftime: received non-string first argument" msgstr "BYAKIRIWE Ikurikiranyanyuguti Itangira" -#: builtin.c:1484 +#: builtin.c:1564 #, fuzzy msgid "strftime: received empty format string" msgstr "BYAKIRIWE ubusa Imiterere Ikurikiranyanyuguti" -#: builtin.c:1493 +#: builtin.c:1573 #, fuzzy msgid "strftime: received non-numeric second argument" msgstr "BYAKIRIWE Bikurikije umubare ISEGONDA" -#: builtin.c:1556 +#: builtin.c:1650 #, fuzzy msgid "mktime: received non-string argument" msgstr "BYAKIRIWE Ikurikiranyanyuguti" -#: builtin.c:1601 +#: builtin.c:1695 #, fuzzy msgid "system: received non-string argument" msgstr "Sisitemu BYAKIRIWE Ikurikiranyanyuguti" -#: builtin.c:1722 eval.c:2039 +#: builtin.c:1816 eval.c:2041 #, fuzzy, c-format msgid "reference to uninitialized field `$%d'" msgstr "Indango Kuri Itatangijwe Umwanya" -#: builtin.c:1827 +#: builtin.c:1921 #, fuzzy msgid "tolower: received non-string argument" msgstr "BYAKIRIWE Ikurikiranyanyuguti" -#: builtin.c:1857 +#: builtin.c:1951 #, fuzzy msgid "toupper: received non-string argument" msgstr "BYAKIRIWE Ikurikiranyanyuguti" -#: builtin.c:1890 +#: builtin.c:1984 #, fuzzy msgid "atan2: received non-numeric first argument" msgstr "ATAN2 BYAKIRIWE Bikurikije umubare Itangira" -#: builtin.c:1892 +#: builtin.c:1986 #, fuzzy msgid "atan2: received non-numeric second argument" msgstr "ATAN2 BYAKIRIWE Bikurikije umubare ISEGONDA" -#: builtin.c:1911 +#: builtin.c:2005 #, fuzzy msgid "sin: received non-numeric argument" msgstr "SIN BYAKIRIWE Bikurikije umubare" -#: builtin.c:1927 +#: builtin.c:2021 #, fuzzy msgid "cos: received non-numeric argument" msgstr "COS BYAKIRIWE Bikurikije umubare" -#: builtin.c:1977 +#: builtin.c:2071 #, fuzzy msgid "srand: received non-numeric argument" msgstr "BYAKIRIWE Bikurikije umubare" -#: builtin.c:2012 +#: builtin.c:2106 #, fuzzy msgid "match: third argument is not an array" msgstr "BIHUYE ni OYA Imbonerahamwe" -#: builtin.c:2555 +#: builtin.c:2650 #, fuzzy msgid "gensub: third argument of 0 treated as 1" msgstr "Bya 0 Nka 1." -#: builtin.c:2715 +#: builtin.c:2766 #, fuzzy msgid "lshift: received non-numeric first argument" msgstr "BYAKIRIWE Bikurikije umubare Itangira" -#: builtin.c:2717 +#: builtin.c:2768 #, fuzzy msgid "lshift: received non-numeric second argument" msgstr "BYAKIRIWE Bikurikije umubare ISEGONDA" -#: builtin.c:2723 +#: builtin.c:2774 #, fuzzy, c-format msgid "lshift(%lf, %lf): negative values will give strange results" msgstr "Uduciro Ibisubizo ku" -#: builtin.c:2725 +#: builtin.c:2776 #, fuzzy, c-format msgid "lshift(%lf, %lf): fractional values will be truncated" msgstr "Uduciro" -#: builtin.c:2727 +#: builtin.c:2778 #, fuzzy, c-format msgid "lshift(%lf, %lf): too large shift value will give strange results" msgstr "Binini Gusunika Agaciro Ibisubizo ku" -#: builtin.c:2753 +#: builtin.c:2804 #, fuzzy msgid "rshift: received non-numeric first argument" msgstr "BYAKIRIWE Bikurikije umubare Itangira" -#: builtin.c:2755 +#: builtin.c:2806 #, fuzzy msgid "rshift: received non-numeric second argument" msgstr "BYAKIRIWE Bikurikije umubare ISEGONDA" -#: builtin.c:2761 +#: builtin.c:2812 #, fuzzy, c-format msgid "rshift(%lf, %lf): negative values will give strange results" msgstr "Uduciro Ibisubizo ku" -#: builtin.c:2763 +#: builtin.c:2814 #, fuzzy, c-format msgid "rshift(%lf, %lf): fractional values will be truncated" msgstr "Uduciro" -#: builtin.c:2765 +#: builtin.c:2816 #, fuzzy, c-format msgid "rshift(%lf, %lf): too large shift value will give strange results" msgstr "Binini Gusunika Agaciro Ibisubizo ku" -#: builtin.c:2791 +#: builtin.c:2842 #, fuzzy msgid "and: received non-numeric first argument" msgstr "Na BYAKIRIWE Bikurikije umubare Itangira" -#: builtin.c:2793 +#: builtin.c:2844 #, fuzzy msgid "and: received non-numeric second argument" msgstr "Na BYAKIRIWE Bikurikije umubare ISEGONDA" -#: builtin.c:2799 +#: builtin.c:2850 #, fuzzy, c-format msgid "and(%lf, %lf): negative values will give strange results" msgstr "Na Uduciro Ibisubizo ku" -#: builtin.c:2801 +#: builtin.c:2852 #, fuzzy, c-format msgid "and(%lf, %lf): fractional values will be truncated" msgstr "Na Uduciro" -#: builtin.c:2827 +#: builtin.c:2878 #, fuzzy msgid "or: received non-numeric first argument" msgstr "Cyangwa BYAKIRIWE Bikurikije umubare Itangira" -#: builtin.c:2829 +#: builtin.c:2880 #, fuzzy msgid "or: received non-numeric second argument" msgstr "Cyangwa BYAKIRIWE Bikurikije umubare ISEGONDA" -#: builtin.c:2835 +#: builtin.c:2886 #, fuzzy, c-format msgid "or(%lf, %lf): negative values will give strange results" msgstr "Cyangwa Uduciro Ibisubizo ku" -#: builtin.c:2837 +#: builtin.c:2888 #, fuzzy, c-format msgid "or(%lf, %lf): fractional values will be truncated" msgstr "Cyangwa Uduciro" -#: builtin.c:2863 +#: builtin.c:2914 #, fuzzy msgid "xor: received non-numeric first argument" msgstr "BYAKIRIWE Bikurikije umubare Itangira" -#: builtin.c:2865 +#: builtin.c:2916 #, fuzzy msgid "xor: received non-numeric second argument" msgstr "BYAKIRIWE Bikurikije umubare ISEGONDA" -#: builtin.c:2871 +#: builtin.c:2922 #, fuzzy, c-format msgid "xor(%lf, %lf): negative values will give strange results" msgstr "Uduciro Ibisubizo ku" -#: builtin.c:2873 +#: builtin.c:2924 #, fuzzy, c-format msgid "xor(%lf, %lf): fractional values will be truncated" msgstr "Uduciro" -#: builtin.c:2897 +#: builtin.c:2948 #, fuzzy msgid "compl: received non-numeric argument" msgstr "BYAKIRIWE Bikurikije umubare" -#: builtin.c:2903 +#: builtin.c:2954 #, fuzzy, c-format msgid "compl(%lf): negative value will give strange results" msgstr "Agaciro Ibisubizo ku" -#: builtin.c:2905 +#: builtin.c:2956 #, fuzzy, c-format msgid "compl(%lf): fractional value will be truncated" msgstr "Agaciro" -#: builtin.c:3078 +#: builtin.c:3129 #, fuzzy, c-format msgid "dcgettext: `%s' is not a valid locale category" msgstr "ni OYA a Byemewe Umwanya Icyiciro" @@ -866,7 +881,7 @@ msgid "buffer overflow in genflags2str" msgstr "Byarenze urugero in" -#: eval.c:385 eval.c:391 profile.c:838 +#: eval.c:385 eval.c:391 profile.c:817 #, fuzzy, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "Kuri Gukoresha Imbonerahamwe in a Imvugiro" @@ -921,7 +936,7 @@ msgid "statement has no effect" msgstr "Inyandiko Oya INGARUKA" -#: eval.c:952 eval.c:1893 +#: eval.c:952 eval.c:1895 #, fuzzy, c-format msgid "can't use function name `%s' as variable or array" msgstr "Gukoresha Umumaro Izina: Nka IMPINDURAGACIRO Cyangwa Imbonerahamwe" @@ -931,7 +946,7 @@ msgid "reference to uninitialized argument `%s'" msgstr "Indango Kuri Itatangijwe" -#: eval.c:974 eval.c:1902 +#: eval.c:974 eval.c:1904 #, fuzzy, c-format msgid "reference to uninitialized variable `%s'" msgstr "Indango Kuri Itatangijwe IMPINDURAGACIRO" @@ -943,47 +958,47 @@ "another!" msgstr "Ingaruka in imvugo Byahinduwe i Uburebure Bya" -#: eval.c:1200 +#: eval.c:1202 #, fuzzy msgid "assignment used in conditional context" msgstr "Igenera in Imvugiro" -#: eval.c:1278 +#: eval.c:1280 #, fuzzy msgid "division by zero attempted" msgstr "ku Zeru" -#: eval.c:1293 +#: eval.c:1295 #, fuzzy, c-format msgid "division by zero attempted in `%%'" msgstr "ku Zeru in" -#: eval.c:1308 profile.c:714 +#: eval.c:1310 profile.c:693 #, fuzzy, c-format msgid "illegal type (%s) in tree_eval" msgstr "Ubwoko in" -#: eval.c:1471 +#: eval.c:1473 #, fuzzy msgid "division by zero attempted in `/='" msgstr "ku Zeru in" -#: eval.c:1493 +#: eval.c:1495 #, fuzzy, c-format msgid "division by zero attempted in `%%='" msgstr "ku Zeru in" -#: eval.c:1758 +#: eval.c:1760 #, fuzzy, c-format msgid "function `%s' called with more arguments than declared" msgstr "Umumaro Na: Birenzeho ingingo" -#: eval.c:1802 +#: eval.c:1804 #, fuzzy, c-format msgid "function `%s' not defined" msgstr "Umumaro OYA" -#: eval.c:1865 +#: eval.c:1867 #, c-format msgid "" "\n" @@ -991,699 +1006,713 @@ "\n" msgstr "" -#: eval.c:1868 +#: eval.c:1870 #, c-format msgid "\t# -- main --\n" msgstr "" -#: eval.c:2023 +#: eval.c:2025 #, fuzzy msgid "attempt to field reference from non-numeric value" msgstr "Kuri Umwanya Indango Bivuye Bikurikije umubare Agaciro" -#: eval.c:2025 +#: eval.c:2027 #, fuzzy msgid "attempt to reference from null string" msgstr "Kuri Indango Bivuye NTAGIHARI Ikurikiranyanyuguti" -#: eval.c:2031 +#: eval.c:2033 #, fuzzy, c-format msgid "attempt to access field %d" msgstr "Kuri Umwanya" -#: eval.c:2052 eval.c:2059 profile.c:935 +#: eval.c:2054 eval.c:2061 profile.c:914 #, fuzzy msgid "assignment is not allowed to result of builtin function" msgstr "Igenera ni OYA Kuri Igisubizo Bya Umumaro" -#: eval.c:2123 +#: eval.c:2125 #, fuzzy msgid "`IGNORECASE' is a gawk extension" msgstr "`ni a Umugereka" -#: eval.c:2153 +#: eval.c:2155 #, fuzzy msgid "`BINMODE' is a gawk extension" msgstr "`ni a Umugereka" -#: eval.c:2275 +#: eval.c:2277 #, c-format msgid "bad `%sFMT' specification `%s'" msgstr "" -#: eval.c:2353 +#: eval.c:2355 #, fuzzy msgid "turning off `--lint' due to assignment to `LINT'" msgstr "Bidakora Kuri Igenera Kuri" -#: ext.c:60 ext.c:64 +#: ext.c:62 ext.c:67 #, fuzzy msgid "`extension' is a gawk extension" msgstr "`ni a Umugereka" -#: ext.c:74 +#: ext.c:77 #, fuzzy, c-format msgid "extension: cannot open `%s' (%s)\n" msgstr "Umugereka Gufungura" -#: ext.c:82 +#: ext.c:85 #, fuzzy, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "Umugereka Isomero Umumaro" -#: ext.c:102 +#: ext.c:105 #, fuzzy msgid "extension: missing function name" msgstr "Umugereka Ibuze Umumaro Izina:" -#: ext.c:107 +#: ext.c:110 #, fuzzy, c-format msgid "extension: illegal character `%c' in function name `%s'" msgstr "Umugereka Inyuguti in Umumaro Izina:" -#: ext.c:113 +#: ext.c:116 #, fuzzy, c-format msgid "extension: can't redefine function `%s'" msgstr "Umugereka Umumaro" -#: ext.c:117 +#: ext.c:120 #, fuzzy, c-format msgid "extension: function `%s' already defined" msgstr "Umugereka Umumaro" -#: ext.c:122 +#: ext.c:125 #, fuzzy, c-format msgid "extension: can't use gawk built-in `%s' as function name" msgstr "Umugereka Gukoresha in Nka Umumaro Izina:" -#: ext.c:124 +#: ext.c:127 #, fuzzy, c-format msgid "extension: function name `%s' previously defined" msgstr "Umugereka Umumaro Izina:" -#: ext.c:201 +#: ext.c:204 #, fuzzy, c-format msgid "function `%s' defined to take no more than %d argument(s)" msgstr "Umumaro Kuri Oya Birenzeho S" -#: ext.c:204 +#: ext.c:207 #, fuzzy, c-format msgid "function `%s': missing argument #%d" msgstr "Umumaro Ibuze" -#: ext.c:214 +#: ext.c:217 #, fuzzy, c-format msgid "function `%s': argument #%d: attempt to use scalar as an array" msgstr "Umumaro Kuri Gukoresha Nka Imbonerahamwe" -#: ext.c:218 +#: ext.c:221 #, fuzzy, c-format msgid "function `%s': argument #%d: attempt to use array as a scalar" msgstr "Umumaro Kuri Gukoresha Imbonerahamwe Nka a" -#: ext.c:243 +#: ext.c:246 msgid "Operation Not Supported" msgstr "" -#: field.c:326 +#: field.c:330 #, fuzzy msgid "NF set to negative value" msgstr "Gushyiraho Kuri Agaciro" -#: field.c:819 +#: field.c:823 #, fuzzy msgid "split: second argument is not an array" msgstr "Gutandukanya ISEGONDA ni OYA Imbonerahamwe" -#: field.c:853 +#: field.c:857 #, fuzzy msgid "split: null string for third arg is a gawk extension" msgstr "Gutandukanya NTAGIHARI Ikurikiranyanyuguti kugirango ni a Umugereka" -#: field.c:905 +#: field.c:909 #, fuzzy msgid "`FIELDWIDTHS' is a gawk extension" msgstr "`ni a Umugereka" -#: field.c:935 field.c:946 +#: field.c:939 field.c:953 #, c-format msgid "invalid FIELDWIDTHS value, near `%s'" msgstr "" -#: field.c:1027 +#: field.c:1036 #, fuzzy msgid "null string for `FS' is a gawk extension" msgstr "NTAGIHARI Ikurikiranyanyuguti kugirango ni a Umugereka" -#: getopt.c:571 getopt.c:590 +#: field.c:1040 +#, fuzzy +msgid "old awk does not support regexps as value of `FS'" +msgstr "ki/ bishaje OYA Gushigikira Mukoresha" + +#: getopt.c:571 getopt.c:587 #, fuzzy, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s:Ihitamo ni" -#: getopt.c:623 getopt.c:627 +#: getopt.c:620 getopt.c:624 #, fuzzy, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s:Ihitamo Kwemerera" -#: getopt.c:636 getopt.c:641 +#: getopt.c:633 getopt.c:638 #, fuzzy, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s:Ihitamo Kwemerera" -#: getopt.c:687 getopt.c:709 getopt.c:1040 getopt.c:1062 +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 #, fuzzy, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s:Ihitamo" -#: getopt.c:747 getopt.c:750 +#: getopt.c:738 getopt.c:741 #, fuzzy, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s:Ihitamo" -#: getopt.c:758 getopt.c:761 +#: getopt.c:749 getopt.c:752 #, fuzzy, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s:Ihitamo" -#: getopt.c:816 getopt.c:819 +#: getopt.c:804 getopt.c:807 #, fuzzy, c-format msgid "%s: illegal option -- %c\n" msgstr "%s:Ihitamo" -#: getopt.c:825 getopt.c:828 +#: getopt.c:813 getopt.c:816 #, fuzzy, c-format msgid "%s: invalid option -- %c\n" msgstr "%s:Sibyo Ihitamo" -#: getopt.c:883 getopt.c:902 getopt.c:1115 getopt.c:1136 main.c:448 +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 #, fuzzy, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s:Ihitamo" -#: getopt.c:955 getopt.c:974 +#: getopt.c:937 getopt.c:953 #, fuzzy, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s:Ihitamo ni" -#: getopt.c:998 getopt.c:1019 +#: getopt.c:977 getopt.c:995 #, fuzzy, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s:Ihitamo Kwemerera" -#: io.c:307 +#: io.c:345 #, fuzzy, c-format msgid "cannot open file `%s' for reading (%s)" msgstr "Gufungura IDOSIYE kugirango" -#: io.c:398 +#: io.c:436 #, fuzzy, c-format msgid "close of fd %d (`%s') failed (%s)" msgstr "Gufunga Bya Byanze" -#: io.c:536 +#: io.c:575 #, fuzzy, c-format msgid "invalid tree type %s in redirect()" msgstr "Sibyo Ubwoko in" -#: io.c:542 +#: io.c:581 #, fuzzy, c-format msgid "expression in `%s' redirection only has numeric value" msgstr "imvugo in Bikurikije umubare Agaciro" -#: io.c:548 +#: io.c:587 #, fuzzy, c-format msgid "expression for `%s' redirection has null string value" msgstr "imvugo kugirango NTAGIHARI Ikurikiranyanyuguti Agaciro" -#: io.c:553 +#: io.c:592 #, fuzzy, c-format msgid "filename `%s' for `%s' redirection may be result of logical expression" msgstr "" "Izina ry'idosiye: kugirango Gicurasi Igisubizo Bya Bijyanye n'inyurabwenge " "imvugo" -#: io.c:591 +#: io.c:630 #, fuzzy, c-format msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" msgstr "Bya Na kugirango IDOSIYE" -#: io.c:643 +#: io.c:682 #, fuzzy, c-format msgid "can't open pipe `%s' for output (%s)" msgstr "Gufungura kugirango Ibisohoka" -#: io.c:652 +#: io.c:691 #, fuzzy, c-format msgid "can't open pipe `%s' for input (%s)" msgstr "Gufungura kugirango Iyinjiza" -#: io.c:665 +#: io.c:698 io.c:1448 +#, fuzzy, c-format +msgid "file `%s' is a directory" +msgstr "IDOSIYE ni a bushyinguro" + +#: io.c:706 #, fuzzy, c-format msgid "can't open two way socket `%s' for input/output (%s)" msgstr "Gufungura kugirango Iyinjiza Ibisohoka" -#: io.c:669 +#: io.c:710 #, fuzzy, c-format msgid "can't open two way pipe `%s' for input/output (%s)" msgstr "Gufungura kugirango Iyinjiza Ibisohoka" -#: io.c:745 +#: io.c:786 #, fuzzy, c-format msgid "can't redirect from `%s' (%s)" msgstr "Bivuye" -#: io.c:748 +#: io.c:789 #, fuzzy, c-format msgid "can't redirect to `%s' (%s)" msgstr "Kuri" -#: io.c:787 +#: io.c:828 #, fuzzy msgid "" "reached system limit for open files: starting to multiplex file descriptors" msgstr "Sisitemu kugirango Gufungura Idosiye Kuri IDOSIYE" -#: io.c:803 +#: io.c:844 #, fuzzy, c-format msgid "close of `%s' failed (%s)." msgstr "Gufunga Bya Byanze" -#: io.c:811 +#: io.c:852 #, fuzzy msgid "too many pipes or input files open" msgstr "Cyangwa Iyinjiza Idosiye Gufungura" -#: io.c:834 +#: io.c:875 #, fuzzy msgid "close: second argument must be `to' or `from'" msgstr "Gufunga ISEGONDA Cyangwa" -#: io.c:848 +#: io.c:889 #, fuzzy, c-format msgid "close: `%.*s' is not an open file, pipe or co-process" msgstr "Gufunga." -#: io.c:852 +#: io.c:893 #, fuzzy msgid "close of redirection that was never opened" msgstr "Gufunga Bya Nta narimwe" -#: io.c:948 +#: io.c:989 #, fuzzy, c-format msgid "close: redirection `%s' not opened with `|&', second argument ignored" msgstr "Gufunga OYA Na: ISEGONDA" -#: io.c:964 +#: io.c:1005 #, fuzzy, c-format msgid "failure status (%d) on pipe close of `%s' (%s)" msgstr "Imimerere ku Gufunga Bya" -#: io.c:967 +#: io.c:1008 #, fuzzy, c-format msgid "failure status (%d) on file close of `%s' (%s)" msgstr "Imimerere ku IDOSIYE Gufunga Bya" -#: io.c:987 +#: io.c:1028 #, fuzzy, c-format msgid "no explicit close of socket `%s' provided" msgstr "Oya Gufunga Bya" -#: io.c:990 +#: io.c:1031 #, fuzzy, c-format msgid "no explicit close of co-process `%s' provided" msgstr "Oya Gufunga Bya" -#: io.c:993 +#: io.c:1034 #, fuzzy, c-format msgid "no explicit close of pipe `%s' provided" msgstr "Oya Gufunga Bya" -#: io.c:996 +#: io.c:1037 #, fuzzy, c-format msgid "no explicit close of file `%s' provided" msgstr "Oya Gufunga Bya IDOSIYE" -#: io.c:1025 io.c:1080 main.c:718 main.c:756 +#: io.c:1066 io.c:1121 main.c:749 main.c:791 #, fuzzy, c-format msgid "error writing standard output (%s)" msgstr "Ikosa Bisanzwe Ibisohoka" -#: io.c:1029 io.c:1085 +#: io.c:1070 io.c:1126 #, fuzzy, c-format msgid "error writing standard error (%s)" msgstr "Ikosa Bisanzwe Ikosa" -#: io.c:1037 +#: io.c:1078 #, fuzzy, c-format msgid "pipe flush of `%s' failed (%s)." msgstr "Bya Byanze" -#: io.c:1040 +#: io.c:1081 #, fuzzy, c-format msgid "co-process flush of pipe to `%s' failed (%s)." msgstr "Bya Kuri Byanze" -#: io.c:1043 +#: io.c:1084 #, fuzzy, c-format msgid "file flush of `%s' failed (%s)." msgstr "IDOSIYE Bya Byanze" -#: io.c:1205 +#: io.c:1198 +#, fuzzy, c-format +msgid "local port %s invalid in `/inet'" +msgstr "Umuyoboro Sibyo in" + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "" + +#: io.c:1250 #, fuzzy msgid "/inet/raw client not ready yet, sorry" msgstr "/Umukiriya OYA Cyiteguye" -#: io.c:1207 io.c:1244 +#: io.c:1253 io.c:1289 #, fuzzy msgid "only root may use `/inet/raw'." msgstr "Imizi Gicurasi Gukoresha" -#: io.c:1242 +#: io.c:1287 #, fuzzy msgid "/inet/raw server not ready yet, sorry" msgstr "/Seriveri OYA Cyiteguye" -#: io.c:1332 +#: io.c:1385 #, fuzzy, c-format msgid "no (known) protocol supplied in special filename `%s'" msgstr "Oya Porotokole in Bidasanzwe Izina ry'idosiye:" -#: io.c:1350 +#: io.c:1399 #, fuzzy, c-format msgid "special file name `%s' is incomplete" msgstr "Bidasanzwe IDOSIYE Izina: ni" -#: io.c:1362 -#, fuzzy, c-format -msgid "local port invalid in `%s'" -msgstr "Umuyoboro Sibyo in" - -#: io.c:1374 +#: io.c:1414 #, fuzzy msgid "must supply a remote hostname to `/inet'" msgstr "a Izina ry'inturo: Kuri" -#: io.c:1389 +#: io.c:1432 #, fuzzy msgid "must supply a remote port to `/inet'" msgstr "a Umuyoboro Kuri" -#: io.c:1395 -#, fuzzy, c-format -msgid "remote port invalid in `%s'" -msgstr "Umuyoboro Sibyo in" - -#: io.c:1405 +#: io.c:1439 #, fuzzy msgid "TCP/IP communications are not supported" msgstr "OYA" -#: io.c:1414 io.c:1595 -#, fuzzy, c-format -msgid "file `%s' is a directory" -msgstr "IDOSIYE ni a bushyinguro" - -#: io.c:1484 +#: io.c:1509 #, fuzzy, c-format msgid "use `PROCINFO[\"%s\"]' instead of `%s'" msgstr "Gukoresha Bya" -#: io.c:1516 +#: io.c:1547 #, fuzzy msgid "use `PROCINFO[...]' instead of `/dev/user'" msgstr "Gukoresha Bya" -#: io.c:1581 io.c:1763 +#: io.c:1612 io.c:1798 #, fuzzy, c-format msgid "could not open `%s', mode `%s'" msgstr "OYA Gufungura Ubwoko" -#: io.c:1814 +#: io.c:1849 #, fuzzy, c-format msgid "close of master pty failed (%s)" msgstr "Gufunga Bya Mugenga Byanze" -#: io.c:1816 io.c:1968 io.c:2119 +#: io.c:1851 io.c:2003 io.c:2154 #, fuzzy, c-format msgid "close of stdout in child failed (%s)" msgstr "Gufunga Bya in Byanze" -#: io.c:1819 +#: io.c:1854 #, fuzzy, c-format msgid "moving slave pty to stdout in child failed (dup: %s)" msgstr "Kuri in Byanze" -#: io.c:1821 io.c:1973 +#: io.c:1856 io.c:2008 #, fuzzy, c-format msgid "close of stdin in child failed (%s)" msgstr "Gufunga Bya in Byanze" -#: io.c:1824 +#: io.c:1859 #, fuzzy, c-format msgid "moving slave pty to stdin in child failed (dup: %s)" msgstr "Kuri in Byanze" -#: io.c:1826 io.c:1845 +#: io.c:1861 io.c:1880 #, fuzzy, c-format msgid "close of slave pty failed (%s)" msgstr "Gufunga Bya Byanze" -#: io.c:1919 io.c:1971 io.c:2100 io.c:2122 +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 #, fuzzy, c-format msgid "moving pipe to stdout in child failed (dup: %s)" msgstr "Kuri in Byanze" -#: io.c:1923 io.c:1976 +#: io.c:1958 io.c:2011 #, fuzzy, c-format msgid "moving pipe to stdin in child failed (dup: %s)" msgstr "Kuri in Byanze" -#: io.c:1940 io.c:2113 +#: io.c:1975 io.c:2148 #, fuzzy msgid "restoring stdout in parent process failed\n" msgstr "in" -#: io.c:1945 +#: io.c:1980 #, fuzzy msgid "restoring stdin in parent process failed\n" msgstr "in" -#: io.c:1979 io.c:2124 io.c:2135 +#: io.c:2014 io.c:2159 io.c:2170 #, fuzzy, c-format msgid "close of pipe failed (%s)" msgstr "Gufunga Bya Byanze" -#: io.c:2024 +#: io.c:2059 #, fuzzy msgid "`|&' not supported" msgstr "`|&'OYA" -#: io.c:2090 +#: io.c:2125 #, fuzzy, c-format msgid "cannot open pipe `%s' (%s)" msgstr "Gufungura" -#: io.c:2131 +#: io.c:2166 #, fuzzy, c-format msgid "cannot create child process for `%s' (fork: %s)" msgstr "Kurema kugirango" -#: io.c:2506 +#: io.c:2548 #, fuzzy, c-format msgid "data file `%s' is empty" msgstr "Ibyatanzwe IDOSIYE ni ubusa" -#: io.c:2547 io.c:2555 +#: io.c:2589 io.c:2597 #, fuzzy msgid "could not allocate more input memory" msgstr "OYA Birenzeho Iyinjiza Ububiko" -#: io.c:2919 io.c:2984 +#: io.c:2965 io.c:3038 #, fuzzy, c-format msgid "error reading input file `%s': %s" msgstr "Ikosa Iyinjiza IDOSIYE" -#: io.c:3109 +#: io.c:3163 #, fuzzy msgid "multicharacter value of `RS' is a gawk extension" msgstr "Agaciro Bya ni a Umugereka" -#: main.c:338 +#: main.c:351 #, fuzzy msgid "`-m[fr]' option irrelevant in gawk" msgstr "`-M Ihitamo in" -#: main.c:340 +#: main.c:353 #, fuzzy msgid "-m option usage: `-m[fr] nnn'" msgstr "-M Ihitamo Ikoresha: M" -#: main.c:357 +#: main.c:370 #, fuzzy, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s:Ihitamo" -#: main.c:394 +#: main.c:407 #, fuzzy msgid "empty argument to `--source' ignored" msgstr "ubusa Kuri" -#: main.c:467 +#: main.c:480 #, fuzzy msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" msgstr "IMPINDURAGACIRO Gushyiraho ku" -#: main.c:472 +#: main.c:486 msgid "`--posix' overrides `--traditional'" msgstr "" -#: main.c:483 +#: main.c:497 #, fuzzy msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" msgstr "`--NYACUMI" -#: main.c:487 +#: main.c:501 #, fuzzy, c-format msgid "running %s setuid root may be a security problem" msgstr "Imizi Gicurasi a Umutekano" -#: main.c:528 +#: main.c:542 #, fuzzy, c-format msgid "can't set binary mode on stdin (%s)" msgstr "Gushyiraho Nyabibiri Ubwoko ku" -#: main.c:531 +#: main.c:545 #, fuzzy, c-format msgid "can't set binary mode on stdout (%s)" msgstr "Gushyiraho Nyabibiri Ubwoko ku" -#: main.c:533 +#: main.c:547 #, fuzzy, c-format msgid "can't set binary mode on stderr (%s)" msgstr "Gushyiraho Nyabibiri Ubwoko ku" -#: main.c:572 +#: main.c:586 #, fuzzy msgid "no program text at all!" msgstr "Oya Porogaramu Umwandiko ku Byose" -#: main.c:665 +#: main.c:690 #, fuzzy, c-format msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" msgstr "Cyangwa IMISUSIRE Amahitamo F IDOSIYE" -#: main.c:667 +#: main.c:692 #, fuzzy, c-format msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" msgstr "Cyangwa IMISUSIRE Amahitamo IDOSIYE" -#: main.c:672 +#: main.c:697 #, fuzzy msgid "POSIX options:\t\tGNU long options:\n" msgstr "Amahitamo Amahitamo" -#: main.c:673 +#: main.c:698 #, fuzzy msgid "\t-f progfile\t\t--file=progfile\n" msgstr "-F IDOSIYE" -#: main.c:674 +#: main.c:699 #, fuzzy msgid "\t-F fs\t\t\t--field-separator=fs\n" msgstr "-Umwanya Mutandukanya" -#: main.c:675 +#: main.c:700 #, fuzzy msgid "\t-v var=val\t\t--assign=var=val\n" msgstr "-v VAR Kugenera... VAR" -#: main.c:676 +#: main.c:701 #, fuzzy msgid "\t-m[fr] val\n" msgstr "-M" -#: main.c:677 +#: main.c:702 msgid "\t-W compat\t\t--compat\n" msgstr "" -#: main.c:678 +#: main.c:703 msgid "\t-W copyleft\t\t--copyleft\n" msgstr "" -#: main.c:679 +#: main.c:704 msgid "\t-W copyright\t\t--copyright\n" msgstr "" -#: main.c:680 +#: main.c:705 #, fuzzy msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" msgstr "-Ibihinduka IDOSIYE Ibihinduka IDOSIYE" -#: main.c:681 +#: main.c:706 #, fuzzy msgid "\t-W exec=file\t\t--exec=file\n" msgstr "-Ibijyana IDOSIYE Ibijyana IDOSIYE" -#: main.c:682 +#: main.c:707 msgid "\t-W gen-po\t\t--gen-po\n" msgstr "" -#: main.c:683 +#: main.c:708 msgid "\t-W help\t\t\t--help\n" msgstr "" -#: main.c:684 +#: main.c:709 msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" msgstr "" -#: main.c:685 +#: main.c:710 msgid "\t-W lint-old\t\t--lint-old\n" msgstr "" -#: main.c:686 +#: main.c:711 #, fuzzy msgid "\t-W non-decimal-data\t--non-decimal-data\n" msgstr "-NYACUMI NYACUMI" -#: main.c:688 +#: main.c:713 msgid "\t-W nostalgia\t\t--nostalgia\n" msgstr "" -#: main.c:691 +#: main.c:716 msgid "\t-W parsedebug\t\t--parsedebug\n" msgstr "" -#: main.c:693 +#: main.c:718 #, fuzzy msgid "\t-W profile[=file]\t--profile[=file]\n" msgstr "-Ibijyana IDOSIYE Ibijyana IDOSIYE" -#: main.c:694 +#: main.c:719 msgid "\t-W posix\t\t--posix\n" msgstr "" -#: main.c:695 +#: main.c:720 msgid "\t-W re-interval\t\t--re-interval\n" msgstr "" -#: main.c:696 +#: main.c:721 #, fuzzy msgid "\t-W source=program-text\t--source=program-text\n" msgstr "-Inkomoko Porogaramu Inkomoko Porogaramu" -#: main.c:697 +#: main.c:722 msgid "\t-W traditional\t\t--traditional\n" msgstr "" -#: main.c:698 +#: main.c:723 msgid "\t-W usage\t\t--usage\n" msgstr "" -#: main.c:699 +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "" + +#: main.c:725 msgid "\t-W version\t\t--version\n" msgstr "" -#: main.c:703 +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 #, fuzzy msgid "" "\n" @@ -1692,7 +1721,7 @@ "\n" msgstr "Icyegeranyo in Na in i Byacapwe Verisiyo" -#: main.c:707 +#: main.c:738 #, fuzzy msgid "" "gawk is a pattern scanning and processing language.\n" @@ -1702,7 +1731,7 @@ "ni a Ishusho Na Inonosora Ururimi Mburabuzi Bisanzwe Iyinjiza Na Bisanzwe " "Ibisohoka" -#: main.c:711 +#: main.c:742 #, fuzzy msgid "" "Examples:\n" @@ -1710,21 +1739,21 @@ "\tgawk -F: '{ print $1 }' /etc/passwd\n" msgstr "Igiteranyo Gucapa Igiteranyo Gucapa" -#: main.c:731 +#: main.c:762 #, fuzzy, c-format msgid "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" +"the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" msgstr "" -"C Porogaramu ni Kigenga Na Cyangwa i Bya i Nka Verisiyo 2. Bya i ku Ihitamo " +"C Porogaramu ni Kigenga Na Cyangwa i Bya i Nka Verisiyo 3. Bya i ku Ihitamo " "Verisiyo" -#: main.c:739 +#: main.c:770 #, fuzzy msgid "" "This program is distributed in the hope that it will be useful,\n" @@ -1735,59 +1764,57 @@ msgstr "" "Porogaramu ni in i ATARIIGIHARWE i Cyangwa A kugirango Birenzeho Birambuye" -#: main.c:745 +#: main.c:781 #, fuzzy msgid "" "You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" msgstr "" "BYAKIRIWE a Gukoporora Bya i Na: iyi Porogaramu NIBA OYA Kwandika Kuri i" -#: main.c:781 +#: main.c:816 #, fuzzy msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-OYA Gushyiraho Kuri Isunika in" -#: main.c:1018 +#: main.c:1060 #, fuzzy, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" "\n" msgstr "%s:`%s'Kuri OYA in VAR" -#: main.c:1038 +#: main.c:1080 #, fuzzy, c-format msgid "`%s' is not a legal variable name" msgstr "`%s'ni OYA a By'amategeko IMPINDURAGACIRO Izina:" -#: main.c:1041 +#: main.c:1083 #, fuzzy, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "`%s'ni OYA a IMPINDURAGACIRO Izina: kugirango IDOSIYE" -#: main.c:1074 +#: main.c:1122 #, fuzzy msgid "floating point exception" msgstr "Bihindagurika Akadomo Irengayobora(-)" -#: main.c:1081 +#: main.c:1129 #, fuzzy msgid "fatal error: internal error" msgstr "Ikosa By'imbere Ikosa" -#: main.c:1132 +#: main.c:1180 #, fuzzy, c-format msgid "no pre-opened fd %d" msgstr "Oya Byahawe imiterere mbere" -#: main.c:1139 +#: main.c:1187 #, fuzzy, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "OYA Byahawe imiterere mbere Gufungura NTAGIHARI kugirango" -#: main.c:1162 main.c:1171 +#: main.c:1210 main.c:1219 #, fuzzy, c-format msgid "could not find groups: %s" msgstr "OYA Gushaka Amatsinda" @@ -1812,27 +1839,32 @@ msgid "fatal: " msgstr "" -#: node.c:59 node.c:66 node.c:75 node.c:90 node.c:119 +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 #, fuzzy msgid "can't convert string to float" msgstr "GUHINDURA Ikurikiranyanyuguti Kuri Kureremba" -#: node.c:414 +#: node.c:406 #, fuzzy msgid "backslash at end of string" msgstr "ku Impera Bya Ikurikiranyanyuguti" -#: node.c:604 +#: node.c:548 +#, fuzzy, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "ki/ bishaje OYA Gushigikira Mukoresha" + +#: node.c:599 #, fuzzy msgid "POSIX does not allow `\\x' escapes" msgstr "OYA Kwemerera" -#: node.c:610 +#: node.c:605 #, fuzzy msgid "no hex digits in `\\x' escape sequence" msgstr "Oya in" -#: node.c:644 +#: node.c:639 #, fuzzy, c-format msgid "escape sequence `\\%c' treated as plain `%c'" msgstr "Nka Byuzuye" @@ -1842,151 +1874,155 @@ msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" msgstr "%s%s`%s':OYA Gushyiraho Gufunga ku" -#: profile.c:91 +#: profile.c:92 #, fuzzy, c-format msgid "could not open `%s' for writing: %s" msgstr "OYA Gufungura kugirango" -#: profile.c:467 +#: profile.c:450 #, fuzzy, c-format msgid "internal error: %s with null vname" msgstr "By'imbere Ikosa Na: NTAGIHARI" -#: profile.c:531 +#: profile.c:514 #, fuzzy msgid "# treated internally as `delete'" msgstr "#Nka" -#: profile.c:1168 +#: profile.c:1147 #, fuzzy, c-format msgid "# this is a dynamically loaded extension function" msgstr "#iyi ni a Umugereka Umumaro" -#: profile.c:1199 +#: profile.c:1178 #, fuzzy, c-format msgid "\t# gawk profile, created %s\n" msgstr "#Ibijyana Byaremwe" -#: profile.c:1202 +#: profile.c:1181 #, fuzzy, c-format msgid "" "\t# BEGIN block(s)\n" "\n" msgstr "#Funga S" -#: profile.c:1212 +#: profile.c:1191 #, fuzzy, c-format msgid "" "\t# Rule(s)\n" "\n" msgstr "#S" -#: profile.c:1218 +#: profile.c:1197 #, fuzzy, c-format msgid "" "\t# END block(s)\n" "\n" msgstr "#Funga S" -#: profile.c:1238 +#: profile.c:1217 #, c-format msgid "" "\n" "\t# Functions, listed alphabetically\n" msgstr "" -#: profile.c:1453 +#: profile.c:1470 #, fuzzy, c-format msgid "unexpected type %s in prec_level" msgstr "Ubwoko in" -#: regcomp.c:160 +#: regcomp.c:132 msgid "Success" msgstr "Ibyatunganye" -#: regcomp.c:163 +#: regcomp.c:135 #, fuzzy msgid "No match" msgstr "BIHUYE" -#: regcomp.c:166 +#: regcomp.c:138 #, fuzzy msgid "Invalid regular expression" msgstr "Ibisanzwe imvugo" -#: regcomp.c:169 +#: regcomp.c:141 #, fuzzy msgid "Invalid collation character" msgstr "Inyuguti" -#: regcomp.c:172 +#: regcomp.c:144 #, fuzzy msgid "Invalid character class name" msgstr "Inyuguti ishuri Izina:" -#: regcomp.c:175 +#: regcomp.c:147 msgid "Trailing backslash" msgstr "" -#: regcomp.c:178 +#: regcomp.c:150 #, fuzzy msgid "Invalid back reference" msgstr "Inyuma Indango" -#: regcomp.c:181 +#: regcomp.c:153 #, fuzzy msgid "Unmatched [ or [^" msgstr "Cyangwa" -#: regcomp.c:184 +#: regcomp.c:156 #, fuzzy msgid "Unmatched ( or \\(" msgstr "Cyangwa" -#: regcomp.c:187 +#: regcomp.c:159 msgid "Unmatched \\{" msgstr "" -#: regcomp.c:190 +#: regcomp.c:162 #, fuzzy msgid "Invalid content of \\{\\}" msgstr "Ibikubiyemo Bya" -#: regcomp.c:193 +#: regcomp.c:165 #, fuzzy msgid "Invalid range end" msgstr "Urutonde Impera" -#: regcomp.c:196 +#: regcomp.c:168 msgid "Memory exhausted" msgstr "" -#: regcomp.c:199 +#: regcomp.c:171 #, fuzzy msgid "Invalid preceding regular expression" msgstr "Ibisanzwe imvugo" -#: regcomp.c:202 +#: regcomp.c:174 #, fuzzy msgid "Premature end of regular expression" msgstr "Impera Bya Ibisanzwe imvugo" -#: regcomp.c:205 +#: regcomp.c:177 #, fuzzy msgid "Regular expression too big" msgstr "imvugo" -#: regcomp.c:208 +#: regcomp.c:180 #, fuzzy msgid "Unmatched ) or \\)" msgstr "Cyangwa" -#: regcomp.c:688 +#: regcomp.c:664 #, fuzzy msgid "No previous regular expression" msgstr "Ibanjirije Ibisanzwe imvugo" #, fuzzy +#~ msgid "remote port invalid in `%s'" +#~ msgstr "Umuyoboro Sibyo in" + +#, fuzzy #~ msgid "function %s called\n" #~ msgstr "Umumaro" diff -urN gawk-3.1.5/po/sv.po gawk-3.1.6/po/sv.po --- gawk-3.1.5/po/sv.po 2005-07-06 17:20:04.000000000 +0300 +++ gawk-3.1.6/po/sv.po 2007-09-30 22:33:26.000000000 +0200 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: gawk 3.1.1m\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" -"POT-Creation-Date: 2005-07-06 17:20+0300\n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" "PO-Revision-Date: 2003-02-27 19:54+0100\n" "Last-Translator: Martin Sjgren \n" "Language-Team: Swedish \n" @@ -36,353 +36,368 @@ msgid "from %s" msgstr "%s (frn %s)" -#: array.c:511 +#: array.c:514 #, c-format msgid "reference to uninitialized element `%s[\"%s\"]'" msgstr "referens till ickeinitierat element \"%s[\"%s\"]\"" -#: array.c:517 +#: array.c:520 #, c-format msgid "subscript of array `%s' is null string" msgstr "index i vektorn \"%s\" r en tom strng" -#: array.c:621 +#: array.c:624 #, c-format msgid "delete: index `%s' not in array `%s'" msgstr "delete: index \"%s\" finns inte i vektorn \"%s\"" -#: array.c:791 +#: array.c:793 #, c-format msgid "%s: empty (null)\n" msgstr "%s: tom (null)\n" -#: array.c:796 +#: array.c:798 #, c-format msgid "%s: empty (zero)\n" msgstr "%s: tom (noll)\n" -#: array.c:800 +#: array.c:802 #, c-format msgid "%s: table_size = %d, array_size = %d\n" msgstr "%s: tabellstorlek = %d, vektorstorlek = %d\n" -#: array.c:829 +#: array.c:831 #, c-format msgid "%s: is parameter\n" msgstr "%s: r en parameter\n" -#: array.c:834 +#: array.c:836 #, c-format msgid "%s: array_ref to %s\n" msgstr "%s: vektorreferens till %s\n" -#: awkgram.y:208 +#: awkgram.y:215 #, c-format msgid "%s blocks must have an action part" msgstr "%s-block mste ha en tgrdsdel" -#: awkgram.y:211 +#: awkgram.y:218 msgid "each rule must have a pattern or an action part" msgstr "varje regel mste ha ett mnster eller en tgrdsdel" -#: awkgram.y:267 +#: awkgram.y:254 awkgram.y:263 +#, fuzzy +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "gamla awk stder inte operatorn \"**\"" + +#: awkgram.y:282 #, c-format msgid "`%s' is a built-in function, it cannot be redefined" msgstr "\"%s\" r en inbyggd funktion, den kan inte definieras om" -#: awkgram.y:313 +#: awkgram.y:328 #, fuzzy msgid "regexp constant `//' looks like a C++ comment, but is not" msgstr "regexp-konstanten \"/%s/\" ser ut som en C-kommentar men r inte det" -#: awkgram.y:316 +#: awkgram.y:331 #, c-format msgid "regexp constant `/%s/' looks like a C comment, but is not" msgstr "regexp-konstanten \"/%s/\" ser ut som en C-kommentar men r inte det" -#: awkgram.y:343 awkgram.y:623 +#: awkgram.y:358 awkgram.y:653 msgid "statement may have no effect" msgstr "kommandot kanske inte har ngon effekt" -#: awkgram.y:440 awkgram.y:460 +#: awkgram.y:455 awkgram.y:479 #, c-format msgid "`%s' used in %s action" msgstr "\"%s\" anvnd i %s-tgrden" -#: awkgram.y:453 awkgram.y:456 +#: awkgram.y:470 awkgram.y:474 msgid "`nextfile' is a gawk extension" msgstr "\"nextfile\" r en gawk-utkning" -#: awkgram.y:470 +#: awkgram.y:489 msgid "`return' used outside function context" msgstr "\"return\" anvnd utanfr funktion" -#: awkgram.y:512 +#: awkgram.y:531 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" msgstr "" "ensamt \"print\" i BEGIN eller END-regel br troligen vara 'print \"\"'" -#: awkgram.y:525 awkgram.y:532 +#: awkgram.y:547 awkgram.y:555 msgid "`delete array' is a gawk extension" msgstr "\"delete array\" r en gawk-utkning" -#: awkgram.y:540 awkgram.y:547 +#: awkgram.y:569 awkgram.y:577 msgid "`delete(array)' is a non-portable tawk extension" msgstr "\"delete(array)\" r en icke portabel tawk-utkning" -#: awkgram.y:591 +#: awkgram.y:621 #, c-format msgid "duplicate case values in switch body: %s" msgstr "" -#: awkgram.y:601 +#: awkgram.y:631 msgid "Duplicate `default' detected in switch body" msgstr "" -#: awkgram.y:690 +#: awkgram.y:720 msgid "multistage two-way pipelines don't work" msgstr "flerstegs dubbelriktade rr fungerar inte" -#: awkgram.y:781 +#: awkgram.y:811 msgid "regular expression on right of assignment" msgstr "reguljrt uttryck i hgerledet av en tilldelning" -#: awkgram.y:804 +#: awkgram.y:834 msgid "regular expression on left of `~' or `!~' operator" msgstr "reguljrt uttryck p vnster sida om en \"~\"- eller \"!~\"-operator" -#: awkgram.y:812 +#: awkgram.y:840 awkgram.y:913 +#, fuzzy +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "gamla awk stder inte operatorn \"**\"" + +#: awkgram.y:846 msgid "regular expression on right of comparison" msgstr "reguljrt uttryck i hgerledet av en jmfrelse" -#: awkgram.y:879 +#: awkgram.y:903 msgid "non-redirected `getline' undefined inside END action" msgstr "icke omdirigerad \"getline\" odefinierad inuti END-tgrd" -#: awkgram.y:906 +#: awkgram.y:914 +#, fuzzy +msgid "old awk does not support multidimensional arrays" +msgstr "gamla awk stder inte operatorn \"**\"" + +#: awkgram.y:960 msgid "call of `length' without parentheses is not portable" msgstr "anrop av \"length\" utan parenteser r inte portabelt" -#: awkgram.y:909 +#: awkgram.y:965 msgid "call of `length' without parentheses is deprecated by POSIX" msgstr "anrop av \"length\" utan parenteser r frldrat enligt POSIX" -#: awkgram.y:962 +#: awkgram.y:1019 msgid "use of non-array as array" msgstr "" -#: awkgram.y:964 +#: awkgram.y:1022 msgid "invalid subscript expression" msgstr "ogiltig indexuttryck" -#: awkgram.y:1171 +#: awkgram.y:1249 msgid "unexpected newline or end of string" msgstr "ovntat nyradstecken eller slut p strngen" -#: awkgram.y:1267 +#: awkgram.y:1366 msgid "empty program text on command line" msgstr "tom programtext p kommandoraden" -#: awkgram.y:1320 +#: awkgram.y:1422 #, c-format msgid "can't open source file `%s' for reading (%s)" msgstr "kan inte ppna kllfilen \"%s\" fr lsning (%s)" -#: awkgram.y:1397 +#: awkgram.y:1520 #, c-format msgid "can't read sourcefile `%s' (%s)" msgstr "kan inte lsa kllfilen \"%s\" (%s)" -#: awkgram.y:1405 +#: awkgram.y:1528 #, c-format msgid "source file `%s' is empty" msgstr "kllfilen \"%s\" r tom" -#: awkgram.y:1596 awkgram.y:1718 awkgram.y:1736 awkgram.y:2107 awkgram.y:2194 +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 msgid "source file does not end in newline" msgstr "kllfilen slutar inte med en ny rad" -#: awkgram.y:1658 +#: awkgram.y:1782 msgid "unterminated regexp ends with `\\' at end of file" msgstr "oavslutat reguljrt uttryck slutar med \"\\\" i slutet av filen" -#: awkgram.y:1682 +#: awkgram.y:1806 #, c-format msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -#: awkgram.y:1686 +#: awkgram.y:1810 #, c-format msgid "tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -#: awkgram.y:1693 +#: awkgram.y:1817 msgid "unterminated regexp" msgstr "oavslutat reguljrt uttryck" -#: awkgram.y:1696 +#: awkgram.y:1820 msgid "unterminated regexp at end of file" msgstr "oavslutat reguljrt uttryck i slutet av filen" -#: awkgram.y:1762 +#: awkgram.y:1889 msgid "use of `\\ #...' line continuation is not portable" msgstr "Anvndning av \"\\ #...\" fr radfortsttning r inte portabelt" -#: awkgram.y:1774 +#: awkgram.y:1902 msgid "backslash not last character on line" msgstr "sista tecknet p raden r inte ett omvnt snedstreck" -#: awkgram.y:1819 +#: awkgram.y:1947 msgid "POSIX does not allow operator `**='" msgstr "POSIX tillter inte operatorn \"**=\"" -#: awkgram.y:1821 +#: awkgram.y:1949 msgid "old awk does not support operator `**='" msgstr "gamla awk stder inte operatorn \"**=\"" -#: awkgram.y:1830 +#: awkgram.y:1958 msgid "POSIX does not allow operator `**'" msgstr "POSIX tillter inte operatorn \"**\"" -#: awkgram.y:1832 +#: awkgram.y:1960 msgid "old awk does not support operator `**'" msgstr "gamla awk stder inte operatorn \"**\"" -#: awkgram.y:1863 +#: awkgram.y:1991 msgid "operator `^=' is not supported in old awk" msgstr "operatorn \"^=\" stds inte i gamla awk" -#: awkgram.y:1871 +#: awkgram.y:1999 msgid "operator `^' is not supported in old awk" msgstr "operatorn \"^\" stds inte i gamla awk" -#: awkgram.y:1955 awkgram.y:1970 +#: awkgram.y:2083 awkgram.y:2098 msgid "unterminated string" msgstr "oavslutad strng" -#: awkgram.y:2155 +#: awkgram.y:2283 #, c-format msgid "invalid char '%c' in expression" msgstr "ogiltigt tecken \"%c\" i uttryck" -#: awkgram.y:2203 +#: awkgram.y:2331 #, c-format msgid "`%s' is a gawk extension" msgstr "\"%s\" r en gawk-utkning" -#: awkgram.y:2206 +#: awkgram.y:2334 #, c-format msgid "`%s' is a Bell Labs extension" msgstr "\"%s\" r en Bell Labs-utkning" -#: awkgram.y:2209 +#: awkgram.y:2337 #, c-format msgid "POSIX does not allow `%s'" msgstr "POSIX tillter inte \"%s\"" -#: awkgram.y:2213 +#: awkgram.y:2341 #, c-format msgid "`%s' is not supported in old awk" msgstr "\"%s\" stds inte i gamla awk" -#: awkgram.y:2239 +#: awkgram.y:2367 msgid "`goto' considered harmful!\n" msgstr "\"goto\" anses skadlig!\n" -#: awkgram.y:2301 +#: awkgram.y:2429 #, c-format msgid "%d is invalid as number of arguments for %s" msgstr "%d r ett ogiltigt antal argument fr %s" -#: awkgram.y:2320 awkgram.y:2323 +#: awkgram.y:2448 awkgram.y:2451 msgid "match: third argument is a gawk extension" msgstr "match: tredje argumentet r en gawk-utkning" -#: awkgram.y:2336 +#: awkgram.y:2464 #, c-format msgid "%s: string literal as last arg of substitute has no effect" msgstr "" "%s: bokstavlig strng som sista argument till ersttning har ingen effekt" -#: awkgram.y:2339 +#: awkgram.y:2467 #, c-format msgid "%s third parameter is not a changeable object" msgstr "%s: tredje argumentet r inte ett ndringsbart objekt" -#: awkgram.y:2366 awkgram.y:2369 +#: awkgram.y:2494 awkgram.y:2497 msgid "close: second argument is a gawk extension" msgstr "close: andra argumentet r en gawk-utkning" -#: awkgram.y:2379 +#: awkgram.y:2507 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" msgstr "" "anvndandet av dcgettext(_\"...\") r felaktigt: ta bort det inledande " "understrykningstecknet" -#: awkgram.y:2394 +#: awkgram.y:2522 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" msgstr "" "anvndandet av dcngettext(_\"...\") r felaktigt: ta bort det inledande " "understrykningstecknet" -#: awkgram.y:2465 +#: awkgram.y:2594 #, c-format msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" msgstr "funktionen \"%s\": parameter %d, \"%s\", r samma som parameter %d" -#: awkgram.y:2498 +#: awkgram.y:2627 #, c-format msgid "function `%s': parameter `%s' shadows global variable" msgstr "funktionen \"%s\": parametern \"%s\" verskuggar en global variabel" -#: awkgram.y:2610 +#: awkgram.y:2739 #, c-format msgid "could not open `%s' for writing (%s)" msgstr "kunde inte pnna \"%s\" fr skrivning (%s)" -#: awkgram.y:2611 profile.c:93 +#: awkgram.y:2740 profile.c:94 msgid "sending profile to standard error" msgstr "skickar profilen till standard fel" -#: awkgram.y:2643 +#: awkgram.y:2772 #, c-format msgid "%s: close failed (%s)" msgstr "%s: misslyckades att stnga (%s)" -#: awkgram.y:2764 +#: awkgram.y:2893 msgid "shadow_funcs() called twice!" msgstr "shadow_funcs() anropad tv gnger!" -#: awkgram.y:2791 +#: awkgram.y:2920 msgid "there were shadowed variables." msgstr "det fanns verskuggade variabler." -#: awkgram.y:2864 +#: awkgram.y:2993 #, c-format msgid "function `%s': can't use function name as parameter name" msgstr "funktionen \"%s\": kan inte anvnda funktionsnamn som parameternamn" -#: awkgram.y:2874 +#: awkgram.y:3003 #, c-format msgid "function name `%s' previously defined" msgstr "funktionsnamnet \"%s\" r definierat sedan tidigare" -#: awkgram.y:3025 awkgram.y:3031 +#: awkgram.y:3154 awkgram.y:3160 #, c-format msgid "function `%s' called but never defined" msgstr "funktionen \"%s\" anropad men aldrig definierad" -#: awkgram.y:3034 +#: awkgram.y:3163 #, c-format msgid "function `%s' defined but never called" msgstr "funktionen \"%s\" definierad men aldrig anropad" -#: awkgram.y:3061 +#: awkgram.y:3190 #, c-format msgid "regexp constant for parameter #%d yields boolean value" msgstr "konstant reguljrt uttryck fr parameter %d ger ett booleskt vrde" -#: awkgram.y:3105 +#: awkgram.y:3234 #, fuzzy, c-format msgid "" "function `%s' called with space between name and `(',\n" @@ -391,198 +406,198 @@ "funktionen \"%s\" anropad med blanktecken mellan namnet och \"(\",\n" "%s" -#: builtin.c:145 +#: builtin.c:119 #, c-format msgid "%s to \"%s\" failed (%s)" msgstr "%s till \"%s\" misslyckades (%s)" -#: builtin.c:146 +#: builtin.c:120 msgid "standard output" msgstr "standard ut" -#: builtin.c:147 +#: builtin.c:121 msgid "reason unknown" msgstr "oknd anledning" -#: builtin.c:160 +#: builtin.c:134 msgid "exp: received non-numeric argument" msgstr "exp: fick ett ickenumeriskt argument" -#: builtin.c:166 +#: builtin.c:140 #, c-format msgid "exp: argument %g is out of range" msgstr "exp: argumentet %g r inte inom tillten grns" -#: builtin.c:224 +#: builtin.c:198 #, c-format msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" msgstr "" "fflush: kan inte spola: rret \"%s\" ppnat fr lsning, inte skrivning" -#: builtin.c:227 +#: builtin.c:201 #, c-format msgid "fflush: cannot flush: file `%s' opened for reading, not writing" msgstr "" "fflush: kan inte spola: filen \"%s\" ppnad fr lsning, inte skrivning" -#: builtin.c:239 +#: builtin.c:213 #, c-format msgid "fflush: `%s' is not an open file, pipe or co-process" msgstr "fflush: \"%s\" r inte en ppen fil, rr eller koprocess" -#: builtin.c:332 +#: builtin.c:306 msgid "index: received non-string first argument" msgstr "index: frsta argumentet r inte en strng" -#: builtin.c:334 +#: builtin.c:308 msgid "index: received non-string second argument" msgstr "index: andra argumentet r inte en strng" -#: builtin.c:449 +#: builtin.c:423 msgid "int: received non-numeric argument" msgstr "int: fick ett ickenumeriskt argument" -#: builtin.c:472 +#: builtin.c:448 #, fuzzy msgid "`length(array)' is a gawk extension" msgstr "\"delete array\" r en gawk-utkning" -#: builtin.c:481 +#: builtin.c:458 msgid "length: received non-string argument" msgstr "length: fick ett argument som inte r en strng" -#: builtin.c:506 +#: builtin.c:483 msgid "log: received non-numeric argument" msgstr "log: fick ett ickenumeriskt argument" -#: builtin.c:509 +#: builtin.c:486 #, c-format msgid "log: received negative argument %g" msgstr "log: fick ett negativt argumentet %g" -#: builtin.c:673 builtin.c:676 +#: builtin.c:693 builtin.c:696 msgid "must use `count$' on all formats or none" msgstr "mste anvnda \"count$\" p alla eller inga format" -#: builtin.c:778 +#: builtin.c:799 msgid "`$' is not permitted in awk formats" msgstr "\"$\" tillts inte i awkformat" -#: builtin.c:784 +#: builtin.c:805 msgid "arg count with `$' must be > 0" msgstr "argumentantalet med \"$\" mste vara > 0" -#: builtin.c:786 +#: builtin.c:807 #, c-format msgid "arg count %ld greater than total number of supplied arguments" msgstr "argumentantalet %ld r strre n antalet givna argument" -#: builtin.c:788 +#: builtin.c:809 msgid "`$' not permitted after period in format" msgstr "\"$\" tillts inte efter en punkt i formatet" -#: builtin.c:801 +#: builtin.c:822 msgid "no `$' supplied for positional field width or precision" msgstr "inget \"$\" bifogat fr positionsangiven fltbredd eller precision" -#: builtin.c:867 +#: builtin.c:888 msgid "`l' is meaningless in awk formats; ignored" msgstr "\"l\" r meningsls i awk-format, ignorerad" -#: builtin.c:871 +#: builtin.c:892 msgid "`l' is not permitted in POSIX awk formats" msgstr "\"l\" tillts inte i POSIX awk-format" -#: builtin.c:882 +#: builtin.c:903 msgid "`L' is meaningless in awk formats; ignored" msgstr "\"L\" r meningsls i awk-format, ignorerad" -#: builtin.c:886 +#: builtin.c:907 msgid "`L' is not permitted in POSIX awk formats" msgstr "\"L\" tillts inte i POSIX awk-format" -#: builtin.c:897 +#: builtin.c:918 msgid "`h' is meaningless in awk formats; ignored" msgstr "\"h\" r meningsls i awk-format, ignorerad" -#: builtin.c:901 +#: builtin.c:922 msgid "`h' is not permitted in POSIX awk formats" msgstr "\"h\" tillts inte i POSIX awk-format" -#: builtin.c:1132 +#: builtin.c:1182 #, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" msgstr "" -#: builtin.c:1198 +#: builtin.c:1266 msgid "not enough arguments to satisfy format string" msgstr "fr f argument fr formatstrngen" -#: builtin.c:1200 +#: builtin.c:1268 msgid "^ ran out for this one" msgstr "^ tog slut hr" -#: builtin.c:1205 +#: builtin.c:1274 msgid "[s]printf: format specifier does not have control letter" msgstr "[s]printf: formatspecifieraren har ingen kommandobokstav" -#: builtin.c:1208 +#: builtin.c:1277 msgid "too many arguments supplied for format string" msgstr "fr mnga argument fr formatstrngen" -#: builtin.c:1274 builtin.c:1277 +#: builtin.c:1352 builtin.c:1355 msgid "printf: no arguments" msgstr "printf: inga argument" -#: builtin.c:1301 +#: builtin.c:1379 msgid "sqrt: received non-numeric argument" msgstr "sqrt: fick ickenumeriskt argument" -#: builtin.c:1305 +#: builtin.c:1383 #, c-format msgid "sqrt: called with negative argument %g" msgstr "sqrt: anropad med negativt argument %g" -#: builtin.c:1329 +#: builtin.c:1407 #, c-format msgid "substr: start index %g is invalid, using 1" msgstr "substr: startindex %g r ogiltigt, anvnder 1" -#: builtin.c:1334 +#: builtin.c:1412 #, c-format msgid "substr: non-integer start index %g will be truncated" msgstr "substr: startindex %g som inte r ett heltal kommer trunkeras" -#: builtin.c:1353 +#: builtin.c:1431 #, fuzzy, c-format msgid "substr: length %g is not >= 1" msgstr "substr: lngden %g r <= 0" -#: builtin.c:1355 +#: builtin.c:1433 #, fuzzy, c-format msgid "substr: length %g is not >= 0" msgstr "substr: lngden %g r <= 0" -#: builtin.c:1362 +#: builtin.c:1440 #, c-format msgid "substr: non-integer length %g will be truncated" msgstr "substr: lngden %g som inte r ett heltal kommer trunkeras" -#: builtin.c:1367 +#: builtin.c:1445 #, c-format msgid "substr: length %g too big for string indexing, truncating to %g" msgstr "substr: lngden %g r fr stor fr strngindexering, trunkeras till %g" -#: builtin.c:1379 +#: builtin.c:1457 msgid "substr: source string is zero length" msgstr "substr: kllstrngen r tom" -#: builtin.c:1395 +#: builtin.c:1473 #, c-format msgid "substr: start index %g is past end of string" msgstr "substr: startindex %g r bortom strngens slut" -#: builtin.c:1403 +#: builtin.c:1481 #, c-format msgid "" "substr: length %g at start index %g exceeds length of first argument (%lu)" @@ -590,187 +605,187 @@ "substr: lngden %g vid startindex %g verskrider det frsta argumentets " "lngd (%lu)" -#: builtin.c:1478 +#: builtin.c:1558 msgid "strftime: received non-string first argument" msgstr "strftime: fick ett frsta argument som inte r en strng" -#: builtin.c:1484 +#: builtin.c:1564 msgid "strftime: received empty format string" msgstr "strftime: fick en tom formatstrng" -#: builtin.c:1493 +#: builtin.c:1573 msgid "strftime: received non-numeric second argument" msgstr "strftime: fick ett ickenumeriskt andra argument" -#: builtin.c:1556 +#: builtin.c:1650 msgid "mktime: received non-string argument" msgstr "mktime: fick ett argument som inte r en strng" -#: builtin.c:1601 +#: builtin.c:1695 msgid "system: received non-string argument" msgstr "system: fick ett argument som inte r en strng" -#: builtin.c:1722 eval.c:2039 +#: builtin.c:1816 eval.c:2041 #, fuzzy, c-format msgid "reference to uninitialized field `$%d'" msgstr "referens till icke initierad variabel \"%s\"" -#: builtin.c:1827 +#: builtin.c:1921 msgid "tolower: received non-string argument" msgstr "tolower: fick ett argument som inte r en strng" -#: builtin.c:1857 +#: builtin.c:1951 msgid "toupper: received non-string argument" msgstr "toupper: fick ett argument som inte r en strng" -#: builtin.c:1890 +#: builtin.c:1984 msgid "atan2: received non-numeric first argument" msgstr "atan2: fick ett ickenumeriskt frsta argument" -#: builtin.c:1892 +#: builtin.c:1986 msgid "atan2: received non-numeric second argument" msgstr "atan2: fick ett ickenumeriskt andra argument" -#: builtin.c:1911 +#: builtin.c:2005 msgid "sin: received non-numeric argument" msgstr "sin: fick ett ickenumeriskt argument" -#: builtin.c:1927 +#: builtin.c:2021 msgid "cos: received non-numeric argument" msgstr "cos: fick ett ickenumeriskt argument" -#: builtin.c:1977 +#: builtin.c:2071 msgid "srand: received non-numeric argument" msgstr "srand: fick ett ickenumeriskt argument" -#: builtin.c:2012 +#: builtin.c:2106 msgid "match: third argument is not an array" msgstr "match: tredje argumentet r inte en vektor" -#: builtin.c:2555 +#: builtin.c:2650 msgid "gensub: third argument of 0 treated as 1" msgstr "gensub: Nollan i tredje argumentet behandlad som en etta" -#: builtin.c:2715 +#: builtin.c:2766 msgid "lshift: received non-numeric first argument" msgstr "lshift: fick ett ickenumeriskt frsta argument" -#: builtin.c:2717 +#: builtin.c:2768 #, fuzzy msgid "lshift: received non-numeric second argument" msgstr "strftime: fick ett ickenumeriskt andra argument" -#: builtin.c:2723 +#: builtin.c:2774 #, c-format msgid "lshift(%lf, %lf): negative values will give strange results" msgstr "lshift(%lf, %lf): negativa vrden kommer ge konstiga resultat" -#: builtin.c:2725 +#: builtin.c:2776 #, c-format msgid "lshift(%lf, %lf): fractional values will be truncated" msgstr "lshift(%lf, %lf): flyttalsvrden kommer trunkeras" -#: builtin.c:2727 +#: builtin.c:2778 #, c-format msgid "lshift(%lf, %lf): too large shift value will give strange results" msgstr "lshift(%lf, %lf): fr stora skiftvrden kommer ge konstiga resultat" -#: builtin.c:2753 +#: builtin.c:2804 msgid "rshift: received non-numeric first argument" msgstr "rshift: fick ett ickenumeriskt frsta argument" -#: builtin.c:2755 +#: builtin.c:2806 #, fuzzy msgid "rshift: received non-numeric second argument" msgstr "strftime: fick ett ickenumeriskt andra argument" -#: builtin.c:2761 +#: builtin.c:2812 #, c-format msgid "rshift(%lf, %lf): negative values will give strange results" msgstr "rshift(%lf, %lf): negativa vrden kommer ge konstiga resultat" -#: builtin.c:2763 +#: builtin.c:2814 #, c-format msgid "rshift(%lf, %lf): fractional values will be truncated" msgstr "rshift(%lf, %lf): flyttalsvrden kommer trunkeras" -#: builtin.c:2765 +#: builtin.c:2816 #, c-format msgid "rshift(%lf, %lf): too large shift value will give strange results" msgstr "rshift(%lf, %lf): fr stora skiftvrden kommer ge konstiga resultat" -#: builtin.c:2791 +#: builtin.c:2842 msgid "and: received non-numeric first argument" msgstr "and: fick ett ickenumeriskt frsta argument" -#: builtin.c:2793 +#: builtin.c:2844 #, fuzzy msgid "and: received non-numeric second argument" msgstr "atan2: fick ett ickenumeriskt andra argument" -#: builtin.c:2799 +#: builtin.c:2850 #, c-format msgid "and(%lf, %lf): negative values will give strange results" msgstr "and(%lf, %lf): negativa vrden kommer ge konstiga resultat" -#: builtin.c:2801 +#: builtin.c:2852 #, c-format msgid "and(%lf, %lf): fractional values will be truncated" msgstr "and(%lf, %lf): flyttalsvrden kommer trunkeras" -#: builtin.c:2827 +#: builtin.c:2878 msgid "or: received non-numeric first argument" msgstr "or: fick ett ickenumeriskt frsta argument" -#: builtin.c:2829 +#: builtin.c:2880 #, fuzzy msgid "or: received non-numeric second argument" msgstr "atan2: fick ett ickenumeriskt andra argument" -#: builtin.c:2835 +#: builtin.c:2886 #, c-format msgid "or(%lf, %lf): negative values will give strange results" msgstr "or(%lf, %lf): negativa vrden kommer ge konstiga resultat" -#: builtin.c:2837 +#: builtin.c:2888 #, c-format msgid "or(%lf, %lf): fractional values will be truncated" msgstr "or(%lf, %lf): flyttalsvrden kommer trunkeras" -#: builtin.c:2863 +#: builtin.c:2914 msgid "xor: received non-numeric first argument" msgstr "xor: fick ett ickenumeriskt frsta argument" -#: builtin.c:2865 +#: builtin.c:2916 #, fuzzy msgid "xor: received non-numeric second argument" msgstr "atan2: fick ett ickenumeriskt andra argument" -#: builtin.c:2871 +#: builtin.c:2922 #, c-format msgid "xor(%lf, %lf): negative values will give strange results" msgstr "xor(%lf, %lf): negativa vrden kommer ge konstiga resultat" -#: builtin.c:2873 +#: builtin.c:2924 #, c-format msgid "xor(%lf, %lf): fractional values will be truncated" msgstr "xor(%lf, %lf): flyttalsvrden kommer trunkeras" -#: builtin.c:2897 +#: builtin.c:2948 msgid "compl: received non-numeric argument" msgstr "compl: fick ett ickenumeriskt argument" -#: builtin.c:2903 +#: builtin.c:2954 #, c-format msgid "compl(%lf): negative value will give strange results" msgstr "compl(%lf): negativa vrden kommer ge konstiga resultat" -#: builtin.c:2905 +#: builtin.c:2956 #, c-format msgid "compl(%lf): fractional value will be truncated" msgstr "compl(%lf): flyttalsvrden kommer trunkeras" -#: builtin.c:3078 +#: builtin.c:3129 #, c-format msgid "dcgettext: `%s' is not a valid locale category" msgstr "dcgettext: \"%s\" r inte en giltig lokalkategori" @@ -784,7 +799,7 @@ msgid "buffer overflow in genflags2str" msgstr "buffertverfld i genflags2str" -#: eval.c:385 eval.c:391 profile.c:838 +#: eval.c:385 eval.c:391 profile.c:817 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "frsk att anvnda vektorn \"%s\" i skalrsammanhang" @@ -832,7 +847,7 @@ msgid "statement has no effect" msgstr "kommandot har ingen effekt" -#: eval.c:952 eval.c:1893 +#: eval.c:952 eval.c:1895 #, c-format msgid "can't use function name `%s' as variable or array" msgstr "kan inte anvnda funktionsnamnet \"%s\" som variabel eller vektor" @@ -842,7 +857,7 @@ msgid "reference to uninitialized argument `%s'" msgstr "referens till icke initierat argument \"%s\"" -#: eval.c:974 eval.c:1902 +#: eval.c:974 eval.c:1904 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "referens till icke initierad variabel \"%s\"" @@ -854,44 +869,44 @@ msgstr "" "concatenation: sidoeffekter i ett uttryck har ndrat lngden av ett annat!" -#: eval.c:1200 +#: eval.c:1202 msgid "assignment used in conditional context" msgstr "tilldelning anvnt i jmfrelsesammanhang" -#: eval.c:1278 +#: eval.c:1280 msgid "division by zero attempted" msgstr "frskte dividera med noll" -#: eval.c:1293 +#: eval.c:1295 #, c-format msgid "division by zero attempted in `%%'" msgstr "frskte dividera med noll i \"%%\"" -#: eval.c:1308 profile.c:714 +#: eval.c:1310 profile.c:693 #, c-format msgid "illegal type (%s) in tree_eval" msgstr "otillten typ (%s) i tree_eval" -#: eval.c:1471 +#: eval.c:1473 msgid "division by zero attempted in `/='" msgstr "frskte dividera med noll i \"/=\"" -#: eval.c:1493 +#: eval.c:1495 #, c-format msgid "division by zero attempted in `%%='" msgstr "frskte dividera med noll i \"%%=\"" -#: eval.c:1758 +#: eval.c:1760 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "funktionen \"%s\" anropad med fler argument n vad som deklarerats" -#: eval.c:1802 +#: eval.c:1804 #, c-format msgid "function `%s' not defined" msgstr "funktionen \"%s\" r inte definierad" -#: eval.c:1865 +#: eval.c:1867 #, c-format msgid "" "\n" @@ -902,660 +917,674 @@ "\t# Funktionsanropsstack:\n" "\n" -#: eval.c:1868 +#: eval.c:1870 #, c-format msgid "\t# -- main --\n" msgstr "\t# -- main --\n" -#: eval.c:2023 +#: eval.c:2025 msgid "attempt to field reference from non-numeric value" msgstr "frsk att fltreferera frn ickenumeriskt vrde" -#: eval.c:2025 +#: eval.c:2027 msgid "attempt to reference from null string" msgstr "frsk att referera frn tom strng" -#: eval.c:2031 +#: eval.c:2033 #, c-format msgid "attempt to access field %d" msgstr "frsk att komma t flt nummer %d" -#: eval.c:2052 eval.c:2059 profile.c:935 +#: eval.c:2054 eval.c:2061 profile.c:914 msgid "assignment is not allowed to result of builtin function" msgstr "det r inte tilltet att tilldela resultatet frn en inbyggd funktion" -#: eval.c:2123 +#: eval.c:2125 msgid "`IGNORECASE' is a gawk extension" msgstr "\"IGNORECASE\" r en gawk-utkning" -#: eval.c:2153 +#: eval.c:2155 msgid "`BINMODE' is a gawk extension" msgstr "\"BINMODE\" r en gawk-utkning" -#: eval.c:2275 +#: eval.c:2277 #, c-format msgid "bad `%sFMT' specification `%s'" msgstr "felaktig \"%sFMT\"-specifikation \"%s\"" -#: eval.c:2353 +#: eval.c:2355 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "slr av \"--lint\" p grund av en tilldelning till \"LINT\"" -#: ext.c:60 ext.c:64 +#: ext.c:62 ext.c:67 msgid "`extension' is a gawk extension" msgstr "\"extension\" r en gawk-utkning" -#: ext.c:74 +#: ext.c:77 #, c-format msgid "extension: cannot open `%s' (%s)\n" msgstr "extension: kan inte ppna \"%s\" (%s)\n" -#: ext.c:82 +#: ext.c:85 #, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "extension: bibliotek \"%s\": kan inte anropa funktionen \"%s\" (%s)\n" -#: ext.c:102 +#: ext.c:105 msgid "extension: missing function name" msgstr "" -#: ext.c:107 +#: ext.c:110 #, fuzzy, c-format msgid "extension: illegal character `%c' in function name `%s'" msgstr "extension: bibliotek \"%s\": kan inte anropa funktionen \"%s\" (%s)\n" -#: ext.c:113 +#: ext.c:116 #, fuzzy, c-format msgid "extension: can't redefine function `%s'" msgstr "extension: kan inte ppna \"%s\" (%s)\n" -#: ext.c:117 +#: ext.c:120 #, fuzzy, c-format msgid "extension: function `%s' already defined" msgstr "funktionen \"%s\" r inte definierad" -#: ext.c:122 +#: ext.c:125 #, c-format msgid "extension: can't use gawk built-in `%s' as function name" msgstr "" -#: ext.c:124 +#: ext.c:127 #, fuzzy, c-format msgid "extension: function name `%s' previously defined" msgstr "funktionsnamnet \"%s\" r definierat sedan tidigare" -#: ext.c:201 +#: ext.c:204 #, fuzzy, c-format msgid "function `%s' defined to take no more than %d argument(s)" msgstr "funktionen \"%s\" definierad men aldrig anropad" -#: ext.c:204 +#: ext.c:207 #, fuzzy, c-format msgid "function `%s': missing argument #%d" msgstr "funktionen \"%s\" r inte definierad" -#: ext.c:214 +#: ext.c:217 #, fuzzy, c-format msgid "function `%s': argument #%d: attempt to use scalar as an array" msgstr "frsk att anvnda skalren \"%s\" som vektor" -#: ext.c:218 +#: ext.c:221 #, c-format msgid "function `%s': argument #%d: attempt to use array as a scalar" msgstr "" -#: ext.c:243 +#: ext.c:246 msgid "Operation Not Supported" msgstr "Operationen stds inte" -#: field.c:326 +#: field.c:330 msgid "NF set to negative value" msgstr "NF satt till ett negativt vrde" -#: field.c:819 +#: field.c:823 msgid "split: second argument is not an array" msgstr "split: andra argumentet r inte en vektor" -#: field.c:853 +#: field.c:857 msgid "split: null string for third arg is a gawk extension" msgstr "split: tom strng som tredje argument r en gawk-utkning" -#: field.c:905 +#: field.c:909 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "\"FIELDWIDTHS\" r en gawk-utkning" -#: field.c:935 field.c:946 +#: field.c:939 field.c:953 #, c-format msgid "invalid FIELDWIDTHS value, near `%s'" msgstr "" -#: field.c:1027 +#: field.c:1036 msgid "null string for `FS' is a gawk extension" msgstr "tom strng som \"FS\" r en gawk-utkning" -#: getopt.c:571 getopt.c:590 +#: field.c:1040 +#, fuzzy +msgid "old awk does not support regexps as value of `FS'" +msgstr "gamla awk stder inte operatorn \"**\"" + +#: getopt.c:571 getopt.c:587 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: flaggan \"%s\" r tvetydig\n" -#: getopt.c:623 getopt.c:627 +#: getopt.c:620 getopt.c:624 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: flaggan \"--%s\" tillter inte argument\n" -#: getopt.c:636 getopt.c:641 +#: getopt.c:633 getopt.c:638 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: flaggan \"%c%s\" tillter inte argument\n" -#: getopt.c:687 getopt.c:709 getopt.c:1040 getopt.c:1062 +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: flaggan \"%s\" krver ett argument\n" -#: getopt.c:747 getopt.c:750 +#: getopt.c:738 getopt.c:741 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: oknd flagga \"--%s\"\n" -#: getopt.c:758 getopt.c:761 +#: getopt.c:749 getopt.c:752 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: oknd flagga \"%c%s\"\n" -#: getopt.c:816 getopt.c:819 +#: getopt.c:804 getopt.c:807 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: otillten flagga -- %c\n" -#: getopt.c:825 getopt.c:828 +#: getopt.c:813 getopt.c:816 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: ogiltig flagga -- %c\n" -#: getopt.c:883 getopt.c:902 getopt.c:1115 getopt.c:1136 main.c:448 +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: flaggan krver ett argument -- %c\n" -#: getopt.c:955 getopt.c:974 +#: getopt.c:937 getopt.c:953 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: flaggan \"-W %s\" r tvetydig\n" -#: getopt.c:998 getopt.c:1019 +#: getopt.c:977 getopt.c:995 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: flaggan \"-W %s\" tillter inte ngot argument\n" -#: io.c:307 +#: io.c:345 #, c-format msgid "cannot open file `%s' for reading (%s)" msgstr "kan inte ppna filen \"%s\" fr lsning (%s)" -#: io.c:398 +#: io.c:436 #, c-format msgid "close of fd %d (`%s') failed (%s)" msgstr "stngning av fd %d (\"%s\") misslyckades (%s)" -#: io.c:536 +#: io.c:575 #, c-format msgid "invalid tree type %s in redirect()" msgstr "ogiltig trdtyp %s i redirect()" -#: io.c:542 +#: io.c:581 #, c-format msgid "expression in `%s' redirection only has numeric value" msgstr "uttrycket i \"%s\"-omdirigering har bara numeriskt vrde" -#: io.c:548 +#: io.c:587 #, c-format msgid "expression for `%s' redirection has null string value" msgstr "uttrycket fr \"%s\"-omdirigering har en tom strng som vrde" -#: io.c:553 +#: io.c:592 #, c-format msgid "filename `%s' for `%s' redirection may be result of logical expression" msgstr "" "filnamnet \"%s\" fr \"%s\"-omdirigering kan vara resultatet av ett logiskt " "uttryck" -#: io.c:591 +#: io.c:630 #, c-format msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" msgstr "ondig blandning av \">\" och \">>\" fr filen \"%.*s\"" -#: io.c:643 +#: io.c:682 #, c-format msgid "can't open pipe `%s' for output (%s)" msgstr "kan inte ppna rret \"%s\" fr utmatning (%s)" -#: io.c:652 +#: io.c:691 #, c-format msgid "can't open pipe `%s' for input (%s)" msgstr "kan inte ppna rret \"%s\" fr inmatning (%s)" -#: io.c:665 +#: io.c:698 io.c:1448 +#, c-format +msgid "file `%s' is a directory" +msgstr "filen \"%s\" r en katalog" + +#: io.c:706 #, c-format msgid "can't open two way socket `%s' for input/output (%s)" msgstr "kan inte ppna tvvgsuttaget \"%s\" fr in-/utmatning (%s)" -#: io.c:669 +#: io.c:710 #, c-format msgid "can't open two way pipe `%s' for input/output (%s)" msgstr "kan inte ppna tvvgsrret \"%s\" fr in-/utmatning (%s)" -#: io.c:745 +#: io.c:786 #, c-format msgid "can't redirect from `%s' (%s)" msgstr "kan inte dirigera om frn \"%s\" (%s)" -#: io.c:748 +#: io.c:789 #, c-format msgid "can't redirect to `%s' (%s)" msgstr "kan inte dirigera om till \"%s\" (%s)" -#: io.c:787 +#: io.c:828 msgid "" "reached system limit for open files: starting to multiplex file descriptors" msgstr "" "ndde systembegrnsningen fr ppna filer: brjar multiplexa fildeskriptorer" -#: io.c:803 +#: io.c:844 #, c-format msgid "close of `%s' failed (%s)." msgstr "stngning av \"%s\" misslyckades (%s)" -#: io.c:811 +#: io.c:852 msgid "too many pipes or input files open" msgstr "fr mnga rr eller indatafiler ppna" -#: io.c:834 +#: io.c:875 msgid "close: second argument must be `to' or `from'" msgstr "close: andra argumentet mste vara \"to\" eller \"from\"" -#: io.c:848 +#: io.c:889 #, c-format msgid "close: `%.*s' is not an open file, pipe or co-process" msgstr "close: \"%.*s\" r inte en ppen fil, rr eller koprocess" -#: io.c:852 +#: io.c:893 msgid "close of redirection that was never opened" msgstr "stngning av omdirigering som aldrig ppnades" -#: io.c:948 +#: io.c:989 #, c-format msgid "close: redirection `%s' not opened with `|&', second argument ignored" msgstr "" "close: omdirigeringen \"%s\" ppnades inte med \"|&\", andra argumentet " "ignorerat" -#: io.c:964 +#: io.c:1005 #, c-format msgid "failure status (%d) on pipe close of `%s' (%s)" msgstr "felstatus (%d) frn rrstngning av \"%s\" (%s)" -#: io.c:967 +#: io.c:1008 #, c-format msgid "failure status (%d) on file close of `%s' (%s)" msgstr "felstatus (%d) frn filstngning av \"%s\" (%s)" -#: io.c:987 +#: io.c:1028 #, c-format msgid "no explicit close of socket `%s' provided" msgstr "ingen explicit stngning av uttaget \"%s\" tillhandahllen" -#: io.c:990 +#: io.c:1031 #, c-format msgid "no explicit close of co-process `%s' provided" msgstr "ingen explicit stngning av koprocessen \"%s\" tillhandahllen" -#: io.c:993 +#: io.c:1034 #, c-format msgid "no explicit close of pipe `%s' provided" msgstr "ingen explicit stngning av rret \"%s\" tillhandahllen" -#: io.c:996 +#: io.c:1037 #, c-format msgid "no explicit close of file `%s' provided" msgstr "ingen explicit stngning av filen \"%s\" tillhandahllen" -#: io.c:1025 io.c:1080 main.c:718 main.c:756 +#: io.c:1066 io.c:1121 main.c:749 main.c:791 #, c-format msgid "error writing standard output (%s)" msgstr "fel vid skrivning till standard ut (%s)" -#: io.c:1029 io.c:1085 +#: io.c:1070 io.c:1126 #, c-format msgid "error writing standard error (%s)" msgstr "fel vid skrivning till standard fel (%s)" -#: io.c:1037 +#: io.c:1078 #, c-format msgid "pipe flush of `%s' failed (%s)." msgstr "rrspolning av \"%s\" misslyckades (%s)" -#: io.c:1040 +#: io.c:1081 #, c-format msgid "co-process flush of pipe to `%s' failed (%s)." msgstr "koprocesspolning av rret till \"%s\" misslyckades (%s)" -#: io.c:1043 +#: io.c:1084 #, c-format msgid "file flush of `%s' failed (%s)." msgstr "filspolning av \"%s\" misslyckades (%s)" -#: io.c:1205 +#: io.c:1198 +#, fuzzy, c-format +msgid "local port %s invalid in `/inet'" +msgstr "lokal port ogiltig i \"%s\"" + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "" + +#: io.c:1250 msgid "/inet/raw client not ready yet, sorry" msgstr "/inet/raw-klient r tyvrr inte klar n" -#: io.c:1207 io.c:1244 +#: io.c:1253 io.c:1289 msgid "only root may use `/inet/raw'." msgstr "bara root kan anvnda \"/inet/raw\"." -#: io.c:1242 +#: io.c:1287 msgid "/inet/raw server not ready yet, sorry" msgstr "/inet/raw-server inte redo n, ledsen" -#: io.c:1332 +#: io.c:1385 #, c-format msgid "no (known) protocol supplied in special filename `%s'" msgstr "" "inget (knt) protokoll tillhandahllet i det speciella filnamnet \"%s\"" -#: io.c:1350 +#: io.c:1399 #, c-format msgid "special file name `%s' is incomplete" msgstr "speciellt filnamn \"%s\" r ofullstndigt" -#: io.c:1362 -#, c-format -msgid "local port invalid in `%s'" -msgstr "lokal port ogiltig i \"%s\"" - -#: io.c:1374 +#: io.c:1414 msgid "must supply a remote hostname to `/inet'" msgstr "mste tillhandahlla ett fjrrdatornamn till \"/inet\"" -#: io.c:1389 +#: io.c:1432 msgid "must supply a remote port to `/inet'" msgstr "mste tillhandahlla en fjrrport till \"/inet\"" -#: io.c:1395 -#, c-format -msgid "remote port invalid in `%s'" -msgstr "fjrrporten ogiltig i \"%s\"" - -#: io.c:1405 +#: io.c:1439 msgid "TCP/IP communications are not supported" msgstr "TCP/IP-kommunikation stds inte" -#: io.c:1414 io.c:1595 -#, c-format -msgid "file `%s' is a directory" -msgstr "filen \"%s\" r en katalog" - -#: io.c:1484 +#: io.c:1509 #, c-format msgid "use `PROCINFO[\"%s\"]' instead of `%s'" msgstr "anvnd \"PROCINFO[\"%s\"]\" istllet fr \"%s\"" -#: io.c:1516 +#: io.c:1547 msgid "use `PROCINFO[...]' instead of `/dev/user'" msgstr "anvnd \"PROCINFO[...]\" istllet fr \"dev/user\"" -#: io.c:1581 io.c:1763 +#: io.c:1612 io.c:1798 #, c-format msgid "could not open `%s', mode `%s'" msgstr "kunde inte ppna \"%s\", lge \"%s\"" -#: io.c:1814 +#: io.c:1849 #, c-format msgid "close of master pty failed (%s)" msgstr "stngning av huvudpty misslyckades (%s)" -#: io.c:1816 io.c:1968 io.c:2119 +#: io.c:1851 io.c:2003 io.c:2154 #, c-format msgid "close of stdout in child failed (%s)" msgstr "stngning av standard ut i barnet misslyckades (%s)" -#: io.c:1819 +#: io.c:1854 #, c-format msgid "moving slave pty to stdout in child failed (dup: %s)" msgstr "flyttandet av slavpty till standard ut i barnet misslyckades (dup: %s)" -#: io.c:1821 io.c:1973 +#: io.c:1856 io.c:2008 #, c-format msgid "close of stdin in child failed (%s)" msgstr "stngning av standard in i barnet misslyckades (%s)" -#: io.c:1824 +#: io.c:1859 #, c-format msgid "moving slave pty to stdin in child failed (dup: %s)" msgstr "flyttandet av slavpty till standard in i barnet misslyckades (dup: %s)" -#: io.c:1826 io.c:1845 +#: io.c:1861 io.c:1880 #, c-format msgid "close of slave pty failed (%s)" msgstr "stngning av slavpty misslyckades (%s)" -#: io.c:1919 io.c:1971 io.c:2100 io.c:2122 +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 #, c-format msgid "moving pipe to stdout in child failed (dup: %s)" msgstr "flyttande av rr till standard ut i barnet misslyckades (dup: %s)" -#: io.c:1923 io.c:1976 +#: io.c:1958 io.c:2011 #, c-format msgid "moving pipe to stdin in child failed (dup: %s)" msgstr "flyttande av rr till standard in i barnet misslyckades (dup: %s)" -#: io.c:1940 io.c:2113 +#: io.c:1975 io.c:2148 msgid "restoring stdout in parent process failed\n" msgstr "terstllande av standard ut i frlderprocessen misslyckades\n" -#: io.c:1945 +#: io.c:1980 msgid "restoring stdin in parent process failed\n" msgstr "terstllande av standard in i frlderprocessen misslyckades\n" -#: io.c:1979 io.c:2124 io.c:2135 +#: io.c:2014 io.c:2159 io.c:2170 #, c-format msgid "close of pipe failed (%s)" msgstr "stngning av rret misslyckades (%s)" -#: io.c:2024 +#: io.c:2059 msgid "`|&' not supported" msgstr "\"|&\" stds inte" -#: io.c:2090 +#: io.c:2125 #, c-format msgid "cannot open pipe `%s' (%s)" msgstr "kan inte ppna rret \"%s\" (%s)" -#: io.c:2131 +#: io.c:2166 #, c-format msgid "cannot create child process for `%s' (fork: %s)" msgstr "kan inte skapa barnprocess fr \"%s\" (fork: %s)" -#: io.c:2506 +#: io.c:2548 #, c-format msgid "data file `%s' is empty" msgstr "datafilen \"%s\" r tom" -#: io.c:2547 io.c:2555 +#: io.c:2589 io.c:2597 msgid "could not allocate more input memory" msgstr "kunde inte allokera mer indataminne" -#: io.c:2919 io.c:2984 +#: io.c:2965 io.c:3038 #, c-format msgid "error reading input file `%s': %s" msgstr "fel vid lsning av indatafilen \"%s\": %s" -#: io.c:3109 +#: io.c:3163 msgid "multicharacter value of `RS' is a gawk extension" msgstr "flerteckensvrdet av \"RS\" r en gawk-utkning" -#: main.c:338 +#: main.c:351 msgid "`-m[fr]' option irrelevant in gawk" msgstr "\"-m[fr]\"-flaggan r irrelevant i gawk" -#: main.c:340 +#: main.c:353 msgid "-m option usage: `-m[fr] nnn'" msgstr "-m-flaggans anvndning: \"-m[fr] nnn\"" -#: main.c:357 +#: main.c:370 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: flaggan \"-W %s\" oknd, ignorerad\n" -#: main.c:394 +#: main.c:407 msgid "empty argument to `--source' ignored" msgstr "tomt argument till \"--source\" ignorerat" -#: main.c:467 +#: main.c:480 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" msgstr "miljvariabeln \"POSIXLY_CORRECT\" satt: slr p \"--posix\"" -#: main.c:472 +#: main.c:486 msgid "`--posix' overrides `--traditional'" msgstr "\"--posix\" sidostter \"--traditional\"" -#: main.c:483 +#: main.c:497 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" msgstr "\"--posix\"/\"--traditional\" sidostter \"--non-decimal-data\"" -#: main.c:487 +#: main.c:501 #, c-format msgid "running %s setuid root may be a security problem" msgstr "att kra %s setuid root kan vara ett skerhetsproblem" -#: main.c:528 +#: main.c:542 #, c-format msgid "can't set binary mode on stdin (%s)" msgstr "kan inte stta binrlge p standard in (%s)" -#: main.c:531 +#: main.c:545 #, c-format msgid "can't set binary mode on stdout (%s)" msgstr "kan inte stta binrlge p standard ut (%s)" -#: main.c:533 +#: main.c:547 #, c-format msgid "can't set binary mode on stderr (%s)" msgstr "kan inte stta binrlge p standard fel (%s)" -#: main.c:572 +#: main.c:586 msgid "no program text at all!" msgstr "ingen programtext alls!" -#: main.c:665 +#: main.c:690 #, c-format msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" msgstr "" "Anvndning: %s [POSIX- eller GNU-stilsflaggor] -f progfil [--] fil ...\n" -#: main.c:667 +#: main.c:692 #, c-format msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" msgstr "Anvndning: %s [POSIX- eller GNU-stilsflaggor] %cprogram%c fil ...\n" -#: main.c:672 +#: main.c:697 msgid "POSIX options:\t\tGNU long options:\n" msgstr "POSIX-flaggor:\t\tGNU lnga flaggor:\n" -#: main.c:673 +#: main.c:698 msgid "\t-f progfile\t\t--file=progfile\n" msgstr "\t-f progfil\t\t--file=progfil\n" -#: main.c:674 +#: main.c:699 msgid "\t-F fs\t\t\t--field-separator=fs\n" msgstr "\t-F fs\t\t\t--field-separator=fs\n" -#: main.c:675 +#: main.c:700 msgid "\t-v var=val\t\t--assign=var=val\n" msgstr "\t-v var=vrde\t\t--assign=var=vrde\n" -#: main.c:676 +#: main.c:701 msgid "\t-m[fr] val\n" msgstr "\t-m[fr] vrde\n" -#: main.c:677 +#: main.c:702 msgid "\t-W compat\t\t--compat\n" msgstr "\t-W compat\t\t--compat\n" -#: main.c:678 +#: main.c:703 msgid "\t-W copyleft\t\t--copyleft\n" msgstr "\t-W copyleft\t\t--copyleft\n" -#: main.c:679 +#: main.c:704 msgid "\t-W copyright\t\t--copyright\n" msgstr "\t-W copyright\t\t--copyright\n" -#: main.c:680 +#: main.c:705 msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" msgstr "\t-W dump-variables[=fil]\t--dump-variables[=fil]\n" -#: main.c:681 +#: main.c:706 #, fuzzy msgid "\t-W exec=file\t\t--exec=file\n" msgstr "\t-W profile[=fil]\t--profile[=fil]\n" -#: main.c:682 +#: main.c:707 msgid "\t-W gen-po\t\t--gen-po\n" msgstr "\t-W gen-po\t\t--gen-po\n" -#: main.c:683 +#: main.c:708 msgid "\t-W help\t\t\t--help\n" msgstr "\t-W help\t\t\t--help\n" -#: main.c:684 +#: main.c:709 msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" msgstr "\t-W lint[=fatal]\t\t--lint[=fatal]\n" -#: main.c:685 +#: main.c:710 msgid "\t-W lint-old\t\t--lint-old\n" msgstr "\t-W lint-old\t\t--lint-old\n" -#: main.c:686 +#: main.c:711 msgid "\t-W non-decimal-data\t--non-decimal-data\n" msgstr "\t-W non-decimal-data\t--non-decimal-data\n" -#: main.c:688 +#: main.c:713 msgid "\t-W nostalgia\t\t--nostalgia\n" msgstr "\t-W nostalgia\t\t--nostalgia\n" -#: main.c:691 +#: main.c:716 msgid "\t-W parsedebug\t\t--parsedebug\n" msgstr "\t-W parsedebug\t\t--parsedebug\n" -#: main.c:693 +#: main.c:718 msgid "\t-W profile[=file]\t--profile[=file]\n" msgstr "\t-W profile[=fil]\t--profile[=fil]\n" -#: main.c:694 +#: main.c:719 msgid "\t-W posix\t\t--posix\n" msgstr "\t-W posix\t\t--posix\n" -#: main.c:695 +#: main.c:720 msgid "\t-W re-interval\t\t--re-interval\n" msgstr "\t-W re-interval\t\t--re-interval\n" -#: main.c:696 +#: main.c:721 msgid "\t-W source=program-text\t--source=program-text\n" msgstr "\t-W source=programtext\t--source=programtext\n" -#: main.c:697 +#: main.c:722 msgid "\t-W traditional\t\t--traditional\n" msgstr "\t-W traditional\t\t--traditional\n" -#: main.c:698 +#: main.c:723 msgid "\t-W usage\t\t--usage\n" msgstr "\t-W usage\t\t--usage\n" -#: main.c:699 +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "" + +#: main.c:725 msgid "\t-W version\t\t--version\n" msgstr "\t-W version\t\t--version\n" -#: main.c:703 +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 msgid "" "\n" "To report bugs, see node `Bugs' in `gawk.info', which is\n" @@ -1569,7 +1598,7 @@ "Rapportera synpunkter p versttningen till .\n" "\n" -#: main.c:707 +#: main.c:738 msgid "" "gawk is a pattern scanning and processing language.\n" "By default it reads standard input and writes standard output.\n" @@ -1579,7 +1608,7 @@ "Normalt lser det frn standard in och skriver till standard ut.\n" "\n" -#: main.c:711 +#: main.c:742 msgid "" "Examples:\n" "\tgawk '{ sum += $1 }; END { print sum }' file\n" @@ -1589,14 +1618,14 @@ "\tgawk '{ sum += $1 }; END { print sum }' fil\n" "\tgawk -F: '{print $1 }' /etc/passwd\n" -#: main.c:731 +#: main.c:762 #, c-format msgid "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" +"the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" msgstr "" @@ -1604,11 +1633,11 @@ "\n" "Detta program r fri programvara. Du kan distribuera det och/eller\n" "modifiera det under villkoren i GNU General Public License, publicerad\n" -"av Free Software Foundation, antingen version 2 eller (om du s vill)\n" +"av Free Software Foundation, antingen version 3 eller (om du s vill)\n" "ngon senare version.\n" "\n" -#: main.c:739 +#: main.c:770 msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -1622,57 +1651,56 @@ "General Public License fr ytterligare information.\n" "\n" -#: main.c:745 +#: main.c:781 +#, fuzzy msgid "" "You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" msgstr "" "Du br ha ftt en kopia av GNU General Public License tillsammans\n" "med detta program. Om inte, skriv till Free Software Foundation,\n" "Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n" -#: main.c:781 +#: main.c:816 msgid "-Ft does not set FS to tab in POSIX awk" msgstr "-Ft stter inte FS till tab i POSIX-awk" -#: main.c:1018 +#: main.c:1060 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" "\n" msgstr "%s: Argumentet \"%s\" till \"-v\" r inte p formatet \"var=vrde\"\n" -#: main.c:1038 +#: main.c:1080 #, c-format msgid "`%s' is not a legal variable name" msgstr "\"%s\" r inte ett giltigt variabelnamn" -#: main.c:1041 +#: main.c:1083 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "\"%s\" r inte ett variabelnamn, letar efter filen \"%s=%s\"" -#: main.c:1074 +#: main.c:1122 msgid "floating point exception" msgstr "flyttalsundantag" -#: main.c:1081 +#: main.c:1129 msgid "fatal error: internal error" msgstr "desdigert fel: internt fel" -#: main.c:1132 +#: main.c:1180 #, c-format msgid "no pre-opened fd %d" msgstr "ingen frppnad fd %d" -#: main.c:1139 +#: main.c:1187 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "kunde inte frppna /dev/null fr fd %d" -#: main.c:1162 main.c:1171 +#: main.c:1210 main.c:1219 #, c-format msgid "could not find groups: %s" msgstr "kunde inte hitta grupper: %s" @@ -1694,23 +1722,28 @@ msgid "fatal: " msgstr "desdigert: " -#: node.c:59 node.c:66 node.c:75 node.c:90 node.c:119 +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 msgid "can't convert string to float" msgstr "kan inte konvertera en strng till flyttal" -#: node.c:414 +#: node.c:406 msgid "backslash at end of string" msgstr "omvnt snedstreck i slutet av strngen" -#: node.c:604 +#: node.c:548 +#, fuzzy, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "gamla awk stder inte operatorn \"**\"" + +#: node.c:599 msgid "POSIX does not allow `\\x' escapes" msgstr "POSIX tillter inte \"\\x\"-kontrollsekvenser" -#: node.c:610 +#: node.c:605 msgid "no hex digits in `\\x' escape sequence" msgstr "inga hexadecimala siffror i \"\\x\"-kontrollsekvenser" -#: node.c:644 +#: node.c:639 #, c-format msgid "escape sequence `\\%c' treated as plain `%c'" msgstr "kontrollsekvensen \"\\%c\" behandlad som bara \"%c\"" @@ -1720,31 +1753,31 @@ msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" msgstr "%s %s \"%s\": kunde inte stta stng-vid-exec (fcntl: %s)" -#: profile.c:91 +#: profile.c:92 #, c-format msgid "could not open `%s' for writing: %s" msgstr "kunde inte ppna \"%s\" fr skrivning: %s" -#: profile.c:467 +#: profile.c:450 #, fuzzy, c-format msgid "internal error: %s with null vname" msgstr "internt fel: Node_var med null vname" -#: profile.c:531 +#: profile.c:514 msgid "# treated internally as `delete'" msgstr "# behandlad internt som \"delete\"" -#: profile.c:1168 +#: profile.c:1147 #, c-format msgid "# this is a dynamically loaded extension function" msgstr "" -#: profile.c:1199 +#: profile.c:1178 #, c-format msgid "\t# gawk profile, created %s\n" msgstr "\t# gawkprofil, skapad %s\n" -#: profile.c:1202 +#: profile.c:1181 #, c-format msgid "" "\t# BEGIN block(s)\n" @@ -1753,7 +1786,7 @@ "\t# BEGIN-block\n" "\n" -#: profile.c:1212 +#: profile.c:1191 #, c-format msgid "" "\t# Rule(s)\n" @@ -1762,7 +1795,7 @@ "\t# Regel/regler\n" "\n" -#: profile.c:1218 +#: profile.c:1197 #, c-format msgid "" "\t# END block(s)\n" @@ -1771,7 +1804,7 @@ "\t# END-block\n" "\n" -#: profile.c:1238 +#: profile.c:1217 #, c-format msgid "" "\n" @@ -1780,83 +1813,86 @@ "\n" "\t# Funktioner, listade alfabetiskt\n" -#: profile.c:1453 +#: profile.c:1470 #, c-format msgid "unexpected type %s in prec_level" msgstr "ovntad typ %s i prec_level" -#: regcomp.c:160 +#: regcomp.c:132 msgid "Success" msgstr "Lyckades" -#: regcomp.c:163 +#: regcomp.c:135 msgid "No match" msgstr "Misslyckades" -#: regcomp.c:166 +#: regcomp.c:138 msgid "Invalid regular expression" msgstr "Ogiltigt reguljrt uttryck" -#: regcomp.c:169 +#: regcomp.c:141 msgid "Invalid collation character" msgstr "Ogiltigt kollationeringstecken" -#: regcomp.c:172 +#: regcomp.c:144 msgid "Invalid character class name" msgstr "Ogiltigt teckenklassnamn" -#: regcomp.c:175 +#: regcomp.c:147 msgid "Trailing backslash" msgstr "Efterslpande omvnt snedstreck" -#: regcomp.c:178 +#: regcomp.c:150 msgid "Invalid back reference" msgstr "Ogiltig baktrerefens" -#: regcomp.c:181 +#: regcomp.c:153 msgid "Unmatched [ or [^" msgstr "Obalanserad [ eller [^" -#: regcomp.c:184 +#: regcomp.c:156 msgid "Unmatched ( or \\(" msgstr "Obalanserad ( eller \\(" -#: regcomp.c:187 +#: regcomp.c:159 msgid "Unmatched \\{" msgstr "Obalanserad \\{" -#: regcomp.c:190 +#: regcomp.c:162 msgid "Invalid content of \\{\\}" msgstr "Ogiltigt innehll i \\{\\}" -#: regcomp.c:193 +#: regcomp.c:165 msgid "Invalid range end" msgstr "Ogiltigt omfngsslut" -#: regcomp.c:196 +#: regcomp.c:168 msgid "Memory exhausted" msgstr "Minnet slut" -#: regcomp.c:199 +#: regcomp.c:171 msgid "Invalid preceding regular expression" msgstr "Ogiltigt fregende reguljrt uttryck" -#: regcomp.c:202 +#: regcomp.c:174 msgid "Premature end of regular expression" msgstr "Fr tidigt slut p reguljrt uttryck" -#: regcomp.c:205 +#: regcomp.c:177 msgid "Regular expression too big" msgstr "Reguljrt uttryck fr stort" -#: regcomp.c:208 +#: regcomp.c:180 msgid "Unmatched ) or \\)" msgstr "Obalanserad ) eller \\)" -#: regcomp.c:688 +#: regcomp.c:664 msgid "No previous regular expression" msgstr "Inget fregende reguljrt uttryck" +#~ msgid "remote port invalid in `%s'" +#~ msgstr "fjrrporten ogiltig i \"%s\"" + #~ msgid "function %s called\n" #~ msgstr "funktionen %s anropad\n" diff -urN gawk-3.1.5/po/tr.po gawk-3.1.6/po/tr.po --- gawk-3.1.5/po/tr.po 2005-07-06 17:20:04.000000000 +0300 +++ gawk-3.1.6/po/tr.po 2007-09-30 22:33:26.000000000 +0200 @@ -1,19 +1,19 @@ # Turkish translations for GNU awk messages -# Copyright (C) 2004 Free Software Foundation, Inc. -# Nilgün Belma Bugüner , 2001, ..., 2004. +# Copyright (C) 2007 Free Software Foundation, Inc. # +# Nilgün Belma Bugüner , 2001, ..., 2007. msgid "" msgstr "" -"Project-Id-Version: gawk 3.1.3l\n" +"Project-Id-Version: gawk 3.1.5f\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" -"POT-Creation-Date: 2005-07-06 17:20+0300\n" -"PO-Revision-Date: 2004-07-19 10:15+0300\n" -"Last-Translator: Nilgün Belma Bugüner \n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" +"PO-Revision-Date: 2007-05-19 19:32+0300\n" +"Last-Translator: Nilgün Belma Bugüner \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.0\n" +"X-Generator: KBabel 1.11.4\n" #: array.c:112 #, c-format @@ -35,347 +35,358 @@ msgid "from %s" msgstr "%s'den" -#: array.c:511 +#: array.c:514 #, c-format msgid "reference to uninitialized element `%s[\"%s\"]'" msgstr "ilklendirilmemiş öğeye ( %s[\"%s\"] ) başvuru yapılıyor" -#: array.c:517 +#: array.c:520 #, c-format msgid "subscript of array `%s' is null string" msgstr "dizinin indisi `%s' bir null dizge" -#: array.c:621 +#: array.c:624 #, c-format msgid "delete: index `%s' not in array `%s'" msgstr "delete: `%s' indeksi `%s' dizisinde değil" -#: array.c:791 +#: array.c:793 #, c-format msgid "%s: empty (null)\n" msgstr "%s: boş (null)\n" -#: array.c:796 +#: array.c:798 #, c-format msgid "%s: empty (zero)\n" msgstr "%s: boş (sıfır)\n" -#: array.c:800 +#: array.c:802 #, c-format msgid "%s: table_size = %d, array_size = %d\n" msgstr "%s: tablo_uzunluğu = %d, dizi_indisi = %d\n" -#: array.c:829 +#: array.c:831 #, c-format msgid "%s: is parameter\n" msgstr "%s: parametredir\n" -#: array.c:834 +#: array.c:836 #, c-format msgid "%s: array_ref to %s\n" msgstr "%s: %s için dizi başvurusu\n" -#: awkgram.y:208 +#: awkgram.y:215 #, c-format msgid "%s blocks must have an action part" msgstr "%s blokları bir eylem bölümü içermeli" -#: awkgram.y:211 +#: awkgram.y:218 msgid "each rule must have a pattern or an action part" msgstr "her kural bir eylem bölümü veya bir kalıp içermeli" -#: awkgram.y:267 +#: awkgram.y:254 awkgram.y:263 +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "eski awk çok sayıda `BEGIN' veya `END' kuralını desteklemiyor" + +#: awkgram.y:282 #, c-format msgid "`%s' is a built-in function, it cannot be redefined" msgstr "`%s' bir yerleşik işlevdir, yeniden atanamaz" -#: awkgram.y:313 -#, fuzzy +#: awkgram.y:328 msgid "regexp constant `//' looks like a C++ comment, but is not" -msgstr "düzenli ifade sabiti `/%s/' bir C açıklaması gibi görünüyor ama değil" +msgstr "düzenli ifade sabiti `//' bir C++ açıklaması gibi görünüyor ama değil" -#: awkgram.y:316 +#: awkgram.y:331 #, c-format msgid "regexp constant `/%s/' looks like a C comment, but is not" msgstr "düzenli ifade sabiti `/%s/' bir C açıklaması gibi görünüyor ama değil" -#: awkgram.y:343 awkgram.y:623 +#: awkgram.y:358 awkgram.y:653 msgid "statement may have no effect" msgstr "deyim bir etkiye sahip olmayabilir" -#: awkgram.y:440 awkgram.y:460 +#: awkgram.y:455 awkgram.y:479 #, c-format msgid "`%s' used in %s action" msgstr "`%s' %s eyleminde kullanılmış" -#: awkgram.y:453 awkgram.y:456 +#: awkgram.y:470 awkgram.y:474 msgid "`nextfile' is a gawk extension" msgstr "`nextfile' bir gawk uzantısıdır" -#: awkgram.y:470 +#: awkgram.y:489 msgid "`return' used outside function context" msgstr "`return' işlev bağlamının dışında kullanılmış" -#: awkgram.y:512 +#: awkgram.y:531 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" msgstr "BEGIN veya END kuralındaki `print' aslında `print \"\"' olmalıydı" -#: awkgram.y:525 awkgram.y:532 +#: awkgram.y:547 awkgram.y:555 msgid "`delete array' is a gawk extension" msgstr "`delete array' bir gawk uzantısıdır" -#: awkgram.y:540 awkgram.y:547 +#: awkgram.y:569 awkgram.y:577 msgid "`delete(array)' is a non-portable tawk extension" msgstr "`delete array' uyarlanabilir olmayan bir gawk uzantısıdır" -#: awkgram.y:591 +#: awkgram.y:621 #, c-format msgid "duplicate case values in switch body: %s" msgstr "switch içinde yinelenmiş case değerleri var: %s" -#: awkgram.y:601 +#: awkgram.y:631 msgid "Duplicate `default' detected in switch body" msgstr "switch içinde yinelenmiş `default' saptandı" -#: awkgram.y:690 +#: awkgram.y:720 msgid "multistage two-way pipelines don't work" msgstr "çok katlı iki yönlü veriyolları çalışmaz" -#: awkgram.y:781 +#: awkgram.y:811 msgid "regular expression on right of assignment" msgstr "düzenli ifade atamanın sağında" -#: awkgram.y:804 +#: awkgram.y:834 msgid "regular expression on left of `~' or `!~' operator" msgstr "düzenli ifade `~' ya da `!~' işlemiminin solunda" -#: awkgram.y:812 +#: awkgram.y:840 awkgram.y:913 +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "eski awk `for'dan sonra gelmeyen `in' anahtar sözcüğünü desteklemiyor" + +#: awkgram.y:846 msgid "regular expression on right of comparison" msgstr "düzenli ifade karşılaştırmanın sağında" -#: awkgram.y:879 +#: awkgram.y:903 msgid "non-redirected `getline' undefined inside END action" msgstr "END eyleminin içinde yönlendirme yapmayan `getline' tanımsız" -#: awkgram.y:906 +#: awkgram.y:914 +msgid "old awk does not support multidimensional arrays" +msgstr "eski awk çok boyutlu dizileri desteklemiyor" + +#: awkgram.y:960 msgid "call of `length' without parentheses is not portable" msgstr "parantezsiz `length' çağrısı taşınabilir değil" -#: awkgram.y:909 +#: awkgram.y:965 msgid "call of `length' without parentheses is deprecated by POSIX" msgstr "parantezsiz `length' çağrısı POSIX'e uygun değil" -#: awkgram.y:962 +#: awkgram.y:1019 msgid "use of non-array as array" msgstr "dizi olmayan değişken dizi olarak kullanılmış" -#: awkgram.y:964 +#: awkgram.y:1022 msgid "invalid subscript expression" msgstr "indis ifadesi geçersiz" -#: awkgram.y:1171 +#: awkgram.y:1249 msgid "unexpected newline or end of string" msgstr "beklenmeyen satırsonu ya da dizge sonu" -#: awkgram.y:1267 +#: awkgram.y:1366 msgid "empty program text on command line" msgstr "komut satırında boş program metni" -#: awkgram.y:1320 +#: awkgram.y:1422 #, c-format msgid "can't open source file `%s' for reading (%s)" msgstr "kaynak dosyası `%s' okumak için açılamıyor (%s)" -#: awkgram.y:1397 +#: awkgram.y:1520 #, c-format msgid "can't read sourcefile `%s' (%s)" msgstr "kaynak dosyası `%s' okunamıyor (%s)" -#: awkgram.y:1405 +#: awkgram.y:1528 #, c-format msgid "source file `%s' is empty" msgstr "kaynak dosyası `%s' boş" -#: awkgram.y:1596 awkgram.y:1718 awkgram.y:1736 awkgram.y:2107 awkgram.y:2194 +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 msgid "source file does not end in newline" msgstr "kaynak dosyasının sonunda satırsonu eksik" -#: awkgram.y:1658 +#: awkgram.y:1782 msgid "unterminated regexp ends with `\\' at end of file" msgstr "sonlandırılmamış düzenli ifade dosya sonunda `\\' ile bitiyor" -#: awkgram.y:1682 +#: awkgram.y:1806 #, c-format msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" -msgstr "" +msgstr "%s: %d: tawk regex değiştirici `/.../%c' gawk'ta çalışmaz" -#: awkgram.y:1686 +#: awkgram.y:1810 #, c-format msgid "tawk regex modifier `/.../%c' doesn't work in gawk" -msgstr "" +msgstr "tawk regex değiştirici `/.../%c' gawk'ta çalışmaz" -#: awkgram.y:1693 +#: awkgram.y:1817 msgid "unterminated regexp" msgstr "sonlandırılmamış düzenli ifade" -#: awkgram.y:1696 +#: awkgram.y:1820 msgid "unterminated regexp at end of file" msgstr "dosya sonunda sonlandırılmamış düzenli ifade" -#: awkgram.y:1762 +#: awkgram.y:1889 msgid "use of `\\ #...' line continuation is not portable" msgstr "`\\ #...' satır uzatma kullanımı taşınabilir değil" -#: awkgram.y:1774 +#: awkgram.y:1902 msgid "backslash not last character on line" msgstr "tersbölü satırdaki son karakter değil" -#: awkgram.y:1819 +#: awkgram.y:1947 msgid "POSIX does not allow operator `**='" msgstr "`**=' işlemimi POSIX uyumlu değil" -#: awkgram.y:1821 +#: awkgram.y:1949 msgid "old awk does not support operator `**='" msgstr "`**=' işlemimini eski awk desteklemiyor" -#: awkgram.y:1830 +#: awkgram.y:1958 msgid "POSIX does not allow operator `**'" msgstr "`**' işlemimi POSIX uyumlu değil" -#: awkgram.y:1832 +#: awkgram.y:1960 msgid "old awk does not support operator `**'" msgstr "`**' işlemimini eski awk desteklemiyor" -#: awkgram.y:1863 +#: awkgram.y:1991 msgid "operator `^=' is not supported in old awk" msgstr "`^=' işlemimini eski awk desteklemiyor" -#: awkgram.y:1871 +#: awkgram.y:1999 msgid "operator `^' is not supported in old awk" msgstr "`^' işlemimini eski awk desteklemiyor" -#: awkgram.y:1955 awkgram.y:1970 +#: awkgram.y:2083 awkgram.y:2098 msgid "unterminated string" msgstr "sonlandırılmamış dizge" -#: awkgram.y:2155 +#: awkgram.y:2283 #, c-format msgid "invalid char '%c' in expression" msgstr "ifade içinde '%c' karakteri geçersiz" -#: awkgram.y:2203 +#: awkgram.y:2331 #, c-format msgid "`%s' is a gawk extension" msgstr "`%s' bir gawk uzantısıdır" -#: awkgram.y:2206 +#: awkgram.y:2334 #, c-format msgid "`%s' is a Bell Labs extension" msgstr "`%s' bir Bell Laboratuarları uzantısıdır" -#: awkgram.y:2209 +#: awkgram.y:2337 #, c-format msgid "POSIX does not allow `%s'" msgstr "`%s' POSIX uyumlu değil" -#: awkgram.y:2213 +#: awkgram.y:2341 #, c-format msgid "`%s' is not supported in old awk" msgstr "`%s' eski awk tarafından desteklemiyor" -#: awkgram.y:2239 +#: awkgram.y:2367 msgid "`goto' considered harmful!\n" msgstr "`goto' zararlı sayılır!\n" -#: awkgram.y:2301 +#: awkgram.y:2429 #, c-format msgid "%d is invalid as number of arguments for %s" msgstr "%d argüman sayısı olarak %s için geçersiz" -#: awkgram.y:2320 awkgram.y:2323 +#: awkgram.y:2448 awkgram.y:2451 msgid "match: third argument is a gawk extension" msgstr "match: üçüncü argüman bir gawk uzantısı" -#: awkgram.y:2336 +#: awkgram.y:2464 #, c-format msgid "%s: string literal as last arg of substitute has no effect" msgstr "%s: yerine kullanılan son argüman olarak dizge sabiti etkisiz" -#: awkgram.y:2339 +#: awkgram.y:2467 #, c-format msgid "%s third parameter is not a changeable object" msgstr "üçüncü %s parametresi değiştirilebilir bir nesne değil" -#: awkgram.y:2366 awkgram.y:2369 +#: awkgram.y:2494 awkgram.y:2497 msgid "close: second argument is a gawk extension" msgstr "close: ikinci argüman bir gawk uzantısı" -#: awkgram.y:2379 +#: awkgram.y:2507 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" msgstr "dcgettext(_\"...\") kullanımı yanlış: altçizgiyi kaldırın" -#: awkgram.y:2394 +#: awkgram.y:2522 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" msgstr "dcngettext(_\"...\") kullanımı yanlış: altçizgiyi kaldırın" -#: awkgram.y:2465 +#: awkgram.y:2594 #, c-format msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" msgstr "`%s' işlevi: %d. parametre, `%s', %d. parametrenin tekrarı" -#: awkgram.y:2498 +#: awkgram.y:2627 #, c-format msgid "function `%s': parameter `%s' shadows global variable" msgstr "`%s' işlevi: parametre, `%s'global değişkeni gölgeliyor" -#: awkgram.y:2610 +#: awkgram.y:2739 #, c-format msgid "could not open `%s' for writing (%s)" msgstr "`%s' yazmak için açılamadı (%s)" -#: awkgram.y:2611 profile.c:93 +#: awkgram.y:2740 profile.c:94 msgid "sending profile to standard error" msgstr "profil standart hataya gönderiliyor" -#: awkgram.y:2643 +#: awkgram.y:2772 #, c-format msgid "%s: close failed (%s)" msgstr "%s: kapatma başarısız (%s)" -#: awkgram.y:2764 +#: awkgram.y:2893 msgid "shadow_funcs() called twice!" msgstr "shadow_funcs() iki kere çağrıldı!" -#: awkgram.y:2791 +#: awkgram.y:2920 msgid "there were shadowed variables." msgstr "gölgeli değişkenler vardı." -#: awkgram.y:2864 +#: awkgram.y:2993 #, c-format msgid "function `%s': can't use function name as parameter name" msgstr "işlev `%s': işlev ismi parametre ismi olarak kullanılamaz" -#: awkgram.y:2874 +#: awkgram.y:3003 #, c-format msgid "function name `%s' previously defined" msgstr "işlev ismi `%s' önceden atanmış" -#: awkgram.y:3025 awkgram.y:3031 +#: awkgram.y:3154 awkgram.y:3160 #, c-format msgid "function `%s' called but never defined" msgstr "`%s' işlevi çağrıldı ama hiç atanmamış" -#: awkgram.y:3034 +#: awkgram.y:3163 #, c-format msgid "function `%s' defined but never called" msgstr "`%s' işlevi atanmış ama hiç çağrılmadı" -#: awkgram.y:3061 +#: awkgram.y:3190 #, c-format msgid "regexp constant for parameter #%d yields boolean value" msgstr "%d numaralı argüman bir düzenli ifade sabiti" -#: awkgram.y:3105 +#: awkgram.y:3234 #, c-format msgid "" "function `%s' called with space between name and `(',\n" @@ -384,202 +395,201 @@ "`%s' işlevi `(' ile isim arasında boşlukla çağrılmış,\n" "ya da bir değişken veya bir dizi olarak kullanılmış" -#: builtin.c:145 +#: builtin.c:119 #, c-format msgid "%s to \"%s\" failed (%s)" msgstr "%s \"%s\"ya yazılamadı (%s)" -#: builtin.c:146 +#: builtin.c:120 msgid "standard output" msgstr "standart çıktı" -#: builtin.c:147 +#: builtin.c:121 msgid "reason unknown" msgstr "sebebi bilinmiyor" -#: builtin.c:160 +#: builtin.c:134 msgid "exp: received non-numeric argument" msgstr "exp: sayısal olmayan argüman alındı" -#: builtin.c:166 +#: builtin.c:140 #, c-format msgid "exp: argument %g is out of range" msgstr "exp: %g kapsamdışı" -#: builtin.c:224 +#: builtin.c:198 #, c-format msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" msgstr "" "fflush: kanala yazılamadı: veriyolu `%s' okumak için açıldı, yazmak için " "değil" -#: builtin.c:227 +#: builtin.c:201 #, c-format msgid "fflush: cannot flush: file `%s' opened for reading, not writing" msgstr "" "fflush: kanala yazılamadı: dosya `%s' okumak için açıldı, yazmak için değil" -#: builtin.c:239 +#: builtin.c:213 #, c-format msgid "fflush: `%s' is not an open file, pipe or co-process" msgstr "fflush: `%s' bir açık dosya, veriyolu ya da bir yan işlem değil" -#: builtin.c:332 +#: builtin.c:306 msgid "index: received non-string first argument" msgstr "index: ilk argüman dizge olmayan türde alındı" -#: builtin.c:334 +#: builtin.c:308 msgid "index: received non-string second argument" msgstr "index: ikinci argüman dizge olmayan türde alındı" -#: builtin.c:449 +#: builtin.c:423 msgid "int: received non-numeric argument" msgstr "int: sayısal olmayan argüman alındı" -#: builtin.c:472 -#, fuzzy +#: builtin.c:448 msgid "`length(array)' is a gawk extension" -msgstr "`delete array' bir gawk uzantısıdır" +msgstr "`length(array)' bir gawk uzantısıdır" -#: builtin.c:481 +#: builtin.c:458 msgid "length: received non-string argument" msgstr "length: dizge olmayan argüman alındı" -#: builtin.c:506 +#: builtin.c:483 msgid "log: received non-numeric argument" msgstr "log: sayısal olmayan argüman alındı" -#: builtin.c:509 +#: builtin.c:486 #, c-format msgid "log: received negative argument %g" msgstr "log: negatif argüman %g alındı" -#: builtin.c:673 builtin.c:676 +#: builtin.c:693 builtin.c:696 msgid "must use `count$' on all formats or none" msgstr "tüm biçemlerde ya `count$' kullanmalısınız ya da hiçbir şey" -#: builtin.c:778 +#: builtin.c:799 msgid "`$' is not permitted in awk formats" msgstr "`$' awk biçemlerde kullanılmaz" -#: builtin.c:784 +#: builtin.c:805 msgid "arg count with `$' must be > 0" msgstr "`$' ile birlikte verilen argüman sayısı > 0 olmalıdır" -#: builtin.c:786 +#: builtin.c:807 #, c-format msgid "arg count %ld greater than total number of supplied arguments" msgstr "argüman sayısı %ld sağlanmış toplam argüman sayısından büyük" -#: builtin.c:788 +#: builtin.c:809 msgid "`$' not permitted after period in format" msgstr "`$' biçem içinde noktadan sonra kullanılmaz" -#: builtin.c:801 +#: builtin.c:822 msgid "no `$' supplied for positional field width or precision" msgstr "konumsal alan genişliği ya da duyarlığı için `$' kullanılmamış" -#: builtin.c:867 +#: builtin.c:888 msgid "`l' is meaningless in awk formats; ignored" msgstr "`l' awk biçemlerde anlamsız; yoksayıldı" -#: builtin.c:871 +#: builtin.c:892 msgid "`l' is not permitted in POSIX awk formats" msgstr "`l' POSIX awk biçemlerde kullanılmaz" -#: builtin.c:882 +#: builtin.c:903 msgid "`L' is meaningless in awk formats; ignored" msgstr "`L' awk biçemlerde anlamsız; yoksayıldı" -#: builtin.c:886 +#: builtin.c:907 msgid "`L' is not permitted in POSIX awk formats" msgstr "`L' POSIX awk biçemlerde kullanılmaz" -#: builtin.c:897 +#: builtin.c:918 msgid "`h' is meaningless in awk formats; ignored" msgstr "`h' awk biçemlerde anlamsız; yoksayıldı" -#: builtin.c:901 +#: builtin.c:922 msgid "`h' is not permitted in POSIX awk formats" msgstr "`h' POSIX awk biçemlerde kullanılmaz" -#: builtin.c:1132 +#: builtin.c:1182 #, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" msgstr "[s]printf: %g değeri `%%%c' biçimi için kapsamdışı" -#: builtin.c:1198 +#: builtin.c:1266 msgid "not enough arguments to satisfy format string" msgstr "biçem dizgesini oluşturacak yeterli argüman yok" -#: builtin.c:1200 +#: builtin.c:1268 msgid "^ ran out for this one" msgstr "bir bunun için ^ tükendi" -#: builtin.c:1205 +#: builtin.c:1274 msgid "[s]printf: format specifier does not have control letter" msgstr "[s]printf: biçem belirteci denetim karakteri içermiyor" -#: builtin.c:1208 +#: builtin.c:1277 msgid "too many arguments supplied for format string" msgstr "biçem dizgesi için çok fazla argüman sağlanmış" -#: builtin.c:1274 builtin.c:1277 +#: builtin.c:1352 builtin.c:1355 msgid "printf: no arguments" msgstr "printf: argüman yok" -#: builtin.c:1301 +#: builtin.c:1379 msgid "sqrt: received non-numeric argument" msgstr "sqrt: sayısal olmayan argüman alındı" -#: builtin.c:1305 +#: builtin.c:1383 #, c-format msgid "sqrt: called with negative argument %g" msgstr "sqrt: negatif argüman %g ile çağrıldı" -#: builtin.c:1329 +#: builtin.c:1407 #, c-format msgid "substr: start index %g is invalid, using 1" msgstr "substr: başlangıç indeksi olarak %g geçersiz, 1 kullanılıyor" -#: builtin.c:1334 +#: builtin.c:1412 #, c-format msgid "substr: non-integer start index %g will be truncated" msgstr "" "substr: tamsayı olmayan başlangıç indeksi %g den ondalık kısım çıkarılacak" -#: builtin.c:1353 +#: builtin.c:1431 #, c-format msgid "substr: length %g is not >= 1" msgstr "substr: uzunluk %g >= 1 değil" -#: builtin.c:1355 +#: builtin.c:1433 #, c-format msgid "substr: length %g is not >= 0" msgstr "substr: uzunluk %g => 0 değil" -#: builtin.c:1362 +#: builtin.c:1440 #, c-format msgid "substr: non-integer length %g will be truncated" msgstr "substr: tamsayı olmayan uzunluk %g den ondalık kısım çıkarılacak" -#: builtin.c:1367 +#: builtin.c:1445 #, c-format msgid "substr: length %g too big for string indexing, truncating to %g" msgstr "" "substr: dizge indislemesi için uzunluk olarak %g çok fazla, %g den sonrası " "gözardı ediliyor" -#: builtin.c:1379 +#: builtin.c:1457 msgid "substr: source string is zero length" msgstr "substr: kaynak dizge sıfır uzunlukta" -#: builtin.c:1395 +#: builtin.c:1473 #, c-format msgid "substr: start index %g is past end of string" msgstr "substr: başlangıç indisi %g dizgenin sonundan sonra" -#: builtin.c:1403 +#: builtin.c:1481 #, c-format msgid "" "substr: length %g at start index %g exceeds length of first argument (%lu)" @@ -587,182 +597,182 @@ "substr: uzunluk %g, %g başlangıç indisinde ilk argümanın uzunluğunu (%lu) " "aşar" -#: builtin.c:1478 +#: builtin.c:1558 msgid "strftime: received non-string first argument" msgstr "strftime: ilk argüman dizge olmayan türde alındı" -#: builtin.c:1484 +#: builtin.c:1564 msgid "strftime: received empty format string" msgstr "strftime: boş biçem dizgesi alındı" -#: builtin.c:1493 +#: builtin.c:1573 msgid "strftime: received non-numeric second argument" msgstr "strftime: ikinci argüman sayısal olmayan türde alındı" -#: builtin.c:1556 +#: builtin.c:1650 msgid "mktime: received non-string argument" msgstr "mktime: dizge olmayan argüman alındı" -#: builtin.c:1601 +#: builtin.c:1695 msgid "system: received non-string argument" msgstr "system: dizge olmayan argüman alındı" -#: builtin.c:1722 eval.c:2039 +#: builtin.c:1816 eval.c:2041 #, c-format msgid "reference to uninitialized field `$%d'" msgstr "ilklendirilmemiş `$%d' alanına başvuru" -#: builtin.c:1827 +#: builtin.c:1921 msgid "tolower: received non-string argument" msgstr "tolower: dizge olmayan argüman alındı" -#: builtin.c:1857 +#: builtin.c:1951 msgid "toupper: received non-string argument" msgstr "toupper: dizge olmayan argüman alındı" -#: builtin.c:1890 +#: builtin.c:1984 msgid "atan2: received non-numeric first argument" msgstr "atan2: ilk argüman sayısal olmayan türde alındı" -#: builtin.c:1892 +#: builtin.c:1986 msgid "atan2: received non-numeric second argument" msgstr "atan2: ikinci argüman sayısal olmayan türde alındı" -#: builtin.c:1911 +#: builtin.c:2005 msgid "sin: received non-numeric argument" msgstr "sin: sayısal olmayan argüman alındı" -#: builtin.c:1927 +#: builtin.c:2021 msgid "cos: received non-numeric argument" msgstr "cos: sayısal olmayan argüman alındı" -#: builtin.c:1977 +#: builtin.c:2071 msgid "srand: received non-numeric argument" msgstr "srand: sayısal olmayan argüman alındı" -#: builtin.c:2012 +#: builtin.c:2106 msgid "match: third argument is not an array" msgstr "match: üçüncü argüman bir dizi değil" -#: builtin.c:2555 +#: builtin.c:2650 msgid "gensub: third argument of 0 treated as 1" msgstr "gensub: 0 olan 3. argüman 1 kabul edildi" -#: builtin.c:2715 +#: builtin.c:2766 msgid "lshift: received non-numeric first argument" msgstr "lshift: ilk argüman sayısal olmayan türde alındı" -#: builtin.c:2717 +#: builtin.c:2768 msgid "lshift: received non-numeric second argument" msgstr "lshift: ikinci argüman sayısal değil" -#: builtin.c:2723 +#: builtin.c:2774 #, c-format msgid "lshift(%lf, %lf): negative values will give strange results" msgstr "lshift(%lf, %lf): negatif değerler tuhaf sonuçlar verecek" -#: builtin.c:2725 +#: builtin.c:2776 #, c-format msgid "lshift(%lf, %lf): fractional values will be truncated" msgstr "lshift(%lf, %lf): tamsayı kısım kalacak şekilde kalanı atılacak" -#: builtin.c:2727 +#: builtin.c:2778 #, c-format msgid "lshift(%lf, %lf): too large shift value will give strange results" msgstr "lshift(%lf, %lf): çok büyük kaydırma değeri tuhaf sonuçlar verecek" -#: builtin.c:2753 +#: builtin.c:2804 msgid "rshift: received non-numeric first argument" msgstr "rshift: ilk argüman sayısal olmayan türde alındı" -#: builtin.c:2755 +#: builtin.c:2806 msgid "rshift: received non-numeric second argument" msgstr "rshift: ikinci argüman sayısal değil" -#: builtin.c:2761 +#: builtin.c:2812 #, c-format msgid "rshift(%lf, %lf): negative values will give strange results" msgstr "rshift(%lf, %lf): negatif değerler tuhaf sonuçlar verecek" -#: builtin.c:2763 +#: builtin.c:2814 #, c-format msgid "rshift(%lf, %lf): fractional values will be truncated" msgstr "rshift(%lf, %lf): tamsayı kısım kalacak şekilde kalanı atılacak" -#: builtin.c:2765 +#: builtin.c:2816 #, c-format msgid "rshift(%lf, %lf): too large shift value will give strange results" msgstr "rshift(%lf, %lf): çok büyük kaydırma değeri tuhaf sonuçlar verecek" -#: builtin.c:2791 +#: builtin.c:2842 msgid "and: received non-numeric first argument" msgstr "and: ilk argüman sayısal olmayan türde alındı" -#: builtin.c:2793 +#: builtin.c:2844 msgid "and: received non-numeric second argument" msgstr "and: ikinci argüman sayısal değil" -#: builtin.c:2799 +#: builtin.c:2850 #, c-format msgid "and(%lf, %lf): negative values will give strange results" msgstr "and(%lf, %lf): negatif değerler tuhaf sonuçlar verecek" -#: builtin.c:2801 +#: builtin.c:2852 #, c-format msgid "and(%lf, %lf): fractional values will be truncated" msgstr "and(%lf, %lf): tamsayı kısım kalacak şekilde kalanı atılacak" -#: builtin.c:2827 +#: builtin.c:2878 msgid "or: received non-numeric first argument" msgstr "or: ilk argüman sayısal olmayan türde alındı" -#: builtin.c:2829 +#: builtin.c:2880 msgid "or: received non-numeric second argument" msgstr "or: ikinci argüman sayısal değil" -#: builtin.c:2835 +#: builtin.c:2886 #, c-format msgid "or(%lf, %lf): negative values will give strange results" msgstr "or(%lf, %lf): negatif değerler tuhaf sonuçlar verecek" -#: builtin.c:2837 +#: builtin.c:2888 #, c-format msgid "or(%lf, %lf): fractional values will be truncated" msgstr "or(%lf, %lf): tamsayı kısım kalacak şekilde kalanı atılacak" -#: builtin.c:2863 +#: builtin.c:2914 msgid "xor: received non-numeric first argument" msgstr "xor: ilk argüman sayısal olmayan türde alındı" -#: builtin.c:2865 +#: builtin.c:2916 msgid "xor: received non-numeric second argument" msgstr "xor: ikinci argüman sayısal değil" -#: builtin.c:2871 +#: builtin.c:2922 #, c-format msgid "xor(%lf, %lf): negative values will give strange results" msgstr "xor(%lf, %lf): negatif değerler tuhaf sonuçlar verecek" -#: builtin.c:2873 +#: builtin.c:2924 #, c-format msgid "xor(%lf, %lf): fractional values will be truncated" msgstr "xor(%lf, %lf): tamsayı kısım kalacak şekilde kalanı atılacak" -#: builtin.c:2897 +#: builtin.c:2948 msgid "compl: received non-numeric argument" msgstr "compl: sayısal olmayan argüman alındı" -#: builtin.c:2903 +#: builtin.c:2954 #, c-format msgid "compl(%lf): negative value will give strange results" msgstr "compl(%lf): negatif değerler tuhaf sonuçlar verecek" -#: builtin.c:2905 +#: builtin.c:2956 #, c-format msgid "compl(%lf): fractional value will be truncated" msgstr "compl(%lf): tamsayı kısım kalacak şekilde kalanı atılacak" -#: builtin.c:3078 +#: builtin.c:3129 #, c-format msgid "dcgettext: `%s' is not a valid locale category" msgstr "dcgettext: `%s' geçerli bir yerel kategori değil" @@ -776,7 +786,7 @@ msgid "buffer overflow in genflags2str" msgstr "genflags2str içinde tampon taştı" -#: eval.c:385 eval.c:391 profile.c:838 +#: eval.c:385 eval.c:391 profile.c:817 #, c-format msgid "attempt to use array `%s' in a scalar context" msgstr "`%s' dizisi bir sayısal bağlamda kullanılmaya çalışılıyor" @@ -824,7 +834,7 @@ msgid "statement has no effect" msgstr "deyim etkisiz" -#: eval.c:952 eval.c:1893 +#: eval.c:952 eval.c:1895 #, c-format msgid "can't use function name `%s' as variable or array" msgstr "`%s' işlev ismi bir değişken ya da dizi olarak kullanılamaz" @@ -834,7 +844,7 @@ msgid "reference to uninitialized argument `%s'" msgstr "başlangıç değeri olmayan `%s' argümanına başvuru" -#: eval.c:974 eval.c:1902 +#: eval.c:974 eval.c:1904 #, c-format msgid "reference to uninitialized variable `%s'" msgstr "öndeğer ataması yapılmamış `%s' değişkenine başvuru" @@ -846,44 +856,44 @@ msgstr "" "bitiştirme: bir ifadenin yan etkileri diğerinin uzunluğunu değiştirmiş!" -#: eval.c:1200 +#: eval.c:1202 msgid "assignment used in conditional context" msgstr "koşul bağlamında atama yapılmış" -#: eval.c:1278 +#: eval.c:1280 msgid "division by zero attempted" msgstr "sıfırla bölme hatası" -#: eval.c:1293 +#: eval.c:1295 #, c-format msgid "division by zero attempted in `%%'" msgstr "`%%'de sıfırla bölme hatası" -#: eval.c:1308 profile.c:714 +#: eval.c:1310 profile.c:693 #, c-format msgid "illegal type (%s) in tree_eval" msgstr "tree_eval içinde kuraldışı tür (%s)" -#: eval.c:1471 +#: eval.c:1473 msgid "division by zero attempted in `/='" msgstr "`/='de sıfırla bölme hatası" -#: eval.c:1493 +#: eval.c:1495 #, c-format msgid "division by zero attempted in `%%='" msgstr "`%%='de sıfırla bölme hatası" -#: eval.c:1758 +#: eval.c:1760 #, c-format msgid "function `%s' called with more arguments than declared" msgstr "`%s' işlevi bildirilenden daha fazla argümanla çağrıldı" -#: eval.c:1802 +#: eval.c:1804 #, c-format msgid "function `%s' not defined" msgstr "`%s' işlevi tanımsız" -#: eval.c:1865 +#: eval.c:1867 #, c-format msgid "" "\n" @@ -894,666 +904,678 @@ "\t# İşlev Çağrı Yığını:\n" "\n" -#: eval.c:1868 +#: eval.c:1870 #, c-format msgid "\t# -- main --\n" msgstr "\t# -- main --\n" -#: eval.c:2023 +#: eval.c:2025 msgid "attempt to field reference from non-numeric value" msgstr "sayısal olmayan değerden alan başvurusu" -#: eval.c:2025 +#: eval.c:2027 msgid "attempt to reference from null string" msgstr "null dizgeden alan başvurusu" -#: eval.c:2031 +#: eval.c:2033 #, c-format msgid "attempt to access field %d" msgstr "%d. alana erişilmeye çalışılıyor" -#: eval.c:2052 eval.c:2059 profile.c:935 +#: eval.c:2054 eval.c:2061 profile.c:914 msgid "assignment is not allowed to result of builtin function" msgstr "değişken ismine yerleşik işlevin sonucu atanamaz" -#: eval.c:2123 +#: eval.c:2125 msgid "`IGNORECASE' is a gawk extension" msgstr "`IGNORECASE' bir gawk uzantısıdır" -#: eval.c:2153 +#: eval.c:2155 msgid "`BINMODE' is a gawk extension" msgstr "`BINMODE' bir gawk uzantısıdır" -#: eval.c:2275 +#: eval.c:2277 #, c-format msgid "bad `%sFMT' specification `%s'" msgstr "`%sFMT' özelliği `%s' hatalı" -#: eval.c:2353 +#: eval.c:2355 msgid "turning off `--lint' due to assignment to `LINT'" msgstr "`LINT' atamasından dolayı `--lint' kapatılıyor" -#: ext.c:60 ext.c:64 +#: ext.c:62 ext.c:67 msgid "`extension' is a gawk extension" msgstr "`extension' bir gawk uzantısıdır" -#: ext.c:74 +#: ext.c:77 #, c-format msgid "extension: cannot open `%s' (%s)\n" msgstr "extension: `%s' açılamıyor (%s)\n" -#: ext.c:82 +#: ext.c:85 #, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "extension: kitaplık `%s': `%s' işlevi çağrılamıyor (%s)\n" -#: ext.c:102 +#: ext.c:105 msgid "extension: missing function name" msgstr "extension: işlev ismi eksik" -#: ext.c:107 +#: ext.c:110 #, c-format msgid "extension: illegal character `%c' in function name `%s'" msgstr "extension: `%2$s' işlevindeki `%1$c' karakteri kuraldışı" -#: ext.c:113 +#: ext.c:116 #, c-format msgid "extension: can't redefine function `%s'" msgstr "extension: `%s' işlevi yeniden tanımlanamaz" -#: ext.c:117 +#: ext.c:120 #, c-format msgid "extension: function `%s' already defined" msgstr "extension: `%s' işlevi zaten tanımlı" -#: ext.c:122 +#: ext.c:125 #, c-format msgid "extension: can't use gawk built-in `%s' as function name" msgstr "extension: bir gawk yerleşiği olan `%s' işlev ismi olamaz" -#: ext.c:124 +#: ext.c:127 #, c-format msgid "extension: function name `%s' previously defined" msgstr "extension: işlev ismi `%s' evvelce tanımlanmış" -#: ext.c:201 -#, fuzzy, c-format +#: ext.c:204 +#, c-format msgid "function `%s' defined to take no more than %d argument(s)" msgstr "`%s' işlevi en çok `%d' argüman alabilecek şekilde tanımlı" -#: ext.c:204 +#: ext.c:207 #, c-format msgid "function `%s': missing argument #%d" msgstr "`%s' işlevi: %d. argüman eksik" -#: ext.c:214 +#: ext.c:217 #, c-format msgid "function `%s': argument #%d: attempt to use scalar as an array" msgstr "" "`%s' işlevi: %d. argüman: tek değerli değişken bir dizi olarak kullanılmaya " "çalışılıyor" -#: ext.c:218 +#: ext.c:221 #, c-format msgid "function `%s': argument #%d: attempt to use array as a scalar" msgstr "" "`%s' işlevi: %d. argüman: dizi tek değerli bir değişken olarak kullanılmaya " "çalışılıyor" -#: ext.c:243 +#: ext.c:246 msgid "Operation Not Supported" msgstr "İşlem Desteklenmiyor" -#: field.c:326 +#: field.c:330 msgid "NF set to negative value" msgstr "NF negatif değere ayarlı" -#: field.c:819 +#: field.c:823 msgid "split: second argument is not an array" msgstr "split: ikinci argüman bir dizi değil" -#: field.c:853 +#: field.c:857 msgid "split: null string for third arg is a gawk extension" msgstr "split: üçüncü argüman olan null dizge bir gawk uzantısı" -#: field.c:905 +#: field.c:909 msgid "`FIELDWIDTHS' is a gawk extension" msgstr "`FIELDWIDTHS' bir gawk uzantısıdır" -#: field.c:935 field.c:946 +#: field.c:939 field.c:953 #, c-format msgid "invalid FIELDWIDTHS value, near `%s'" -msgstr "" +msgstr "`%s' yanında FIELDWIDTHS değeri geçersiz" -#: field.c:1027 +#: field.c:1036 msgid "null string for `FS' is a gawk extension" msgstr "`FS' için null dizge bir gawk uzantısıdır" -#: getopt.c:571 getopt.c:590 +#: field.c:1040 +msgid "old awk does not support regexps as value of `FS'" +msgstr "eski awk düzenli ifadeleri `FS' değeriyle desteklemiyor" + +#: getopt.c:571 getopt.c:587 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: `%s' seçeneği belirsiz\n" -#: getopt.c:623 getopt.c:627 +#: getopt.c:620 getopt.c:624 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: `--%s' seçeneği argümansız kullanılır\n" -#: getopt.c:636 getopt.c:641 +#: getopt.c:633 getopt.c:638 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: seçenek `%c%s' argümansız kullanılır\n" -#: getopt.c:687 getopt.c:709 getopt.c:1040 getopt.c:1062 +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: `%s' seçeneği bir argümanla kullanılır\n" -#: getopt.c:747 getopt.c:750 +#: getopt.c:738 getopt.c:741 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: `--%s' seçeneği bilinmiyor\n" -#: getopt.c:758 getopt.c:761 +#: getopt.c:749 getopt.c:752 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: `%c%s' seçeneği bilinmiyor\n" -#: getopt.c:816 getopt.c:819 +#: getopt.c:804 getopt.c:807 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: kuraldışı seçenek -- %c\n" -#: getopt.c:825 getopt.c:828 +#: getopt.c:813 getopt.c:816 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: geçersiz seçenek -- %c\n" -#: getopt.c:883 getopt.c:902 getopt.c:1115 getopt.c:1136 main.c:448 +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: seçenek bir argümanla kullanılır -- %c\n" -#: getopt.c:955 getopt.c:974 +#: getopt.c:937 getopt.c:953 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: `-W %s' seçeneği belirsiz\n" -#: getopt.c:998 getopt.c:1019 +#: getopt.c:977 getopt.c:995 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: `-W %s' seçeneği argümansız kullanılır\n" -#: io.c:307 +#: io.c:345 #, c-format msgid "cannot open file `%s' for reading (%s)" msgstr "`%s' okumak için açılamıyor (%s)" -#: io.c:398 +#: io.c:436 #, c-format msgid "close of fd %d (`%s') failed (%s)" msgstr "dosya tanımlayıcı %d (`%s') başarısız (%s)" -#: io.c:536 +#: io.c:575 #, c-format msgid "invalid tree type %s in redirect()" msgstr "redirect() içindeki ağaç türü %s geçersiz" -#: io.c:542 +#: io.c:581 #, c-format msgid "expression in `%s' redirection only has numeric value" msgstr "`%s' yönlendirmesi içindeki ifade sadece sayısal değer içeriyor" -#: io.c:548 +#: io.c:587 #, c-format msgid "expression for `%s' redirection has null string value" msgstr "`%s' yönlendirmesi içindeki ifade null dizge değeri içeriyor" -#: io.c:553 +#: io.c:592 #, c-format msgid "filename `%s' for `%s' redirection may be result of logical expression" msgstr "" "`%s' dosya ismi (`%s' yönlendirmesi için) mantıksal ifadenin sonucu olabilir" -#: io.c:591 +#: io.c:630 #, c-format msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" msgstr "`%.*s' dosyası için `>' ve `>>' karışımı gereksiz" -#: io.c:643 +#: io.c:682 #, c-format msgid "can't open pipe `%s' for output (%s)" msgstr "`%s' veriyolu çıktı için açılamadı (%s)" -#: io.c:652 +#: io.c:691 #, c-format msgid "can't open pipe `%s' for input (%s)" msgstr "`%s' veriyolu girdi için açılamadı (%s)" -#: io.c:665 +#: io.c:698 io.c:1448 +#, c-format +msgid "file `%s' is a directory" +msgstr "`%s' dosya değil dizin" + +#: io.c:706 #, c-format msgid "can't open two way socket `%s' for input/output (%s)" msgstr "iki yönlü `%s' soketi G/Ç için açılamıyor (%s)" -#: io.c:669 +#: io.c:710 #, c-format msgid "can't open two way pipe `%s' for input/output (%s)" msgstr "iki yönlü `%s' veriyolu G/Ç için açılamıyor (%s)" -#: io.c:745 +#: io.c:786 #, c-format msgid "can't redirect from `%s' (%s)" msgstr "`%s'den yönlendirilemiyor (%s)" -#: io.c:748 +#: io.c:789 #, c-format msgid "can't redirect to `%s' (%s)" msgstr "`%s'e yönlendirilemiyor (%s)" -#: io.c:787 +#: io.c:828 msgid "" "reached system limit for open files: starting to multiplex file descriptors" msgstr "" "açık dosyalar için sistem sınırı aşıldı: çoğul dosya tanımlayıcılara " "başlarken" -#: io.c:803 +#: io.c:844 #, c-format msgid "close of `%s' failed (%s)." msgstr "`%s' kapatılamadı (%s)." -#: io.c:811 +#: io.c:852 msgid "too many pipes or input files open" msgstr "çok fazla veriyolu ya da dosya açık" -#: io.c:834 +#: io.c:875 msgid "close: second argument must be `to' or `from'" msgstr "close: ikinci argüman `to' ya da `from' olmalı" -#: io.c:848 +#: io.c:889 #, c-format msgid "close: `%.*s' is not an open file, pipe or co-process" msgstr "close: `%.*s' bir açık dosya, veriyolu ya da alt-işlem değil" -#: io.c:852 +#: io.c:893 msgid "close of redirection that was never opened" msgstr "hiç açılmamış bir yönlendirmenin kapatılması" -#: io.c:948 +#: io.c:989 #, c-format msgid "close: redirection `%s' not opened with `|&', second argument ignored" msgstr "" "close: `%s' yönlendirmesi bir `|&' ile açılmamış, ikinci argüman yoksayıldı" -#: io.c:964 +#: io.c:1005 #, c-format msgid "failure status (%d) on pipe close of `%s' (%s)" msgstr "başarısızlık durumu (%d): `%s' veriyolunun kapatılması (%s)" -#: io.c:967 +#: io.c:1008 #, c-format msgid "failure status (%d) on file close of `%s' (%s)" msgstr "başarısızlık durumu (%d): `%s' dosyasının kapatılması (%s)" -#: io.c:987 +#: io.c:1028 #, c-format msgid "no explicit close of socket `%s' provided" msgstr "`%s' soketinin açıkça kapatılması istenmedi" -#: io.c:990 +#: io.c:1031 #, c-format msgid "no explicit close of co-process `%s' provided" msgstr "`%s' alt-işleminin açıkça kapatılması istenmedi" -#: io.c:993 +#: io.c:1034 #, c-format msgid "no explicit close of pipe `%s' provided" msgstr "`%s' veriyolunun açıkça kapatılması istenmedi" -#: io.c:996 +#: io.c:1037 #, c-format msgid "no explicit close of file `%s' provided" msgstr "`%s' dosyasının açıkça kapatılması istenmedi" -#: io.c:1025 io.c:1080 main.c:718 main.c:756 +#: io.c:1066 io.c:1121 main.c:749 main.c:791 #, c-format msgid "error writing standard output (%s)" msgstr "standart çıktıya yazarken hata (%s)" -#: io.c:1029 io.c:1085 +#: io.c:1070 io.c:1126 #, c-format msgid "error writing standard error (%s)" msgstr "standart hataya yazarken hata (%s)" -#: io.c:1037 +#: io.c:1078 #, c-format msgid "pipe flush of `%s' failed (%s)." msgstr "`%s'in veriyolu ile veri aktarımı başarısız (%s)." -#: io.c:1040 +#: io.c:1081 #, c-format msgid "co-process flush of pipe to `%s' failed (%s)." msgstr "`%s'e veriyolunun alt-işlemi ile veri aktarımı başarısız (%s)." -#: io.c:1043 +#: io.c:1084 #, c-format msgid "file flush of `%s' failed (%s)." msgstr "`%s'in dosya ile veri aktarımı başarısız (%s)." -#: io.c:1205 +#: io.c:1198 +#, c-format +msgid "local port %s invalid in `/inet'" +msgstr "yerel port `%s' `/inet' için geçersiz" + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "uzak konak ve port bilgisi (%s, %s) geçersiz" + +#: io.c:1250 msgid "/inet/raw client not ready yet, sorry" msgstr "/inet/raw istemci henüz hazır değil" -#: io.c:1207 io.c:1244 +#: io.c:1253 io.c:1289 msgid "only root may use `/inet/raw'." msgstr "`/inet/raw' sadece root tarafından kullanılabilir" -#: io.c:1242 +#: io.c:1287 msgid "/inet/raw server not ready yet, sorry" msgstr "/inet/raw sunucu henüz hazır değil" -#: io.c:1332 +#: io.c:1385 #, c-format msgid "no (known) protocol supplied in special filename `%s'" msgstr "özel dosya ismi `%s' içinde (bilinen) bir protokol sağlanmamış" -#: io.c:1350 +#: io.c:1399 #, c-format msgid "special file name `%s' is incomplete" msgstr "özel dosya ismi `%s' tamamlanmamış" -#: io.c:1362 -#, c-format -msgid "local port invalid in `%s'" -msgstr "`%s' deki yerel port geçersiz" - -#: io.c:1374 +#: io.c:1414 msgid "must supply a remote hostname to `/inet'" msgstr "`/inet' e bir karşı makina ismi sağlanmalı" -#: io.c:1389 +#: io.c:1432 msgid "must supply a remote port to `/inet'" msgstr "`/inet' e bir karşı port sağlanmalı" -#: io.c:1395 -#, c-format -msgid "remote port invalid in `%s'" -msgstr "`%s' de karşı port geçersiz" - -#: io.c:1405 +#: io.c:1439 msgid "TCP/IP communications are not supported" msgstr "TCP/IP haberleşmesi desteklenmiyor" -#: io.c:1414 io.c:1595 -#, c-format -msgid "file `%s' is a directory" -msgstr "`%s' dosya değil dizin" - -#: io.c:1484 +#: io.c:1509 #, c-format msgid "use `PROCINFO[\"%s\"]' instead of `%s'" msgstr "`PROCINFO[\"%s\"]' kullanın (`%s' yerine)" -#: io.c:1516 +#: io.c:1547 msgid "use `PROCINFO[...]' instead of `/dev/user'" msgstr "`/dev/user' yerine `PROCINFO[...]' kullanın" -#: io.c:1581 io.c:1763 +#: io.c:1612 io.c:1798 #, c-format msgid "could not open `%s', mode `%s'" msgstr "`%s', `%s' kipinde açılamadı" -#: io.c:1814 +#: io.c:1849 #, c-format msgid "close of master pty failed (%s)" msgstr "ana pty kapatılamadı (%s)" -#: io.c:1816 io.c:1968 io.c:2119 +#: io.c:1851 io.c:2003 io.c:2154 #, c-format msgid "close of stdout in child failed (%s)" msgstr "ast süreçte stdÇ kapatılamadı (%s)" -#: io.c:1819 +#: io.c:1854 #, c-format msgid "moving slave pty to stdout in child failed (dup: %s)" msgstr "ast süreçte yardımcı pty standart çıktıya taşınamadı (dup: %s)" -#: io.c:1821 io.c:1973 +#: io.c:1856 io.c:2008 #, c-format msgid "close of stdin in child failed (%s)" msgstr "ast süreçte stdG kapatılamadı (%s)" -#: io.c:1824 +#: io.c:1859 #, c-format msgid "moving slave pty to stdin in child failed (dup: %s)" msgstr "ast süreçte yardımcı pty standart girdiye taşınamadı (dup: %s)" -#: io.c:1826 io.c:1845 +#: io.c:1861 io.c:1880 #, c-format msgid "close of slave pty failed (%s)" msgstr "yardımcı pty kapatılamadı (%s)" -#: io.c:1919 io.c:1971 io.c:2100 io.c:2122 +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 #, c-format msgid "moving pipe to stdout in child failed (dup: %s)" msgstr "ast süreçte veriyolu standart çıktıya taşınamadı (dup: %s)" -#: io.c:1923 io.c:1976 +#: io.c:1958 io.c:2011 #, c-format msgid "moving pipe to stdin in child failed (dup: %s)" msgstr "ast süreçte veriyolu standart girdiye taşınamadı (dup: %s)" -#: io.c:1940 io.c:2113 +#: io.c:1975 io.c:2148 msgid "restoring stdout in parent process failed\n" msgstr "üst süreçte stdÇ eski durumuna getirilemedi\n" -#: io.c:1945 +#: io.c:1980 msgid "restoring stdin in parent process failed\n" msgstr "üst süreçte stdG eski durumuna getirilemedi\n" -#: io.c:1979 io.c:2124 io.c:2135 +#: io.c:2014 io.c:2159 io.c:2170 #, c-format msgid "close of pipe failed (%s)" msgstr "veriyolu kapatılamadı (%s)" -#: io.c:2024 +#: io.c:2059 msgid "`|&' not supported" msgstr "`|&' desteklenmiyor" -#: io.c:2090 +#: io.c:2125 #, c-format msgid "cannot open pipe `%s' (%s)" msgstr "`%s' veriyolu açılamıyor (%s)" -#: io.c:2131 +#: io.c:2166 #, c-format msgid "cannot create child process for `%s' (fork: %s)" msgstr "`%s' için ast süreç oluşturulamıyor (fork: %s)" -#: io.c:2506 +#: io.c:2548 #, c-format msgid "data file `%s' is empty" msgstr "veri dosyası `%s' boş" -#: io.c:2547 io.c:2555 +#: io.c:2589 io.c:2597 msgid "could not allocate more input memory" msgstr "daha fazla girdi belleği ayrılamadı" -#: io.c:2919 io.c:2984 +#: io.c:2965 io.c:3038 #, c-format msgid "error reading input file `%s': %s" msgstr "`%s' girdi dosyası okunurken hata: %s" -#: io.c:3109 +#: io.c:3163 msgid "multicharacter value of `RS' is a gawk extension" msgstr "`RS' çoklu karakter değeri bir gawk uzantısıdır" -#: main.c:338 +#: main.c:351 msgid "`-m[fr]' option irrelevant in gawk" msgstr "`-m[fr]' seçeneği gawk'da böyle kullanılmaz" -#: main.c:340 +#: main.c:353 msgid "-m option usage: `-m[fr] nnn'" msgstr "-m seçeneğinin kullanımı: `-m[fr] nnn'" -#: main.c:357 +#: main.c:370 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" msgstr "%s: `-W %s' seçeneği tanımlı değil, yok sayıldı\n" -#: main.c:394 +#: main.c:407 msgid "empty argument to `--source' ignored" msgstr "`--source' seçeneği için boş argüman yoksayıldı" -#: main.c:467 +#: main.c:480 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" msgstr "ortam değişkeni `POSIXLY_CORRECT' var: `--posix' kullanılıyor" -#: main.c:472 +#: main.c:486 msgid "`--posix' overrides `--traditional'" msgstr "`--posix' seçeneği `--traditional' seçeneğini etkisiz kılar" -#: main.c:483 +#: main.c:497 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" msgstr "" "`--posix'/`--traditional' seçenekleri `--non-decimal-data' seçeneğini " "etkisiz kılar" -#: main.c:487 +#: main.c:501 #, c-format msgid "running %s setuid root may be a security problem" msgstr "%s root yetkileriyle çalıştırıldığında güvenlik sorunları olabilir" -#: main.c:528 +#: main.c:542 #, c-format msgid "can't set binary mode on stdin (%s)" msgstr "standart girdi ikilik kipe ayarlanamaz (%s)" -#: main.c:531 +#: main.c:545 #, c-format msgid "can't set binary mode on stdout (%s)" msgstr "standart çıktı ikilik kipe ayarlanamaz (%s)" -#: main.c:533 +#: main.c:547 #, c-format msgid "can't set binary mode on stderr (%s)" msgstr "standart hata ikilik kipe ayarlanamaz (%s)" -#: main.c:572 +#: main.c:586 msgid "no program text at all!" msgstr "program metni hiç yok!" -#: main.c:665 +#: main.c:690 #, c-format msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" msgstr "" "Kullanımı: %s [POSIX veya GNU tarzı seçenekler] -f progdosyası [--] " "dosya ...\n" -#: main.c:667 +#: main.c:692 #, c-format msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" msgstr "" "Kullanımı: %s [POSIX veya GNU tarzı seçenekler] %cprogram%c dosya ...\n" -#: main.c:672 +#: main.c:697 msgid "POSIX options:\t\tGNU long options:\n" msgstr "POSIX seçenekleri: GNU uzun seçenekleri:\n" -#: main.c:673 +#: main.c:698 msgid "\t-f progfile\t\t--file=progfile\n" msgstr " -f progDosyası --file=progDosyası\n" -#: main.c:674 +#: main.c:699 msgid "\t-F fs\t\t\t--field-separator=fs\n" msgstr " -F ayraç --field-separator=ayraç\n" -#: main.c:675 +#: main.c:700 msgid "\t-v var=val\t\t--assign=var=val\n" msgstr " -v var=değer --assign=var=değer\n" -#: main.c:676 +#: main.c:701 msgid "\t-m[fr] val\n" msgstr " -m[fr] değer\n" -#: main.c:677 +#: main.c:702 msgid "\t-W compat\t\t--compat\n" msgstr " -W compat --compat\n" -#: main.c:678 +#: main.c:703 msgid "\t-W copyleft\t\t--copyleft\n" msgstr " -W copyleft --copyleft\n" -#: main.c:679 +#: main.c:704 msgid "\t-W copyright\t\t--copyright\n" msgstr " -W copyright --copyright\n" -#: main.c:680 +#: main.c:705 msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" msgstr " -W dump-variables[=dosya] --dump-variables[=dosya]\n" -#: main.c:681 -#, fuzzy +#: main.c:706 msgid "\t-W exec=file\t\t--exec=file\n" -msgstr " -W profile[=dosya] --profile[=dosya]\n" +msgstr " -W exec=dosya --exec=dosya\n" -#: main.c:682 +#: main.c:707 msgid "\t-W gen-po\t\t--gen-po\n" msgstr " -W gen-po --gen-po\n" -#: main.c:683 +#: main.c:708 msgid "\t-W help\t\t\t--help\n" msgstr " -W help --help\n" -#: main.c:684 +#: main.c:709 msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" msgstr " -W lint[=ölümcül] --lint[=ölümcül]\n" -#: main.c:685 +#: main.c:710 msgid "\t-W lint-old\t\t--lint-old\n" msgstr " -W lint-old --lint-old\n" -#: main.c:686 +#: main.c:711 msgid "\t-W non-decimal-data\t--non-decimal-data\n" msgstr " -W non-decimal-data --non-decimal-data\n" -#: main.c:688 +#: main.c:713 msgid "\t-W nostalgia\t\t--nostalgia\n" msgstr " -W nostalgia --nostalgia\n" -#: main.c:691 +#: main.c:716 msgid "\t-W parsedebug\t\t--parsedebug\n" msgstr " -W parsedebug --parsedebug\n" -#: main.c:693 +#: main.c:718 msgid "\t-W profile[=file]\t--profile[=file]\n" msgstr " -W profile[=dosya] --profile[=dosya]\n" -#: main.c:694 +#: main.c:719 msgid "\t-W posix\t\t--posix\n" msgstr " -W posix --posix\n" -#: main.c:695 +#: main.c:720 msgid "\t-W re-interval\t\t--re-interval\n" msgstr " -W re-interval --re-interval\n" -#: main.c:696 +#: main.c:721 msgid "\t-W source=program-text\t--source=program-text\n" msgstr " -W source=program-metni --source=program-metni\n" -#: main.c:697 +#: main.c:722 msgid "\t-W traditional\t\t--traditional\n" msgstr " -W traditional --traditional\n" -#: main.c:698 +#: main.c:723 msgid "\t-W usage\t\t--usage\n" msgstr " -W usage --usage\n" -#: main.c:699 +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "" + +#: main.c:725 msgid "\t-W version\t\t--version\n" msgstr " -W version --version\n" -#: main.c:703 +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 msgid "" "\n" "To report bugs, see node `Bugs' in `gawk.info', which is\n" @@ -1564,10 +1586,10 @@ "Hataları raporlarken, `gawk.info' içindeki `Reporting Problems and Bugs'\n" "kısmının `Bugs' başlıklı bölümünden gerekli bilgileri alabilirsiniz.\n" "\n" -"Çeviri hatalarını adresine bildiriniz.\n" +"Çeviri hatalarını adresine bildiriniz.\n" "\n" -#: main.c:707 +#: main.c:738 msgid "" "gawk is a pattern scanning and processing language.\n" "By default it reads standard input and writes standard output.\n" @@ -1577,7 +1599,7 @@ "Öntanımlı olarak standart girdiyi okur ve standart çıktıya yazar.\n" "\n" -#: main.c:711 +#: main.c:742 msgid "" "Examples:\n" "\tgawk '{ sum += $1 }; END { print sum }' file\n" @@ -1587,26 +1609,26 @@ "\tgawk '{ sum += $1 }; END { print sum }' dosya\n" "\tgawk -F: '{ print $1 }' /etc/passwd\n" -#: main.c:731 +#: main.c:762 #, c-format msgid "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" +"the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" msgstr "" "Telif hakkı (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "Bu program bir serbest yazılımdır. Bu yazılımı Free Software Foundation\n" -"tarafından yayınlanmış olan GNU Genel Kamu Lisansının 2. ya da daha sonraki\n" +"tarafından yayınlanmış olan GNU Genel Kamu Lisansının 3. ya da daha sonraki\n" "bir sürümünün koşulları altında kopyalayabilir, dağıtabilir ve/veya\n" "üzerinde değişiklik yapabilirsiniz.\n" "\n" -#: main.c:739 +#: main.c:770 msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -1620,22 +1642,21 @@ "edinmek için GNU Genel Kamu Lisansına bakınız.\n" "\n" -#: main.c:745 +#: main.c:781 +#, fuzzy msgid "" "You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" msgstr "" "GNU Genel Kamu Lisansının bir kopyasını bu programla birlikte almış\n" -"olacaksınız; yoksa Free Software Foundation, Inc., 51 Franklin Street\n" -"Fifth Floor, Boston, MA 02110-1301, USA. adresinden isteyebilirsiniz.\n" +"olacaksınız; yoksa Free Software Foundation, Inc., 51 Franklin Street,\n" +"Fifth Floor, Boston, MA 02110-1301, USA adresinden isteyebilirsiniz.\n" -#: main.c:781 +#: main.c:816 msgid "-Ft does not set FS to tab in POSIX awk" msgstr "POSIX awk -Ft ile dosya sistemini belirlemez" -#: main.c:1018 +#: main.c:1060 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" @@ -1644,35 +1665,35 @@ "%s: `-v' ile verilen `%s' argümanı `var=değer' biçiminde değil\n" "\n" -#: main.c:1038 +#: main.c:1080 #, c-format msgid "`%s' is not a legal variable name" msgstr "`%s' kurala uygun bir değişken ismi değil" -#: main.c:1041 +#: main.c:1083 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" msgstr "`%2$s=%3$s' için dosyaya bakınca, `%1$s' bir değişken ismi değil" -#: main.c:1074 +#: main.c:1122 msgid "floating point exception" msgstr "Gerçel sayı istisnası" -#: main.c:1081 +#: main.c:1129 msgid "fatal error: internal error" msgstr "ölümcül iç hata" -#: main.c:1132 +#: main.c:1180 #, c-format msgid "no pre-opened fd %d" msgstr "ön açılışlı bir %d dosya tanımlayıcısı yok" -#: main.c:1139 +#: main.c:1187 #, c-format msgid "could not pre-open /dev/null for fd %d" msgstr "%d dosya tanımlayıcısı için /dev/null ön açılışı yapılamadı" -#: main.c:1162 main.c:1171 +#: main.c:1210 main.c:1219 #, c-format msgid "could not find groups: %s" msgstr "gruplar bulunamadı: %s" @@ -1694,23 +1715,28 @@ msgid "fatal: " msgstr "ölümcül: " -#: node.c:59 node.c:66 node.c:75 node.c:90 node.c:119 +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 msgid "can't convert string to float" msgstr "dizge gerçel sayıya dönüştürülemiyor" -#: node.c:414 +#: node.c:406 msgid "backslash at end of string" msgstr "dizge sonunda tersbölü" -#: node.c:604 +#: node.c:548 +#, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "eski awk `\\%c' önceleme dizilimini desteklemiyor" + +#: node.c:599 msgid "POSIX does not allow `\\x' escapes" msgstr "POSIX `\\x' öncelemelerine izin vermez" -#: node.c:610 +#: node.c:605 msgid "no hex digits in `\\x' escape sequence" msgstr "`\\x' önceleme dizgesinde onaltılık rakamlar yok" -#: node.c:644 +#: node.c:639 #, c-format msgid "escape sequence `\\%c' treated as plain `%c'" msgstr "`\\%c' önceleme dizgesi `%c' olarak kullanıldı" @@ -1720,31 +1746,31 @@ msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" msgstr "%s %s `%s': close-on-exec belirlenemedi: (fcntl: %s)" -#: profile.c:91 +#: profile.c:92 #, c-format msgid "could not open `%s' for writing: %s" msgstr "`%s' yazmak için açılamadı: %s" -#: profile.c:467 +#: profile.c:450 #, c-format msgid "internal error: %s with null vname" msgstr "iç hata: null vname'li %s" -#: profile.c:531 +#: profile.c:514 msgid "# treated internally as `delete'" msgstr "# dahili olarak `delete' varsayıldı" -#: profile.c:1168 +#: profile.c:1147 #, c-format msgid "# this is a dynamically loaded extension function" msgstr "# bu özdevimli olarak yüklenmiş bir ek işlevdir" -#: profile.c:1199 +#: profile.c:1178 #, c-format msgid "\t# gawk profile, created %s\n" msgstr "\t# gawk profili, oluşturuldu: %s\n" -#: profile.c:1202 +#: profile.c:1181 #, c-format msgid "" "\t# BEGIN block(s)\n" @@ -1753,7 +1779,7 @@ "\t# BEGIN blokları\n" "\n" -#: profile.c:1212 +#: profile.c:1191 #, c-format msgid "" "\t# Rule(s)\n" @@ -1762,7 +1788,7 @@ "\t# Kurallar\n" "\n" -#: profile.c:1218 +#: profile.c:1197 #, c-format msgid "" "\t# END block(s)\n" @@ -1771,7 +1797,7 @@ "\t# END blokları\n" "\n" -#: profile.c:1238 +#: profile.c:1217 #, c-format msgid "" "\n" @@ -1780,168 +1806,79 @@ "\n" "\t# İşlevler, alfabetik sırayla\n" -#: profile.c:1453 +#: profile.c:1470 #, c-format msgid "unexpected type %s in prec_level" msgstr "prec_level'da anlaşılamayan tür %s" -#: regcomp.c:160 +#: regcomp.c:132 msgid "Success" msgstr "Başarılı" -#: regcomp.c:163 +#: regcomp.c:135 msgid "No match" msgstr "Eşleşmez" -#: regcomp.c:166 +#: regcomp.c:138 msgid "Invalid regular expression" msgstr "Düzenli ifade geçersiz" -#: regcomp.c:169 +#: regcomp.c:141 msgid "Invalid collation character" msgstr "Karşılaştırma karakteri geçersiz" -#: regcomp.c:172 +#: regcomp.c:144 msgid "Invalid character class name" msgstr "Karakter sınıf ismi geçersiz" -#: regcomp.c:175 +#: regcomp.c:147 msgid "Trailing backslash" msgstr "İzleyen tersbölü" -#: regcomp.c:178 +#: regcomp.c:150 msgid "Invalid back reference" msgstr "Geriye başvuru geçersiz" -#: regcomp.c:181 +#: regcomp.c:153 msgid "Unmatched [ or [^" msgstr "[ ya da [^ eşleşmiyor" -#: regcomp.c:184 +#: regcomp.c:156 msgid "Unmatched ( or \\(" msgstr "( ya da \\( eşleşmiyor" -#: regcomp.c:187 +#: regcomp.c:159 msgid "Unmatched \\{" msgstr "\\{ eşleşmiyor" -#: regcomp.c:190 +#: regcomp.c:162 msgid "Invalid content of \\{\\}" msgstr "\\{\\} içeriği geçersiz" -#: regcomp.c:193 +#: regcomp.c:165 msgid "Invalid range end" msgstr "Kapsam sonu geçersiz" -#: regcomp.c:196 +#: regcomp.c:168 msgid "Memory exhausted" msgstr "Bellek tükendi" -#: regcomp.c:199 +#: regcomp.c:171 msgid "Invalid preceding regular expression" msgstr "düzenli ifade önceliği geçersiz" -#: regcomp.c:202 +#: regcomp.c:174 msgid "Premature end of regular expression" msgstr "Düzenli ifade sonu eksik kalmış" -#: regcomp.c:205 +#: regcomp.c:177 msgid "Regular expression too big" msgstr "Düzenli ifade çok büyük" -#: regcomp.c:208 +#: regcomp.c:180 msgid "Unmatched ) or \\)" msgstr ") ya da \\) eşleşmiyor" -#: regcomp.c:688 +#: regcomp.c:664 msgid "No previous regular expression" msgstr "Daha önce düzenli ifade yok" - -#~ msgid "function %s called\n" -#~ msgstr "%s işlevi çağrıldı\n" - -#~ msgid "field %d in FIELDWIDTHS, must be > 0" -#~ msgstr "FIELDWIDTHS içindeki %d. alan > 0 olmalı" - -#~ msgid "or used as a variable or an array" -#~ msgstr "ya da bir değişken ya da dizi olarak kullanılmış" - -#~ msgid "substr: length %g is < 0" -#~ msgstr "substr: uzunluk %g < 0" - -#~ msgid "regex match failed, not enough memory to match string \"%.*s%s\"" -#~ msgstr "" -#~ "düzenli ifade eşleşmesi sağlanamadı, \"%.*s%s\" dizgesini eşleştirmek " -#~ "için yeterli bellek yok" - -#~ msgid "delete: illegal use of variable `%s' as array" -#~ msgstr "delete: `%s' değişkeninin dizi olarak kullanımı kuraldışı" - -#~ msgid "asort: first argument is not an array" -#~ msgstr "asort: ilk argüman bir dizi değil" - -#~ msgid "asort: second argument is not an array" -#~ msgstr "asort: ikinci argüman bir dizi değil" - -#~ msgid "internal error: Node_var_array with null vname" -#~ msgstr "iç hata: null vname'li node_var_array" - -#~ msgid "invalid syntax in name `%s' for variable assignment" -#~ msgstr "değişken ismi `%s' de sözdizimi hatası" - -#~ msgid "or used in other expression context" -#~ msgstr "ya da diğer ifadenin içeriğinde kullanılmış" - -#~ msgid "`%s' is a function, assignment is not allowed" -#~ msgstr "`%s' bir işlevdir, bir değişken ismi olarak kullanılamaz" - -#~ msgid "BEGIN blocks must have an action part" -#~ msgstr "BEGIN blokları bir eylem bölümü içermeli" - -#~ msgid "`nextfile' used in BEGIN or END action" -#~ msgstr "`nextfile' BEGIN ya da END eyleminde kullanılmış" - -#~ msgid "non-redirected `getline' undefined inside BEGIN or END action" -#~ msgstr "" -#~ "BEGIN ya da END eyleminin içinde yönlendirme yapmayan `getline' tanımsız" - -#~ msgid "fptr %x not in tokentab\n" -#~ msgstr "işlev imleyicisi %x işlev isim listesinde bulunamadı\n" - -#~ msgid "gsub third parameter is not a changeable object" -#~ msgstr "üçüncü gsub parametresi değiştirilebilir bir nesne değil" - -#~ msgid "Unbalanced [" -#~ msgstr "Dengesiz [" - -#~ msgid "Unfinished \\ escape" -#~ msgstr "Tamamlanmamış \\ escape" - -#~ msgid "unfinished repeat count" -#~ msgstr "Tamamlanmamış tekrar sayısı" - -#~ msgid "malformed repeat count" -#~ msgstr "Tekrar sayısı hatalı" - -#~ msgid "Unbalanced (" -#~ msgstr "Dengesiz (" - -#~ msgid "No regexp syntax bits specified" -#~ msgstr "Düzenli ifade sözdizimi bitleri belirtilmemiş" - -#~ msgid "Unbalanced )" -#~ msgstr "Karşılıksız )" - -#~ msgid "out of memory" -#~ msgstr "bellek yetersiz" - -#~ msgid "internal error: file `%s', line %d\n" -#~ msgstr "iç hata: dosya `%s', satır %d\n" - -#~ msgid "" -#~ "\n" -#~ "To report bugs, see node `Bugs' in `gawk.info', which is\n" -#~ msgstr "" -#~ "\n" -#~ "Yazılım hatalarını bildirmek için `gawk.info' içindeki `Bugs' " -#~ "bölümündeki\n" diff -urN gawk-3.1.5/po/vi.po gawk-3.1.6/po/vi.po --- gawk-3.1.5/po/vi.po 2005-07-06 17:20:05.000000000 +0300 +++ gawk-3.1.6/po/vi.po 2007-09-30 22:33:29.000000000 +0200 @@ -1,781 +1,797 @@ -# Vietnamese translation for gawk. -# Copyright © 2005 Free Software Foundation, Inc. -# Clytie Siddall , 2005. +# Vietnamese translation for Gawk. +# Copyright © 2007 Free Software Foundation, Inc. +# Clytie Siddall , 2005-2007. # msgid "" msgstr "" -"Project-Id-Version: gawk 3.1.4l\n" +"Project-Id-Version: gawk 3.1.5f\n" "Report-Msgid-Bugs-To: arnold@skeeve.com\n" -"POT-Creation-Date: 2005-07-06 17:20+0300\n" -"PO-Revision-Date: 2005-06-28 14:46+0930\n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" +"PO-Revision-Date: 2007-05-28 21:28+0930\n" "Last-Translator: Clytie Siddall \n" -"Language-Team: Vietnamese \n" +"Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.6.3b1\n" #: array.c:112 #, c-format msgid "attempt to use function `%s' as an array" -msgstr "cố dùng chức năng «%s» là một mảng" +msgstr "cố gắng dùng chức năng « %s » như mảng" #: array.c:115 #, c-format msgid "attempt to use scalar parameter `%s' as an array" -msgstr "cố dùng tham số vô hướng «%s» là một mảng" +msgstr "cố gắng dùng tham số vô hướng « %s » như là mảng" #: array.c:118 #, c-format msgid "attempt to use scalar `%s' as array" -msgstr "cố dùng điều cô hướng «%s» là mảng" +msgstr "cố dùng điều cô hướng « %s » là mảng" #: array.c:156 #, c-format msgid "from %s" msgstr "từ %s" -#: array.c:511 +#: array.c:514 #, c-format msgid "reference to uninitialized element `%s[\"%s\"]'" -msgstr "tham chiếu đến phần tử chưa khởi động «%s[\"%s\"]»" +msgstr "tham chiếu đến phần tử chưa sở khởi « %s[\"%s\"] »" -#: array.c:517 +#: array.c:520 #, c-format msgid "subscript of array `%s' is null string" msgstr "chữ in dưới mảng «%s» là chuỗi rỗng" -#: array.c:621 +#: array.c:624 #, c-format msgid "delete: index `%s' not in array `%s'" -msgstr "delete: (xóa bỏ) số chỉ mục «%s» không phải trong mảng «%s»" +msgstr "delete: (xóa bỏ) số mũ « %s » không phải nằm trong mảng « %s »" -#: array.c:791 +#: array.c:793 #, c-format msgid "%s: empty (null)\n" msgstr "%s: rỗng (vô giá trị)\n" -#: array.c:796 +#: array.c:798 #, c-format msgid "%s: empty (zero)\n" msgstr "%s: rỗng (số không)\n" -#: array.c:800 +#: array.c:802 #, c-format msgid "%s: table_size = %d, array_size = %d\n" msgstr "%s: cỡ_bảng = %d, cỡ_mảng = %d\n" -#: array.c:829 +#: array.c:831 #, c-format msgid "%s: is parameter\n" msgstr "%s: là tham số\n" -#: array.c:834 +#: array.c:836 #, c-format msgid "%s: array_ref to %s\n" -msgstr "%s: «array_ref» (mảng tham chiếu) đến «%s»\n" +msgstr "%s: « array_ref » (mảng tham chiếu) đến « %s »\n" -#: awkgram.y:208 +#: awkgram.y:215 #, c-format msgid "%s blocks must have an action part" -msgstr "Mọi khối «%s» phải có một phần là hành động" +msgstr "Mọi khối %s phải có một phần kiểu hành động" -#: awkgram.y:211 +#: awkgram.y:218 msgid "each rule must have a pattern or an action part" -msgstr "Mọi quy tắc phải có một mẫu hoặc một phần là hành động" +msgstr "Mọi quy tắc phải có một mẫu hay phần kiểu hành động" -#: awkgram.y:267 +#: awkgram.y:254 awkgram.y:263 +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "" +"awk cũ không hỗ trợ nhiều quy tắc kiểu « BEGIN » (bắt đầu) hay « END » (kết " +"thúc)" + +#: awkgram.y:282 #, c-format msgid "`%s' is a built-in function, it cannot be redefined" -msgstr "«%s» là một chức năng có sẵn nên không thể định nghĩa lái nó." +msgstr "« %s » là một chức năng có sẵn nên nó không thể được định nghĩa lái." -#: awkgram.y:313 +#: awkgram.y:328 msgid "regexp constant `//' looks like a C++ comment, but is not" msgstr "" -"hằng biểu thức chính quy «//» hình như một chú thích C, nhưng mà không phải" +"hằng biểu thức chính quy « // » hình như một chú thích C, nhưng mà không phải" -#: awkgram.y:316 +#: awkgram.y:331 #, c-format msgid "regexp constant `/%s/' looks like a C comment, but is not" msgstr "" -"hằng biểu thức chính quy «/%s/» hình như một chú thích C, nhưng mà không phải" +"hằng biểu thức chính quy « /%s/ » hình như một chú thích C, nhưng mà không " +"phải" -#: awkgram.y:343 awkgram.y:623 +#: awkgram.y:358 awkgram.y:653 msgid "statement may have no effect" -msgstr "có lẽ câu sẽ không có tác dụng" +msgstr "câu có lẽ sẽ không có tác dụng" -#: awkgram.y:440 awkgram.y:460 +#: awkgram.y:455 awkgram.y:479 #, c-format msgid "`%s' used in %s action" -msgstr "«%s» được dùng trong hành động «%s»" +msgstr "« %s » được dùng trong hành động %s" -#: awkgram.y:453 awkgram.y:456 +#: awkgram.y:470 awkgram.y:474 msgid "`nextfile' is a gawk extension" -msgstr "«nextfile» (tập tin kế tiếp) là một phần mở rộng gawk" +msgstr "« nextfile » (tập tin kế tiếp) là một phần mở rộng gawk" -#: awkgram.y:470 +#: awkgram.y:489 msgid "`return' used outside function context" -msgstr "đã dùng «return» (trở về) ở ngoại ngữ cảnh chức năng" +msgstr "« return » (trở về) được dùng ở ngoại ngữ cảnh chức năng" -#: awkgram.y:512 +#: awkgram.y:531 msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" msgstr "" -"«print» (in) giản dị trong quy tắc «BEGIN» (bắt đầu) hay «END» (kết thức) " -"thì rất có thể nên là «print\"\"»" +"« print » (in) chuẩn trong quy tắc « BEGIN » (bắt đầu) hay « END » (kết " +"thúc) rất có thể nên là « print\"\" »" -#: awkgram.y:525 awkgram.y:532 +#: awkgram.y:547 awkgram.y:555 msgid "`delete array' is a gawk extension" -msgstr "«delete array» (xóa bỏ mảng) là một phần mở rộng gawk" +msgstr "« delete array » (xóa bỏ mảng) là một phần mở rộng gawk" -#: awkgram.y:540 awkgram.y:547 +#: awkgram.y:569 awkgram.y:577 msgid "`delete(array)' is a non-portable tawk extension" -msgstr "«delete array» (xóa bỏ mảng) là một phần mở rộng tawk không thể mang" +msgstr "" +"« delete array » (xóa bỏ mảng) là phần mở rộng gawk không thể mang theo" -#: awkgram.y:591 +#: awkgram.y:621 #, c-format msgid "duplicate case values in switch body: %s" -msgstr "giá trị trường hợp trùng trong nội dung câu chuyển đổi nhánh: %s" +msgstr "gặp giá trị case trùng trong thân chuyển đổi (switch body): %s" -#: awkgram.y:601 +#: awkgram.y:631 msgid "Duplicate `default' detected in switch body" -msgstr "Đã phát hiện «mặc định» trùng trong nội dung câu chuyển đổi nhánh" +msgstr "" +"Phát hiện « default » (mặc định) trong thân chuyển đổi (switch body): %s" -#: awkgram.y:690 +#: awkgram.y:720 msgid "multistage two-way pipelines don't work" -msgstr "đường ống dẫn hai chiếu đa giai đoạn không hoạt động được" +msgstr "đường ống dẫn hai chiếu đa giai đoạn không phải hoạt động được" -#: awkgram.y:781 +#: awkgram.y:811 msgid "regular expression on right of assignment" -msgstr "biểu thức chính quy bên phải điều gán" +msgstr "biểu thức chính quy nằm bên phải điều gán" -#: awkgram.y:804 +#: awkgram.y:834 msgid "regular expression on left of `~' or `!~' operator" -msgstr "biểu thức chính quy bên trái toán tử «~» hay «!~»" +msgstr "biểu thức chính quy nằm bên trái toán tử « ~ » hay « !~ »" -#: awkgram.y:812 +#: awkgram.y:840 awkgram.y:913 +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "awk cũ không hỗ trợ từ khoá « in », trừ khi nằm sau « for »" + +#: awkgram.y:846 msgid "regular expression on right of comparison" -msgstr "biểu thức chính quy bên phải so sánh" +msgstr "biểu thức chính quy nằm bên phải sự so sánh" -#: awkgram.y:879 +#: awkgram.y:903 msgid "non-redirected `getline' undefined inside END action" msgstr "" -"trong hành động «END» (kết thức) có «getline» (lấy dòng) không được chuyển " -"hướng và chưa được định nghĩa." +"trong hành động « END » (kết thúc) có « getline » (lấy dòng) không được " +"chuyển hướng lại và chưa được xác định." + +#: awkgram.y:914 +msgid "old awk does not support multidimensional arrays" +msgstr "awk cũ không hỗ trợ mảng đa chiều" -#: awkgram.y:906 +#: awkgram.y:960 msgid "call of `length' without parentheses is not portable" -msgstr "không thể mang lời gọi «length» (độ dài) không có ngoặc" +msgstr "không thể mang lời gọi « length » (độ dài) không có dấu ngoặc" -#: awkgram.y:909 +#: awkgram.y:965 msgid "call of `length' without parentheses is deprecated by POSIX" -msgstr "POSIX phản đối lời gọi «length» (độ dài) không có ngoặc" +msgstr "POSIX phản đối lời gọi « length » (độ dài) không có dấu ngoặc" -#: awkgram.y:962 +#: awkgram.y:1019 msgid "use of non-array as array" -msgstr "đã dùng điều là mảng mà không phải là mảng" +msgstr "việc dùng điều khác mảng như là mảng" -#: awkgram.y:964 +#: awkgram.y:1022 msgid "invalid subscript expression" msgstr "biểu thức in thấp không hợp lệ" -#: awkgram.y:1171 +#: awkgram.y:1249 msgid "unexpected newline or end of string" -msgstr "dòng mới hay kết thức chuỗi bất ngờ" +msgstr "gặp dòng mới bất ngờ hay kết thúc của chuỗi" -#: awkgram.y:1267 +#: awkgram.y:1366 msgid "empty program text on command line" -msgstr "chữ chương trình rỗng trên dòng lệnh" +msgstr "gặp đoạn chữ chương trình rỗng nằm trên dòng lệnh" -#: awkgram.y:1320 +#: awkgram.y:1422 #, c-format msgid "can't open source file `%s' for reading (%s)" -msgstr "không mở được tập tin nguồn «%s» để đọc (%s)" +msgstr "không thể mở tập tin nguồn « %s » để đọc (%s)" -#: awkgram.y:1397 +#: awkgram.y:1520 #, c-format msgid "can't read sourcefile `%s' (%s)" -msgstr "không đọc được tập tin nguồn «%s» (%s)" +msgstr "không thể đọc tập tin nguồn « %s » (%s)" -#: awkgram.y:1405 +#: awkgram.y:1528 #, c-format msgid "source file `%s' is empty" msgstr "tập tin nguồn «%s» là rỗng" -#: awkgram.y:1596 awkgram.y:1718 awkgram.y:1736 awkgram.y:2107 awkgram.y:2194 +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 msgid "source file does not end in newline" -msgstr "tập tin nguồn không kết thức với dòng mới" +msgstr "tập tin nguồn không kết thúc với dòng mới" -#: awkgram.y:1658 +#: awkgram.y:1782 msgid "unterminated regexp ends with `\\' at end of file" msgstr "" -"biểu thức chính quy chưa chấm dứt thì kết thức với «\\» tại kết thức tập tin" +"biểu thức chính quy chưa được chấm dứt kết thúc với « \\ » tại kết thúc của " +"tập tin" -#: awkgram.y:1682 +#: awkgram.y:1806 #, c-format msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -"%s: %d: điều sửa đổi biểu thức chính quy tawk «/.../%c» không hoạt động " -"trong trình gawk" +"%s: %d: bộ sửa đổi biểu thức chính quy tawk « /.../%c » không hoạt động được " +"trong gawk" -#: awkgram.y:1686 +#: awkgram.y:1810 #, c-format msgid "tawk regex modifier `/.../%c' doesn't work in gawk" msgstr "" -"điều sửa đổi biểu thức chính quy tawk «/.../%c» không hoạt động trong trình " +"bộ sửa đổi biểu thức chính quy tawk « /.../%c » không hoạt động được trong " "gawk" -#: awkgram.y:1693 +#: awkgram.y:1817 msgid "unterminated regexp" -msgstr "biểu thức chính quy chưa chấm dứt " +msgstr "biểu thức chính quy chưa được chấm dứt" -#: awkgram.y:1696 +#: awkgram.y:1820 msgid "unterminated regexp at end of file" -msgstr "biểu thức chính quy chưa chấm dứt tại kết thức tập tin" +msgstr "biểu thức chính quy chưa được chấm dứt nằm tại kết thúc của tập tin" -#: awkgram.y:1762 +#: awkgram.y:1889 msgid "use of `\\ #...' line continuation is not portable" -msgstr "không thể mang khi sử dụng «\\#...» để tiếp tục dòng" +msgstr "không thể mang khả năng dùng « \\#... » để tiếp tục dòng" -#: awkgram.y:1774 +#: awkgram.y:1902 msgid "backslash not last character on line" -msgstr "xuyệc ngược không phải là ký tự cuối cùng trên dòng" +msgstr "xuyệc ngược không phải là ký tự cuối cùng nằm trên dòng" -#: awkgram.y:1819 +#: awkgram.y:1947 msgid "POSIX does not allow operator `**='" -msgstr "POSIX không cho phép toán tử «**=»" +msgstr "POSIX không cho phép toán tử « **= »" -#: awkgram.y:1821 +#: awkgram.y:1949 msgid "old awk does not support operator `**='" -msgstr "awk cũ không hỗ trợ toán tử «**=»" +msgstr "awk cũ không hỗ trợ toán tử « **= »" -#: awkgram.y:1830 +#: awkgram.y:1958 msgid "POSIX does not allow operator `**'" -msgstr "POSIX không cho phép toán tử «**»" +msgstr "POSIX không cho phép toán tử « ** »" -#: awkgram.y:1832 +#: awkgram.y:1960 msgid "old awk does not support operator `**'" -msgstr "awk cũ không hỗ trợ toán tử «**»" +msgstr "awk cũ không hỗ trợ toán tử « ** »" -#: awkgram.y:1863 +#: awkgram.y:1991 msgid "operator `^=' is not supported in old awk" -msgstr "awk cũ không hỗ trợ toán tử «^=»" +msgstr "awk cũ không hỗ trợ toán tử « ^= »" -#: awkgram.y:1871 +#: awkgram.y:1999 msgid "operator `^' is not supported in old awk" -msgstr "awk cũ không hỗ trợ toán tử «^»" +msgstr "awk cũ không hỗ trợ toán tử « ^ »" -#: awkgram.y:1955 awkgram.y:1970 +#: awkgram.y:2083 awkgram.y:2098 msgid "unterminated string" msgstr "chuỗi không được chấm dứt" -#: awkgram.y:2155 +#: awkgram.y:2283 #, c-format msgid "invalid char '%c' in expression" -msgstr "có một ký tự không hợp lệ «%c» trong biểu thức" +msgstr "biểu thức một ký tự không hợp lệ « %c » nằm trong biểu thức" -#: awkgram.y:2203 +#: awkgram.y:2331 #, c-format msgid "`%s' is a gawk extension" -msgstr "«%s» là một phần mở rộng gawk" +msgstr "« %s » là một phần mở rộng gawk" -#: awkgram.y:2206 +#: awkgram.y:2334 #, c-format msgid "`%s' is a Bell Labs extension" -msgstr "«%s» là một phần mở rộng Bell Labs (Phòng thí nghiệm Bell)" +msgstr "« %s » là một phần mở rộng của Bell Labs (Phòng thí nghiệm Bell)" -#: awkgram.y:2209 +#: awkgram.y:2337 #, c-format msgid "POSIX does not allow `%s'" msgstr "POSIX không cho phép «%s»" -#: awkgram.y:2213 +#: awkgram.y:2341 #, c-format msgid "`%s' is not supported in old awk" -msgstr "awk cũ không hỗ trợ «%s»" +msgstr "awk cũ không hỗ trợ « %s »" -#: awkgram.y:2239 +#: awkgram.y:2367 msgid "`goto' considered harmful!\n" -msgstr "đã thấy là «goto» gây tai hại\n" +msgstr "« goto » được xem là gây tai hại\n" -#: awkgram.y:2301 +#: awkgram.y:2429 #, c-format msgid "%d is invalid as number of arguments for %s" -msgstr "«%d» không hợp lệ là số đối số cho «%s»" +msgstr "« %d » không hợp lệ như là số đối số cho « %s »" -#: awkgram.y:2320 awkgram.y:2323 +#: awkgram.y:2448 awkgram.y:2451 msgid "match: third argument is a gawk extension" msgstr "match: (khớp) đối số thứ ba là phần mở rộng gawk" -#: awkgram.y:2336 +#: awkgram.y:2464 #, c-format msgid "%s: string literal as last arg of substitute has no effect" msgstr "" -"%s: khi đối số cuối cùng của thay thế, hằng mã nguồn chuỗi không có tác dụng" +"%s: khi đối số cuối cùng của sự thay thế, hằng mã nguồn chuỗi không có tác " +"dụng" -#: awkgram.y:2339 +#: awkgram.y:2467 #, c-format msgid "%s third parameter is not a changeable object" -msgstr "tham số thứ ba «%s» không phải là một đối tượng có thể thay đổi" +msgstr "tham số thứ ba %s không phải là một đối tượng có thể thay đổi" -#: awkgram.y:2366 awkgram.y:2369 +#: awkgram.y:2494 awkgram.y:2497 msgid "close: second argument is a gawk extension" msgstr "close: (đóng) đối số thứ hai là phần mở rộng gawk" -#: awkgram.y:2379 +#: awkgram.y:2507 msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" -msgstr "dùng «dcgettext(_\"...\")» không đúng: hãy loại bỏ gạch dưới đi trước" +msgstr "dùng « dcgettext(_\"...\") » không đúng: hãy gỡ bỏ gạch dưới nằm trước" -#: awkgram.y:2394 +#: awkgram.y:2522 msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" -msgstr "dùng «dcgettext(_\"...\")» không đúng: hãy loại bỏ gạch dưới đi trước" +msgstr "dùng « dcgettext(_\"...\") » không đúng: hãy gỡ bỏ gạch dưới nằm trước" -#: awkgram.y:2465 +#: awkgram.y:2594 #, c-format msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" -msgstr "chức năng «%s»: tham số «#%d», «%s», nhân đôi tham số «#%d»" +msgstr "chức năng « %s »: tham số « #%d », « %s », nhân đôi tham số « #%d »" -#: awkgram.y:2498 +#: awkgram.y:2627 #, c-format msgid "function `%s': parameter `%s' shadows global variable" -msgstr "chức năng «%s»: tham số «%s» che biến toàn cục" +msgstr "chức năng « %s »: tham số « %s » che biến toàn cục" -#: awkgram.y:2610 +#: awkgram.y:2739 #, c-format msgid "could not open `%s' for writing (%s)" msgstr "không mở được «%s» để ghi (%s)" -#: awkgram.y:2611 profile.c:93 +#: awkgram.y:2740 profile.c:94 msgid "sending profile to standard error" -msgstr "đang gởi tiểu sở sơ lược cho thiết bị lỗi chuẩn" +msgstr "đang gởi hồ sơ cho thiết bị lỗi chuẩn" -#: awkgram.y:2643 +#: awkgram.y:2772 #, c-format msgid "%s: close failed (%s)" -msgstr "%s: đóng thất bại (%s)" +msgstr "%s: lỗi đóng (%s)" -#: awkgram.y:2764 +#: awkgram.y:2893 msgid "shadow_funcs() called twice!" -msgstr "shadow_funcs() (chức năng bóng) được gọi hai lần!" +msgstr "shadow_funcs() (chức năng bóng) được gọi hai lần !" -#: awkgram.y:2791 +#: awkgram.y:2920 msgid "there were shadowed variables." -msgstr "đã có một số biến bị che" +msgstr "có biến bị bóng." -#: awkgram.y:2864 +#: awkgram.y:2993 #, c-format msgid "function `%s': can't use function name as parameter name" -msgstr "chức năng «%s»: không dùng được tên chức năng là tên tham số" +msgstr "chức năng « %s »: không thể dùng tên chức năng như là tên tham số" -#: awkgram.y:2874 +#: awkgram.y:3003 #, c-format msgid "function name `%s' previously defined" -msgstr "tên chức năng «%s» được định nghĩa trước" +msgstr "tên chức năng « %s » được xác định trước" -#: awkgram.y:3025 awkgram.y:3031 +#: awkgram.y:3154 awkgram.y:3160 #, c-format msgid "function `%s' called but never defined" -msgstr "chức năng «%s» được gọi nhưng mà chưa định nghĩa" +msgstr "chức năng « %s » được gọi nhưng mà chưa xác định" -#: awkgram.y:3034 +#: awkgram.y:3163 #, c-format msgid "function `%s' defined but never called" -msgstr "chức năng «%s» được định nghĩa nhưng mà chưa gọi" +msgstr "chức năng « %s » được xác định nhưng mà chưa được gọi" -#: awkgram.y:3061 +#: awkgram.y:3190 #, c-format msgid "regexp constant for parameter #%d yields boolean value" -msgstr "hằng biểu thức chính quy cho tham số «#%d» làm giá trị luận lý" +msgstr "hằng biểu thức chính quy cho tham số « #%d » làm giá trị luận lý (bun)" -#: awkgram.y:3105 +#: awkgram.y:3234 #, c-format msgid "" "function `%s' called with space between name and `(',\n" "or used as a variable or an array" msgstr "" -"chức năng «%s» được gọi khi có dấu cách giữa tên và «(»\n" -"hoặc được dùng là một biến hay là một mảng" +"chức năng « %s » được gọi với dấu cách nằm giữa tên và « ( »\n" +"hoặc được dùng như là biến hay mảng" -#: builtin.c:145 +#: builtin.c:119 #, c-format msgid "%s to \"%s\" failed (%s)" -msgstr "%s đến «%s» thất bại (%s)" +msgstr "%s tới « %s » bị lỗi (%s)" -#: builtin.c:146 +#: builtin.c:120 msgid "standard output" msgstr "thiết bị xuất chuẩn" -#: builtin.c:147 +#: builtin.c:121 msgid "reason unknown" msgstr "không biết sao" -#: builtin.c:160 +#: builtin.c:134 msgid "exp: received non-numeric argument" msgstr "exp: đã nhận đối số không phải thuộc số" -#: builtin.c:166 +#: builtin.c:140 #, c-format msgid "exp: argument %g is out of range" -msgstr "exp: đối số «%g» ở ngoại phạm vị" +msgstr "exp: đối số « %g » ở ngoại phạm vị" -#: builtin.c:224 +#: builtin.c:198 #, c-format msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" msgstr "" -"fflush: không thể xóa sạch: ống dẫn «%s» được mở để đọc, không phải để ghi" +"fflush: không thể xóa sạch: ống dẫn « %s » được mở để đọc, không phải để ghi" -#: builtin.c:227 +#: builtin.c:201 #, c-format msgid "fflush: cannot flush: file `%s' opened for reading, not writing" msgstr "" "fflush: không thể xóa sạch: tập tin «%s» được mở để đọc, không phải để ghi" -#: builtin.c:239 +#: builtin.c:213 #, c-format msgid "fflush: `%s' is not an open file, pipe or co-process" msgstr "" -"fflush: «%s» không phải là một tập tin đã mở, một ống dẫn hay một đồng tiến " -"trình" +"fflush: « %s » không phải là tập tin đã mở, ống dẫn hay đồng tiến trình" -#: builtin.c:332 +#: builtin.c:306 msgid "index: received non-string first argument" -msgstr "index: (số chỉ mục) đã nhận đối số đầu không phải là chuỗi" +msgstr "index: (chỉ mục) đã nhận đối số thứ nhất không phải là chuỗi" -#: builtin.c:334 +#: builtin.c:308 msgid "index: received non-string second argument" -msgstr "index: (số chỉ mục) đã nhận đối số thứ hai không phải là chuỗi" +msgstr "index: (chỉ mục) đã nhận đối số thứ hai không phải là chuỗi" -#: builtin.c:449 +#: builtin.c:423 msgid "int: received non-numeric argument" -msgstr "int: (số nguyên) đã nhận đối số không phải thuộc số" +msgstr "int: (số nguyên?) đã nhận đối số không phải thuộc số" -#: builtin.c:472 -#, fuzzy +#: builtin.c:448 msgid "`length(array)' is a gawk extension" -msgstr "«delete array» (xóa bỏ mảng) là một phần mở rộng gawk" +msgstr "« length(array) » (độ dài mảng) là một phần mở rộng gawk" -#: builtin.c:481 +#: builtin.c:458 msgid "length: received non-string argument" msgstr "length: (độ dài) đã nhận đối số không phải chuỗi" -#: builtin.c:506 +#: builtin.c:483 msgid "log: received non-numeric argument" msgstr "log: (bản ghi) đã nhận đối số không phải thuộc số" -#: builtin.c:509 +#: builtin.c:486 #, c-format msgid "log: received negative argument %g" msgstr "log: (bản ghi) đã nhận đối số âm «%g»" -#: builtin.c:673 builtin.c:676 +#: builtin.c:693 builtin.c:696 msgid "must use `count$' on all formats or none" -msgstr "" -"phải sử dụng «count$» hoặc với mọi định dạng hoặc không với định dạng nào" +msgstr "phải dùng « count$ » với mọi dạng thức hay không dùng cả" -#: builtin.c:778 +#: builtin.c:799 msgid "`$' is not permitted in awk formats" -msgstr "không cho phép «$» trong định dạng awk" +msgstr "không cho phép « $ » trong định dạng awk" -#: builtin.c:784 +#: builtin.c:805 msgid "arg count with `$' must be > 0" -msgstr "khi dùng «$» thì số đếm đối số phải là >0" +msgstr "số đếm đối số với « $ » phải là >0" -#: builtin.c:786 +#: builtin.c:807 #, c-format msgid "arg count %ld greater than total number of supplied arguments" -msgstr "số đếm đối số «%ld» lớn hơn tổng số đối số được cung cấp" +msgstr "số đếm đối số %ld lớn hơn tổng số đối số được cung cấp" -#: builtin.c:788 +#: builtin.c:809 msgid "`$' not permitted after period in format" -msgstr "không cho phép «$» sau dấu chấm trong định dạng" +msgstr "không cho phép « $ » nằm sau dấu chấm trong định dạng" -#: builtin.c:801 +#: builtin.c:822 msgid "no `$' supplied for positional field width or precision" msgstr "" -"chưa cung cấp «$» cho độ rộng trường thuộc vị trí hoặc cho độ chính xác" +"chưa cung cấp « $ » cho độ rộng trường thuộc vị trí hay cho độ chính xác" -#: builtin.c:867 +#: builtin.c:888 msgid "`l' is meaningless in awk formats; ignored" -msgstr "chữ «l» không có nghĩa trong định dạng awk nên bị bỏ qua" +msgstr "chữ « l » không có nghĩa trong định dạng awk nên bị bỏ qua" -#: builtin.c:871 +#: builtin.c:892 msgid "`l' is not permitted in POSIX awk formats" -msgstr "không cho phép chữ «l» trong định dạng awk POSIX" +msgstr "không cho phép chữ « l » nằm trong định dạng awk POSIX" -#: builtin.c:882 +#: builtin.c:903 msgid "`L' is meaningless in awk formats; ignored" -msgstr "chữ «L» không có nghĩa trong định dạng awk nên bị bỏ qua" +msgstr "chữ « L » không có nghĩa trong định dạng awk nên bị bỏ qua" -#: builtin.c:886 +#: builtin.c:907 msgid "`L' is not permitted in POSIX awk formats" -msgstr "không cho phép chữ «L» trong định dạng awk POSIX" +msgstr "không cho phép chữ « L » nằm trong định dạng awk POSIX" -#: builtin.c:897 +#: builtin.c:918 msgid "`h' is meaningless in awk formats; ignored" -msgstr "chữ «h» không có nghĩa trong định dạng awk nên bị bỏ qua" +msgstr "chữ « h » không có nghĩa trong định dạng awk nên bị bỏ qua" -#: builtin.c:901 +#: builtin.c:922 msgid "`h' is not permitted in POSIX awk formats" -msgstr "không cho phép chữ «h» trong định dạng awk POSIX" +msgstr "không cho phép chữ « h » nằm trong định dạng awk POSIX" -#: builtin.c:1132 +#: builtin.c:1182 #, c-format msgid "[s]printf: value %g is out of range for `%%%c' format" -msgstr "[s]printf: giá trị «%g» ở ngoại phạm vị cho định dạng «%%%c»" +msgstr "[s]printf: giá trị %g ở ngoại phạm vị cho dạng thức « %%%c »" -#: builtin.c:1198 +#: builtin.c:1266 msgid "not enough arguments to satisfy format string" msgstr "chưa có đủ đối số để đáp ứng chuỗi định dạng" -#: builtin.c:1200 +#: builtin.c:1268 msgid "^ ran out for this one" -msgstr "hết «^» cho điều này" +msgstr "hết « ^ » cho điều này" -#: builtin.c:1205 +#: builtin.c:1274 msgid "[s]printf: format specifier does not have control letter" msgstr "[s]printf: điều ghi rõ định dạng không có chữ điều khiển" -#: builtin.c:1208 +#: builtin.c:1277 msgid "too many arguments supplied for format string" -msgstr "đã cung cấp quá nhiều đối số cho chuỗi định dạng" +msgstr "quá nhiều đối số được cung cấp cho chuỗi định dạng" -#: builtin.c:1274 builtin.c:1277 +#: builtin.c:1352 builtin.c:1355 msgid "printf: no arguments" -msgstr "printf: không có đối số nào" +msgstr "printf: không có đối số" -#: builtin.c:1301 +#: builtin.c:1379 msgid "sqrt: received non-numeric argument" msgstr "sqrt: (căn bậc hai) đã nhận đối số không phải thuộc số" -#: builtin.c:1305 +#: builtin.c:1383 #, c-format msgid "sqrt: called with negative argument %g" msgstr "sqrt: (căn bậc hai) đã gọi với đối số âm «%g»" -#: builtin.c:1329 +#: builtin.c:1407 #, c-format msgid "substr: start index %g is invalid, using 1" -msgstr "substr: (chuỗi con) số chỉ mục đầu «%g» không hợp lệ nên dùng «1»" +msgstr "substr: (chuỗi phụ) số chỉ mục đầu « %g » không hợp lệ nên dùng 1" -#: builtin.c:1334 +#: builtin.c:1412 #, c-format msgid "substr: non-integer start index %g will be truncated" -msgstr "substr: (chuỗi con) sẽ cắt xén số chỉ mục không phải số nguyên «%g»" +msgstr "" +"substr: (chuỗi phụ) số chỉ mục đầu không phải số nguyên « %g » sẽ bị cắt ngắn" -#: builtin.c:1353 +#: builtin.c:1431 #, c-format msgid "substr: length %g is not >= 1" -msgstr "substr: (chuỗi con) độ dài «%g» không phải ≥1" +msgstr "substr: (chuỗi phụ) độ dài %g không phải ≥1" -#: builtin.c:1355 +#: builtin.c:1433 #, c-format msgid "substr: length %g is not >= 0" -msgstr "substr: (chuỗi con) độ dài «%g» không phải ≥0" +msgstr "substr: (chuỗi phụ) độ dài %g không phải ≥0" -#: builtin.c:1362 +#: builtin.c:1440 #, c-format msgid "substr: non-integer length %g will be truncated" -msgstr "substr: (chuỗi con) sẽ cắt xén độ dài không phải số nguyên «%g»" +msgstr "substr: (chuỗi phụ) sẽ cắt xén độ dài không phải số nguyên « %g »" -#: builtin.c:1367 +#: builtin.c:1445 #, c-format msgid "substr: length %g too big for string indexing, truncating to %g" -msgstr "" -"substr: (chuỗi con) độ dài «%g» quá lớn cho chỉ mục chuỗi nên cắt xén xuống " -"«%g»" +msgstr "substr: độ dài %g quá lớn để chỉ mục chuỗi nên xén ngắn thành %g" -#: builtin.c:1379 +#: builtin.c:1457 msgid "substr: source string is zero length" msgstr "substr: (chuỗi con) chuỗi nguồn có độ dài số không" -#: builtin.c:1395 +#: builtin.c:1473 #, c-format msgid "substr: start index %g is past end of string" -msgstr "substr: (chuỗi con) chỉ mục đầu «%g» sau kết thức chuỗi" +msgstr "substr: (chuỗi phụ) số chỉ mục đầu %g nằm sau kết thúc của chuỗi" -#: builtin.c:1403 +#: builtin.c:1481 #, c-format msgid "" "substr: length %g at start index %g exceeds length of first argument (%lu)" msgstr "" -"substr: (chuỗi con) độ dài «%g» tại chỉ mục đầu «%g» thì vượt quá độ dài của " -"đối số đầu («%lu»)" +"substr: (chuỗi phụ) độ dài %g tại số chỉ mục đầu %g vượt quá độ dài của đối " +"số đầu (%lu)" -#: builtin.c:1478 +#: builtin.c:1558 msgid "strftime: received non-string first argument" -msgstr "strftime: đã nhận đối số đầu không phải chuỗi" +msgstr "strftime: đã nhận đối số thứ nhất khác chuỗi" -#: builtin.c:1484 +#: builtin.c:1564 msgid "strftime: received empty format string" msgstr "strftime: đã nhận chuỗi định dạng rỗng" -#: builtin.c:1493 +#: builtin.c:1573 msgid "strftime: received non-numeric second argument" -msgstr "strftime: đã nhận đối số thứ hai không phải thuộc số" +msgstr "strftime: đã nhận đối số thứ hai khác thuộc số" -#: builtin.c:1556 +#: builtin.c:1650 msgid "mktime: received non-string argument" -msgstr "mktime: đã nhận đối số không phải chuỗi" +msgstr "mktime: đã nhận đối số khác chuỗi" -#: builtin.c:1601 +#: builtin.c:1695 msgid "system: received non-string argument" -msgstr "system: (hệ thống) đã nhận đối số không phải chuỗi" +msgstr "system: (hệ thống) đã nhận đối số khác chuỗi" -#: builtin.c:1722 eval.c:2039 +#: builtin.c:1816 eval.c:2041 #, c-format msgid "reference to uninitialized field `$%d'" -msgstr "tham chiếu đến trường chưa khởi động «$%d»" +msgstr "gặp tham chiếu đến trường chưa được sở khởi « $%d »" -#: builtin.c:1827 +#: builtin.c:1921 msgid "tolower: received non-string argument" -msgstr "tolower: (đến thấp hơn) đã nhận đối số không phải chuỗi" +msgstr "tolower: (đến thấp hơn) đã nhận đối số khác chuỗi" -#: builtin.c:1857 +#: builtin.c:1951 msgid "toupper: received non-string argument" -msgstr "toupper: (đến cao hơn) đã nhận đối số không phải chuỗi" +msgstr "toupper: (đến cao hơn) đã nhận đối số khác chuỗi" -#: builtin.c:1890 +#: builtin.c:1984 msgid "atan2: received non-numeric first argument" -msgstr "atan2: đã nhận đối số đầu không phải thuộc số" +msgstr "atan2: đã nhận đối số thứ nhất khác thuộc số" -#: builtin.c:1892 +#: builtin.c:1986 msgid "atan2: received non-numeric second argument" -msgstr "atan2: đã nhận đối số thứ hai không phải thuộc số" +msgstr "atan2: đã nhận đối số thứ hai khác thuộc số" -#: builtin.c:1911 +#: builtin.c:2005 msgid "sin: received non-numeric argument" msgstr "sin: đã nhận đối số không phải thuộc số" -#: builtin.c:1927 +#: builtin.c:2021 msgid "cos: received non-numeric argument" msgstr "cos: đã nhận đối số không phải thuộc số" -#: builtin.c:1977 +#: builtin.c:2071 msgid "srand: received non-numeric argument" msgstr "srand: đã nhận đối số không phải thuộc số" -#: builtin.c:2012 +#: builtin.c:2106 msgid "match: third argument is not an array" -msgstr "match: (khớp) đối số thứ ba không phải là một mảng" +msgstr "match: (khớp) đối số thứ ba không phải là mảng" -#: builtin.c:2555 +#: builtin.c:2650 msgid "gensub: third argument of 0 treated as 1" -msgstr "gensub: (tạo điều con) đối số thứ ba là «0» thì được xử lý là «1»" +msgstr "gensub: đối số thứ ba 0 được xử lý như 1" -#: builtin.c:2715 +#: builtin.c:2766 msgid "lshift: received non-numeric first argument" -msgstr "lshift: (dịch trái) đã nhận đối số đầu không phải thuộc số" +msgstr "lshift: đã nhận đối số đầu không phải thuộc số" -#: builtin.c:2717 +#: builtin.c:2768 msgid "lshift: received non-numeric second argument" -msgstr "lshift: (dịch trái) đã nhận đối số thứ hai không phải thuộc số" +msgstr "lshift: (dịch bên trái) đã nhận đối số thứ hai khác thuộc số" -#: builtin.c:2723 +#: builtin.c:2774 #, c-format msgid "lshift(%lf, %lf): negative values will give strange results" -msgstr "lshift(%lf, %lf): giá trị âm thì sẽ gây ra kết quả lạ" +msgstr "lshift(%lf, %lf): giá trị âm sẽ gây ra kết quả lạ" -#: builtin.c:2725 +#: builtin.c:2776 #, c-format msgid "lshift(%lf, %lf): fractional values will be truncated" -msgstr "lshift(%lf, %lf): giá trị thuộc phân số thì sẽ bị cắt xén" +msgstr "lshift(%lf, %lf): giá trị thuộc phân số sẽ bị xén ngắn" -#: builtin.c:2727 +#: builtin.c:2778 #, c-format msgid "lshift(%lf, %lf): too large shift value will give strange results" -msgstr "lshift(%lf, %lf): giá trị dịch quá lớn thì sẽ gây ra kết quả lạ" +msgstr "lshift(%lf, %lf): giá trị dịch quá lớn sẽ gây ra kết quả lạ" -#: builtin.c:2753 +#: builtin.c:2804 msgid "rshift: received non-numeric first argument" -msgstr "rshift: đã nhận đối số đầu không phải thuộc số" +msgstr "rshift: đã nhận đối số thứ nhất khác thuộc số" -#: builtin.c:2755 +#: builtin.c:2806 msgid "rshift: received non-numeric second argument" -msgstr "rshift: (dịch phải) đã nhận đối số thứ hai không phải thuộc số" +msgstr "rshift: (dịch bên phải) đã nhận đối số thứ hai khác thuộc số" -#: builtin.c:2761 +#: builtin.c:2812 #, c-format msgid "rshift(%lf, %lf): negative values will give strange results" -msgstr "rshift(%lf, %lf): giá trị âm thì sẽ gây ra kết quả lạ" +msgstr "rshift(%lf, %lf): giá trị âm sẽ gây ra kết quả lạ" -#: builtin.c:2763 +#: builtin.c:2814 #, c-format msgid "rshift(%lf, %lf): fractional values will be truncated" -msgstr "rshift(%lf, %lf): giá trị thuộc phân số thì sẽ bị cắt xén" +msgstr "rshift(%lf, %lf): giá trị thuộc phân số sẽ bị xén ngắn" -#: builtin.c:2765 +#: builtin.c:2816 #, c-format msgid "rshift(%lf, %lf): too large shift value will give strange results" -msgstr "rshift(%lf, %lf): giá trị dịch quá lớn thì sẽ gây ra kết quả lạ" +msgstr "rshift(%lf, %lf): giá trị dịch quá lớn sẽ gây ra kết quả lạ" -#: builtin.c:2791 +#: builtin.c:2842 msgid "and: received non-numeric first argument" msgstr "and: (và) đã nhận đối số đầu không phải thuộc số" -#: builtin.c:2793 +#: builtin.c:2844 msgid "and: received non-numeric second argument" -msgstr "and: (và) đã nhận đối số thứ hai không phải thuộc số" +msgstr "and: (và) đã nhận đối số thứ hai khác thuộc số" -#: builtin.c:2799 +#: builtin.c:2850 #, c-format msgid "and(%lf, %lf): negative values will give strange results" -msgstr "and(%lf, %lf): (và) giá trị âm thì sẽ gây ra kết quả lạ" +msgstr "and(%lf, %lf): (và) giá trị âm sẽ gây ra kết quả lạ" -#: builtin.c:2801 +#: builtin.c:2852 #, c-format msgid "and(%lf, %lf): fractional values will be truncated" -msgstr "and(%lf, %lf): (và) giá trị thuộc phân số thì sẽ bị cắt xén" +msgstr "and(%lf, %lf): (và) giá trị thuộc phân số sẽ bị xén ngắn" -#: builtin.c:2827 +#: builtin.c:2878 msgid "or: received non-numeric first argument" msgstr "or: (hoặc) đã nhận đối số đầu không phải thuộc số" -#: builtin.c:2829 +#: builtin.c:2880 msgid "or: received non-numeric second argument" -msgstr "or: (hoặc) đã nhận đối số thứ hai không phải thuộc số" +msgstr "or: (hoặc) đã nhận đối số thứ hai khác thuộc số" -#: builtin.c:2835 +#: builtin.c:2886 #, c-format msgid "or(%lf, %lf): negative values will give strange results" -msgstr "or(%lf, %lf): (hoặc) giá trị âm thì sẽ gây ra kết quả lạ" +msgstr "or(%lf, %lf): (hoặc) giá trị âm sẽ gây ra kết quả lạ" -#: builtin.c:2837 +#: builtin.c:2888 #, c-format msgid "or(%lf, %lf): fractional values will be truncated" -msgstr "or(%lf, %lf): (hoặc) giá trị thuộc phân số thì sẽ bị cắt xén" +msgstr "or(%lf, %lf): (hoặc) giá trị thuộc phân số sẽ bị xén ngắn" -#: builtin.c:2863 +#: builtin.c:2914 msgid "xor: received non-numeric first argument" -msgstr "xor: (không hoặc) đã nhận đối số đầu không phải thuộc số" +msgstr "xor: (không hoặc) đã nhận đối số thứ nhất khác thuộc số" -#: builtin.c:2865 +#: builtin.c:2916 msgid "xor: received non-numeric second argument" -msgstr "xor: (không hoặc) đã nhận đối số thứ hai không phải thuộc số" +msgstr "xor: đã nhận đối số thứ hai khác thuộc số" -#: builtin.c:2871 +#: builtin.c:2922 #, c-format msgid "xor(%lf, %lf): negative values will give strange results" -msgstr "xor(%lf, %lf): (không hoặc) giá trị âm thì sẽ gây ra kết quả lạ" +msgstr "xor(%lf, %lf): (không hoặc) giá trị âm sẽ gây ra kết quả lạ" -#: builtin.c:2873 +#: builtin.c:2924 #, c-format msgid "xor(%lf, %lf): fractional values will be truncated" -msgstr "xor(%lf, %lf): (không hoặc) giá trị thuộc phân số thì sẽ bị cắt xén" +msgstr "xor(%lf, %lf): (không hoặc) giá trị thuộc phân số sẽ bị xén ngắn" -#: builtin.c:2897 +#: builtin.c:2948 msgid "compl: received non-numeric argument" -msgstr "compl: (biên dịch) đã nhận đối số không phải thuộc số" +msgstr "compl: (biên dịch) đã nhận đối số khác thuộc số" -#: builtin.c:2903 +#: builtin.c:2954 #, c-format msgid "compl(%lf): negative value will give strange results" -msgstr "compl(%lf): (biên dịch) giá trị âm thì sẽ gây ra kết quả lạ" +msgstr "compl(%lf): (biên dịch) giá trị âm sẽ gây ra kết quả lạ" -#: builtin.c:2905 +#: builtin.c:2956 #, c-format msgid "compl(%lf): fractional value will be truncated" -msgstr "compl(%lf): (biên dịch) giá trị thuộc phân số thì sẽ bị cắt xén" +msgstr "compl(%lf): (biên dịch) giá trị thuộc phân số se bị xén ngắn" -#: builtin.c:3078 +#: builtin.c:3129 #, c-format msgid "dcgettext: `%s' is not a valid locale category" msgstr "dcgettext: «%s» không phải là một phân loại miền địa phương hợp lệ" @@ -783,76 +799,76 @@ #: eval.c:303 #, c-format msgid "unknown nodetype %d" -msgstr "không biết kiểu nút «%d»" +msgstr "không biết kiểu nút %d" #: eval.c:353 msgid "buffer overflow in genflags2str" -msgstr "vùng đệm vượt quá trong «genflags2str» (tạo ra cờ đến chuỗi)" +msgstr "tràn bộ đệm trong « genflags2str » (tạo ra cờ đến chuỗi)" -#: eval.c:385 eval.c:391 profile.c:838 +#: eval.c:385 eval.c:391 profile.c:817 #, c-format msgid "attempt to use array `%s' in a scalar context" -msgstr "cố dùng mảng «%s» trong một ngữ cảnh vô hướng" +msgstr "cố gắng dùng mảng « %s » trong một ngữ cảnh vô hướng" #: eval.c:733 #, c-format msgid "for loop: array `%s' changed size from %ld to %ld during loop execution" msgstr "" -"for loop: (cho vòng lặp) mảng «%s» đã thay đổi kích thước từ «%ld» đến «%ld» " +"cho loop: (cho vòng lặp) mảng « %s » đã thay đổi kích thước từ %ld đến %ld " "trong khi thực hiện vòng lặp" #: eval.c:754 msgid "`break' outside a loop is not portable" -msgstr "không thể mang «break» (ngắt) ở ngoại một vòng lặp" +msgstr "không thể mang khả năng « break » (ngắt) nằm ở ngoại vòng lặp" #: eval.c:758 msgid "`break' outside a loop is not allowed" -msgstr "không cho phép «break» (ngắt) ở ngoại một vòng lặp" +msgstr "không cho phép « break » (ngắt) nằm ở ngoại vòng lặp" #: eval.c:775 msgid "`continue' outside a loop is not portable" -msgstr "không thể mang «continue» (tiếp tục) ở ngoại một vòng lặp" +msgstr "không thể mang khả năng « continue » (tiếp tục) nằm ở ngoại vòng lặp" #: eval.c:779 msgid "`continue' outside a loop is not allowed" -msgstr "không cho phép «continue» (tiếp tục) ở ngoại một vòng lặp" +msgstr "không cho phép « continue » (tiếp tục) nằm ở ngoại vòng lặp" #: eval.c:813 msgid "`next' cannot be called from a BEGIN rule" -msgstr "không gọi được «next» (kế tiếp) từ một quy tắc «BEGIN» (bắt đầu)" +msgstr "không thể gọi « next » (kế tiếp) từ quy tắc « BEGIN » (bắt đầu)" #: eval.c:815 msgid "`next' cannot be called from an END rule" -msgstr "không gọi được «next» (kế tiếp) từ một quy tắc «END» kết thức)" +msgstr "không thể gọi « next » (kế tiếp) từ quy tắc « END » kết thúc)" #: eval.c:824 msgid "`nextfile' cannot be called from a BEGIN rule" msgstr "" -"không gọi được «nextfile» (tập tin kế tiếp) từ một quy tắc «BEGIN» (bắt đầu)" +"không thể gọi « nextfile » (tập tin kế tiếp) từ quy tắc « BEGIN » (bắt đầu)" #: eval.c:826 msgid "`nextfile' cannot be called from an END rule" msgstr "" -"không gọi được «nextfile» (tập tin kế tiếp) từ một quy tắc «END» kết thức)" +"không thể gọi « nextfile » (tập tin kế tiếp) từ quy tắc « END » kết thúc)" #: eval.c:875 msgid "statement has no effect" msgstr "câu không có tác dụng" -#: eval.c:952 eval.c:1893 +#: eval.c:952 eval.c:1895 #, c-format msgid "can't use function name `%s' as variable or array" -msgstr "không thể dùng tên chức năng «%s» với là biến hay mảng" +msgstr "không thể dùng tên chức năng « %s » như là biến hay mảng" #: eval.c:959 eval.c:965 #, c-format msgid "reference to uninitialized argument `%s'" -msgstr "tham chiếu đến đối số chưa khởi động «%s»" +msgstr "gặp tham chiếu đến đối số chưa được sở khởi « %s »" -#: eval.c:974 eval.c:1902 +#: eval.c:974 eval.c:1904 #, c-format msgid "reference to uninitialized variable `%s'" -msgstr "tham chiếu đến biến chưa khởi động «%s»" +msgstr "gặp tham chiếu đến biến chưa được sở khởi « %s »" #: eval.c:1120 msgid "" @@ -860,46 +876,46 @@ "another!" msgstr "" "concatenation: (nối chuỗi) hiệu ứng khác trong một biểu thức nào đó đã thay " -"đổi độ dài của một biểu thức khác." +"đổi độ dài của một biểu thức khác !" -#: eval.c:1200 +#: eval.c:1202 msgid "assignment used in conditional context" -msgstr "đã dùng điều gán trong ngữ cảnh chỉ điều kiện" +msgstr "điều gán được dùng trong ngữ cảnh điều kiện" -#: eval.c:1278 +#: eval.c:1280 msgid "division by zero attempted" -msgstr "cố chia cho số không" +msgstr "cố gắng chia cho số không" -#: eval.c:1293 +#: eval.c:1295 #, c-format msgid "division by zero attempted in `%%'" -msgstr "cố chia cho số không trong «%%»" +msgstr "cố gắng chia cho số không trong « %% »" -#: eval.c:1308 profile.c:714 +#: eval.c:1310 profile.c:693 #, c-format msgid "illegal type (%s) in tree_eval" -msgstr "không cho phép kiểu (%s) trong «tree_eval» (ước lượng cây)" +msgstr "không cho phép kiểu (%s) trong « tree_eval » (ước lượng cây)" -#: eval.c:1471 +#: eval.c:1473 msgid "division by zero attempted in `/='" -msgstr "cố chia cho số không trong «/=»" +msgstr "cố gắng chia cho số không trong « /= »" -#: eval.c:1493 +#: eval.c:1495 #, c-format msgid "division by zero attempted in `%%='" -msgstr "cố chia cho số không trong «%%=»" +msgstr "cố gắng chia cho số không trong « %%= »" -#: eval.c:1758 +#: eval.c:1760 #, c-format msgid "function `%s' called with more arguments than declared" -msgstr "đã gọi chức năng «%s» với nhiều đối số hơn được tuyên bố" +msgstr "chức năng « %s » được gọi với số đối số hơn số được tuyên bố" -#: eval.c:1802 +#: eval.c:1804 #, c-format msgid "function `%s' not defined" -msgstr "chưa định nghĩa chức năng «%s»" +msgstr "chưa xác định chức năng « %s »" -#: eval.c:1865 +#: eval.c:1867 #, c-format msgid "" "\n" @@ -910,725 +926,740 @@ "\t# Đống gọi chức năng:\n" "\n" -#: eval.c:1868 +#: eval.c:1870 #, c-format msgid "\t# -- main --\n" msgstr "" "\t# -- main --\n" "(chính)\n" -#: eval.c:2023 +#: eval.c:2025 msgid "attempt to field reference from non-numeric value" -msgstr "cố tham chiếu trường từ giá trị không thuộc số" +msgstr "cố gắng tham chiếu trường từ giá trị khác thuộc số" -#: eval.c:2025 +#: eval.c:2027 msgid "attempt to reference from null string" msgstr "cố tham chiếu từ chuỗi vô giá trị" -#: eval.c:2031 +#: eval.c:2033 #, c-format msgid "attempt to access field %d" -msgstr "cố truy cập trường «%d»" +msgstr "cố gắng truy cập trường %d" -#: eval.c:2052 eval.c:2059 profile.c:935 +#: eval.c:2054 eval.c:2061 profile.c:914 msgid "assignment is not allowed to result of builtin function" -msgstr "không cho phép gán cho kết quả của chức năng «builtin» (có sẵn)" +msgstr "không cho phép gán cho kết quả của chức năng « builtin » (có sẵn)" -#: eval.c:2123 +#: eval.c:2125 msgid "`IGNORECASE' is a gawk extension" -msgstr "«IGNORECASE» (bỏ qua chữ hoa/thường) là một phần mở rộng gawk" +msgstr "« IGNORECASE » (bỏ qua chữ hoa/thường) là phần mở rộng gawk" -#: eval.c:2153 +#: eval.c:2155 msgid "`BINMODE' is a gawk extension" -msgstr "«BINMODE» (chế độ nhị phân) là một phần mở rộng gawk" +msgstr "« BINMODE » (chế độ nhị phân) là phần mở rộng gawk" -#: eval.c:2275 +#: eval.c:2277 #, c-format msgid "bad `%sFMT' specification `%s'" -msgstr "điều ghi rõ «%s» «%sFMT» sai" +msgstr "đặc tả « %sFMT » sai « %s »" -#: eval.c:2353 +#: eval.c:2355 msgid "turning off `--lint' due to assignment to `LINT'" -msgstr "đang tắt «--lint» vì gán cho «LINT»" +msgstr "đang tắt « --lint » do việc gán cho « LINT »" -#: ext.c:60 ext.c:64 +#: ext.c:62 ext.c:67 msgid "`extension' is a gawk extension" -msgstr "«extension» là một phần mở rộng gawk" +msgstr "« extension » là một phần mở rộng gawk" -#: ext.c:74 +#: ext.c:77 #, c-format msgid "extension: cannot open `%s' (%s)\n" -msgstr "extension: (phần mở rộng) không mở được «%s» (%s)\n" +msgstr "extension: (phần mở rộng) không thể mở « %s » (%s)\n" -#: ext.c:82 +#: ext.c:85 #, c-format msgid "extension: library `%s': cannot call function `%s' (%s)\n" msgstr "" -"extension: (phần mở rộng) thư viên «%s»: không gọi được chức năng «%s» (%s)\n" +"extension: (phần mở rộng) thư viện « %s »: không thể gọi chức năng « %s » (%" +"s)\n" -#: ext.c:102 +#: ext.c:105 msgid "extension: missing function name" -msgstr "extension: (phần mở rộng) thiếu tên chức năng" +msgstr "extension: (phần mở rộng) tên chức năng còn thiếu" -#: ext.c:107 +#: ext.c:110 #, c-format msgid "extension: illegal character `%c' in function name `%s'" msgstr "" -"extension: (phần mở rộng) không cho phép ký tự «%c» trong tên chức năng «%s»" +"extension: (phần mở rộng) gặp ký tự cấm « %c » nằm trong tên chức năng « %s »" -#: ext.c:113 +#: ext.c:116 #, c-format msgid "extension: can't redefine function `%s'" -msgstr "extension: (phần mở rộng) không thể định nghĩa lại chức nắng «%s»" +msgstr "extension: (phần mở rộng) không thể xác định lại chức năng « %s »" -#: ext.c:117 +#: ext.c:120 #, c-format msgid "extension: function `%s' already defined" -msgstr "extension: (phần mở rộng) đã định nghĩa chức năng «%s» rồi" +msgstr "extension: (phần mở rộng) chức năng « %s » đã được xác định" -#: ext.c:122 +#: ext.c:125 #, c-format msgid "extension: can't use gawk built-in `%s' as function name" msgstr "" -"extension: (phần mở rộng) không thể dùng «%s» có sẵn gawk là tên chức năng" +"extension: (phần mở rộng) không thể dùng điều có sẵn của gawk « %s » như là " +"tên chức năng" -#: ext.c:124 +#: ext.c:127 #, c-format msgid "extension: function name `%s' previously defined" -msgstr "extension: (phần mở rộng) tên chức năng «%s» được định nghĩa trước" +msgstr "tên chức năng « %s » đã được xác định trước" -#: ext.c:201 +#: ext.c:204 #, c-format msgid "function `%s' defined to take no more than %d argument(s)" -msgstr "chức năng «%s» được định nghĩa để chấp nhận nhiều nhất «%d» đối số" +msgstr "chức năng « %s » được xác định để chấp nhấn %d đối số tối đa" -#: ext.c:204 +#: ext.c:207 #, c-format msgid "function `%s': missing argument #%d" -msgstr "chức năng «%s» thiếu đối số «#%d»" +msgstr "chức năng « %s » còn thiếu đối số thứ %d" -#: ext.c:214 +#: ext.c:217 #, c-format msgid "function `%s': argument #%d: attempt to use scalar as an array" -msgstr "chức năng «%s»: đối số «#%d»: cố dùng điều vô hướng là một mảng" +msgstr "" +"chức năng « %s »: đối số thứ %d: cố gắng dùng điều vô hướng như là mảng" -#: ext.c:218 +#: ext.c:221 #, c-format msgid "function `%s': argument #%d: attempt to use array as a scalar" -msgstr "chức năng «%s»: đối số «#%d»: cố dùng mảng là một điều vô hướng" +msgstr "" +"chức năng « %s »: đối số thứ %d: cố gắng dùng mảng như là điều vô hướng" -#: ext.c:243 +#: ext.c:246 msgid "Operation Not Supported" -msgstr "Không hỗ trợ thao tác ấy" +msgstr "Thao tác không được hỗ trợ" -#: field.c:326 +#: field.c:330 msgid "NF set to negative value" -msgstr "đã lập «NF» là giá trị âm" +msgstr "« NF » được đặt thành giá trị âm" -#: field.c:819 +#: field.c:823 msgid "split: second argument is not an array" -msgstr "split: (chia tách) đối số thứ hai không phải là một mảng" +msgstr "split: (chia tách) đối số thứ hai không phải là mảng" -#: field.c:853 +#: field.c:857 msgid "split: null string for third arg is a gawk extension" msgstr "" -"split: (chia tách) chuỗi vô giá trị cho đối số thứ ba là một phần mở rộng " -"gawk" +"split: (chia tách) chuỗi vô giá trị cho đối số thứ ba là phần mở rộng gawk" -#: field.c:905 +#: field.c:909 msgid "`FIELDWIDTHS' is a gawk extension" -msgstr "«FIELDWIDTHS» (độ rộng trường) là một phần mở rộng gawk" +msgstr "« FIELDWIDTHS » (độ rộng trường) là phần mở rộng gawk" -#: field.c:935 field.c:946 +#: field.c:939 field.c:953 #, c-format msgid "invalid FIELDWIDTHS value, near `%s'" -msgstr "Giá trị «FIELDWIDTHS» (độ rộng trường) không hợp lệ, gần «%s»" +msgstr "giá trị FIELDWIDTHS (độ rộng trường) không hợp lệ, gần « %s »" -#: field.c:1027 +#: field.c:1036 msgid "null string for `FS' is a gawk extension" -msgstr "chuỗi vô giá trị cho «FS» là một phần mở rộng gawk" +msgstr "chuỗi vô giá trị cho « FS » là phần mở rộng gawk" -#: getopt.c:571 getopt.c:590 +#: field.c:1040 +msgid "old awk does not support regexps as value of `FS'" +msgstr "awk cũ không hỗ trợ biểu thức chính quy làm giá trị của « FS »" + +#: getopt.c:571 getopt.c:587 #, c-format msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: tùy chọn «%s» là mơ hồ\n" +msgstr "%s: tùy chọn « %s » là mơ hồ\n" -#: getopt.c:623 getopt.c:627 +#: getopt.c:620 getopt.c:624 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: tùy chọn «--%s» không cho phép đối số\n" +msgstr "%s: tùy chọn « --%s » không cho phép đối số\n" -#: getopt.c:636 getopt.c:641 +#: getopt.c:633 getopt.c:638 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: tùy chọn «%c%s» không cho phép đối số\n" +msgstr "%s: tùy chọn « %c%s » không cho phép đối số\n" -#: getopt.c:687 getopt.c:709 getopt.c:1040 getopt.c:1062 +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: tùy chọn «%s» cần đến đối số\n" -#: getopt.c:747 getopt.c:750 +#: getopt.c:738 getopt.c:741 #, c-format msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: không chấp nhận tùy chọn «--%s»\n" +msgstr "%s: không nhận diện tùy chọn « --%s »\n" -#: getopt.c:758 getopt.c:761 +#: getopt.c:749 getopt.c:752 #, c-format msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: không chấp nhận tùy chọn «%c%s»\n" +msgstr "%s: không nhận diện tùy chọn « %c%s »\n" -#: getopt.c:816 getopt.c:819 +#: getopt.c:804 getopt.c:807 #, c-format msgid "%s: illegal option -- %c\n" -msgstr "%s: không cho phép tùy chọn «-- %c»\n" +msgstr "%s: không cho phép tùy chọn « -- %c »\n" -#: getopt.c:825 getopt.c:828 +#: getopt.c:813 getopt.c:816 #, c-format msgid "%s: invalid option -- %c\n" -msgstr "%s: tùy chọn không hợp lệ «-- %c»\n" +msgstr "%s: tùy chọn không hợp lệ « -- %c »\n" -#: getopt.c:883 getopt.c:902 getopt.c:1115 getopt.c:1136 main.c:448 +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 #, c-format msgid "%s: option requires an argument -- %c\n" -msgstr "%s: tùy chọn cần đến đối số «-- %c»\n" +msgstr "%s: tùy chọn cần đến đối số « -- %c »\n" -#: getopt.c:955 getopt.c:974 +#: getopt.c:937 getopt.c:953 #, c-format msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s: tùy chọn «-W %s» là mơ hồ\n" +msgstr "%s: tùy chọn « -W %s » là mơ hồ\n" -#: getopt.c:998 getopt.c:1019 +#: getopt.c:977 getopt.c:995 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: tùy chọn «-W %s» không cho phép đối số\n" -#: io.c:307 +#: io.c:345 #, c-format msgid "cannot open file `%s' for reading (%s)" msgstr "không mở được tập tin «%s» để ghi (%s)" -#: io.c:398 +#: io.c:436 #, c-format msgid "close of fd %d (`%s') failed (%s)" -msgstr "đóng «fd %d» («%s») thất bại (%s)" +msgstr "lỗi đóng « fd %d » (« %s ») (%s)" -#: io.c:536 +#: io.c:575 #, c-format msgid "invalid tree type %s in redirect()" -msgstr "kiểu cây không hợp lệ «%s» trong «redirect()»" +msgstr "kiểu cây không hợp lệ « %s » trong « redirect() »" -#: io.c:542 +#: io.c:581 #, c-format msgid "expression in `%s' redirection only has numeric value" -msgstr "biểu thức trong điều chuyển hướng «%s» chỉ có giá trị thuộc số" +msgstr "biểu thức trong điều chuyển hướng « %s » chỉ có giá trị thuộc số" -#: io.c:548 +#: io.c:587 #, c-format msgid "expression for `%s' redirection has null string value" msgstr "biểu thức cho điều chuyển hướng «%s» có giá trị chuỗi vô giá trị" -#: io.c:553 +#: io.c:592 #, c-format msgid "filename `%s' for `%s' redirection may be result of logical expression" msgstr "" "tên tập tin «%s» cho điều chuyển hướng «%s» có lẽ là kết quả của biểu thức " "luận lý" -#: io.c:591 +#: io.c:630 #, c-format msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" -msgstr "không cần hợp «>» vào «>>» cho tập tin «%.*s»" +msgstr "không cần hợp « > » và « >> » cho tập tin « %.*s »" -#: io.c:643 +#: io.c:682 #, c-format msgid "can't open pipe `%s' for output (%s)" -msgstr "không mở được ống dẫn «%s» để xuất (%s)" +msgstr "không thể mở ống dẫn « %s » để xuất (%s)" -#: io.c:652 +#: io.c:691 #, c-format msgid "can't open pipe `%s' for input (%s)" -msgstr "không mở được ống dẫn «%s» để gõ (%s)" +msgstr "không thể mở ống dẫn « %s » để nhập (%s)" + +#: io.c:698 io.c:1448 +#, c-format +msgid "file `%s' is a directory" +msgstr "tập tin « %s » là thư mục" -#: io.c:665 +#: io.c:706 #, c-format msgid "can't open two way socket `%s' for input/output (%s)" -msgstr "không mở được ổ cắm hai chiều «%s» để gõ/xuất (%s)" +msgstr "không thể mở ổ cắm hai chiều « %s » để nhập/xuất (%s)" -#: io.c:669 +#: io.c:710 #, c-format msgid "can't open two way pipe `%s' for input/output (%s)" -msgstr "không mở được ống dẫn hai chiều «%s» để gõ/xuất (%s)" +msgstr "không thể mở ống dẫn hai chiều « %s » để nhập/xuất (%s)" -#: io.c:745 +#: io.c:786 #, c-format msgid "can't redirect from `%s' (%s)" -msgstr "không thể chuyển hướng từ «%s» (%s)" +msgstr "không thể chuyển hướng từ « %s » (%s)" -#: io.c:748 +#: io.c:789 #, c-format msgid "can't redirect to `%s' (%s)" msgstr "không thể chuyển hướng đến «%s» (%s)" -#: io.c:787 +#: io.c:828 msgid "" "reached system limit for open files: starting to multiplex file descriptors" msgstr "" -"đã gặp giới hạn hệ thống cho tập tin đang mở nên bắt đầu phối hợp nhiều dòng " -"điều diễn tả tâp tin" +"đã tới giới hạn hệ thống về tập tin được mở nên bắt đầu phối hợp nhiều dòng " +"điều mô tả tập tin" -#: io.c:803 +#: io.c:844 #, c-format msgid "close of `%s' failed (%s)." -msgstr "đóng «%s» thất bại (%s)" +msgstr "lỗi đóng « %s » (%s)" -#: io.c:811 +#: io.c:852 msgid "too many pipes or input files open" -msgstr "quá nhiều ống dẫn hay tập tin gõ đang mở" +msgstr "quá nhiều ống dẫn hay tập tin nhập được mở" -#: io.c:834 +#: io.c:875 msgid "close: second argument must be `to' or `from'" -msgstr "close: (đóng) đối số thứ hai phải là «to» (đến) hay «from» (từ)" +msgstr "close: (đóng) đối số thứ hai phải là « to » (đến) hay « from » (từ)" -#: io.c:848 +#: io.c:889 #, c-format msgid "close: `%.*s' is not an open file, pipe or co-process" msgstr "" -"close: (đóng) «%.*s» không phải là một tập tin đang mở, một ống dẫn hay tiến " -"trình với nhau" +"close: (đóng) « %.*s » không phải là tập tin được mở, ống dẫn hay tiến trình " +"với nhau" -#: io.c:852 +#: io.c:893 msgid "close of redirection that was never opened" -msgstr "đã đóng điều chuyển hướng chưa mở" +msgstr "việc đóng điều chuyển hướng chưa mở" -#: io.c:948 +#: io.c:989 #, c-format msgid "close: redirection `%s' not opened with `|&', second argument ignored" msgstr "" -"close: (đóng) điều chuyển hướng «%s» không do «|&» mở nên đối số thứ hai bị " -"bỏ qua" +"close: (đóng) điều chuyển hướng « %s » không được mở bởi « |& » nên đối số " +"thứ hai bị bỏ qua" -#: io.c:964 +#: io.c:1005 #, c-format msgid "failure status (%d) on pipe close of `%s' (%s)" msgstr "trạng thái thất bại (%d) khi đóng ống dẫn «%s» (%s)" -#: io.c:967 +#: io.c:1008 #, c-format msgid "failure status (%d) on file close of `%s' (%s)" msgstr "trạng thái thất bại (%d) khi đóng tập tin «%s» (%s)" -#: io.c:987 +#: io.c:1028 #, c-format msgid "no explicit close of socket `%s' provided" -msgstr "chưa cung cấp điều đóng ổ cắm «%s» dứt khoát" +msgstr "không có việc đóng dứt khoát ổ cắm « %s » được cung cấp" -#: io.c:990 +#: io.c:1031 #, c-format msgid "no explicit close of co-process `%s' provided" -msgstr "chưa cung cấp điều đóng tiến trình với nhau «%s» dứt khoát" +msgstr "không có việc đóng dứt khoát đồng tiến trình « %s » được cung cấp" -#: io.c:993 +#: io.c:1034 #, c-format msgid "no explicit close of pipe `%s' provided" -msgstr "chưa cung cấp điều đóng ống dẫn «%s» dứt khoát" +msgstr "không có việc đóng dứt khoát ống dẫn « %s » được cung cấp" -#: io.c:996 +#: io.c:1037 #, c-format msgid "no explicit close of file `%s' provided" -msgstr "chưa cung cấp điều đóng tập tin «%s» dứt khoát" +msgstr "không có việc đóng dứt khoát tập tin « %s » được cung cấp" -#: io.c:1025 io.c:1080 main.c:718 main.c:756 +#: io.c:1066 io.c:1121 main.c:749 main.c:791 #, c-format msgid "error writing standard output (%s)" msgstr "gặp lỗi khi ghi thiết bị xụất chuẩn (%s)" -#: io.c:1029 io.c:1085 +#: io.c:1070 io.c:1126 #, c-format msgid "error writing standard error (%s)" msgstr "gặp lỗi khi ghi thiết bị lỗi chuẩn (%s)" -#: io.c:1037 +#: io.c:1078 #, c-format msgid "pipe flush of `%s' failed (%s)." -msgstr "xóa sạch ống dẫn «%s» thất bại (%s)" +msgstr "lỗi xóa sạch ống dẫn « %s » (%s)" -#: io.c:1040 +#: io.c:1081 #, c-format msgid "co-process flush of pipe to `%s' failed (%s)." -msgstr "xóa sạch ống dẫn đồng tiến trình đến «%s» thất bại (%s)" +msgstr "lỗi xóa sạch ống dẫn đồng tiến trình đến « %s » (%s)" -#: io.c:1043 +#: io.c:1084 #, c-format msgid "file flush of `%s' failed (%s)." -msgstr "xóa sạch tập tin «%s» thất bại (%s)" +msgstr "lỗi xóa sạch tập tin « %s » (%s)" + +#: io.c:1198 +#, c-format +msgid "local port %s invalid in `/inet'" +msgstr "cổng cục bộ %s không hợp lệ trong « /inet »" + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "thông tin về máy/cổng ở xa (%s, %s) không phải hợp lệ" -#: io.c:1205 +#: io.c:1250 msgid "/inet/raw client not ready yet, sorry" -msgstr "tiếc là trình khách «/inet/raw» chưa sẵn sàng" +msgstr "tiếc là ứng dụng khách chưa sẵn sàng" -#: io.c:1207 io.c:1244 +#: io.c:1253 io.c:1289 msgid "only root may use `/inet/raw'." -msgstr "chỉ người chủ (root) có thể sử dụng «/inet/raw» thôi" +msgstr "chỉ người chủ (root) có thể dùng thôi" -#: io.c:1242 +#: io.c:1287 msgid "/inet/raw server not ready yet, sorry" -msgstr "tiếc là trình phục vụ «/inet/raw» chưa sẵn sàng" +msgstr "tiếc là trình phục vụ chưa sẵn sàng" -#: io.c:1332 +#: io.c:1385 #, c-format msgid "no (known) protocol supplied in special filename `%s'" -msgstr "trong tên tập tin đặc biệt «%s» không cung cấp giao thức (đã biết) nào" +msgstr "" +"trong tên tập tin đặc biệt « %s » không cung cấp giao thức (đã biết) nào" -#: io.c:1350 +#: io.c:1399 #, c-format msgid "special file name `%s' is incomplete" -msgstr "tên tập tin đặc biệt «%s» chưa xong" - -#: io.c:1362 -#, c-format -msgid "local port invalid in `%s'" -msgstr "trong «%s» cổng địa phương không hợp lệ" +msgstr "tên tập tin đặc biệt « %s » chưa xong" -#: io.c:1374 +#: io.c:1414 msgid "must supply a remote hostname to `/inet'" -msgstr "phải cung cấp một tên máy từ xa cho «/inet»" +msgstr "phải cung cấp một tên máy từ xa cho " -#: io.c:1389 +#: io.c:1432 msgid "must supply a remote port to `/inet'" -msgstr "phải cung cấp một cổng từ xa cho «/inet»" +msgstr "phải cung cấp một cổng từ xa cho " -#: io.c:1395 -#, c-format -msgid "remote port invalid in `%s'" -msgstr "trong «%s» cổng từ xa không hợp lệ" - -#: io.c:1405 +#: io.c:1439 msgid "TCP/IP communications are not supported" -msgstr "không hỗ trợ truyền thông TCP/IP" +msgstr "truyền thông TCP/IP không được hỗ trợ" -#: io.c:1414 io.c:1595 -#, c-format -msgid "file `%s' is a directory" -msgstr "tập tin «%s» là một thư mục" - -#: io.c:1484 +#: io.c:1509 #, c-format msgid "use `PROCINFO[\"%s\"]' instead of `%s'" -msgstr "hãy dùng «PROCINFO[\"%s\"]» (thông tin tiến trình) thay vào «%s»" +msgstr "hãy dùng « PROCINFO[\"%s\"] » (thông tin tiến trình) thay cho « %s »" -#: io.c:1516 +#: io.c:1547 msgid "use `PROCINFO[...]' instead of `/dev/user'" -msgstr "hãy dùng «PROCINFO[...]» (thông tin tiến trình) thay vào «/dev/user»" +msgstr "hãy dùng « PROCINFO[...] » (thông tin tiến trình) thay cho " -#: io.c:1581 io.c:1763 +#: io.c:1612 io.c:1798 #, c-format msgid "could not open `%s', mode `%s'" msgstr "không mở được «%s», chế độ «%s»" -#: io.c:1814 +#: io.c:1849 #, c-format msgid "close of master pty failed (%s)" -msgstr "đóng pty cái thất bại (%s)" +msgstr "lỗi đóng pty (tài sản?) chính (%s)" -#: io.c:1816 io.c:1968 io.c:2119 +#: io.c:1851 io.c:2003 io.c:2154 #, c-format msgid "close of stdout in child failed (%s)" -msgstr "đóng thiết bị xuất chuẩn trong tiến trình con thất bại (%s)" +msgstr "lỗi đóng thiết bị xuất chuẩn trong tiến trình con (%s)" -#: io.c:1819 +#: io.c:1854 #, c-format msgid "moving slave pty to stdout in child failed (dup: %s)" msgstr "" -"di chuyển pty phụ đến thiết bị xuất chuẩn thất bại trong tiến trình con " -"(dup: %s) (nhân đôi)" +"lỗi di chuyển pty (tài sản?) phụ tới thiết bị xuất chuẩn trong điều con " +"(nhân đôi: %s)" -#: io.c:1821 io.c:1973 +#: io.c:1856 io.c:2008 #, c-format msgid "close of stdin in child failed (%s)" -msgstr "đóng thiết bị gõ chuẩn trong tiến trình con thất bại (%s)" +msgstr "lỗi đóng thiết bị nhập chuẩn trong tiến trình con (%s)" -#: io.c:1824 +#: io.c:1859 #, c-format msgid "moving slave pty to stdin in child failed (dup: %s)" msgstr "" -"di chuyển điều phụ đến thiết bị gõ chuẩn thất bại trong tiến trình con (dup: " -"%s) (nhân đôi)" +"lỗi di chuyển pty (tài sản?) phụ tới thiết bị nhập chuẩn trong điều con " +"(nhân đôi: %s)" -#: io.c:1826 io.c:1845 +#: io.c:1861 io.c:1880 #, c-format msgid "close of slave pty failed (%s)" -msgstr "đóng điều phụ thất bại (%s)" +msgstr "lỗi đóng pty (tài sản?) phụ (%s)" -#: io.c:1919 io.c:1971 io.c:2100 io.c:2122 +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 #, c-format msgid "moving pipe to stdout in child failed (dup: %s)" msgstr "" -"di chuyển ống dẫn đến thiết bị xuất chuẩn thất bại trong tiến trình con " -"(dup: %s) (nhân đôi)" +"lỗi di chuyển ống dẫn đến thiết bị xuất chuẩn trong tiến trình con (dup: %s) " +"(nhân đôi)" -#: io.c:1923 io.c:1976 +#: io.c:1958 io.c:2011 #, c-format msgid "moving pipe to stdin in child failed (dup: %s)" msgstr "" -"di chuyển ống dẫn đến thiết bị gõ chuẩn thất bại trong tiến trình con (dup: %" -"s) (nhân đôi)" +"lỗi di chuyển ống dẫn đến thiết bị nhập chuẩn trong tiến trình con (dup: %s) " +"(nhân đôi)" -#: io.c:1940 io.c:2113 +#: io.c:1975 io.c:2148 msgid "restoring stdout in parent process failed\n" -msgstr "phục hồi thiết bị xuất chuẩn trong tiến trình mẹ thất bại\n" +msgstr "lỗi phục hồi thiết bị xuất chuẩn trong tiến trình mẹ\n" -#: io.c:1945 +#: io.c:1980 msgid "restoring stdin in parent process failed\n" -msgstr "phục hồi thiết bị gõ chuẩn trong tiến trình mẹ thất bại\n" +msgstr "lỗi phục hồi thiết bị nhập chuẩn trong tiến trình mẹ\n" -#: io.c:1979 io.c:2124 io.c:2135 +#: io.c:2014 io.c:2159 io.c:2170 #, c-format msgid "close of pipe failed (%s)" -msgstr "đóng ống dẫn thất bại (%s)" +msgstr "lỗi đóng ống dẫn (%s)" -#: io.c:2024 +#: io.c:2059 msgid "`|&' not supported" -msgstr "không hỗ trợ «|&»" +msgstr "« |& » không được hỗ trợ" -#: io.c:2090 +#: io.c:2125 #, c-format msgid "cannot open pipe `%s' (%s)" -msgstr "không mở được «%s» (%s)" +msgstr "không thể mở ống dẫn « %s » (%s)" -#: io.c:2131 +#: io.c:2166 #, c-format msgid "cannot create child process for `%s' (fork: %s)" -msgstr "không tạo được tiến trình con cho «%s» (fork: %s)" +msgstr "không thể tạo tiến trình con cho « %s » (fork: %s)" -#: io.c:2506 +#: io.c:2548 #, c-format msgid "data file `%s' is empty" -msgstr "tập tin dữ liệu «%s» là rỗng" +msgstr "tập tin dữ liệu « %s » là rỗng" -#: io.c:2547 io.c:2555 +#: io.c:2589 io.c:2597 msgid "could not allocate more input memory" -msgstr "không thể cấp phát bộ nhớ gõ nhiều hơn" +msgstr "không thể cấp phát bộ nhớ nhập thêm nữa" -#: io.c:2919 io.c:2984 +#: io.c:2965 io.c:3038 #, c-format msgid "error reading input file `%s': %s" -msgstr "gặp lỗi khi đọc tập tin gõ «%s»: %s" +msgstr "gặp lỗi khi đọc tập tin nhập « %s »: %s" -#: io.c:3109 +#: io.c:3163 msgid "multicharacter value of `RS' is a gawk extension" -msgstr "giá trị đa ký tự của «RS» là một phần mở rộng gawk" +msgstr "giá trị đa ký tự của « RS » là phần mở rộng gawk" -#: main.c:338 +#: main.c:351 msgid "`-m[fr]' option irrelevant in gawk" -msgstr "«-m[fr]» tùy chọn không thích đang trong gawk" +msgstr "tùy chọn « -m[fr] » không thích đang trong gawk" -#: main.c:340 +#: main.c:353 msgid "-m option usage: `-m[fr] nnn'" -msgstr "cách sử dụng tùy chọn «-m»: «-m[fr] nnn»" +msgstr "cách sử dụng tùy chọn «-m»: « -m[fr] nnn »" -#: main.c:357 +#: main.c:370 #, c-format msgid "%s: option `-W %s' unrecognized, ignored\n" -msgstr "%s: tùy chọn «-W %s» không được nhận diện nên bị bỏ qua\n" +msgstr "%s: tùy chọn « -W %s » không được nhận diện nên bị bỏ qua\n" -#: main.c:394 +#: main.c:407 msgid "empty argument to `--source' ignored" -msgstr "đối số rỗng tới «--source» (nguồn) bị bỏ qua" +msgstr "đối số rỗng tới « --source » (nguồn) bị bỏ qua" -#: main.c:467 +#: main.c:480 msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" msgstr "" -"đã lập biến môi trường «POSIXLY_CORRECT» (đúng cách POSIX) thì đang bật tùy " -"chọn «--posix»" +"biến môi trường « POSIXLY_CORRECT » (đúng kiểu POSIX) đã được đặt; đang bật " +"tùy chọn « --posix »" -#: main.c:472 +#: main.c:486 msgid "`--posix' overrides `--traditional'" -msgstr "tùy chọn «--posix» đè «--traditional» (truyền thống)" +msgstr "tùy chọn « --posix » có quyền cao hơn « --traditional » (truyền thống)" -#: main.c:483 +#: main.c:497 msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" msgstr "" -"«--posix»/«--traditional» (truyền thống) đè «--non-decimal-data» (dữ liệu " -"không phải thập phân)" +"« --posix »/« --traditional » (truyền thống) có quyền cao hơn « --non-" +"decimal-data » (dữ liệu khác thập phân)" -#: main.c:487 +#: main.c:501 #, c-format msgid "running %s setuid root may be a security problem" -msgstr "chạy «%s» với tư cách «setuid root» thì có lẽ sẽ rủi rỏ bảo mật" +msgstr "việc chạy %s với tư cách « setuid root » có thể rủi rỏ bảo mật" -#: main.c:528 +#: main.c:542 #, c-format msgid "can't set binary mode on stdin (%s)" -msgstr "không lập được chế độ nhị phân trên thiết bị gõ chuẩn (%s)" +msgstr "không thể đặt chế độ nhị phân trên thiết bị nhập chuẩn (%s)" -#: main.c:531 +#: main.c:545 #, c-format msgid "can't set binary mode on stdout (%s)" -msgstr "không lập được chế độ nhị phân trên thiết bị xuất chuẩn (%s)" +msgstr "không thể đặt chế độ nhị phân trên thiết bị xuất chuẩn (%s)" -#: main.c:533 +#: main.c:547 #, c-format msgid "can't set binary mode on stderr (%s)" -msgstr "không lập được chế độ nhị phân trên thiết bị lỗi chuẩn (%s)" +msgstr "không thể đặt chế độ nhị phân trên thiết bị lỗi chuẩn (%s)" -#: main.c:572 +#: main.c:586 msgid "no program text at all!" -msgstr "không có chữ chương trình nào cả!" +msgstr "không có đoạn chữ chương trình nào cả !" -#: main.c:665 +#: main.c:690 #, c-format msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" msgstr "" "Cách sử dụng: %s [tùy chọn kiểu POSIX hay GNU] -f tập_tin_chương_trình [--] " "tập_tin ...\n" -#: main.c:667 +#: main.c:692 #, c-format msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" msgstr "" "Cách sử dụng: %s [tùy chọn kiểu POSIX hay GNU] [--] %cchương_trình%c " "tập_tin ...\n" -#: main.c:672 +#: main.c:697 msgid "POSIX options:\t\tGNU long options:\n" msgstr "tùy chọn POSIX:\t\ttùy chọn dài GNU:\n" -#: main.c:673 +#: main.c:698 msgid "\t-f progfile\t\t--file=progfile\n" -msgstr "\t-f tập_tin_chương_trình\t\t--tập_tin=tập_tin_chương_trình\n" +msgstr "\t-f tập_tin_chương_trình\t\t--file=tập_tin_chương_trình\n" -#: main.c:674 +#: main.c:699 msgid "\t-F fs\t\t\t--field-separator=fs\n" -msgstr "\t-F fs\t\t\t--field-separator=fs\t\tđiều phân cách trườngs\n" +msgstr "\t-F fs\t\t\t--field-separator=điều phân cách trường\n" -#: main.c:675 +#: main.c:700 msgid "\t-v var=val\t\t--assign=var=val\n" msgstr "" -"\t-v var=val\t\t--assign=var=val\n" -"(var là viết tắt cho variable: biến\n" -"val là viết tắt cho value: giá trị\n" -"assign: gán)\n" +"\t-v var=giá trị\t\t--assign=biến=giá_trị\n" +"(assign: gán, var: biến)\n" -#: main.c:676 +#: main.c:701 msgid "\t-m[fr] val\n" -msgstr "\t-m[fr] val\n" +msgstr "\t-m[fr] giá_trị\n" -#: main.c:677 +#: main.c:702 msgid "\t-W compat\t\t--compat\n" msgstr "" "\t-W compat\t\t--compat\n" "(compat là viết tắt cho compatible: tương thích)\n" -#: main.c:678 +#: main.c:703 msgid "\t-W copyleft\t\t--copyleft\n" msgstr "" "\t-W copyleft\t\t--copyleft\n" -"(sao chép trái)\n" +"(tắc quyền ngược)\n" -#: main.c:679 +#: main.c:704 msgid "\t-W copyright\t\t--copyright\n" msgstr "" "\t-W copyright\t\t--copyright\n" -"(sao chép phải hoặc bản quyền)\n" +"(tác quyền)\n" -#: main.c:680 +#: main.c:705 msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" msgstr "" "\t-W dump-variables[=tập_tin]\t--dump-variables[=tập_tin]\n" "(đổ các biến)\n" -#: main.c:681 +#: main.c:706 msgid "\t-W exec=file\t\t--exec=file\n" -msgstr "\t-W exec=file\t\t--exec=file\n" +msgstr "\t-W exec=tập_tin\t\t--exec=tập_tin\n" -#: main.c:682 +#: main.c:707 msgid "\t-W gen-po\t\t--gen-po\n" msgstr "" "\t-W gen-po\t\t--gen-po\n" "(gen là viết tắt cho generate: tạo ra)\n" -#: main.c:683 +#: main.c:708 msgid "\t-W help\t\t\t--help\n" msgstr "" "\t-W help\t\t\t--help\n" "(trợ giúp)\n" -#: main.c:684 +#: main.c:709 msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" msgstr "" "\t-W lint[=fatal]\t\t--lint[=fatal]\n" "(l? int là viết tắt cho integer: số nguyên\n" "fatal: nghiêm trọng)\n" -#: main.c:685 +#: main.c:710 msgid "\t-W lint-old\t\t--lint-old\n" msgstr "" "\t-W lint-old\t\t--lint-old\n" "(old: cũ)\n" -#: main.c:686 +#: main.c:711 msgid "\t-W non-decimal-data\t--non-decimal-data\n" msgstr "" "\t-W non-decimal-data\t--non-decimal-data\n" -"(dữ liệu không phải thập phân)\n" +"(dữ liệu khác thập phân)\n" -#: main.c:688 +#: main.c:713 msgid "\t-W nostalgia\t\t--nostalgia\n" msgstr "" "\t-W nostalgia\t\t--nostalgia\n" "(nỗi luyến tiếc quá khứ)\n" -#: main.c:691 +#: main.c:716 msgid "\t-W parsedebug\t\t--parsedebug\n" msgstr "" "\t-W parsedebug\t\t--parsedebug\n" "(parse: phân tách\n" "debug: gỡ lỗi)\n" -#: main.c:693 +#: main.c:718 msgid "\t-W profile[=file]\t--profile[=file]\n" msgstr "" "\t-W profile[=tập_tin]\t--profile[=tập_tin]\n" -"(profile: tiểu sử sơ lược)\n" +"(profile: hồ sơ)\n" -#: main.c:694 +#: main.c:719 msgid "\t-W posix\t\t--posix\n" msgstr "\t-W posix\t\t--posix\n" -#: main.c:695 +#: main.c:720 msgid "\t-W re-interval\t\t--re-interval\n" msgstr "" "\t-W re-interval\t\t--re-interval\n" "(re-[động từ]: [làm] lại\n" "interval: thời gian giữa hai lúc)\n" -#: main.c:696 +#: main.c:721 msgid "\t-W source=program-text\t--source=program-text\n" msgstr "" "\t-W source=program-text\t--source=program-text\n" "(source: nguồn\n" -"program-text: các văn bản trong chương trình)\n" +"program-text: đoạn chữ của chương trình)\n" -#: main.c:697 +#: main.c:722 msgid "\t-W traditional\t\t--traditional\n" msgstr "" "\t-W traditional\t\t--traditional\n" "(truyền thống)\n" -#: main.c:698 +#: main.c:723 msgid "\t-W usage\t\t--usage\n" msgstr "" "\t-W usage\t\t--usage\n" "(cách sử dụng)\n" -#: main.c:699 +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "" + +#: main.c:725 msgid "\t-W version\t\t--version\n" msgstr "" "\t-W version\t\t--version\n" "(phiên bản)\n" -#: main.c:703 +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 msgid "" "\n" "To report bugs, see node `Bugs' in `gawk.info', which is\n" @@ -1636,50 +1667,52 @@ "\n" msgstr "" "\n" -"Để thông báo lỗi, hãy xem phần «Bugs» (Lỗi) trong tập tin «gawk.info»\n" -"trong phần «Reporting Problems and Bugs» (thông báo vấn đề và lỗi)\n" +"Để thông báo lỗi, xem nút « Bugs » (lỗi) trong tập tin\n" +"thông tin « gawk.info » mà nằm trong phần\n" +"« Reporting Problems and Bugs » (thông báo vấn đề và lỗi)\n" "trong bản in.\n" +"\n" -#: main.c:707 +#: main.c:738 msgid "" "gawk is a pattern scanning and processing language.\n" "By default it reads standard input and writes standard output.\n" "\n" msgstr "" -"gawk là một ngôn ngữ quét mẫu và xử lý.\n" -"Mặc định là nó đọc từ thiết bị gõ chuẩn và ghi vào thiết bị xuất chuẩn.\n" +"gawk là ngôn ngữ quét và xử lý mẫu.\n" +"Mặc định là nó đọc thiết bị nhập chuẩn và ghi ra thiết bị xuất chuẩn.\n" "\n" -#: main.c:711 +#: main.c:742 msgid "" "Examples:\n" "\tgawk '{ sum += $1 }; END { print sum }' file\n" "\tgawk -F: '{ print $1 }' /etc/passwd\n" msgstr "" -"Thí dụ:\n" +"Thí dụ :\n" "\tgawk '{ sum += $1 }; END { print sum }' file\n" "\tgawk -F: '{ print $1 }' /etc/passwd\n" -#: main.c:731 +#: main.c:762 #, c-format msgid "" "Copyright (C) 1989, 1991-%d Free Software Foundation.\n" "\n" "This program is free software; you can redistribute it and/or modify\n" "it under the terms of the GNU General Public License as published by\n" -"the Free Software Foundation; either version 2 of the License, or\n" +"the Free Software Foundation; either version 3 of the License, or\n" "(at your option) any later version.\n" "\n" msgstr "" -"Bản quyền © 1989, 1991-%d Tổ chức Phần mềm Tự do.\n" +"Tác quyền © năm 1989, 1991-%d của Tổ chức Phần mềm Tự do.\n" "\n" "Chương trình này là phần mềm tự do; bạn có thể phân phối lại nó\n" -"và/hay sửa đổi nó với điều kiện của Quyền Công Chung GNU (GPL)\n" -"như do Tổ chức Phần mềm Tự do xuất bản, hoặc phiên bản 2\n" -"của Quyền ấy, hoặc (tùy chọn) bất cứ phiên bản sau nào.\n" +"và/hay sửa đổi nó với điều kiện của Bản Quyền Công Chung GNU (GPL)\n" +"như do Tổ chức Phần mềm Tự do xuất bản, hoặc phiên bản 3\n" +"của Bản Quyền, hoặc (tùy chọn) bất cứ phiên bản sau nào.\n" "\n" -#: main.c:739 +#: main.c:770 msgid "" "This program is distributed in the hope that it will be useful,\n" "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" @@ -1690,69 +1723,67 @@ "Chúng tôi phân phối chương trình này vì mong muốn nó hữu ích,\n" "nhưng mà KHÔNG BẢO ĐẢM GÌ CẢ, không ngay cả ngụ ý bảo đảm\n" "KHẢ NĂNG BÁN hoặc KHẢ NĂNG LÀM VIỆC DỨT KHOÁT.\n" -"Hãy xem Quyền Công Chung GNU (GNU General Public Licence)\n" -"để tìm chi tiết.\n" +"Hãy xem Bản Quyền Công Chung GNU (GPL) để tìm chi tiết.\n" "\n" -#: main.c:745 +#: main.c:781 +#, fuzzy msgid "" "You should have received a copy of the GNU General Public License\n" -"along with this program; if not, write to the Free Software\n" -"Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, " -"USA.\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" msgstr "" -"Bện nên đã nhận một bản sao của Quyền Công Chung GNU\n" -"cũng với chương trình này; nếu không thì hãy viết cho\n" +"Bện nên đã nhận một bản sao của Bản Quyền Công Chung GNU\n" +"cùng với chương trình này; nếu không, hãy viết thư cho\n" "Tổ chức Phần mềm Tự do:\n" "Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor,\n" -"Boston, MA 02110-1301, USA. (Mỹ)\n" +"Boston, MA 02110-1301, USA (Mỹ).\n" -#: main.c:781 +#: main.c:816 msgid "-Ft does not set FS to tab in POSIX awk" -msgstr "-Ft không lập FS là tab trong awk POSIX" +msgstr "-Ft không đặt FS (hệ thống tập tin?) là tab trong awk POSIX" -#: main.c:1018 +#: main.c:1060 #, c-format msgid "" "%s: `%s' argument to `-v' not in `var=value' form\n" "\n" msgstr "" -"%s: đối số «%s» với «-v» không phải có dạng «biến=giá_trị» \n" +"%s: đối số « %s » đối với « -v » không phải có dạng « biến=giá_trị »\n" "\n" -#: main.c:1038 +#: main.c:1080 #, c-format msgid "`%s' is not a legal variable name" -msgstr "«%s» không phải là một tên biến cho phép" +msgstr "« %s » không phải là tên biến hợp lệ" -#: main.c:1041 +#: main.c:1083 #, c-format msgid "`%s' is not a variable name, looking for file `%s=%s'" -msgstr "«%s» không phải là một tên biến nên đang tìm tập tin «%s=%s»" +msgstr "« %s » không phải là tên biến; đang tìm tập tin « %s=%s »" -#: main.c:1074 +#: main.c:1122 msgid "floating point exception" msgstr "ngoại lệ điểm phù động" -#: main.c:1081 +#: main.c:1129 msgid "fatal error: internal error" -msgstr "lỗi nghiêm trọng: lỗi nội bộ" +msgstr "lỗi nghiêm trọng: lỗi nội bộ" -#: main.c:1132 +#: main.c:1180 #, c-format msgid "no pre-opened fd %d" -msgstr "không có «fd %d» đã mở trước" +msgstr "không có fd (chỉ thị tập tin?) %d đã mở trước" -#: main.c:1139 +#: main.c:1187 #, c-format msgid "could not pre-open /dev/null for fd %d" -msgstr "không mở được «/dev/null» trước cho «fd %d»" +msgstr "không thể mở trước cho fd (chỉ thị tập tin?) %d" -#: main.c:1162 main.c:1171 +#: main.c:1210 main.c:1219 #, c-format msgid "could not find groups: %s" -msgstr "không tìm được nhóm: %s" +msgstr "không tìm thấy nhóm: %s" #: msg.c:54 #, c-format @@ -1761,7 +1792,7 @@ #: msg.c:120 msgid "warning: " -msgstr "cảnh báo:" +msgstr "cảnh báo : " #: msg.c:142 msgid "error: " @@ -1769,61 +1800,66 @@ #: msg.c:178 msgid "fatal: " -msgstr "nghiêm trọng:" +msgstr "nghiêm trọng: " -#: node.c:59 node.c:66 node.c:75 node.c:90 node.c:119 +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 msgid "can't convert string to float" msgstr "không thể chuyển đổi chuỗi sang điều lơ lửng" -#: node.c:414 +#: node.c:406 msgid "backslash at end of string" -msgstr "xuyệc ngoặc tại kết thức chuỗi" +msgstr "gặp xuyệc ngoặc tại kết thúc của chuỗi" -#: node.c:604 +#: node.c:548 +#, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "awk cũ không hỗ trợ dãy thoát « \\%c »" + +#: node.c:599 msgid "POSIX does not allow `\\x' escapes" -msgstr "POSIX không cho phép điều thoát «\\x»" +msgstr "POSIX không cho phép điều thoát « \\x »" -#: node.c:610 +#: node.c:605 msgid "no hex digits in `\\x' escape sequence" -msgstr "không có số thập lúc phân trong dây thoát «\\x»" +msgstr "không có số thập lúc nằm trong dây thoát « \\x »" -#: node.c:644 +#: node.c:639 #, c-format msgid "escape sequence `\\%c' treated as plain `%c'" -msgstr "dây thoát «\\%c» được xử lý là «%c» giản dị" +msgstr "dây thoát « \\%c » được xử lý như là « %c » chuẩn" #: posix/gawkmisc.c:172 #, c-format msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" msgstr "" -"%s %s «%s»: không lập được «close-on-exec» (đóng một khi thực hiện) (fcntl: %" -"s)" +"%s %s « %s »: không thể đặt « close-on-exec » (đóng một khi thực hiện) " +"(fcntl: %s)" -#: profile.c:91 +#: profile.c:92 #, c-format msgid "could not open `%s' for writing: %s" -msgstr "không mở được «%s» để ghi: %s" +msgstr "không thể mở « %s » để ghi: %s" -#: profile.c:467 +#: profile.c:450 #, c-format msgid "internal error: %s with null vname" -msgstr "lỗi nội bộ: «%s» với vname (tên biến) vô giá trị" +msgstr "lỗi nội bộ: %s với vname (tên biến?) vô giá trị" -#: profile.c:531 +#: profile.c:514 msgid "# treated internally as `delete'" -msgstr "# được xử lý nội bộ là «xóa bỏ»" +msgstr "# được xử lý nội bộ là « delete » (xoá bỏ)" -#: profile.c:1168 +#: profile.c:1147 #, c-format msgid "# this is a dynamically loaded extension function" -msgstr "# đây là một chức năng mở rộng được tải một cách động" +msgstr "# đây là một chức năng mở rộng được tải động" -#: profile.c:1199 +#: profile.c:1178 #, c-format msgid "\t# gawk profile, created %s\n" -msgstr "\t# tiểu sở sơ lược gawk, được tạo %s\n" +msgstr "\t# hồ sơ gawk, được tạo %s\n" -#: profile.c:1202 +#: profile.c:1181 #, c-format msgid "" "\t# BEGIN block(s)\n" @@ -1832,7 +1868,7 @@ "\t# khối BEGIN (bắt đầu)\n" "\n" -#: profile.c:1212 +#: profile.c:1191 #, c-format msgid "" "\t# Rule(s)\n" @@ -1841,177 +1877,181 @@ "\t# Quy tắc\n" "\n" -#: profile.c:1218 +#: profile.c:1197 #, c-format msgid "" "\t# END block(s)\n" "\n" msgstr "" -"\t# khối END (kết thức)\n" +"\t# khối END (kết thúc)\n" "\n" -#: profile.c:1238 +#: profile.c:1217 #, c-format msgid "" "\n" "\t# Functions, listed alphabetically\n" msgstr "" "\n" -"\t# Các chức năng theo thứ tự abc\n" +"\t# Danh sách các chức năng theo thứ tự abc\n" -#: profile.c:1453 +#: profile.c:1470 #, c-format msgid "unexpected type %s in prec_level" -msgstr "gặp kiểu bất ngờ «%s» trong «prec_level» (cấp trước?)" +msgstr "gặp kiểu bất ngờ « %s » trong « prec_level » (cấp nằm trước?)" -#: regcomp.c:160 +#: regcomp.c:132 msgid "Success" msgstr "Thành công" -#: regcomp.c:163 +#: regcomp.c:135 msgid "No match" -msgstr "Không khớp với gì" +msgstr "Không khớp" -#: regcomp.c:166 +#: regcomp.c:138 msgid "Invalid regular expression" msgstr "Biểu thức chính quy không hợp lệ" -#: regcomp.c:169 +#: regcomp.c:141 msgid "Invalid collation character" msgstr "Ký tự đối chiếu không hợp lệ" -#: regcomp.c:172 +#: regcomp.c:144 msgid "Invalid character class name" msgstr "Tên hạng ký tự không hợp lệ" -#: regcomp.c:175 +#: regcomp.c:147 msgid "Trailing backslash" -msgstr "Có xuyệc ngược theo sau" +msgstr "Gặp xuyệc ngược nằm theo" -#: regcomp.c:178 +#: regcomp.c:150 msgid "Invalid back reference" msgstr "Tham chiếu trở lại không hợp lệ" -#: regcomp.c:181 +#: regcomp.c:153 msgid "Unmatched [ or [^" -msgstr "Chưa khớp «[» hay «[^»" +msgstr "Chưa khớp « [ » hay « [^ »" -#: regcomp.c:184 +#: regcomp.c:156 msgid "Unmatched ( or \\(" -msgstr "Chưa khớp «(» hay «\\(»" +msgstr "Chưa khớp « ( » hay « \\( »" -#: regcomp.c:187 +#: regcomp.c:159 msgid "Unmatched \\{" -msgstr "Chưa khớp «\\{»" +msgstr "Chưa khớp « \\{ »" -#: regcomp.c:190 +#: regcomp.c:162 msgid "Invalid content of \\{\\}" -msgstr "Nội dụng «\\{\\}» không hợp lệ" +msgstr "Nội dụng « \\{\\} » không hợp lệ" -#: regcomp.c:193 +#: regcomp.c:165 msgid "Invalid range end" -msgstr "Kết thức miền không hợp lệ" +msgstr "Kết thúc phạm vị không hợp lệ" -#: regcomp.c:196 +#: regcomp.c:168 msgid "Memory exhausted" msgstr "Hết bộ nhớ rồi" -#: regcomp.c:199 +#: regcomp.c:171 msgid "Invalid preceding regular expression" -msgstr "Biểu thức chính quy đi trước không hợp lệ" +msgstr "Biểu thức chính quy nằm trước không hợp lệ" -#: regcomp.c:202 +#: regcomp.c:174 msgid "Premature end of regular expression" -msgstr "Kết thức quá sớm của biểu thức chính quy" +msgstr "Kết thúc quá sớm của biểu thức chính quy" -#: regcomp.c:205 +#: regcomp.c:177 msgid "Regular expression too big" msgstr "Biểu thức chính quy quá lớn" -#: regcomp.c:208 +#: regcomp.c:180 msgid "Unmatched ) or \\)" -msgstr "Chưa khớp «)» hay «\\)»" +msgstr "Chưa khớp « ) » hay « \\) »" -#: regcomp.c:688 +#: regcomp.c:664 msgid "No previous regular expression" -msgstr "Không có biểu thức chính quy đi trước" +msgstr "Không có biểu thức chính quy nằm trước" + +#~ msgid "remote port invalid in `%s'" +#~ msgstr "trong « %s » có cổng từ xa không hợp lệ" #~ msgid "delete: illegal use of variable `%s' as array" #~ msgstr "delete: (xóa bỏ) không cho phép cách dùng biến «%s» là mảng" #~ msgid "asort: first argument is not an array" -#~ msgstr "asort: (sắp xếp) đối số đầu không phải là một mảng" +#~ msgstr "asort: (sắp xếp) đối số đầu không phải là mảng" #~ msgid "asort: second argument is not an array" -#~ msgstr "asort: (sắp xếp) đối số thứ hai không phải là một mảng" +#~ msgstr "asort: (sắp xếp) đối số thứ hai không phải là mảng" #~ msgid "" #~ "\n" #~ "To report bugs, see node `Bugs' in `gawk.info', which is\n" #~ msgstr "" #~ "\n" -#~ "Để thông báo lỗi, hãy xem phần «Bugs» (lỗi) trong tập tin «gawk.info», \n" +#~ "Để thông báo lỗi, hãy xem phần « Bugs » (lỗi) trong tập tin « gawk.info " +#~ "», \n" #~ msgid "invalid syntax in name `%s' for variable assignment" -#~ msgstr "cú pháp không hợp lệ trong tên «%s» trong điều gán biến" +#~ msgstr "cú pháp không hợp lệ trong tên « %s » đối với điều gán biến" #~ msgid "internal error: Node_var_array with null vname" -#~ msgstr "lỗi nội bộ: «Node_var_array» với vname (tên biến) vô giá trị" +#~ msgstr "lỗi nội bộ: « Node_var_array » với vname (tên biến?) vô giá trị" #~ msgid "or used in other expression context" #~ msgstr "hoặc được dùng trong ngữ cảnh biểu thức khác" #~ msgid "`%s' is a function, assignment is not allowed" -#~ msgstr "«%s» là một chức năng thì không cho phép gán" +#~ msgstr "« %s » là một chức năng thì không cho phép gán" #~ msgid "BEGIN blocks must have an action part" -#~ msgstr "Mọi khối BEGIN (bắt đầu) phải có một phần là hành động" +#~ msgstr "Mọi khối BEGIN (bắt đầu) phải có một phần kiểu hành động" #~ msgid "`nextfile' used in BEGIN or END action" #~ msgstr "" -#~ "đã dùng «nextfile» (tập tin kế tiếp) trong hành động «BEGIN» (bắt đầu) " -#~ "hay «END» (kết thức)" +#~ "« nextfile » (tập tin kế tiếp) được dùng trong hành động « BEGIN » (bắt " +#~ "đầu) hay « END » (kết thúc)" #~ msgid "non-redirected `getline' undefined inside BEGIN or END action" #~ msgstr "" -#~ "trong hành động «BEGIN» (đầu) hay «END» (kết thức), có «getline» (lấy " -#~ "dòng) không được chuyển hướng và chưa được định nghĩa." +#~ "trong hành động « BEGIN » (đầu) hay « END » (kết thúc), có « getline " +#~ "» (lấy dòng) không được chuyển hướng lại và chưa được xác định." #~ msgid "fptr %x not in tokentab\n" -#~ msgstr "«fptr %x» không phải trong «tokentab»\n" +#~ msgstr "« fptr %x » không phải nằm trong « tokentab »\n" #~ msgid "gsub third parameter is not a changeable object" #~ msgstr "tham số thứ ba gsub không phải là một đối tượng có thể thay đổi" #~ msgid "Unfinished \\ escape" -#~ msgstr "«\\ escape» chưa xong" +#~ msgstr "« \\ escape » (thoát) chưa xong" #~ msgid "unfinished repeat count" -#~ msgstr "việc đếm lần nữa chưa xong" +#~ msgstr "việc đếm lại chưa xong" #~ msgid "malformed repeat count" -#~ msgstr "việc đếm lần nữa dạng sai" +#~ msgstr "việc đếm lại dạng sai" #~ msgid "Unbalanced [" -#~ msgstr "Chưa cân bằng «[»" +#~ msgstr "Chưa cân bằng « [ »" #~ msgid "Unbalanced (" -#~ msgstr "Chưa cân bằng «(»" +#~ msgstr "Chưa cân bằng « ( »" #~ msgid "No regexp syntax bits specified" #~ msgstr "Chưa ghi rõ bit cú pháp biểu thức chính quy" #~ msgid "Unbalanced )" -#~ msgstr "Chưa cân bằng «)»" +#~ msgstr "Chưa cân bằng « ) »" #~ msgid "out of memory" #~ msgstr "hết bộ nhớ" #~ msgid "field %d in FIELDWIDTHS, must be > 0" -#~ msgstr "trường %d trong «FIELDWIDTHS», phải > 0" +#~ msgstr "trường %d trong « FIELDWIDTHS » phải là > 0" #~ msgid "function %s called\n" -#~ msgstr "đã gọi chức năng «%s»\n" +#~ msgstr "chức năng « %s » được gọi\n" #~ msgid "internal error: file `%s', line %d\n" -#~ msgstr "lỗi nội bộ: tập tin «%s», dòng %d\n" +#~ msgstr "lỗi nội bộ : tập tin « %s », dòng %d\n" diff -urN gawk-3.1.5/po/zh_CN.po gawk-3.1.6/po/zh_CN.po --- gawk-3.1.5/po/zh_CN.po 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/po/zh_CN.po 2007-09-30 22:33:29.000000000 +0200 @@ -0,0 +1,1858 @@ +# Chinese translations for gawk package +# gawk 软件包的简体中文翻译. +# Copyright (C) 2007 Free Software Foundation, Inc. +# This file is distributed under the same license as the gawk package. +# LI Daobing , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: gawk 3.1.5f\n" +"Report-Msgid-Bugs-To: arnold@skeeve.com\n" +"POT-Creation-Date: 2007-09-30 22:33+0200\n" +"PO-Revision-Date: 2007-06-13 03:57+0800\n" +"Last-Translator: LI Daobing \n" +"Language-Team: Chinese (simplified) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: array.c:112 +#, c-format +msgid "attempt to use function `%s' as an array" +msgstr "试图把函数“%s”当数组使用" + +#: array.c:115 +#, c-format +msgid "attempt to use scalar parameter `%s' as an array" +msgstr "试图把标量参数“%s”当数组使用" + +#: array.c:118 +#, c-format +msgid "attempt to use scalar `%s' as array" +msgstr "试图把标量“%s”当数组使用" + +#: array.c:156 +#, c-format +msgid "from %s" +msgstr "从 %s" + +#: array.c:514 +#, c-format +msgid "reference to uninitialized element `%s[\"%s\"]'" +msgstr "引用未初始化的元素“%s[\"%s\"]”" + +#: array.c:520 +#, c-format +msgid "subscript of array `%s' is null string" +msgstr "数组“%s”的下标是空字符串" + +#: array.c:624 +#, c-format +msgid "delete: index `%s' not in array `%s'" +msgstr "删除: 索引“%s”不在数组“%s”中" + +#: array.c:793 +#, c-format +msgid "%s: empty (null)\n" +msgstr "%s: 空(null)\n" + +#: array.c:798 +#, c-format +msgid "%s: empty (zero)\n" +msgstr "%s: 空(zero)\n" + +#: array.c:802 +#, c-format +msgid "%s: table_size = %d, array_size = %d\n" +msgstr "%s: 表格大小 = %d, 数组大小 = %d\n" + +#: array.c:831 +#, c-format +msgid "%s: is parameter\n" +msgstr "%s: 是参数\n" + +#: array.c:836 +#, c-format +msgid "%s: array_ref to %s\n" +msgstr "%s: 数组引用到 %s\n" + +#: awkgram.y:215 +#, c-format +msgid "%s blocks must have an action part" +msgstr "%s 块必须有一个行为部分" + +#: awkgram.y:218 +msgid "each rule must have a pattern or an action part" +msgstr "每个规则必须有一个模式或行为部分" + +#: awkgram.y:254 awkgram.y:263 +msgid "old awk does not support multiple `BEGIN' or `END' rules" +msgstr "老的 awk 不支持多个“BEGIN”或“END”规则" + +#: awkgram.y:282 +#, c-format +msgid "`%s' is a built-in function, it cannot be redefined" +msgstr "“%s”是内置函数,不能被重定义" + +#: awkgram.y:328 +msgid "regexp constant `//' looks like a C++ comment, but is not" +msgstr "正则表达式常量“//”看起来像 C++ 注释,但其实不是" + +#: awkgram.y:331 +#, c-format +msgid "regexp constant `/%s/' looks like a C comment, but is not" +msgstr "正则表达式常量“/%s/”看起来像 C 注释,但其实不是" + +#: awkgram.y:358 awkgram.y:653 +msgid "statement may have no effect" +msgstr "表达式可能无任何效果" + +#: awkgram.y:455 awkgram.y:479 +#, c-format +msgid "`%s' used in %s action" +msgstr "“%s”被用于 %s 行为" + +#: awkgram.y:470 awkgram.y:474 +msgid "`nextfile' is a gawk extension" +msgstr "“nextfile”是 gawk 扩展" + +#: awkgram.y:489 +msgid "`return' used outside function context" +msgstr "“return”在函数外使用" + +#: awkgram.y:531 +msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'" +msgstr "在 BEGIN 或 END 规则中,“print”也许应该写做“print \"\"”" + +#: awkgram.y:547 awkgram.y:555 +msgid "`delete array' is a gawk extension" +msgstr "“delete array”是 gawk 扩展" + +#: awkgram.y:569 awkgram.y:577 +msgid "`delete(array)' is a non-portable tawk extension" +msgstr "“delete(array)”是不可移植的 tawk 扩展" + +#: awkgram.y:621 +#, c-format +msgid "duplicate case values in switch body: %s" +msgstr "switch 中有重复的 case 值: %s" + +#: awkgram.y:631 +msgid "Duplicate `default' detected in switch body" +msgstr "switch 中有重复的“default”" + +#: awkgram.y:720 +msgid "multistage two-way pipelines don't work" +msgstr "多阶双向管道无法工作" + +#: awkgram.y:811 +msgid "regular expression on right of assignment" +msgstr "正则表达式在赋值算符的右边" + +#: awkgram.y:834 +msgid "regular expression on left of `~' or `!~' operator" +msgstr "正则表达式在“~”或“!~”算符的左边" + +#: awkgram.y:840 awkgram.y:913 +msgid "old awk does not support the keyword `in' except after `for'" +msgstr "老 awk 只支持关键词“in”在“for”的后面" + +#: awkgram.y:846 +msgid "regular expression on right of comparison" +msgstr "正则表达式在比较算符的右边" + +#: awkgram.y:903 +msgid "non-redirected `getline' undefined inside END action" +msgstr "在 END 环境中,非重定向的“getline”未定义" + +#: awkgram.y:914 +msgid "old awk does not support multidimensional arrays" +msgstr "老 awk 不支持多维数组" + +#: awkgram.y:960 +msgid "call of `length' without parentheses is not portable" +msgstr "不带括号调用“length”是不可以移植的" + +#: awkgram.y:965 +msgid "call of `length' without parentheses is deprecated by POSIX" +msgstr "POSIX 认为不带括号调用“length”是已过时的" + +#: awkgram.y:1019 +msgid "use of non-array as array" +msgstr "把非数组做数组使用" + +#: awkgram.y:1022 +msgid "invalid subscript expression" +msgstr "无效的下标表达式" + +#: awkgram.y:1249 +msgid "unexpected newline or end of string" +msgstr "未预期的新行或字符串结束" + +#: awkgram.y:1366 +msgid "empty program text on command line" +msgstr "命令行中程序体为空" + +#: awkgram.y:1422 +#, c-format +msgid "can't open source file `%s' for reading (%s)" +msgstr "无法以读模式打开源文件“%s”(%s)" + +#: awkgram.y:1520 +#, c-format +msgid "can't read sourcefile `%s' (%s)" +msgstr "无法读取源文件“%s”(%s)" + +#: awkgram.y:1528 +#, c-format +msgid "source file `%s' is empty" +msgstr "源文件“%s”为空" + +#: awkgram.y:1720 awkgram.y:1842 awkgram.y:1860 awkgram.y:2235 awkgram.y:2322 +msgid "source file does not end in newline" +msgstr "源文件不以换行符结束" + +#: awkgram.y:1782 +msgid "unterminated regexp ends with `\\' at end of file" +msgstr "未终止的正则表达式在文件结束处以“\\”结束" + +#: awkgram.y:1806 +#, c-format +msgid "%s: %d: tawk regex modifier `/.../%c' doesn't work in gawk" +msgstr "%s: %d: tawk 正则表达式修饰符“/.../%c”无法在 gawk 中工作" + +#: awkgram.y:1810 +#, c-format +msgid "tawk regex modifier `/.../%c' doesn't work in gawk" +msgstr "tawk 正则表达式修饰符“/.../%c”无法在 gawk 中工作" + +#: awkgram.y:1817 +msgid "unterminated regexp" +msgstr "未终止的正则表达式" + +#: awkgram.y:1820 +msgid "unterminated regexp at end of file" +msgstr "未终止的正则表达式在文件结束处" + +#: awkgram.y:1889 +msgid "use of `\\ #...' line continuation is not portable" +msgstr "使用“\\ #...”来续行是不可移植的" + +#: awkgram.y:1902 +msgid "backslash not last character on line" +msgstr "反斜杠不是行的最后一个字符" + +#: awkgram.y:1947 +msgid "POSIX does not allow operator `**='" +msgstr "POSIX 不允许操作符“**=”" + +#: awkgram.y:1949 +msgid "old awk does not support operator `**='" +msgstr "老 awk 不支持操作符“**=”" + +#: awkgram.y:1958 +msgid "POSIX does not allow operator `**'" +msgstr "POSIX 不允许操作符“**”" + +#: awkgram.y:1960 +msgid "old awk does not support operator `**'" +msgstr "老 awk 不支持操作符“**”" + +#: awkgram.y:1991 +msgid "operator `^=' is not supported in old awk" +msgstr "老 awk 不支持操作符“^=”" + +#: awkgram.y:1999 +msgid "operator `^' is not supported in old awk" +msgstr "老 awk 不支持操作符“^”" + +#: awkgram.y:2083 awkgram.y:2098 +msgid "unterminated string" +msgstr "未结束的字符串" + +#: awkgram.y:2283 +#, c-format +msgid "invalid char '%c' in expression" +msgstr "表达式中的无效字符“%c”" + +#: awkgram.y:2331 +#, c-format +msgid "`%s' is a gawk extension" +msgstr "“%s”是 gawk 扩展" + +#: awkgram.y:2334 +#, c-format +msgid "`%s' is a Bell Labs extension" +msgstr "“%s”是贝尔实验室扩展" + +#: awkgram.y:2337 +#, c-format +msgid "POSIX does not allow `%s'" +msgstr "POSIX 不允许“%s”" + +#: awkgram.y:2341 +#, c-format +msgid "`%s' is not supported in old awk" +msgstr "老 awk 不支持“%s”" + +#: awkgram.y:2367 +msgid "`goto' considered harmful!\n" +msgstr "“goto”有害!\n" + +#: awkgram.y:2429 +#, c-format +msgid "%d is invalid as number of arguments for %s" +msgstr "%d 是 %s 的无效参数个数" + +#: awkgram.y:2448 awkgram.y:2451 +msgid "match: third argument is a gawk extension" +msgstr "match: 第三个参数是 gawk 扩展" + +#: awkgram.y:2464 +#, c-format +msgid "%s: string literal as last arg of substitute has no effect" +msgstr "%s: 字符串作为 substitute 的最后一个参数无任何效果" + +#: awkgram.y:2467 +#, c-format +msgid "%s third parameter is not a changeable object" +msgstr "%s 第三个参数不是一个可变对象" + +#: awkgram.y:2494 awkgram.y:2497 +msgid "close: second argument is a gawk extension" +msgstr "close: 第二个参数是 gawk 扩展" + +#: awkgram.y:2507 +msgid "use of dcgettext(_\"...\") is incorrect: remove leading underscore" +msgstr "使用 dcgettext(_\"...\") 是错误的: 去掉开始的下划线" + +#: awkgram.y:2522 +msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore" +msgstr "使用 dcngettext(_\"...\") 是错误的: 去掉开始的下划线" + +#: awkgram.y:2594 +#, c-format +msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d" +msgstr "函数“%s”: 第 %d 个参数, “%s”, 与第 %d 个参数重复" + +#: awkgram.y:2627 +#, c-format +msgid "function `%s': parameter `%s' shadows global variable" +msgstr "函数“%s”: 参数“%s”掩盖了公共变量" + +#: awkgram.y:2739 +#, c-format +msgid "could not open `%s' for writing (%s)" +msgstr "无法以写模式打开“%s”(%s)" + +#: awkgram.y:2740 profile.c:94 +msgid "sending profile to standard error" +msgstr "发送配置到标准错误输出" + +#: awkgram.y:2772 +#, c-format +msgid "%s: close failed (%s)" +msgstr "%s: 关闭失败(%s)" + +#: awkgram.y:2893 +msgid "shadow_funcs() called twice!" +msgstr "shadow_funcs() 被调用两次!" + +#: awkgram.y:2920 +msgid "there were shadowed variables." +msgstr "那里有被掩盖的变量。" + +#: awkgram.y:2993 +#, c-format +msgid "function `%s': can't use function name as parameter name" +msgstr "函数“%s”: 无法使用函数名作为参数名" + +#: awkgram.y:3003 +#, c-format +msgid "function name `%s' previously defined" +msgstr "函数名“%s”前面已定义" + +#: awkgram.y:3154 awkgram.y:3160 +#, c-format +msgid "function `%s' called but never defined" +msgstr "函数“%s”被调用但重未被定义" + +#: awkgram.y:3163 +#, c-format +msgid "function `%s' defined but never called" +msgstr "函数“%s”被定义但重未被调用" + +#: awkgram.y:3190 +#, c-format +msgid "regexp constant for parameter #%d yields boolean value" +msgstr "第 %d 个参数的正则表达式常量产生布尔值" + +#: awkgram.y:3234 +#, c-format +msgid "" +"function `%s' called with space between name and `(',\n" +"or used as a variable or an array" +msgstr "" +"函数“%s”被调用时名字与“(”间有空格,\n" +"或被用作变量或数组" + +#: builtin.c:119 +#, c-format +msgid "%s to \"%s\" failed (%s)" +msgstr "%s 到 \"%s\" 失败 (%s)" + +#: builtin.c:120 +msgid "standard output" +msgstr "标准输出" + +#: builtin.c:121 +msgid "reason unknown" +msgstr "未知原因" + +#: builtin.c:134 +msgid "exp: received non-numeric argument" +msgstr "exp: 收到非数字参数" + +#: builtin.c:140 +#, c-format +msgid "exp: argument %g is out of range" +msgstr "exp: 参数 %g 超出范围" + +#: builtin.c:198 +#, c-format +msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing" +msgstr "fflush: 无法使用: 管道“%s”以只读方式打开,不可写" + +#: builtin.c:201 +#, c-format +msgid "fflush: cannot flush: file `%s' opened for reading, not writing" +msgstr "fflush: 无法使用: 文件“%s”以只读方式打开,不可写" + +#: builtin.c:213 +#, c-format +msgid "fflush: `%s' is not an open file, pipe or co-process" +msgstr "fflush: “%s”不是一个已打开文件、管道或合作进程" + +#: builtin.c:306 +msgid "index: received non-string first argument" +msgstr "index: 第一个参数不是字符串" + +#: builtin.c:308 +msgid "index: received non-string second argument" +msgstr "index: 第二个参数不是字符串" + +#: builtin.c:423 +msgid "int: received non-numeric argument" +msgstr "int: 收到非数字参数" + +#: builtin.c:448 +msgid "`length(array)' is a gawk extension" +msgstr "“length(array)”是 gawk 扩展" + +#: builtin.c:458 +msgid "length: received non-string argument" +msgstr "length: 收到非字符串参数" + +#: builtin.c:483 +msgid "log: received non-numeric argument" +msgstr "log: 收到非数字参数" + +#: builtin.c:486 +#, c-format +msgid "log: received negative argument %g" +msgstr "log: 收到负数参数 %g" + +#: builtin.c:693 builtin.c:696 +msgid "must use `count$' on all formats or none" +msgstr "要么在所有格式上使用“count$”,要么完全不使用" + +#: builtin.c:799 +msgid "`$' is not permitted in awk formats" +msgstr "awk 格式中不允许 “$”" + +#: builtin.c:805 +msgid "arg count with `$' must be > 0" +msgstr "含有“$”的参数个数必须大于0" + +#: builtin.c:807 +#, c-format +msgid "arg count %ld greater than total number of supplied arguments" +msgstr "参数个数 %ld 大于提供的参数总个数" + +#: builtin.c:809 +msgid "`$' not permitted after period in format" +msgstr "格式不允许在“.”后使用“$”" + +#: builtin.c:822 +msgid "no `$' supplied for positional field width or precision" +msgstr "没有为格式宽度或精度提供“$”" + +#: builtin.c:888 +msgid "`l' is meaningless in awk formats; ignored" +msgstr "“l”在 awk 格式中无意义;忽略" + +#: builtin.c:892 +msgid "`l' is not permitted in POSIX awk formats" +msgstr "“l”不允许在 POSIX awk 格式中使用" + +#: builtin.c:903 +msgid "`L' is meaningless in awk formats; ignored" +msgstr "“L”在 awk 格式中无意义;忽略" + +#: builtin.c:907 +msgid "`L' is not permitted in POSIX awk formats" +msgstr "“L”不允许在 POSIX awk 格式中使用" + +#: builtin.c:918 +msgid "`h' is meaningless in awk formats; ignored" +msgstr "“h”在 awk 格式中无意义;忽略" + +#: builtin.c:922 +msgid "`h' is not permitted in POSIX awk formats" +msgstr "“h”不允许在 POSIX awk 格式中使用" + +#: builtin.c:1182 +#, c-format +msgid "[s]printf: value %g is out of range for `%%%c' format" +msgstr "[s]printf: 值 %g 对“%%%c”格式来说超出范围" + +#: builtin.c:1266 +msgid "not enough arguments to satisfy format string" +msgstr "相对格式来说参数个数不足" + +#: builtin.c:1268 +msgid "^ ran out for this one" +msgstr "^ 跑出范围" + +#: builtin.c:1274 +msgid "[s]printf: format specifier does not have control letter" +msgstr "[s]printf: 指定格式不含控制字符" + +#: builtin.c:1277 +msgid "too many arguments supplied for format string" +msgstr "相对格式来说参数个数过多" + +#: builtin.c:1352 builtin.c:1355 +msgid "printf: no arguments" +msgstr "printf: 没有参数" + +#: builtin.c:1379 +msgid "sqrt: received non-numeric argument" +msgstr "sqrt: 收到非数字参数" + +#: builtin.c:1383 +#, c-format +msgid "sqrt: called with negative argument %g" +msgstr "sqrt: 收到负数参数 %g" + +#: builtin.c:1407 +#, c-format +msgid "substr: start index %g is invalid, using 1" +msgstr "substr: 开始坐标 %g 无效,使用 1" + +#: builtin.c:1412 +#, c-format +msgid "substr: non-integer start index %g will be truncated" +msgstr "substr: 非整数的开始坐标 %g 会被截断" + +#: builtin.c:1431 +#, c-format +msgid "substr: length %g is not >= 1" +msgstr "substr: 长度 %g 小于 1" + +#: builtin.c:1433 +#, c-format +msgid "substr: length %g is not >= 0" +msgstr "substr: 长度 %g 小于 0" + +#: builtin.c:1440 +#, c-format +msgid "substr: non-integer length %g will be truncated" +msgstr "substr: 非整数的长度 %g 会被截断" + +#: builtin.c:1445 +#, c-format +msgid "substr: length %g too big for string indexing, truncating to %g" +msgstr "substr: 长度 %g 作为字符串坐标过大,截断至 %g" + +#: builtin.c:1457 +msgid "substr: source string is zero length" +msgstr "substr: 源字符串长度为0" + +#: builtin.c:1473 +#, c-format +msgid "substr: start index %g is past end of string" +msgstr "substr: 开始坐标 %g 超出字符串尾部" + +#: builtin.c:1481 +#, c-format +msgid "" +"substr: length %g at start index %g exceeds length of first argument (%lu)" +msgstr "substr: 在开始坐标 %2$g 下长度 %1$g 超出第一个参数的长度 (%3$lu)" + +#: builtin.c:1558 +msgid "strftime: received non-string first argument" +msgstr "strftime: 第一个参数不是字符串" + +#: builtin.c:1564 +msgid "strftime: received empty format string" +msgstr "strftime: 收到空格式字符串" + +#: builtin.c:1573 +msgid "strftime: received non-numeric second argument" +msgstr "strftime: 第二个参数不是数字" + +#: builtin.c:1650 +msgid "mktime: received non-string argument" +msgstr "mktime: 收到非字符串参数" + +#: builtin.c:1695 +msgid "system: received non-string argument" +msgstr "system: 收到非字符串参数" + +#: builtin.c:1816 eval.c:2041 +#, c-format +msgid "reference to uninitialized field `$%d'" +msgstr "引用未初始化的字段“$%d”" + +#: builtin.c:1921 +msgid "tolower: received non-string argument" +msgstr "tolower: 收到非字符串参数" + +#: builtin.c:1951 +msgid "toupper: received non-string argument" +msgstr "toupper: 收到非字符串参数" + +#: builtin.c:1984 +msgid "atan2: received non-numeric first argument" +msgstr "atan2: 第一个参数不是数字" + +#: builtin.c:1986 +msgid "atan2: received non-numeric second argument" +msgstr "atan2: 第二个参数不是数字" + +#: builtin.c:2005 +msgid "sin: received non-numeric argument" +msgstr "sin: 收到非数字参数" + +#: builtin.c:2021 +msgid "cos: received non-numeric argument" +msgstr "cos: 收到非数字参数" + +#: builtin.c:2071 +msgid "srand: received non-numeric argument" +msgstr "srand: 收到非数字参数" + +#: builtin.c:2106 +msgid "match: third argument is not an array" +msgstr "match: 第三个参数不是数组" + +#: builtin.c:2650 +msgid "gensub: third argument of 0 treated as 1" +msgstr "gensub: 第三个参数 0 被当作 1" + +#: builtin.c:2766 +msgid "lshift: received non-numeric first argument" +msgstr "lshift: 第一个参数不是数字" + +#: builtin.c:2768 +msgid "lshift: received non-numeric second argument" +msgstr "lshift: 第二个参数不是数字" + +#: builtin.c:2774 +#, c-format +msgid "lshift(%lf, %lf): negative values will give strange results" +msgstr "lshift(%lf, %lf): 负值会得到奇怪的结果" + +#: builtin.c:2776 +#, c-format +msgid "lshift(%lf, %lf): fractional values will be truncated" +msgstr "lshift(%lf, %lf): 小数部分会被截断" + +#: builtin.c:2778 +#, c-format +msgid "lshift(%lf, %lf): too large shift value will give strange results" +msgstr "lshift(%lf, %lf): 过大的移位会得到奇怪的结果" + +#: builtin.c:2804 +msgid "rshift: received non-numeric first argument" +msgstr "rshift: 第一个参数不是数字" + +#: builtin.c:2806 +msgid "rshift: received non-numeric second argument" +msgstr "rshift: 第二个参数不是数字" + +#: builtin.c:2812 +#, c-format +msgid "rshift(%lf, %lf): negative values will give strange results" +msgstr "rshift(%lf, %lf): 负值会得到奇怪的结果" + +#: builtin.c:2814 +#, c-format +msgid "rshift(%lf, %lf): fractional values will be truncated" +msgstr "rshift(%lf, %lf): 小数部分会被截断" + +#: builtin.c:2816 +#, c-format +msgid "rshift(%lf, %lf): too large shift value will give strange results" +msgstr "rshift(%lf, %lf): 过大的移位会得到奇怪的结果" + +#: builtin.c:2842 +msgid "and: received non-numeric first argument" +msgstr "and: 第一个参数不是数字" + +#: builtin.c:2844 +msgid "and: received non-numeric second argument" +msgstr "and: 第二个参数不是数字" + +#: builtin.c:2850 +#, c-format +msgid "and(%lf, %lf): negative values will give strange results" +msgstr "and(%lf, %lf): 负值会得到奇怪的结果" + +#: builtin.c:2852 +#, c-format +msgid "and(%lf, %lf): fractional values will be truncated" +msgstr "and(%lf, %lf): 小数部分会被截断" + +#: builtin.c:2878 +msgid "or: received non-numeric first argument" +msgstr "or: 第一个参数不是数字" + +#: builtin.c:2880 +msgid "or: received non-numeric second argument" +msgstr "or: 第二个参数不是数字" + +#: builtin.c:2886 +#, c-format +msgid "or(%lf, %lf): negative values will give strange results" +msgstr "or(%lf, %lf): 负值会得到奇怪的结果" + +#: builtin.c:2888 +#, c-format +msgid "or(%lf, %lf): fractional values will be truncated" +msgstr "or(%lf, %lf): 小数部分会被截断" + +#: builtin.c:2914 +msgid "xor: received non-numeric first argument" +msgstr "xor: 第一个参数不是数字" + +#: builtin.c:2916 +msgid "xor: received non-numeric second argument" +msgstr "xor: 第二个参数不是数字" + +#: builtin.c:2922 +#, c-format +msgid "xor(%lf, %lf): negative values will give strange results" +msgstr "xor(%lf, %lf): 负值会得到奇怪的结果" + +#: builtin.c:2924 +#, c-format +msgid "xor(%lf, %lf): fractional values will be truncated" +msgstr "xor(%lf, %lf): 小数部分会被截断" + +#: builtin.c:2948 +msgid "compl: received non-numeric argument" +msgstr "compl: 收到非数字参数" + +#: builtin.c:2954 +#, c-format +msgid "compl(%lf): negative value will give strange results" +msgstr "compl(%lf): 负值会得到奇怪的结果" + +#: builtin.c:2956 +#, c-format +msgid "compl(%lf): fractional value will be truncated" +msgstr "compl(%lf): 小数部分会被截断" + +#: builtin.c:3129 +#, c-format +msgid "dcgettext: `%s' is not a valid locale category" +msgstr "dcgettext: “%s”不是一个合理的本地化目录" + +#: eval.c:303 +#, c-format +msgid "unknown nodetype %d" +msgstr "未知的结点类型 %d" + +#: eval.c:353 +msgid "buffer overflow in genflags2str" +msgstr "genflags2str 时缓冲区溢出" + +#: eval.c:385 eval.c:391 profile.c:817 +#, c-format +msgid "attempt to use array `%s' in a scalar context" +msgstr "试图在标量环境中使用数组“%s”" + +#: eval.c:733 +#, c-format +msgid "for loop: array `%s' changed size from %ld to %ld during loop execution" +msgstr "for loop: 数组“%s”在循环执行时大小从 %ld 改变为 %ld" + +#: eval.c:754 +msgid "`break' outside a loop is not portable" +msgstr "“break”在循环外使用是不可移植的" + +#: eval.c:758 +msgid "`break' outside a loop is not allowed" +msgstr "“break”在循环外使用是不允许的" + +#: eval.c:775 +msgid "`continue' outside a loop is not portable" +msgstr "“continue”在循环外使用是不可移植的" + +#: eval.c:779 +msgid "`continue' outside a loop is not allowed" +msgstr "“continue”在循环外使用是不允许的" + +#: eval.c:813 +msgid "`next' cannot be called from a BEGIN rule" +msgstr "在 BEGIN 规则中不允许调用“next”" + +#: eval.c:815 +msgid "`next' cannot be called from an END rule" +msgstr "在 END 规则中不允许调用“next”" + +#: eval.c:824 +msgid "`nextfile' cannot be called from a BEGIN rule" +msgstr "在 BEGIN 规则中不允许调用“nextfile”" + +#: eval.c:826 +msgid "`nextfile' cannot be called from an END rule" +msgstr "在 END 规则中不允许调用“nextfile”" + +#: eval.c:875 +msgid "statement has no effect" +msgstr "表达式无任何作用" + +#: eval.c:952 eval.c:1895 +#, c-format +msgid "can't use function name `%s' as variable or array" +msgstr "无法使用函数名“%s”作为变量或数组" + +#: eval.c:959 eval.c:965 +#, c-format +msgid "reference to uninitialized argument `%s'" +msgstr "引用未初始化的参数“%s”" + +#: eval.c:974 eval.c:1904 +#, c-format +msgid "reference to uninitialized variable `%s'" +msgstr "引用未初始化的变量“%s”" + +#: eval.c:1120 +msgid "" +"concatenation: side effects in one expression have changed the length of " +"another!" +msgstr "concatenation: 一个表达式的额外效应已改变另一个的长度!" + +#: eval.c:1202 +msgid "assignment used in conditional context" +msgstr "在条件表达式中赋值" + +#: eval.c:1280 +msgid "division by zero attempted" +msgstr "试图除0" + +#: eval.c:1295 +#, c-format +msgid "division by zero attempted in `%%'" +msgstr "在“%%”中试图除0" + +#: eval.c:1310 profile.c:693 +#, c-format +msgid "illegal type (%s) in tree_eval" +msgstr "tree_eval 中的非法类型 (%s)" + +#: eval.c:1473 +msgid "division by zero attempted in `/='" +msgstr "在“/=”中试图除0" + +#: eval.c:1495 +#, c-format +msgid "division by zero attempted in `%%='" +msgstr "在“%%=”中试图除0" + +#: eval.c:1760 +#, c-format +msgid "function `%s' called with more arguments than declared" +msgstr "函数“%s”被调用时提供了比声明时更多的参数" + +#: eval.c:1804 +#, c-format +msgid "function `%s' not defined" +msgstr "函数“%s”未定义" + +#: eval.c:1867 +#, c-format +msgid "" +"\n" +"\t# Function Call Stack:\n" +"\n" +msgstr "" +"\n" +"\t# 函数调用栈:\n" +"\n" + +#: eval.c:1870 +#, c-format +msgid "\t# -- main --\n" +msgstr "\t# -- main --\n" + +#: eval.c:2025 +msgid "attempt to field reference from non-numeric value" +msgstr "试图从非数值引用字段编号" + +#: eval.c:2027 +msgid "attempt to reference from null string" +msgstr "试图从空字符串引用" + +#: eval.c:2033 +#, c-format +msgid "attempt to access field %d" +msgstr "试图访问字段 %d" + +#: eval.c:2054 eval.c:2061 profile.c:914 +msgid "assignment is not allowed to result of builtin function" +msgstr "不允许对内置函数的结果赋值" + +#: eval.c:2125 +msgid "`IGNORECASE' is a gawk extension" +msgstr "“IGNORECASE”是 gawk 扩展" + +#: eval.c:2155 +msgid "`BINMODE' is a gawk extension" +msgstr "“BINMODE”是 gawk 扩展" + +#: eval.c:2277 +#, c-format +msgid "bad `%sFMT' specification `%s'" +msgstr "错误的“%sFMT”实现“%s”" + +#: eval.c:2355 +msgid "turning off `--lint' due to assignment to `LINT'" +msgstr "由于对“LINT”赋值所以关闭“--lint”" + +#: ext.c:62 ext.c:67 +msgid "`extension' is a gawk extension" +msgstr "“extension”是 gawk 扩展" + +#: ext.c:77 +#, c-format +msgid "extension: cannot open `%s' (%s)\n" +msgstr "extension: 无法打开 “%s”(%s)\n" + +#: ext.c:85 +#, c-format +msgid "extension: library `%s': cannot call function `%s' (%s)\n" +msgstr "extension: 库“%s”: 无法调用函数“%s”(%s)\n" + +#: ext.c:105 +msgid "extension: missing function name" +msgstr "extension: 缺少函数名" + +#: ext.c:110 +#, c-format +msgid "extension: illegal character `%c' in function name `%s'" +msgstr "extension: 函数名“%2$s”中有非法字符“%1$c”" + +#: ext.c:116 +#, c-format +msgid "extension: can't redefine function `%s'" +msgstr "extension: 无法重定义函数“%s”" + +#: ext.c:120 +#, c-format +msgid "extension: function `%s' already defined" +msgstr "extension: 函数“%s”已经被定义" + +#: ext.c:125 +#, c-format +msgid "extension: can't use gawk built-in `%s' as function name" +msgstr "extension: 无法使用 gawk 内置的 “%s” 作为函数名" + +#: ext.c:127 +#, c-format +msgid "extension: function name `%s' previously defined" +msgstr "extension: 函数名“%s”前面已被定义" + +#: ext.c:204 +#, c-format +msgid "function `%s' defined to take no more than %d argument(s)" +msgstr "函数“%s”被定义为支持不超过 %d 个参数" + +#: ext.c:207 +#, c-format +msgid "function `%s': missing argument #%d" +msgstr "函数“%s”: 缺少第 %d 个参数" + +#: ext.c:217 +#, c-format +msgid "function `%s': argument #%d: attempt to use scalar as an array" +msgstr "函数“%s”: 第 %d 个参数: 试图把标量当作数组使用" + +#: ext.c:221 +#, c-format +msgid "function `%s': argument #%d: attempt to use array as a scalar" +msgstr "函数“%s”: 第 %d 个参数: 试图把数组当标量使用" + +#: ext.c:246 +msgid "Operation Not Supported" +msgstr "操作不被支持" + +#: field.c:330 +msgid "NF set to negative value" +msgstr "NF 被设置为负值" + +#: field.c:823 +msgid "split: second argument is not an array" +msgstr "split: 第二个参数不是数组" + +#: field.c:857 +msgid "split: null string for third arg is a gawk extension" +msgstr "split: 第三个参数为空是 gawk 扩展" + +#: field.c:909 +msgid "`FIELDWIDTHS' is a gawk extension" +msgstr "“FIELDWIDTHS”是 gawk 扩展" + +#: field.c:939 field.c:953 +#, c-format +msgid "invalid FIELDWIDTHS value, near `%s'" +msgstr "“%s”附近 FIELDWIDTHS 值无效" + +#: field.c:1036 +msgid "null string for `FS' is a gawk extension" +msgstr "把“FS”设为空字符串是 gawk 扩展" + +#: field.c:1040 +msgid "old awk does not support regexps as value of `FS'" +msgstr "老 awk 不支持把“FS”设置为正则表达式" + +#: getopt.c:571 getopt.c:587 +#, c-format +msgid "%s: option `%s' is ambiguous\n" +msgstr "%s: 选项“%s”有歧义\n" + +#: getopt.c:620 getopt.c:624 +#, c-format +msgid "%s: option `--%s' doesn't allow an argument\n" +msgstr "%s: 选项“--%s”不允许有参数\n" + +#: getopt.c:633 getopt.c:638 +#, c-format +msgid "%s: option `%c%s' doesn't allow an argument\n" +msgstr "%s: 选项“%c%s”不允许有参数\n" + +#: getopt.c:681 getopt.c:700 getopt.c:1016 getopt.c:1035 +#, c-format +msgid "%s: option `%s' requires an argument\n" +msgstr "%s: 选项“%s”需要一个参数\n" + +#: getopt.c:738 getopt.c:741 +#, c-format +msgid "%s: unrecognized option `--%s'\n" +msgstr "%s: 无法识别选项“--%s”\n" + +#: getopt.c:749 getopt.c:752 +#, c-format +msgid "%s: unrecognized option `%c%s'\n" +msgstr "%s: 无法识别选项“%c%s”\n" + +#: getopt.c:804 getopt.c:807 +#, c-format +msgid "%s: illegal option -- %c\n" +msgstr "%s: 非法选项 -- %c\n" + +#: getopt.c:813 getopt.c:816 +#, c-format +msgid "%s: invalid option -- %c\n" +msgstr "%s: 无效选项 -- %c\n" + +#: getopt.c:868 getopt.c:884 getopt.c:1088 getopt.c:1106 main.c:461 +#, c-format +msgid "%s: option requires an argument -- %c\n" +msgstr "%s: 选项需要一个参数 -- %c\n" + +#: getopt.c:937 getopt.c:953 +#, c-format +msgid "%s: option `-W %s' is ambiguous\n" +msgstr "%s: 选项“-W %s”有歧义\n" + +#: getopt.c:977 getopt.c:995 +#, c-format +msgid "%s: option `-W %s' doesn't allow an argument\n" +msgstr "%s: 选项“-W %s”不允许参数\n" + +#: io.c:345 +#, c-format +msgid "cannot open file `%s' for reading (%s)" +msgstr "无法以读模式打开文件“%s”(%s)" + +#: io.c:436 +#, c-format +msgid "close of fd %d (`%s') failed (%s)" +msgstr "关闭文件号 %d (“%s”)失败(%s)" + +#: io.c:575 +#, c-format +msgid "invalid tree type %s in redirect()" +msgstr "在 redirect() 中的无效的树类型 %s" + +#: io.c:581 +#, c-format +msgid "expression in `%s' redirection only has numeric value" +msgstr "“%s”重定向中的表达式只有数字值" + +#: io.c:587 +#, c-format +msgid "expression for `%s' redirection has null string value" +msgstr "“%s”重定向中的表达式是空字符串" + +#: io.c:592 +#, c-format +msgid "filename `%s' for `%s' redirection may be result of logical expression" +msgstr "“%2$s”重定向中的文件名“%1$s”可能是逻辑表达式的结果" + +#: io.c:630 +#, c-format +msgid "unnecessary mixing of `>' and `>>' for file `%.*s'" +msgstr "在文件“%.*s”中不必要的混合使用“>”和“>>”" + +#: io.c:682 +#, c-format +msgid "can't open pipe `%s' for output (%s)" +msgstr "无法为输出打开管道“%s”(%s)" + +#: io.c:691 +#, c-format +msgid "can't open pipe `%s' for input (%s)" +msgstr "无法为输入打开管道“%s”(%s)" + +#: io.c:698 io.c:1448 +#, c-format +msgid "file `%s' is a directory" +msgstr "文件“%s”是一个目录" + +#: io.c:706 +#, c-format +msgid "can't open two way socket `%s' for input/output (%s)" +msgstr "无法为输入/输出打开双向端口“%s”(%s)" + +#: io.c:710 +#, c-format +msgid "can't open two way pipe `%s' for input/output (%s)" +msgstr "无法为输入/输出打开双向管道“%s”(%s)" + +#: io.c:786 +#, c-format +msgid "can't redirect from `%s' (%s)" +msgstr "无法自“%s”重定向(%s)" + +#: io.c:789 +#, c-format +msgid "can't redirect to `%s' (%s)" +msgstr "无法重定向到“%s”(%s)" + +#: io.c:828 +msgid "" +"reached system limit for open files: starting to multiplex file descriptors" +msgstr "打开的文件数达到系统限制: 开始复用文件描述符" + +#: io.c:844 +#, c-format +msgid "close of `%s' failed (%s)." +msgstr "关闭“%s”失败(%s)。" + +#: io.c:852 +msgid "too many pipes or input files open" +msgstr "打开过多管道或输入文件" + +#: io.c:875 +msgid "close: second argument must be `to' or `from'" +msgstr "close: 第二个参数必须是“to”或“from”" + +#: io.c:889 +#, c-format +msgid "close: `%.*s' is not an open file, pipe or co-process" +msgstr "close: “%.*s”不是一个已打开文件、管道或合作进程" + +#: io.c:893 +msgid "close of redirection that was never opened" +msgstr "关闭一个从未被打开的重定向" + +#: io.c:989 +#, c-format +msgid "close: redirection `%s' not opened with `|&', second argument ignored" +msgstr "close: 重定向“%s”不是用“|&”打开,第二个参数被忽略" + +#: io.c:1005 +#, c-format +msgid "failure status (%d) on pipe close of `%s' (%s)" +msgstr "关闭管道“%2$s”时失败,失败状态为(%1$d)(%3$s)" + +#: io.c:1008 +#, c-format +msgid "failure status (%d) on file close of `%s' (%s)" +msgstr "关闭文件“%2$s”时失败,失败状态为(%1$d)(%3$s)" + +#: io.c:1028 +#, c-format +msgid "no explicit close of socket `%s' provided" +msgstr "未显式关闭端口“%s”" + +#: io.c:1031 +#, c-format +msgid "no explicit close of co-process `%s' provided" +msgstr "未显式关闭合作进程“%s”" + +#: io.c:1034 +#, c-format +msgid "no explicit close of pipe `%s' provided" +msgstr "未显式关闭管道“%s”" + +#: io.c:1037 +#, c-format +msgid "no explicit close of file `%s' provided" +msgstr "未显式关闭文件“%s”" + +#: io.c:1066 io.c:1121 main.c:749 main.c:791 +#, c-format +msgid "error writing standard output (%s)" +msgstr "向标准输出写时发生错误 (%s)" + +#: io.c:1070 io.c:1126 +#, c-format +msgid "error writing standard error (%s)" +msgstr "向标准错误输出写时发生错误 (%s)" + +#: io.c:1078 +#, c-format +msgid "pipe flush of `%s' failed (%s)." +msgstr "刷新管道“%s”时出错(%s)。" + +#: io.c:1081 +#, c-format +msgid "co-process flush of pipe to `%s' failed (%s)." +msgstr "刷新合作进程管道“%s”时出错(%s)。" + +#: io.c:1084 +#, c-format +msgid "file flush of `%s' failed (%s)." +msgstr "刷新文件“%s”时出错(%s)。" + +#: io.c:1198 +#, c-format +msgid "local port %s invalid in `/inet'" +msgstr "本地端口 %s 在“/inet”中无效" + +#: io.c:1215 +#, c-format +msgid "remote host and port information (%s, %s) invalid" +msgstr "远程主机和端口信息 (%s, %s) 无效" + +#: io.c:1250 +msgid "/inet/raw client not ready yet, sorry" +msgstr "/inet/raw 客户端未准备好,对不起" + +#: io.c:1253 io.c:1289 +msgid "only root may use `/inet/raw'." +msgstr "仅 root 能使用 “/inet/raw”" + +#: io.c:1287 +msgid "/inet/raw server not ready yet, sorry" +msgstr "/inet/raw 服务器未准备好,对不起" + +#: io.c:1385 +#, c-format +msgid "no (known) protocol supplied in special filename `%s'" +msgstr "未提供特殊文件名的“%s”的访问协议" + +#: io.c:1399 +#, c-format +msgid "special file name `%s' is incomplete" +msgstr "特殊文件名“%s”是不完整的" + +#: io.c:1414 +msgid "must supply a remote hostname to `/inet'" +msgstr "必须提供远程主机名给“/inet”" + +#: io.c:1432 +msgid "must supply a remote port to `/inet'" +msgstr "必须提供远程端口给“/inet”" + +#: io.c:1439 +msgid "TCP/IP communications are not supported" +msgstr "TCP/IP 通讯不被支持" + +#: io.c:1509 +#, c-format +msgid "use `PROCINFO[\"%s\"]' instead of `%s'" +msgstr "使用“PROCINFO[\"%s\"]”而不是“%s”" + +#: io.c:1547 +msgid "use `PROCINFO[...]' instead of `/dev/user'" +msgstr "使用“PROCINFO[...]”而不是“/dev/user”" + +#: io.c:1612 io.c:1798 +#, c-format +msgid "could not open `%s', mode `%s'" +msgstr "无法以模式“%2$s”打开“%1$s”" + +#: io.c:1849 +#, c-format +msgid "close of master pty failed (%s)" +msgstr "关闭主 pty 失败(%s)" + +#: io.c:1851 io.c:2003 io.c:2154 +#, c-format +msgid "close of stdout in child failed (%s)" +msgstr "在子进程中关闭标准输出失败(%s)" + +#: io.c:1854 +#, c-format +msgid "moving slave pty to stdout in child failed (dup: %s)" +msgstr "在子进程中将从 pty 改为标准输出失败(dup: %s)" + +#: io.c:1856 io.c:2008 +#, c-format +msgid "close of stdin in child failed (%s)" +msgstr "在子进程中关闭标准输入失败(%s)" + +#: io.c:1859 +#, c-format +msgid "moving slave pty to stdin in child failed (dup: %s)" +msgstr "在子进程中将从 pty 改为标准输入失败(dup: %s)" + +#: io.c:1861 io.c:1880 +#, c-format +msgid "close of slave pty failed (%s)" +msgstr "关闭从 pty 失败(%s)" + +#: io.c:1954 io.c:2006 io.c:2135 io.c:2157 +#, c-format +msgid "moving pipe to stdout in child failed (dup: %s)" +msgstr "在子进程中将管道改为标准输出失败(dup: %s)" + +#: io.c:1958 io.c:2011 +#, c-format +msgid "moving pipe to stdin in child failed (dup: %s)" +msgstr "在子进程中将管道改为标准输入失败(dup: %s)" + +#: io.c:1975 io.c:2148 +msgid "restoring stdout in parent process failed\n" +msgstr "在父进程中恢复标准输出失败\n" + +#: io.c:1980 +msgid "restoring stdin in parent process failed\n" +msgstr "在父进程中恢复标准输入失败\n" + +#: io.c:2014 io.c:2159 io.c:2170 +#, c-format +msgid "close of pipe failed (%s)" +msgstr "关闭管道失败(%s)" + +#: io.c:2059 +msgid "`|&' not supported" +msgstr "“|&”不被支持" + +#: io.c:2125 +#, c-format +msgid "cannot open pipe `%s' (%s)" +msgstr "无法打开管道“%s”(%s)" + +#: io.c:2166 +#, c-format +msgid "cannot create child process for `%s' (fork: %s)" +msgstr "无法为“%s”创建子进程(fork: %s)" + +#: io.c:2548 +#, c-format +msgid "data file `%s' is empty" +msgstr "数据文件“%s”为空" + +#: io.c:2589 io.c:2597 +msgid "could not allocate more input memory" +msgstr "无法分配更多的输入内存" + +#: io.c:2965 io.c:3038 +#, c-format +msgid "error reading input file `%s': %s" +msgstr "读取输入文件“%s”时出错: %s" + +#: io.c:3163 +msgid "multicharacter value of `RS' is a gawk extension" +msgstr "“RS”设置为多字符是 gawk 扩展" + +#: main.c:351 +msgid "`-m[fr]' option irrelevant in gawk" +msgstr "“-m[fr]”选项在 gawk 中不相关" + +#: main.c:353 +msgid "-m option usage: `-m[fr] nnn'" +msgstr "-m 选项用法: “-m[fr] nnn”" + +#: main.c:370 +#, c-format +msgid "%s: option `-W %s' unrecognized, ignored\n" +msgstr "%s: 选项“-W %s”无法识别,忽略\n" + +#: main.c:407 +msgid "empty argument to `--source' ignored" +msgstr "“--source”的空参数被忽略" + +#: main.c:480 +msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'" +msgstr "环境变量“POSIXLY_CORRECT”被设置: 打开“--posix”" + +#: main.c:486 +msgid "`--posix' overrides `--traditional'" +msgstr "“--posix”覆盖“--traditional”" + +#: main.c:497 +msgid "`--posix'/`--traditional' overrides `--non-decimal-data'" +msgstr "“--posix”或“--traditional”覆盖“--non-decimal-data”" + +#: main.c:501 +#, c-format +msgid "running %s setuid root may be a security problem" +msgstr "以设置 root ID 方式运行“%s”可能存在安全漏洞" + +#: main.c:542 +#, c-format +msgid "can't set binary mode on stdin (%s)" +msgstr "无法在标准输入上设置二进制模式(%s)" + +#: main.c:545 +#, c-format +msgid "can't set binary mode on stdout (%s)" +msgstr "无法在标准输出上设置二进制模式(%s)" + +#: main.c:547 +#, c-format +msgid "can't set binary mode on stderr (%s)" +msgstr "无法在标准错误输出上设置二进制模式(%s)" + +#: main.c:586 +msgid "no program text at all!" +msgstr "完全没有程序正文!" + +#: main.c:690 +#, c-format +msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n" +msgstr "用法: %s [POSIX 或 GNU 风格选项] -f 脚本文件 [--] 文件 ...\n" + +#: main.c:692 +#, c-format +msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n" +msgstr "用法: %s [POSIX 或 GNU 风格选项] [--] %c程序%c 文件 ...\n" + +#: main.c:697 +msgid "POSIX options:\t\tGNU long options:\n" +msgstr "POSIX 选项: \t\tGNU 长选项:\n" + +#: main.c:698 +msgid "\t-f progfile\t\t--file=progfile\n" +msgstr "\t-f 脚本文件\t\t--file=脚本文件\n" + +#: main.c:699 +msgid "\t-F fs\t\t\t--field-separator=fs\n" +msgstr "\t-F fs\t\t\t--field-separator=fs\n" + +#: main.c:700 +msgid "\t-v var=val\t\t--assign=var=val\n" +msgstr "\t-v var=val\t\t--assign=var=val\n" + +#: main.c:701 +msgid "\t-m[fr] val\n" +msgstr "\t-m[fr] val\n" + +#: main.c:702 +msgid "\t-W compat\t\t--compat\n" +msgstr "\t-W compat\t\t--compat\n" + +#: main.c:703 +msgid "\t-W copyleft\t\t--copyleft\n" +msgstr "\t-W copyleft\t\t--copyleft\n" + +#: main.c:704 +msgid "\t-W copyright\t\t--copyright\n" +msgstr "\t-W copyright\t\t--copyright\n" + +#: main.c:705 +msgid "\t-W dump-variables[=file]\t--dump-variables[=file]\n" +msgstr "\t-W dump-variables[=file]\t--dump-variables[=file]\n" + +#: main.c:706 +msgid "\t-W exec=file\t\t--exec=file\n" +msgstr "\t-W exec=file\t\t--exec=file\n" + +#: main.c:707 +msgid "\t-W gen-po\t\t--gen-po\n" +msgstr "\t-W gen-po\t\t--gen-po\n" + +#: main.c:708 +msgid "\t-W help\t\t\t--help\n" +msgstr "\t-W help\t\t\t--help\n" + +#: main.c:709 +msgid "\t-W lint[=fatal]\t\t--lint[=fatal]\n" +msgstr "\t-W lint[=fatal]\t\t--lint[=fatal]\n" + +#: main.c:710 +msgid "\t-W lint-old\t\t--lint-old\n" +msgstr "\t-W lint-old\t\t--lint-old\n" + +#: main.c:711 +msgid "\t-W non-decimal-data\t--non-decimal-data\n" +msgstr "\t-W non-decimal-data\t--non-decimal-data\n" + +#: main.c:713 +msgid "\t-W nostalgia\t\t--nostalgia\n" +msgstr "\t-W nostalgia\t\t--nostalgia\n" + +#: main.c:716 +msgid "\t-W parsedebug\t\t--parsedebug\n" +msgstr "\t-W parsedebug\t\t--parsedebug\n" + +#: main.c:718 +msgid "\t-W profile[=file]\t--profile[=file]\n" +msgstr "\t-W profile[=file]\t--profile[=file]\n" + +#: main.c:719 +msgid "\t-W posix\t\t--posix\n" +msgstr "\t-W posix\t\t--posix\n" + +#: main.c:720 +msgid "\t-W re-interval\t\t--re-interval\n" +msgstr "\t-W re-interval\t\t--re-interval\n" + +#: main.c:721 +msgid "\t-W source=program-text\t--source=program-text\n" +msgstr "\t-W source=program-text\t--source=program-text\n" + +#: main.c:722 +msgid "\t-W traditional\t\t--traditional\n" +msgstr "\t-W traditional\t\t--traditional\n" + +#: main.c:723 +msgid "\t-W usage\t\t--usage\n" +msgstr "\t-W usage\t\t--usage\n" + +#: main.c:724 +msgid "\t-W use-lc-numeric\t--use-lc-numeric\n" +msgstr "" + +#: main.c:725 +msgid "\t-W version\t\t--version\n" +msgstr "\t-W version\t\t--version\n" + +#. TRANSLATORS: --help output 5 (end) +#. TRANSLATORS: the placeholder indicates the bug-reporting address +#. for this application. Please add _another line_ with the +#. address for translation bugs. +#. no-wrap +#: main.c:734 +msgid "" +"\n" +"To report bugs, see node `Bugs' in `gawk.info', which is\n" +"section `Reporting Problems and Bugs' in the printed version.\n" +"\n" +msgstr "" +"\n" +"提交错误报告请参考“gawk.info”中的“Bugs”页,它位于打印版本中的“Reporting\n" +"Problems and Bugs”一节\n" +"\n" +"翻译错误请发信至 translation-team-zh-cn@lists.sourceforge.net\n" +"\n" + +#: main.c:738 +msgid "" +"gawk is a pattern scanning and processing language.\n" +"By default it reads standard input and writes standard output.\n" +"\n" +msgstr "" +"gawk 是一个模式扫描及处理语言。缺省情况下它从标准输入读入并写至标准输出。\n" +"\n" + +#: main.c:742 +msgid "" +"Examples:\n" +"\tgawk '{ sum += $1 }; END { print sum }' file\n" +"\tgawk -F: '{ print $1 }' /etc/passwd\n" +msgstr "" +"范例:\n" +"\tgawk '{ sum += $1 }; END { print sum }' file\n" +"\tgawk -F: '{ print $1 }' /etc/passwd\n" + +#: main.c:762 +#, c-format +msgid "" +"Copyright (C) 1989, 1991-%d Free Software Foundation.\n" +"\n" +"This program is free software; you can redistribute it and/or modify\n" +"it under the terms of the GNU General Public License as published by\n" +"the Free Software Foundation; either version 3 of the License, or\n" +"(at your option) any later version.\n" +"\n" +msgstr "" +"版权所有 © 1989, 1991-%d 自由软件基金会(FSF)。\n" +"\n" +"该程序为自由软件,你可以在自由软件基金会发布的 GNU 通用公共许可证(GPL)第\n" +"3版或以后版本下修改或重新发布。\n" +"\n" + +#: main.c:770 +msgid "" +"This program is distributed in the hope that it will be useful,\n" +"but WITHOUT ANY WARRANTY; without even the implied warranty of\n" +"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" +"GNU General Public License for more details.\n" +"\n" +msgstr "" +"该程序之所以被发布是因为希望他能对你有所用处,但我们不作任何担保。这包含\n" +"但不限于任何商业适售性以及针对特定目的的适用性的担保。详情参见 GNU 通用公\n" +"共许可证(GPL)。\n" +"\n" + +#: main.c:781 +#, fuzzy +msgid "" +"You should have received a copy of the GNU General Public License\n" +"along with this program. If not, see http://www.gnu.org/licenses/.\n" +msgstr "" +"你应该收到程序附带的一份 GNU 通用公共许可证(GPL)。如果没有收到,可写信至\n" +"“the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,\n" +"Boston, MA 02110-1301, USA.”索取。\n" + +#: main.c:816 +msgid "-Ft does not set FS to tab in POSIX awk" +msgstr "在 POSIX awk 中 -Ft 不会将 FS 设为制表符(tab)" + +#: main.c:1060 +#, c-format +msgid "" +"%s: `%s' argument to `-v' not in `var=value' form\n" +"\n" +msgstr "" +"%s: “-v”的参数“%s”不是“var=value”形式\n" +"\n" + +#: main.c:1080 +#, c-format +msgid "`%s' is not a legal variable name" +msgstr "“%s”不是一个合法的变量名" + +#: main.c:1083 +#, c-format +msgid "`%s' is not a variable name, looking for file `%s=%s'" +msgstr "“%s”不是一个变量名,查找文件“%s=%s”" + +#: main.c:1122 +msgid "floating point exception" +msgstr "浮点数异常" + +#: main.c:1129 +msgid "fatal error: internal error" +msgstr "致命错误: 内部错误" + +#: main.c:1180 +#, c-format +msgid "no pre-opened fd %d" +msgstr "文件描述符 %d 未被打开" + +#: main.c:1187 +#, c-format +msgid "could not pre-open /dev/null for fd %d" +msgstr "无法为文件描述符 %d 预打开 /dev/null" + +#: main.c:1210 main.c:1219 +#, c-format +msgid "could not find groups: %s" +msgstr "无法找到组: %s" + +#: msg.c:54 +#, c-format +msgid "cmd. line:" +msgstr "命令行:" + +#: msg.c:120 +msgid "warning: " +msgstr "警告: " + +#: msg.c:142 +msgid "error: " +msgstr "错误: " + +#: msg.c:178 +msgid "fatal: " +msgstr "致命错误: " + +#: node.c:63 node.c:78 node.c:105 node.c:121 node.c:151 +msgid "can't convert string to float" +msgstr "无法将字符串转化为浮点数" + +#: node.c:406 +msgid "backslash at end of string" +msgstr "字符串尾部的反斜杠" + +#: node.c:548 +#, c-format +msgid "old awk does not support the `\\%c' escape sequence" +msgstr "老 awk 不支持“\\%c”转义序列" + +#: node.c:599 +msgid "POSIX does not allow `\\x' escapes" +msgstr "POSIX 不允许“\\x”转义符" + +#: node.c:605 +msgid "no hex digits in `\\x' escape sequence" +msgstr "“\\x”转义序列中没有十六进制数" + +#: node.c:639 +#, c-format +msgid "escape sequence `\\%c' treated as plain `%c'" +msgstr "转义序列“\\%c”被当作单纯的“%c”" + +#: posix/gawkmisc.c:172 +#, c-format +msgid "%s %s `%s': could not set close-on-exec: (fcntl: %s)" +msgstr "%s %s “%s”: 无法设置 close-on-exec: (fcntl: %s)" + +#: profile.c:92 +#, c-format +msgid "could not open `%s' for writing: %s" +msgstr "无法以写模式打开“%s”: %s" + +#: profile.c:450 +#, c-format +msgid "internal error: %s with null vname" +msgstr "内部错误: %s 带有空的 vname" + +#: profile.c:514 +msgid "# treated internally as `delete'" +msgstr "# 内部处理为“delete”" + +#: profile.c:1147 +#, c-format +msgid "# this is a dynamically loaded extension function" +msgstr "# 这是一个动态加载的扩展函数" + +#: profile.c:1178 +#, c-format +msgid "\t# gawk profile, created %s\n" +msgstr "\t# gawk 配置, 创建 %s\n" + +#: profile.c:1181 +#, c-format +msgid "" +"\t# BEGIN block(s)\n" +"\n" +msgstr "" +"\t# BEGIN 块\n" +"\n" + +#: profile.c:1191 +#, c-format +msgid "" +"\t# Rule(s)\n" +"\n" +msgstr "" +"\t# 规则\n" +"\n" + +#: profile.c:1197 +#, c-format +msgid "" +"\t# END block(s)\n" +"\n" +msgstr "" +"\t# END 块\n" +"\n" + +#: profile.c:1217 +#, c-format +msgid "" +"\n" +"\t# Functions, listed alphabetically\n" +msgstr "" +"\n" +"\t# 函数列表,字典序\n" + +#: profile.c:1470 +#, c-format +msgid "unexpected type %s in prec_level" +msgstr "在 prec_level 中未预期的类型 %s" + +#: regcomp.c:132 +msgid "Success" +msgstr "成功" + +#: regcomp.c:135 +msgid "No match" +msgstr "无匹配" + +#: regcomp.c:138 +msgid "Invalid regular expression" +msgstr "无效的正则表达式" + +#: regcomp.c:141 +msgid "Invalid collation character" +msgstr "无效的收集字符" + +#: regcomp.c:144 +msgid "Invalid character class name" +msgstr "无效的字符类型名" + +#: regcomp.c:147 +msgid "Trailing backslash" +msgstr "尾端的反斜杠" + +#: regcomp.c:150 +msgid "Invalid back reference" +msgstr "无效的回引用" + +#: regcomp.c:153 +msgid "Unmatched [ or [^" +msgstr "未匹配的 [ 或 [^" + +#: regcomp.c:156 +msgid "Unmatched ( or \\(" +msgstr "未匹配的 ( 或 \\(" + +#: regcomp.c:159 +msgid "Unmatched \\{" +msgstr "未匹配的 \\{" + +#: regcomp.c:162 +msgid "Invalid content of \\{\\}" +msgstr "\\{\\} 中内容无效" + +#: regcomp.c:165 +msgid "Invalid range end" +msgstr "无效的范围结束" + +#: regcomp.c:168 +msgid "Memory exhausted" +msgstr "内存耗尽" + +#: regcomp.c:171 +msgid "Invalid preceding regular expression" +msgstr "无效的前置正则表达式" + +#: regcomp.c:174 +msgid "Premature end of regular expression" +msgstr "正则表达式非正常结束" + +#: regcomp.c:177 +msgid "Regular expression too big" +msgstr "正则表达式过大" + +#: regcomp.c:180 +msgid "Unmatched ) or \\)" +msgstr "未匹配的 ) 或 \\)" + +#: regcomp.c:664 +msgid "No previous regular expression" +msgstr "前面没有正则表达式" diff -urN gawk-3.1.5/posix/ChangeLog gawk-3.1.6/posix/ChangeLog --- gawk-3.1.5/posix/ChangeLog 2005-07-26 21:47:28.000000000 +0300 +++ gawk-3.1.6/posix/ChangeLog 2007-10-22 08:50:30.000000000 +0200 @@ -1,3 +1,18 @@ +Mon Oct 22 08:49:05 2007 Arnold D. Robbins + + * Release 3.1.6: Release tar file made. + +Sun Apr 2 21:43:02 2006 Corinna Vinschen + + * gawkmisc.c (os_setbinmode): Call `setmode' for Cygwin. + (cygwin_premain0, cygwin_premain2): Change type of `myself' + parameter to `void *'. + +Sun Mar 12 22:45:11 2006 Corinna Vinschen + + * gawkmisc.c (cygwin_premain2): New function. + Fixes CR-LF problem with already open stdin. + Tue Jul 26 21:46:16 2005 Arnold D. Robbins * Release 3.1.5: Release tar file made. diff -urN gawk-3.1.5/posix/gawkmisc.c gawk-3.1.6/posix/gawkmisc.c --- gawk-3.1.5/posix/gawkmisc.c 2005-05-11 18:28:17.000000000 +0300 +++ gawk-3.1.6/posix/gawkmisc.c 2006-08-11 15:50:15.000000000 +0300 @@ -207,6 +207,9 @@ os_setbinmode(fd, mode) int fd, mode; { +#ifdef __CYGWIN__ + setmode (fd, mode); +#endif return 0; } @@ -221,11 +224,12 @@ } #ifdef __CYGWIN__ +#include #include extern int _fmode; void -cygwin_premain0 (int argc, char **argv, struct per_process *myself) +cygwin_premain0 (int argc, char **argv, void *myself) { static struct __cygwin_perfile pf[] = { @@ -235,4 +239,10 @@ }; cygwin_internal (CW_PERFILE, pf); } + +void +cygwin_premain2 (int argc, char **argv, void *myself) +{ + setmode (fileno (stdin), O_TEXT); +} #endif diff -urN gawk-3.1.5/profile.c gawk-3.1.6/profile.c --- gawk-3.1.5/profile.c 2005-07-26 21:07:43.000000000 +0300 +++ gawk-3.1.6/profile.c 2007-08-11 22:39:49.000000000 +0300 @@ -3,14 +3,14 @@ */ /* - * Copyright (C) 1999-2005 the Free Software Foundation, Inc. + * Copyright (C) 1999-2007 the Free Software Foundation, Inc. * * This file is part of GAWK, the GNU implementation of the * AWK Programming Language. * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, @@ -46,6 +46,7 @@ static void pp_builtin P((NODE *tree)); static void pp_list P((NODE *tree)); static void pp_string P((const char *str, size_t len, int delim)); +static void pp_concat P((NODE *tree, int level)); static int is_scalar P((NODETYPE type)); static int prec_level P((NODETYPE type)); #ifdef PROFILING @@ -427,24 +428,6 @@ } } -/* varname --- print a variable name, handling vars done with -v */ - -/* - * When `-v x=x' is given, the varname field ends up including the - * entire text. This gets printed in the profiled output if we're - * not careful. Oops. - * - * XXX: This is a band-aid; we really should fix the -v code. - */ - -static void -varname(const char *name) -{ - for (; *name != '\0' && *name != '='; name++) - putc(*name, prof_fp); - return; -} - /* tree_eval --- evaluate a subtree */ static void @@ -462,7 +445,7 @@ case Node_var: case Node_var_array: if (tree->vname != NULL) - varname(tree->vname); + fprintf(prof_fp, "%s", tree->vname); else fatal(_("internal error: %s with null vname"), nodetype2str(tree->type)); @@ -644,11 +627,7 @@ return; case Node_concat: - fprintf(prof_fp, "("); - tree_eval(tree->lnode); - fprintf(prof_fp, " "); - tree_eval(tree->rnode); - fprintf(prof_fp, ")"); + pp_concat(tree, 0); return; /* other assignment types are easier because they are numeric */ @@ -1255,6 +1234,44 @@ fprintf(prof_fp, "\t}\n"); } +/* + * pp_concat --- print string concatenations + * + * Multiple string concatenations grow downwards to the left. + * This routine attempts to print multiple concatenations with + * the minimal amount of parentheses. + */ + +static void +pp_concat(NODE *tree, int level) +{ + if (tree->lnode->type == Node_concat) + pp_concat(tree->lnode, level + 1); /* recurse down one level */ + else { + fprintf(prof_fp, "("); /* outermost left paren */ + if (is_scalar(tree->lnode->type)) + tree_eval(tree->lnode); + else { + fprintf(prof_fp, "("); + tree_eval(tree->lnode); + fprintf(prof_fp, ")"); + } + } + + fprintf(prof_fp, " "); + + if (is_scalar(tree->rnode->type)) + tree_eval(tree->rnode); + else { + fprintf(prof_fp, "("); + tree_eval(tree->rnode); + fprintf(prof_fp, ")"); + } + + if (level == 0) + fprintf(prof_fp, ")"); /* outermost right paren */ +} + /* pp_string --- pretty print a string or regex constant */ static void diff -urN gawk-3.1.5/profile_p.c gawk-3.1.6/profile_p.c --- gawk-3.1.5/profile_p.c 2005-05-11 18:28:17.000000000 +0300 +++ gawk-3.1.6/profile_p.c 2007-08-11 22:39:49.000000000 +0300 @@ -10,7 +10,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/protos.h gawk-3.1.6/protos.h --- gawk-3.1.5/protos.h 2005-05-11 18:28:17.000000000 +0300 +++ gawk-3.1.6/protos.h 2007-08-11 22:39:49.000000000 +0300 @@ -10,7 +10,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/random.c gawk-3.1.6/random.c --- gawk-3.1.5/random.c 2005-05-11 18:28:17.000000000 +0300 +++ gawk-3.1.6/random.c 2006-09-15 15:15:45.000000000 +0300 @@ -10,11 +10,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -31,6 +27,22 @@ * SUCH DAMAGE. */ +/* + * Per the statement at http://opensource.org/licenses/bsd-license.php, + * + * The advertising clause in the license appearing on BSD Unix files was + * officially rescinded by the Director of the Office of Technology + * Licensing of the University of California on July 22 1999. He states + * that clause 3 is "hereby deleted in its entirety." + * + * I removed the advertising clause in the above copyright. + * The above web site points to + * ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change. + * + * Arnold Robbins + * 15 September 2007 + */ + #if defined(LIBC_SCCS) && !defined(lint) static const char sccsid[] = "@(#)random.c 8.2 (Berkeley) 5/19/95"; #endif /* LIBC_SCCS and not lint */ diff -urN gawk-3.1.5/random.h gawk-3.1.6/random.h --- gawk-3.1.5/random.h 2005-07-26 21:07:43.000000000 +0300 +++ gawk-3.1.6/random.h 2007-08-11 22:39:49.000000000 +0300 @@ -10,7 +10,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/re.c gawk-3.1.6/re.c --- gawk-3.1.5/re.c 2005-07-26 21:07:43.000000000 +0300 +++ gawk-3.1.6/re.c 2007-08-11 22:39:49.000000000 +0300 @@ -3,14 +3,14 @@ */ /* - * Copyright (C) 1991-2005 the Free Software Foundation, Inc. + * Copyright (C) 1991-2007 the Free Software Foundation, Inc. * * This file is part of GAWK, the GNU implementation of the * AWK Programming Language. * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, @@ -174,7 +174,7 @@ rp->pat.translate = NULL; } else { syn &= ~RE_ICASE; - rp->pat.translate = (char *) casetable; + rp->pat.translate = (RE_TRANSLATE_TYPE) casetable; } } else { rp->pat.translate = NULL; @@ -225,8 +225,15 @@ * * The dfa matcher doesn't have a no_bol flag, so don't bother * trying it in that case. + * + * 4/2007: Grrrr. The dfa matcher has bugs in certain multibyte + * cases that are just too deeply buried to ferret out. Don't + * let this kill us if we need_start. (This may be too narrowly + * focused, perhaps we should relegate the DFA matcher to the + * single byte case all the time. OTOH, the speed difference + * between the matchers in non-trivial... Sigh.) */ - if (rp->dfa && ! no_bol) { + if (rp->dfa && ! no_bol && (gawk_mb_cur_max == 1 || ! need_start)) { char save; int count = 0; /* @@ -359,6 +366,9 @@ { char *end; + if (re->re_reg->dfareg.broken) + return TRUE; + if (! re->re_reg->has_anchor) return FALSE; diff -urN gawk-3.1.5/regcomp.c gawk-3.1.6/regcomp.c --- gawk-3.1.5/regcomp.c 2005-07-04 09:36:52.000000000 +0300 +++ gawk-3.1.6/regcomp.c 2007-04-29 22:54:06.000000000 +0300 @@ -1,5 +1,5 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2002,2003,2004,2005,2006 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . @@ -19,12 +19,11 @@ 02110-1301 USA. */ static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern, - int length, reg_syntax_t syntax); + size_t length, reg_syntax_t syntax); static void re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, char *fastmap); -static reg_errcode_t init_dfa (re_dfa_t *dfa, int pat_len); -static void init_word_char (re_dfa_t *dfa); +static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len); #ifdef RE_ENABLE_I18N static void free_charset (re_charset_t *cset); #endif /* RE_ENABLE_I18N */ @@ -34,7 +33,6 @@ static void optimize_utf8 (re_dfa_t *dfa); #endif static reg_errcode_t analyze (regex_t *preg); -static reg_errcode_t create_initial_state (re_dfa_t *dfa); static reg_errcode_t preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), void *extra); @@ -48,12 +46,8 @@ static reg_errcode_t calc_first (void *extra, bin_tree_t *node); static reg_errcode_t calc_next (void *extra, bin_tree_t *node); static reg_errcode_t link_nfa_nodes (void *extra, bin_tree_t *node); -static reg_errcode_t duplicate_node_closure (re_dfa_t *dfa, int top_org_node, - int top_clone_node, int root_node, - unsigned int constraint); -static reg_errcode_t duplicate_node (int *new_idx, re_dfa_t *dfa, int org_idx, - unsigned int constraint); -static int search_duplicated_node (re_dfa_t *dfa, int org_node, +static int duplicate_node (re_dfa_t *dfa, int org_idx, unsigned int constraint); +static int search_duplicated_node (const re_dfa_t *dfa, int org_node, unsigned int constraint); static reg_errcode_t calc_eclosure (re_dfa_t *dfa); static reg_errcode_t calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, @@ -61,12 +55,8 @@ static reg_errcode_t calc_inveclosure (re_dfa_t *dfa); static int fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax); -static void fetch_token (re_token_t *result, re_string_t *input, - reg_syntax_t syntax); static int peek_token (re_token_t *token, re_string_t *input, - reg_syntax_t syntax); -static int peek_token_bracket (re_token_t *token, re_string_t *input, - reg_syntax_t syntax); + reg_syntax_t syntax) internal_function; static bin_tree_t *parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax, reg_errcode_t *err); static bin_tree_t *parse_reg_exp (re_string_t *regexp, regex_t *preg, @@ -96,45 +86,27 @@ static reg_errcode_t parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp, re_token_t *token); -#ifndef _LIBC -# ifdef RE_ENABLE_I18N -static reg_errcode_t build_range_exp (re_bitset_ptr_t sbcset, - re_charset_t *mbcset, int *range_alloc, - bracket_elem_t *start_elem, - bracket_elem_t *end_elem); -static reg_errcode_t build_collating_symbol (re_bitset_ptr_t sbcset, - re_charset_t *mbcset, - int *coll_sym_alloc, - const unsigned char *name); -# else /* not RE_ENABLE_I18N */ -static reg_errcode_t build_range_exp (re_bitset_ptr_t sbcset, - bracket_elem_t *start_elem, - bracket_elem_t *end_elem); -static reg_errcode_t build_collating_symbol (re_bitset_ptr_t sbcset, - const unsigned char *name); -# endif /* not RE_ENABLE_I18N */ -#endif /* not _LIBC */ #ifdef RE_ENABLE_I18N -static reg_errcode_t build_equiv_class (re_bitset_ptr_t sbcset, +static reg_errcode_t build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, int *equiv_class_alloc, const unsigned char *name); -static reg_errcode_t build_charclass (unsigned RE_TRANSLATE_TYPE trans, - re_bitset_ptr_t sbcset, +static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans, + bitset_t sbcset, re_charset_t *mbcset, int *char_class_alloc, const char *class_name, reg_syntax_t syntax); #else /* not RE_ENABLE_I18N */ -static reg_errcode_t build_equiv_class (re_bitset_ptr_t sbcset, +static reg_errcode_t build_equiv_class (bitset_t sbcset, const unsigned char *name); -static reg_errcode_t build_charclass (unsigned RE_TRANSLATE_TYPE trans, - re_bitset_ptr_t sbcset, +static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans, + bitset_t sbcset, const char *class_name, reg_syntax_t syntax); #endif /* not RE_ENABLE_I18N */ static bin_tree_t *build_charclass_op (re_dfa_t *dfa, - unsigned RE_TRANSLATE_TYPE trans, + RE_TRANSLATE_TYPE trans, const char *class_name, const char *extra, int non_match, reg_errcode_t *err); @@ -154,59 +126,58 @@ POSIX doesn't require that we do anything for REG_NOERROR, but why not be nice? */ -const ERRMSG_TYPE __re_error_msgid[] attribute_hidden = +const char __re_error_msgid[] attribute_hidden = { #define REG_NOERROR_IDX 0 gettext_noop ("Success") /* REG_NOERROR */ - ERRMSG_SEPARATOR + "\0" #define REG_NOMATCH_IDX (REG_NOERROR_IDX + sizeof "Success") gettext_noop ("No match") /* REG_NOMATCH */ - ERRMSG_SEPARATOR + "\0" #define REG_BADPAT_IDX (REG_NOMATCH_IDX + sizeof "No match") gettext_noop ("Invalid regular expression") /* REG_BADPAT */ - ERRMSG_SEPARATOR + "\0" #define REG_ECOLLATE_IDX (REG_BADPAT_IDX + sizeof "Invalid regular expression") gettext_noop ("Invalid collation character") /* REG_ECOLLATE */ - ERRMSG_SEPARATOR + "\0" #define REG_ECTYPE_IDX (REG_ECOLLATE_IDX + sizeof "Invalid collation character") gettext_noop ("Invalid character class name") /* REG_ECTYPE */ - ERRMSG_SEPARATOR + "\0" #define REG_EESCAPE_IDX (REG_ECTYPE_IDX + sizeof "Invalid character class name") gettext_noop ("Trailing backslash") /* REG_EESCAPE */ - ERRMSG_SEPARATOR + "\0" #define REG_ESUBREG_IDX (REG_EESCAPE_IDX + sizeof "Trailing backslash") gettext_noop ("Invalid back reference") /* REG_ESUBREG */ - ERRMSG_SEPARATOR + "\0" #define REG_EBRACK_IDX (REG_ESUBREG_IDX + sizeof "Invalid back reference") gettext_noop ("Unmatched [ or [^") /* REG_EBRACK */ - ERRMSG_SEPARATOR + "\0" #define REG_EPAREN_IDX (REG_EBRACK_IDX + sizeof "Unmatched [ or [^") gettext_noop ("Unmatched ( or \\(") /* REG_EPAREN */ - ERRMSG_SEPARATOR + "\0" #define REG_EBRACE_IDX (REG_EPAREN_IDX + sizeof "Unmatched ( or \\(") gettext_noop ("Unmatched \\{") /* REG_EBRACE */ - ERRMSG_SEPARATOR + "\0" #define REG_BADBR_IDX (REG_EBRACE_IDX + sizeof "Unmatched \\{") gettext_noop ("Invalid content of \\{\\}") /* REG_BADBR */ - ERRMSG_SEPARATOR + "\0" #define REG_ERANGE_IDX (REG_BADBR_IDX + sizeof "Invalid content of \\{\\}") gettext_noop ("Invalid range end") /* REG_ERANGE */ - ERRMSG_SEPARATOR + "\0" #define REG_ESPACE_IDX (REG_ERANGE_IDX + sizeof "Invalid range end") gettext_noop ("Memory exhausted") /* REG_ESPACE */ - ERRMSG_SEPARATOR + "\0" #define REG_BADRPT_IDX (REG_ESPACE_IDX + sizeof "Memory exhausted") gettext_noop ("Invalid preceding regular expression") /* REG_BADRPT */ - ERRMSG_SEPARATOR + "\0" #define REG_EEND_IDX (REG_BADRPT_IDX + sizeof "Invalid preceding regular expression") gettext_noop ("Premature end of regular expression") /* REG_EEND */ - ERRMSG_SEPARATOR + "\0" #define REG_ESIZE_IDX (REG_EEND_IDX + sizeof "Premature end of regular expression") gettext_noop ("Regular expression too big") /* REG_ESIZE */ - ERRMSG_SEPARATOR + "\0" #define REG_ERPAREN_IDX (REG_ESIZE_IDX + sizeof "Regular expression too big") gettext_noop ("Unmatched ) or \\)") /* REG_ERPAREN */ - ERRMSG_SEPARATOR }; const size_t __re_error_msgid_idx[] attribute_hidden = @@ -259,7 +230,7 @@ if (!ret) return NULL; - return gettext (RE_ERRMSG(ret)); + return gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]); } #ifdef _LIBC weak_alias (__re_compile_pattern, re_compile_pattern) @@ -328,12 +299,10 @@ Compile fastmap for the initial_state INIT_STATE. */ static void -re_compile_fastmap_iter (bufp, init_state, fastmap) - regex_t *bufp; - const re_dfastate_t *init_state; - char *fastmap; +re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, + char *fastmap) { - re_dfa_t *dfa = (re_dfa_t *) bufp->buffer; + volatile re_dfa_t *dfa = (re_dfa_t *) bufp->buffer; int node_cnt; int icase = (dfa->mb_cur_max == 1 && (bufp->syntax & RE_ICASE)); for (node_cnt = 0; node_cnt < init_state->nodes.nelem; ++node_cnt) @@ -357,10 +326,11 @@ && dfa->nodes[node].type == CHARACTER && dfa->nodes[node].mb_partial) *p++ = dfa->nodes[node].opr.c; - memset (&state, 0, sizeof (state)); + memset (&state, '\0', sizeof (state)); if (mbrtowc (&wc, (const char *) buf, p - buf, &state) == p - buf - && __wcrtomb ((char *) buf, towlower (wc), &state) > 0) + && (__wcrtomb ((char *) buf, towlower (wc), &state) + != (size_t) -1)) re_set_fastmap (fastmap, 0, buf[0]); re_free (buf); } @@ -368,11 +338,15 @@ } else if (type == SIMPLE_BRACKET) { - int i, j, ch; - for (i = 0, ch = 0; i < BITSET_UINTS; ++i) - for (j = 0; j < UINT_BITS; ++j, ++ch) - if (dfa->nodes[node].opr.sbcset[i] & (1 << j)) - re_set_fastmap (fastmap, icase, ch); + int i, ch; + for (i = 0, ch = 0; i < BITSET_WORDS; ++i) + { + int j; + bitset_word_t w = dfa->nodes[node].opr.sbcset[i]; + for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch) + if (w & ((bitset_word_t) 1 << j)) + re_set_fastmap (fastmap, icase, ch); + } } #ifdef RE_ENABLE_I18N else if (type == COMPLEX_BRACKET) @@ -391,19 +365,21 @@ is a valid collation element, and don't catch 'b' since 'b' is the only collation element which starts from 'b'. */ - int j, ch; const int32_t *table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); - for (i = 0, ch = 0; i < BITSET_UINTS; ++i) - for (j = 0; j < UINT_BITS; ++j, ++ch) - if (table[ch] < 0) - re_set_fastmap (fastmap, icase, ch); + for (i = 0; i < SBC_MAX; ++i) + if (table[i] < 0) + re_set_fastmap (fastmap, icase, i); } # else if (dfa->mb_cur_max > 1) - for (i = 0; i < SBC_MAX; ++i) - if (__btowc (i) == WEOF) + for (i = 0; i < SBC_MAX; ++i) { + wint_t wc; + wc = __btowc (i); + + if (wc == WEOF || wc >= SBC_MAX) re_set_fastmap (fastmap, icase, i); + } # endif /* not _LIBC */ } for (i = 0; i < cset->nmbchars; ++i) @@ -411,12 +387,13 @@ char buf[256]; mbstate_t state; memset (&state, '\0', sizeof (state)); - __wcrtomb (buf, cset->mbchars[i], &state); - re_set_fastmap (fastmap, icase, *(unsigned char *) buf); + if (__wcrtomb (buf, cset->mbchars[i], &state) != (size_t) -1) + re_set_fastmap (fastmap, icase, *(unsigned char *) buf); if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1) { - __wcrtomb (buf, towlower (cset->mbchars[i]), &state); - re_set_fastmap (fastmap, 0, *(unsigned char *) buf); + if (__wcrtomb (buf, towlower (cset->mbchars[i]), &state) + != (size_t) -1) + re_set_fastmap (fastmap, 0, *(unsigned char *) buf); } } } @@ -536,8 +513,8 @@ size_t regerror (errcode, preg, errbuf, errbuf_size) int errcode; - const regex_t *preg; - char *errbuf; + const regex_t *__restrict preg; + char *__restrict errbuf; size_t errbuf_size; { const char *msg; @@ -552,7 +529,7 @@ Dump core so we can fix it. */ abort (); - msg = gettext (RE_ERRMSG(errcode)); + msg = gettext (__re_error_msgid + __re_error_msgid_idx[errcode]); msg_size = strlen (msg) + 1; /* Includes the null. */ @@ -579,16 +556,15 @@ UTF-8 is used. Otherwise we would allocate memory just to initialize it the same all the time. UTF-8 is the preferred encoding so this is a worthwhile optimization. */ -static const bitset utf8_sb_map = -{ +#if __GNUC__ >= 3 +static const bitset_t utf8_sb_map = { /* Set the first 128 bits. */ -# if UINT_MAX == 0xffffffff - 0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff -# else -# error "Add case for new unsigned int size" -# endif + [0 ... 0x80 / BITSET_WORD_BITS - 1] = BITSET_WORD_MAX }; -#endif +#else /* ! (__GNUC__ >= 3) */ +static bitset_t utf8_sb_map; +#endif /* __GNUC__ >= 3 */ +#endif /* RE_ENABLE_I18N */ static void @@ -702,7 +678,8 @@ { re_comp_buf.fastmap = (char *) malloc (SBC_MAX); if (re_comp_buf.fastmap == NULL) - return (char *) gettext (RE_ERRMSG(REG_ESPACE_IDX)); + return (char *) gettext (__re_error_msgid + + __re_error_msgid_idx[(int) REG_ESPACE]); } /* Since `re_exec' always passes NULL for the `regs' argument, we @@ -717,7 +694,7 @@ return NULL; /* Yes, we're discarding `const' here if !HAVE_LIBINTL. */ - return (char *) gettext (RE_ERRMSG(ret)); + return (char *) gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]); } #ifdef _LIBC @@ -734,11 +711,8 @@ SYNTAX indicate regular expression's syntax. */ static reg_errcode_t -re_compile_internal (preg, pattern, length, syntax) - regex_t *preg; - const char * pattern; - int length; - reg_syntax_t syntax; +re_compile_internal (regex_t *preg, const char * pattern, size_t length, + reg_syntax_t syntax) { reg_errcode_t err = REG_NOERROR; re_dfa_t *dfa; @@ -778,10 +752,13 @@ return err; } #ifdef DEBUG + /* Note: length+1 will not overflow since it is checked in init_dfa. */ dfa->re_str = re_malloc (char, length + 1); strncpy (dfa->re_str, pattern, length + 1); #endif + __libc_lock_init (dfa->lock); + err = re_string_construct (®exp, pattern, length, preg->translate, syntax & RE_ICASE, dfa); if (BE (err != REG_NOERROR, 0)) @@ -833,11 +810,9 @@ as the initial length of some arrays. */ static reg_errcode_t -init_dfa (dfa, pat_len) - re_dfa_t *dfa; - int pat_len; +init_dfa (re_dfa_t *dfa, size_t pat_len) { - int table_size; + unsigned int table_size; #ifndef _LIBC char *codeset_name; #endif @@ -847,13 +822,15 @@ /* Force allocation of str_tree_storage the first time. */ dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE; + /* Avoid overflows. */ + if (pat_len == SIZE_MAX) + return REG_ESPACE; + dfa->nodes_alloc = pat_len + 1; dfa->nodes = re_malloc (re_token_t, dfa->nodes_alloc); - dfa->states_alloc = pat_len + 1; - /* table_size = 2 ^ ceil(log pat_len) */ - for (table_size = 1; table_size > 0; table_size <<= 1) + for (table_size = 1; ; table_size <<= 1) if (table_size > pat_len) break; @@ -906,27 +883,38 @@ if (dfa->mb_cur_max > 1) { if (dfa->is_utf8) - dfa->sb_char = (re_bitset_ptr_t) utf8_sb_map; + { +#if !defined(__GNUC__) || __GNUC__ < 3 + static short utf8_sb_map_inited = 0; + + if (! utf8_sb_map_inited) + { + int i; + + utf8_sb_map_inited = 0; + for (i = 0; i <= 0x80 / BITSET_WORD_BITS - 1; i++) + utf8_sb_map[i] = BITSET_WORD_MAX; + } +#endif + dfa->sb_char = (re_bitset_ptr_t) utf8_sb_map; + } else { int i, j, ch; - dfa->sb_char = (re_bitset_ptr_t) calloc (sizeof (bitset), 1); + dfa->sb_char = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); if (BE (dfa->sb_char == NULL, 0)) return REG_ESPACE; - /* Clear all bits by, then set those corresponding to single - byte chars. */ - bitset_empty (dfa->sb_char); - - for (i = 0, ch = 0; i < BITSET_UINTS; ++i) - for (j = 0; j < UINT_BITS; ++j, ++ch) + /* Set the bits corresponding to single byte chars. */ + for (i = 0, ch = 0; i < BITSET_WORDS; ++i) + for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch) { - wchar_t wch = __btowc (ch); + wint_t wch = __btowc (ch); if (wch != WEOF) - dfa->sb_char[i] |= 1 << j; + dfa->sb_char[i] |= (bitset_word_t) 1 << j; # ifndef _LIBC - if (isascii (ch) && wch != (wchar_t) ch) + if (isascii (ch) && wch != ch) dfa->map_notascii = 1; # endif } @@ -944,22 +932,21 @@ character used by some operators like "\<", "\>", etc. */ static void -init_word_char (dfa) - re_dfa_t *dfa; +internal_function +init_word_char (re_dfa_t *dfa) { int i, j, ch; dfa->word_ops_used = 1; - for (i = 0, ch = 0; i < BITSET_UINTS; ++i) - for (j = 0; j < UINT_BITS; ++j, ++ch) + for (i = 0, ch = 0; i < BITSET_WORDS; ++i) + for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch) if (isalnum (ch) || ch == '_') - dfa->word_char[i] |= 1 << j; + dfa->word_char[i] |= (bitset_word_t) 1 << j; } /* Free the work area which are only used while compiling. */ static void -free_workarea_compile (preg) - regex_t *preg; +free_workarea_compile (regex_t *preg) { re_dfa_t *dfa = (re_dfa_t *) preg->buffer; bin_tree_storage_t *storage, *next; @@ -978,8 +965,7 @@ /* Create initial states for all contexts. */ static reg_errcode_t -create_initial_state (dfa) - re_dfa_t *dfa; +create_initial_state (re_dfa_t *dfa) { int first, i; reg_errcode_t err; @@ -1061,8 +1047,7 @@ DFA nodes where needed. */ static void -optimize_utf8 (dfa) - re_dfa_t *dfa; +optimize_utf8 (re_dfa_t *dfa) { int node, i, mb_chars = 0, has_period = 0; @@ -1099,8 +1084,9 @@ case COMPLEX_BRACKET: return; case SIMPLE_BRACKET: - /* Just double check. */ - for (i = 0x80 / UINT_BITS; i < BITSET_UINTS; ++i) + /* Just double check. The non-ASCII range starts at 0x80. */ + assert (0x80 % BITSET_WORD_BITS == 0); + for (i = 0x80 / BITSET_WORD_BITS; i < BITSET_WORDS; ++i) if (dfa->nodes[node].opr.sbcset[i]) return; break; @@ -1129,8 +1115,7 @@ "eclosure", and "inveclosure". */ static reg_errcode_t -analyze (preg) - regex_t *preg; +analyze (regex_t *preg) { re_dfa_t *dfa = (re_dfa_t *) preg->buffer; reg_errcode_t ret; @@ -1193,10 +1178,8 @@ implement parse tree visits. Instead, we use parent pointers and some hairy code in these two functions. */ static reg_errcode_t -postorder (root, fn, extra) - bin_tree_t *root; - reg_errcode_t (fn (void *, bin_tree_t *)); - void *extra; +postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), + void *extra) { bin_tree_t *node, *prev; @@ -1227,10 +1210,8 @@ } static reg_errcode_t -preorder (root, fn, extra) - bin_tree_t *root; - reg_errcode_t (fn (void *, bin_tree_t *)); - void *extra; +preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), + void *extra) { bin_tree_t *node; @@ -1262,9 +1243,7 @@ re_search_internal to map the inner one's opr.idx to this one's. Adjust backreferences as well. Requires a preorder visit. */ static reg_errcode_t -optimize_subexps (extra, node) - void *extra; - bin_tree_t *node; +optimize_subexps (void *extra, bin_tree_t *node) { re_dfa_t *dfa = (re_dfa_t *) extra; @@ -1285,8 +1264,8 @@ node->left->parent = node; dfa->subexp_map[other_idx] = dfa->subexp_map[node->token.opr.idx]; - if (other_idx < 8 * sizeof (dfa->used_bkref_map)) - dfa->used_bkref_map &= ~(1 << other_idx); + if (other_idx < BITSET_WORD_BITS) + dfa->used_bkref_map &= ~((bitset_word_t) 1 << other_idx); } return REG_NOERROR; @@ -1295,9 +1274,7 @@ /* Lowering pass: Turn each SUBEXP node into the appropriate concatenation of OP_OPEN_SUBEXP, the body of the SUBEXP (if any) and OP_CLOSE_SUBEXP. */ static reg_errcode_t -lower_subexps (extra, node) - void *extra; - bin_tree_t *node; +lower_subexps (void *extra, bin_tree_t *node) { regex_t *preg = (regex_t *) extra; reg_errcode_t err = REG_NOERROR; @@ -1319,18 +1296,21 @@ } static bin_tree_t * -lower_subexp (err, preg, node) - reg_errcode_t *err; - regex_t *preg; - bin_tree_t *node; +lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node) { re_dfa_t *dfa = (re_dfa_t *) preg->buffer; bin_tree_t *body = node->left; bin_tree_t *op, *cls, *tree1, *tree; if (preg->no_sub - && (node->token.opr.idx >= 8 * sizeof (dfa->used_bkref_map) - || !(dfa->used_bkref_map & (1 << node->token.opr.idx)))) + /* We do not optimize empty subexpressions, because otherwise we may + have bad CONCAT nodes with NULL children. This is obviously not + very common, so we do not lose much. An example that triggers + this case is the sed "script" /\(\)/x. */ + && node->left != NULL + && (node->token.opr.idx >= BITSET_WORD_BITS + || !(dfa->used_bkref_map + & ((bitset_word_t) 1 << node->token.opr.idx)))) return node->left; /* Convert the SUBEXP node to the concatenation of an @@ -1353,9 +1333,7 @@ /* Pass 1 in building the NFA: compute FIRST and create unlinked automaton nodes. Requires a postorder visit. */ static reg_errcode_t -calc_first (extra, node) - void *extra; - bin_tree_t *node; +calc_first (void *extra, bin_tree_t *node) { re_dfa_t *dfa = (re_dfa_t *) extra; if (node->token.type == CONCAT) @@ -1375,9 +1353,7 @@ /* Pass 2: compute NEXT on the tree. Preorder visit. */ static reg_errcode_t -calc_next (extra, node) - void *extra; - bin_tree_t *node; +calc_next (void *extra, bin_tree_t *node) { switch (node->token.type) { @@ -1400,9 +1376,7 @@ /* Pass 3: link all DFA nodes to their NEXT node (any order will do). */ static reg_errcode_t -link_nfa_nodes (extra, node) - void *extra; - bin_tree_t *node; +link_nfa_nodes (void *extra, bin_tree_t *node) { re_dfa_t *dfa = (re_dfa_t *) extra; int idx = node->node_idx; @@ -1462,13 +1436,10 @@ to their own constraint. */ static reg_errcode_t -duplicate_node_closure (dfa, top_org_node, top_clone_node, root_node, - init_constraint) - re_dfa_t *dfa; - int top_org_node, top_clone_node, root_node; - unsigned int init_constraint; +internal_function +duplicate_node_closure (re_dfa_t *dfa, int top_org_node, int top_clone_node, + int root_node, unsigned int init_constraint) { - reg_errcode_t err; int org_node, clone_node, ret; unsigned int constraint = init_constraint; for (org_node = top_org_node, clone_node = top_clone_node;;) @@ -1482,9 +1453,9 @@ edests of the back reference. */ org_dest = dfa->nexts[org_node]; re_node_set_empty (dfa->edests + clone_node); - err = duplicate_node (&clone_dest, dfa, org_dest, constraint); - if (BE (err != REG_NOERROR, 0)) - return err; + clone_dest = duplicate_node (dfa, org_dest, constraint); + if (BE (clone_dest == -1, 0)) + return REG_ESPACE; dfa->nexts[clone_node] = dfa->nexts[org_node]; ret = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (ret < 0, 0)) @@ -1520,9 +1491,9 @@ } constraint |= dfa->nodes[org_node].opr.ctx_type; } - err = duplicate_node (&clone_dest, dfa, org_dest, constraint); - if (BE (err != REG_NOERROR, 0)) - return err; + clone_dest = duplicate_node (dfa, org_dest, constraint); + if (BE (clone_dest == -1, 0)) + return REG_ESPACE; ret = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (ret < 0, 0)) return REG_ESPACE; @@ -1538,9 +1509,10 @@ if (clone_dest == -1) { /* There are no such a duplicated node, create a new one. */ - err = duplicate_node (&clone_dest, dfa, org_dest, constraint); - if (BE (err != REG_NOERROR, 0)) - return err; + reg_errcode_t err; + clone_dest = duplicate_node (dfa, org_dest, constraint); + if (BE (clone_dest == -1, 0)) + return REG_ESPACE; ret = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (ret < 0, 0)) return REG_ESPACE; @@ -1559,9 +1531,9 @@ } org_dest = dfa->edests[org_node].elems[1]; - err = duplicate_node (&clone_dest, dfa, org_dest, constraint); - if (BE (err != REG_NOERROR, 0)) - return err; + clone_dest = duplicate_node (dfa, org_dest, constraint); + if (BE (clone_dest == -1, 0)) + return REG_ESPACE; ret = re_node_set_insert (dfa->edests + clone_node, clone_dest); if (BE (ret < 0, 0)) return REG_ESPACE; @@ -1576,10 +1548,8 @@ satisfies the constraint CONSTRAINT. */ static int -search_duplicated_node (dfa, org_node, constraint) - re_dfa_t *dfa; - int org_node; - unsigned int constraint; +search_duplicated_node (const re_dfa_t *dfa, int org_node, + unsigned int constraint) { int idx; for (idx = dfa->nodes_len - 1; dfa->nodes[idx].duplicated && idx > 0; --idx) @@ -1592,32 +1562,28 @@ } /* Duplicate the node whose index is ORG_IDX and set the constraint CONSTRAINT. - The new index will be stored in NEW_IDX and return REG_NOERROR if succeeded, - otherwise return the error code. */ + Return the index of the new node, or -1 if insufficient storage is + available. */ -static reg_errcode_t -duplicate_node (new_idx, dfa, org_idx, constraint) - re_dfa_t *dfa; - int *new_idx, org_idx; - unsigned int constraint; +static int +duplicate_node (re_dfa_t *dfa, int org_idx, unsigned int constraint) { int dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]); - if (BE (dup_idx == -1, 0)) - return REG_ESPACE; - dfa->nodes[dup_idx].constraint = constraint; - if (dfa->nodes[org_idx].type == ANCHOR) - dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].opr.ctx_type; - dfa->nodes[dup_idx].duplicated = 1; - - /* Store the index of the original node. */ - dfa->org_indices[dup_idx] = org_idx; - *new_idx = dup_idx; - return REG_NOERROR; + if (BE (dup_idx != -1, 1)) + { + dfa->nodes[dup_idx].constraint = constraint; + if (dfa->nodes[org_idx].type == ANCHOR) + dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].opr.ctx_type; + dfa->nodes[dup_idx].duplicated = 1; + + /* Store the index of the original node. */ + dfa->org_indices[dup_idx] = org_idx; + } + return dup_idx; } static reg_errcode_t -calc_inveclosure (dfa) - re_dfa_t *dfa; +calc_inveclosure (re_dfa_t *dfa) { int src, idx, ret; for (idx = 0; idx < dfa->nodes_len; ++idx) @@ -1640,8 +1606,7 @@ /* Calculate "eclosure" for all the node in DFA. */ static reg_errcode_t -calc_eclosure (dfa) - re_dfa_t *dfa; +calc_eclosure (re_dfa_t *dfa) { int node_idx, incomplete; #ifdef DEBUG @@ -1685,10 +1650,7 @@ /* Calculate epsilon closure of NODE. */ static reg_errcode_t -calc_eclosure_iter (new_set, dfa, node, root) - re_node_set *new_set; - re_dfa_t *dfa; - int node, root; +calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, int node, int root) { reg_errcode_t err; unsigned int constraint; @@ -1711,8 +1673,6 @@ && dfa->edests[node].nelem && !dfa->nodes[dfa->edests[node].elems[0]].duplicated) { - int org_node, cur_node; - org_node = cur_node = node; err = duplicate_node_closure (dfa, node, node, node, constraint); if (BE (err != REG_NOERROR, 0)) return err; @@ -1768,10 +1728,8 @@ We must not use this function inside bracket expressions. */ static void -fetch_token (result, input, syntax) - re_token_t *result; - re_string_t *input; - reg_syntax_t syntax; +internal_function +fetch_token (re_token_t *result, re_string_t *input, reg_syntax_t syntax) { re_string_skip_bytes (input, peek_token (result, input, syntax)); } @@ -1780,10 +1738,8 @@ We must not use this function inside bracket expressions. */ static int -peek_token (token, input, syntax) - re_token_t *token; - re_string_t *input; - reg_syntax_t syntax; +internal_function +peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) { unsigned char c; @@ -2023,10 +1979,8 @@ We must not use this function out of bracket expressions. */ static int -peek_token_bracket (token, input, syntax) - re_token_t *token; - re_string_t *input; - reg_syntax_t syntax; +internal_function +peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax) { unsigned char c; if (re_string_eoi (input)) @@ -2122,11 +2076,8 @@ EOR means end of regular expression. */ static bin_tree_t * -parse (regexp, preg, syntax, err) - re_string_t *regexp; - regex_t *preg; - reg_syntax_t syntax; - reg_errcode_t *err; +parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax, + reg_errcode_t *err) { re_dfa_t *dfa = (re_dfa_t *) preg->buffer; bin_tree_t *tree, *eor, *root; @@ -2159,13 +2110,8 @@ ALT means alternative, which represents the operator `|'. */ static bin_tree_t * -parse_reg_exp (regexp, preg, token, syntax, nest, err) - re_string_t *regexp; - regex_t *preg; - re_token_t *token; - reg_syntax_t syntax; - int nest; - reg_errcode_t *err; +parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, + reg_syntax_t syntax, int nest, reg_errcode_t *err) { re_dfa_t *dfa = (re_dfa_t *) preg->buffer; bin_tree_t *tree, *branch = NULL; @@ -2205,13 +2151,8 @@ CAT means concatenation. */ static bin_tree_t * -parse_branch (regexp, preg, token, syntax, nest, err) - re_string_t *regexp; - regex_t *preg; - re_token_t *token; - reg_syntax_t syntax; - int nest; - reg_errcode_t *err; +parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token, + reg_syntax_t syntax, int nest, reg_errcode_t *err) { bin_tree_t *tree, *exp; re_dfa_t *dfa = (re_dfa_t *) preg->buffer; @@ -2250,13 +2191,8 @@ */ static bin_tree_t * -parse_expression (regexp, preg, token, syntax, nest, err) - re_string_t *regexp; - regex_t *preg; - re_token_t *token; - reg_syntax_t syntax; - int nest; - reg_errcode_t *err; +parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, + reg_syntax_t syntax, int nest, reg_errcode_t *err) { re_dfa_t *dfa = (re_dfa_t *) preg->buffer; bin_tree_t *tree; @@ -2414,8 +2350,8 @@ case OP_WORD: case OP_NOTWORD: tree = build_charclass_op (dfa, regexp->trans, - (const char *) "alnum", - (const char *) "_", + "alnum", + "_", token->type == OP_NOTWORD, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; @@ -2423,8 +2359,8 @@ case OP_SPACE: case OP_NOTSPACE: tree = build_charclass_op (dfa, regexp->trans, - (const char *) "space", - (const char *) "", + "space", + "", token->type == OP_NOTSPACE, err); if (BE (*err != REG_NOERROR && tree == NULL, 0)) return NULL; @@ -2471,13 +2407,8 @@ */ static bin_tree_t * -parse_sub_exp (regexp, preg, token, syntax, nest, err) - re_string_t *regexp; - regex_t *preg; - re_token_t *token; - reg_syntax_t syntax; - int nest; - reg_errcode_t *err; +parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, + reg_syntax_t syntax, int nest, reg_errcode_t *err) { re_dfa_t *dfa = (re_dfa_t *) preg->buffer; bin_tree_t *tree; @@ -2497,7 +2428,9 @@ if (BE (*err != REG_NOERROR, 0)) return NULL; } - dfa->completed_bkref_map |= 1 << cur_nsub; + + if (cur_nsub <= '9' - '1') + dfa->completed_bkref_map |= 1 << cur_nsub; tree = create_tree (dfa, tree, NULL, SUBEXP); if (BE (tree == NULL, 0)) @@ -2512,13 +2445,8 @@ /* This function parse repetition operators like "*", "+", "{1,3}" etc. */ static bin_tree_t * -parse_dup_op (elem, regexp, dfa, token, syntax, err) - bin_tree_t *elem; - re_string_t *regexp; - re_dfa_t *dfa; - re_token_t *token; - reg_syntax_t syntax; - reg_errcode_t *err; +parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, + re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err) { bin_tree_t *tree = NULL, *old_tree = NULL; int i, start, end, start_idx = re_string_cur_idx (regexp); @@ -2663,15 +2591,14 @@ update it. */ static reg_errcode_t +internal_function # ifdef RE_ENABLE_I18N -build_range_exp (sbcset, mbcset, range_alloc, start_elem, end_elem) - re_charset_t *mbcset; - int *range_alloc; +build_range_exp (bitset_t sbcset, re_charset_t *mbcset, int *range_alloc, + bracket_elem_t *start_elem, bracket_elem_t *end_elem) # else /* not RE_ENABLE_I18N */ -build_range_exp (sbcset, start_elem, end_elem) +build_range_exp (bitset_t sbcset, bracket_elem_t *start_elem, + bracket_elem_t *end_elem) # endif /* not RE_ENABLE_I18N */ - re_bitset_ptr_t sbcset; - bracket_elem_t *start_elem, *end_elem; { unsigned int start_ch, end_ch; /* Equivalence Classes and Character Classes can't be a range start/end. */ @@ -2690,7 +2617,9 @@ # ifdef RE_ENABLE_I18N { - wchar_t wc, start_wc, end_wc; + wchar_t wc; + wint_t start_wc; + wint_t end_wc; wchar_t cmp_buf[6] = {L'\0', L'\0', L'\0', L'\0', L'\0', L'\0'}; start_ch = ((start_elem->type == SB_CHAR) ? start_elem->opr.ch @@ -2699,10 +2628,22 @@ end_ch = ((end_elem->type == SB_CHAR) ? end_elem->opr.ch : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0] : 0)); +#ifdef GAWK + /* + * Fedora Core 2, maybe others, have broken `btowc' that returns -1 + * for any value > 127. Sigh. Note that `start_ch' and `end_ch' are + * unsigned, so we don't have sign extension problems. + */ + start_wc = ((start_elem->type == SB_CHAR || start_elem->type == COLL_SYM) + ? start_ch : start_elem->opr.wch); + end_wc = ((end_elem->type == SB_CHAR || end_elem->type == COLL_SYM) + ? end_ch : end_elem->opr.wch); +#else start_wc = ((start_elem->type == SB_CHAR || start_elem->type == COLL_SYM) ? __btowc (start_ch) : start_elem->opr.wch); end_wc = ((end_elem->type == SB_CHAR || end_elem->type == COLL_SYM) ? __btowc (end_ch) : end_elem->opr.wch); +#endif if (start_wc == WEOF || end_wc == WEOF) return REG_ECOLLATE; cmp_buf[0] = start_wc; @@ -2783,15 +2724,13 @@ pointer argument since we may update it. */ static reg_errcode_t +internal_function # ifdef RE_ENABLE_I18N -build_collating_symbol (sbcset, mbcset, coll_sym_alloc, name) - re_charset_t *mbcset; - int *coll_sym_alloc; +build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset, + int *coll_sym_alloc, const unsigned char *name) # else /* not RE_ENABLE_I18N */ -build_collating_symbol (sbcset, name) +build_collating_symbol (bitset_t sbcset, const unsigned char *name) # endif /* not RE_ENABLE_I18N */ - re_bitset_ptr_t sbcset; - const unsigned char *name; { size_t name_len = strlen ((const char *) name); if (BE (name_len != 1, 0)) @@ -2808,12 +2747,8 @@ "[[.a-a.]]" etc. */ static bin_tree_t * -parse_bracket_exp (regexp, dfa, token, syntax, err) - re_string_t *regexp; - re_dfa_t *dfa; - re_token_t *token; - reg_syntax_t syntax; - reg_errcode_t *err; +parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, + reg_syntax_t syntax, reg_errcode_t *err) { #ifdef _LIBC const unsigned char *collseqmb; @@ -2835,23 +2770,28 @@ { int32_t hash = elem_hash ((const char *) name, name_len); int32_t elem = hash % table_size; - int32_t second = hash % (table_size - 2); - while (symb_table[2 * elem] != 0) + if (symb_table[2 * elem] != 0) { - /* First compare the hashing value. */ - if (symb_table[2 * elem] == hash - /* Compare the length of the name. */ - && name_len == extra[symb_table[2 * elem + 1]] - /* Compare the name. */ - && memcmp (name, &extra[symb_table[2 * elem + 1] + 1], - name_len) == 0) + int32_t second = hash % (table_size - 2) + 1; + + do { - /* Yep, this is the entry. */ - break; - } + /* First compare the hashing value. */ + if (symb_table[2 * elem] == hash + /* Compare the length of the name. */ + && name_len == extra[symb_table[2 * elem + 1]] + /* Compare the name. */ + && memcmp (name, &extra[symb_table[2 * elem + 1] + 1], + name_len) == 0) + { + /* Yep, this is the entry. */ + break; + } - /* Next entry. */ - elem += second; + /* Next entry. */ + elem += second; + } + while (symb_table[2 * elem] != 0); } return elem; } @@ -2933,7 +2873,7 @@ build_range_exp (sbcset, mbcset, range_alloc, start_elem, end_elem) re_charset_t *mbcset; int *range_alloc; - re_bitset_ptr_t sbcset; + bitset_t sbcset; bracket_elem_t *start_elem, *end_elem; { unsigned int ch; @@ -3016,7 +2956,7 @@ build_collating_symbol (sbcset, mbcset, coll_sym_alloc, name) re_charset_t *mbcset; int *coll_sym_alloc; - re_bitset_ptr_t sbcset; + bitset_t sbcset; const unsigned char *name; { int32_t elem, idx; @@ -3093,7 +3033,7 @@ /* if (MB_CUR_MAX > 1) */ - collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC); + collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC); table_size = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_SYMB_HASH_SIZEMB); symb_table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_TABLEMB); @@ -3101,7 +3041,7 @@ _NL_COLLATE_SYMB_EXTRAMB); } #endif - sbcset = (re_bitset_ptr_t) calloc (sizeof (unsigned int), BITSET_UINTS); + sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); #ifdef RE_ENABLE_I18N mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1); #endif /* RE_ENABLE_I18N */ @@ -3311,12 +3251,12 @@ mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token); if (BE (mbc_tree == NULL, 0)) goto parse_bracket_exp_espace; - for (sbc_idx = 0; sbc_idx < BITSET_UINTS; ++sbc_idx) + for (sbc_idx = 0; sbc_idx < BITSET_WORDS; ++sbc_idx) if (sbcset[sbc_idx]) break; /* If there are no bits set in sbcset, there is no point of having both SIMPLE_BRACKET and COMPLEX_BRACKET. */ - if (sbc_idx < BITSET_UINTS) + if (sbc_idx < BITSET_WORDS) { /* Build a tree for simple bracket. */ br_token.type = SIMPLE_BRACKET; @@ -3364,15 +3304,9 @@ /* Parse an element in the bracket expression. */ static reg_errcode_t -parse_bracket_element (elem, regexp, token, token_len, dfa, syntax, - accept_hyphen) - bracket_elem_t *elem; - re_string_t *regexp; - re_token_t *token; - int token_len; - re_dfa_t *dfa; - reg_syntax_t syntax; - int accept_hyphen; +parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp, + re_token_t *token, int token_len, re_dfa_t *dfa, + reg_syntax_t syntax, int accept_hyphen) { #ifdef RE_ENABLE_I18N int cur_char_size; @@ -3410,10 +3344,8 @@ [==]. */ static reg_errcode_t -parse_bracket_symbol (elem, regexp, token) - bracket_elem_t *elem; - re_string_t *regexp; - re_token_t *token; +parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp, + re_token_t *token) { unsigned char ch, delim = token->opr.c; int i = 0; @@ -3460,16 +3392,13 @@ static reg_errcode_t #ifdef RE_ENABLE_I18N -build_equiv_class (sbcset, mbcset, equiv_class_alloc, name) - re_charset_t *mbcset; - int *equiv_class_alloc; +build_equiv_class (bitset_t sbcset, re_charset_t *mbcset, + int *equiv_class_alloc, const unsigned char *name) #else /* not RE_ENABLE_I18N */ -build_equiv_class (sbcset, name) +build_equiv_class (bitset_t sbcset, const unsigned char *name) #endif /* not RE_ENABLE_I18N */ - re_bitset_ptr_t sbcset; - const unsigned char *name; { -#if defined _LIBC +#ifdef _LIBC uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules != 0) { @@ -3555,16 +3484,13 @@ static reg_errcode_t #ifdef RE_ENABLE_I18N -build_charclass (trans, sbcset, mbcset, char_class_alloc, class_name, syntax) - re_charset_t *mbcset; - int *char_class_alloc; +build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, + re_charset_t *mbcset, int *char_class_alloc, + const char *class_name, reg_syntax_t syntax) #else /* not RE_ENABLE_I18N */ -build_charclass (trans, sbcset, class_name, syntax) +build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, + const char *class_name, reg_syntax_t syntax) #endif /* not RE_ENABLE_I18N */ - unsigned RE_TRANSLATE_TYPE trans; - re_bitset_ptr_t sbcset; - const char *class_name; - reg_syntax_t syntax; { int i; @@ -3593,45 +3519,50 @@ #endif /* RE_ENABLE_I18N */ #define BUILD_CHARCLASS_LOOP(ctype_func) \ - for (i = 0; i < SBC_MAX; ++i) \ + do { \ + if (BE (trans != NULL, 0)) \ { \ - if (ctype_func (i)) \ - { \ - int ch = trans ? trans[i] : i; \ - bitset_set (sbcset, ch); \ - } \ - } + for (i = 0; i < SBC_MAX; ++i) \ + if (ctype_func (i)) \ + bitset_set (sbcset, trans[i]); \ + } \ + else \ + { \ + for (i = 0; i < SBC_MAX; ++i) \ + if (ctype_func (i)) \ + bitset_set (sbcset, i); \ + } \ + } while (0) if (strcmp (class_name, "alnum") == 0) - BUILD_CHARCLASS_LOOP (isalnum) + BUILD_CHARCLASS_LOOP (isalnum); else if (strcmp (class_name, "cntrl") == 0) - BUILD_CHARCLASS_LOOP (iscntrl) + BUILD_CHARCLASS_LOOP (iscntrl); else if (strcmp (class_name, "lower") == 0) - BUILD_CHARCLASS_LOOP (islower) + BUILD_CHARCLASS_LOOP (islower); else if (strcmp (class_name, "space") == 0) - BUILD_CHARCLASS_LOOP (isspace) + BUILD_CHARCLASS_LOOP (isspace); else if (strcmp (class_name, "alpha") == 0) - BUILD_CHARCLASS_LOOP (isalpha) + BUILD_CHARCLASS_LOOP (isalpha); else if (strcmp (class_name, "digit") == 0) - BUILD_CHARCLASS_LOOP (isdigit) + BUILD_CHARCLASS_LOOP (isdigit); else if (strcmp (class_name, "print") == 0) - BUILD_CHARCLASS_LOOP (isprint) + BUILD_CHARCLASS_LOOP (isprint); else if (strcmp (class_name, "upper") == 0) - BUILD_CHARCLASS_LOOP (isupper) -#ifndef GAWK + BUILD_CHARCLASS_LOOP (isupper); else if (strcmp (class_name, "blank") == 0) - BUILD_CHARCLASS_LOOP (isblank) +#ifndef GAWK + BUILD_CHARCLASS_LOOP (isblank); #else - /* see comments above */ - else if (strcmp (class_name, "blank") == 0) - BUILD_CHARCLASS_LOOP (is_blank) + /* see comments above */ + BUILD_CHARCLASS_LOOP (is_blank); #endif else if (strcmp (class_name, "graph") == 0) - BUILD_CHARCLASS_LOOP (isgraph) + BUILD_CHARCLASS_LOOP (isgraph); else if (strcmp (class_name, "punct") == 0) - BUILD_CHARCLASS_LOOP (ispunct) + BUILD_CHARCLASS_LOOP (ispunct); else if (strcmp (class_name, "xdigit") == 0) - BUILD_CHARCLASS_LOOP (isxdigit) + BUILD_CHARCLASS_LOOP (isxdigit); else return REG_ECTYPE; @@ -3639,13 +3570,10 @@ } static bin_tree_t * -build_charclass_op (dfa, trans, class_name, extra, non_match, err) - re_dfa_t *dfa; - unsigned RE_TRANSLATE_TYPE trans; - const char *class_name; - const char *extra; - int non_match; - reg_errcode_t *err; +build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, + const char *class_name, + const char *extra, int non_match, + reg_errcode_t *err) { re_bitset_ptr_t sbcset; #ifdef RE_ENABLE_I18N @@ -3656,7 +3584,7 @@ re_token_t br_token; bin_tree_t *tree; - sbcset = (re_bitset_ptr_t) calloc (sizeof (unsigned int), BITSET_UINTS); + sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); #ifdef RE_ENABLE_I18N mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1); #endif /* RE_ENABLE_I18N */ @@ -3759,10 +3687,7 @@ Return -2, If an error is occured. */ static int -fetch_number (input, token, syntax) - re_string_t *input; - re_token_t *token; - reg_syntax_t syntax; +fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax) { int num = -1; unsigned char c; @@ -3802,11 +3727,8 @@ /* Create a tree node. */ static bin_tree_t * -create_tree (dfa, left, right, type) - re_dfa_t *dfa; - bin_tree_t *left; - bin_tree_t *right; - re_token_type_t type; +create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, + re_token_type_t type) { re_token_t t; t.type = type; @@ -3814,11 +3736,8 @@ } static bin_tree_t * -create_token_tree (dfa, left, right, token) - re_dfa_t *dfa; - bin_tree_t *left; - bin_tree_t *right; - const re_token_t *token; +create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, + const re_token_t *token) { bin_tree_t *tree; if (BE (dfa->str_tree_storage_idx == BIN_TREE_STORAGE_SIZE, 0)) @@ -3854,9 +3773,7 @@ To be called from preorder or postorder. */ static reg_errcode_t -mark_opt_subexp (extra, node) - void *extra; - bin_tree_t *node; +mark_opt_subexp (void *extra, bin_tree_t *node) { int idx = (int) (long) extra; if (node->token.type == SUBEXP && node->token.opr.idx == idx) @@ -3896,9 +3813,7 @@ it's easier to duplicate. */ static bin_tree_t * -duplicate_tree (root, dfa) - const bin_tree_t *root; - re_dfa_t *dfa; +duplicate_tree (const bin_tree_t *root, re_dfa_t *dfa) { const bin_tree_t *node; bin_tree_t *dup_root; diff -urN gawk-3.1.5/regex.c gawk-3.1.6/regex.c --- gawk-3.1.5/regex.c 2005-05-11 18:28:17.000000000 +0300 +++ gawk-3.1.6/regex.c 2007-01-14 22:39:56.000000000 +0200 @@ -1,5 +1,5 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . @@ -22,6 +22,11 @@ #include "config.h" #endif +/* Make sure noone compiles this code with a C++ compiler. */ +#ifdef __cplusplus +# error "This is C code, use a C compiler" +#endif + #ifdef _LIBC /* We have to keep the namespace clean. */ # define regfree(preg) __regfree (preg) @@ -47,12 +52,6 @@ # include "../locale/localeinfo.h" #endif -#ifdef HAVE_SYS_TYPES_H -/* POSIX says that must be included (by the caller) before - . */ -#include -#endif - #if defined (_MSC_VER) #include /* for size_t */ #endif @@ -62,11 +61,20 @@ #undefs RE_DUP_MAX and sets it to the right value. */ #include +#ifdef GAWK +#undef alloca +#define alloca alloca_is_bad_you_should_never_use_it +#endif #include #include "regex_internal.h" #include "regex_internal.c" #include "regcomp.c" +#ifdef GAWK +#define bool int +#define true (1) +#define false (0) +#endif #include "regexec.c" /* Binary backward compatibility. */ diff -urN gawk-3.1.5/regex.h gawk-3.1.6/regex.h --- gawk-3.1.5/regex.h 2005-05-11 18:28:17.000000000 +0300 +++ gawk-3.1.6/regex.h 2007-04-17 21:51:14.000000000 +0300 @@ -1,6 +1,6 @@ /* Definitions for data structures and routines for the regular expression library. - Copyright (C) 1985,1989-93,1995-98,2000,2001,2002,2003 + Copyright (C) 1985,1989-93,1995-98,2000,2001,2002,2003,2005,2006 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -22,6 +22,10 @@ #ifndef _REGEX_H #define _REGEX_H 1 +#ifdef HAVE_STDDEF_H +#include +#endif + #ifdef HAVE_SYS_TYPES_H #include #endif @@ -31,15 +35,6 @@ extern "C" { #endif -/* POSIX says that must be included (by the caller) before - . */ - -#if !defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE && defined VMS -/* VMS doesn't have `size_t' in , even though POSIX says it - should be there. */ -# include -#endif - /* The following two types have to be signed and unsigned integer type wide enough to hold a value of a pointer. For most ANSI compilers ptrdiff_t and size_t should be likely OK. Still size of these two @@ -209,7 +204,7 @@ & ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS \ | RE_CONTEXT_INVALID_OPS )) -#define RE_SYNTAX_POSIX_AWK \ +#define RE_SYNTAX_POSIX_AWK \ (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \ | RE_INTERVALS | RE_NO_GNU_OPS) @@ -348,75 +343,71 @@ private to the regex routines. */ #ifndef RE_TRANSLATE_TYPE -# define RE_TRANSLATE_TYPE char * +# define RE_TRANSLATE_TYPE unsigned char * #endif struct re_pattern_buffer { -/* [[[begin pattern_buffer]]] */ - /* Space that holds the compiled pattern. It is declared as - `unsigned char *' because its elements are - sometimes used as array indexes. */ + /* Space that holds the compiled pattern. It is declared as + `unsigned char *' because its elements are sometimes used as + array indexes. */ unsigned char *buffer; - /* Number of bytes to which `buffer' points. */ + /* Number of bytes to which `buffer' points. */ unsigned long int allocated; - /* Number of bytes actually used in `buffer'. */ + /* Number of bytes actually used in `buffer'. */ unsigned long int used; - /* Syntax setting with which the pattern was compiled. */ + /* Syntax setting with which the pattern was compiled. */ reg_syntax_t syntax; - /* Pointer to a fastmap, if any, otherwise zero. re_search uses - the fastmap, if there is one, to skip over impossible - starting points for matches. */ + /* Pointer to a fastmap, if any, otherwise zero. re_search uses the + fastmap, if there is one, to skip over impossible starting points + for matches. */ char *fastmap; - /* Either a translate table to apply to all characters before - comparing them, or zero for no translation. The translation - is applied to a pattern when it is compiled and to a string - when it is matched. */ + /* Either a translate table to apply to all characters before + comparing them, or zero for no translation. The translation is + applied to a pattern when it is compiled and to a string when it + is matched. */ RE_TRANSLATE_TYPE translate; - /* Number of subexpressions found by the compiler. */ + /* Number of subexpressions found by the compiler. */ size_t re_nsub; - /* Zero if this pattern cannot match the empty string, one else. - Well, in truth it's used only in `re_search_2', to see - whether or not we should use the fastmap, so we don't set - this absolutely perfectly; see `re_compile_fastmap' (the - `duplicate' case). */ + /* Zero if this pattern cannot match the empty string, one else. + Well, in truth it's used only in `re_search_2', to see whether or + not we should use the fastmap, so we don't set this absolutely + perfectly; see `re_compile_fastmap' (the `duplicate' case). */ unsigned can_be_null : 1; - /* If REGS_UNALLOCATED, allocate space in the `regs' structure - for `max (RE_NREGS, re_nsub + 1)' groups. - If REGS_REALLOCATE, reallocate space if necessary. - If REGS_FIXED, use what's there. */ + /* If REGS_UNALLOCATED, allocate space in the `regs' structure + for `max (RE_NREGS, re_nsub + 1)' groups. + If REGS_REALLOCATE, reallocate space if necessary. + If REGS_FIXED, use what's there. */ #define REGS_UNALLOCATED 0 #define REGS_REALLOCATE 1 #define REGS_FIXED 2 unsigned regs_allocated : 2; - /* Set to zero when `regex_compile' compiles a pattern; set to one - by `re_compile_fastmap' if it updates the fastmap. */ + /* Set to zero when `regex_compile' compiles a pattern; set to one + by `re_compile_fastmap' if it updates the fastmap. */ unsigned fastmap_accurate : 1; - /* If set, `re_match_2' does not return information about - subexpressions. */ + /* If set, `re_match_2' does not return information about + subexpressions. */ unsigned no_sub : 1; - /* If set, a beginning-of-line anchor doesn't match at the - beginning of the string. */ + /* If set, a beginning-of-line anchor doesn't match at the beginning + of the string. */ unsigned not_bol : 1; - /* Similarly for an end-of-line anchor. */ + /* Similarly for an end-of-line anchor. */ unsigned not_eol : 1; - /* If true, an anchor at a newline matches. */ + /* If true, an anchor at a newline matches. */ unsigned newline_anchor : 1; - -/* [[[end pattern_buffer]]] */ }; typedef struct re_pattern_buffer regex_t; @@ -454,38 +445,21 @@ /* Declarations for routines. */ -/* To avoid duplicating every routine declaration -- once with a - prototype (if we are ANSI), and once without (if we aren't) -- we - use the following macro to declare argument types. This - unfortunately clutters up the declarations a bit, but I think it's - worth it. */ - -#if __STDC__ - -# define _RE_ARGS(args) args - -#else /* not __STDC__ */ - -# define _RE_ARGS(args) () - -#endif /* not __STDC__ */ - /* Sets the current default syntax to SYNTAX, and return the old syntax. You can also simply assign to the `re_syntax_options' variable. */ -extern reg_syntax_t re_set_syntax _RE_ARGS ((reg_syntax_t syntax)); +extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax); /* Compile the regular expression PATTERN, with length LENGTH and syntax given by the global `re_syntax_options', into the buffer BUFFER. Return NULL if successful, and an error string if not. */ -extern const char *re_compile_pattern - _RE_ARGS ((const char *pattern, size_t length, - struct re_pattern_buffer *buffer)); +extern const char *re_compile_pattern (const char *__pattern, size_t __length, + struct re_pattern_buffer *__buffer); /* Compile a fastmap for the compiled pattern in BUFFER; used to accelerate searches. Return 0 if successful and -2 if was an internal error. */ -extern int re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer)); +extern int re_compile_fastmap (struct re_pattern_buffer *__buffer); /* Search in the string STRING (with length LENGTH) for the pattern @@ -493,31 +467,30 @@ characters. Return the starting position of the match, -1 for no match, or -2 for an internal error. Also return register information in REGS (if REGS and BUFFER->no_sub are nonzero). */ -extern int re_search - _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string, - int length, int start, int range, struct re_registers *regs)); +extern int re_search (struct re_pattern_buffer *__buffer, const char *__string, + int __length, int __start, int __range, + struct re_registers *__regs); /* Like `re_search', but search in the concatenation of STRING1 and STRING2. Also, stop searching at index START + STOP. */ -extern int re_search_2 - _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1, - int length1, const char *string2, int length2, - int start, int range, struct re_registers *regs, int stop)); +extern int re_search_2 (struct re_pattern_buffer *__buffer, + const char *__string1, int __length1, + const char *__string2, int __length2, int __start, + int __range, struct re_registers *__regs, int __stop); /* Like `re_search', but return how many characters in STRING the regexp in BUFFER matched, starting at position START. */ -extern int re_match - _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string, - int length, int start, struct re_registers *regs)); +extern int re_match (struct re_pattern_buffer *__buffer, const char *__string, + int __length, int __start, struct re_registers *__regs); /* Relates to `re_match' as `re_search_2' relates to `re_search'. */ -extern int re_match_2 - _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1, - int length1, const char *string2, int length2, - int start, struct re_registers *regs, int stop)); +extern int re_match_2 (struct re_pattern_buffer *__buffer, + const char *__string1, int __length1, + const char *__string2, int __length2, int __start, + struct re_registers *__regs, int __stop); /* Set REGS to hold NUM_REGS registers, storing them in STARTS and @@ -532,15 +505,16 @@ Unless this function is called, the first search or match using PATTERN_BUFFER will allocate its own register data, without freeing the old data. */ -extern void re_set_registers - _RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs, - unsigned num_regs, regoff_t *starts, regoff_t *ends)); +extern void re_set_registers (struct re_pattern_buffer *__buffer, + struct re_registers *__regs, + unsigned int __num_regs, + regoff_t *__starts, regoff_t *__ends); #if defined _REGEX_RE_COMP || defined _LIBC # ifndef _CRAY /* 4.2 bsd compatibility. */ -extern char *re_comp _RE_ARGS ((const char *)); -extern int re_exec _RE_ARGS ((const char *)); +extern char *re_comp (const char *); +extern int re_exec (const char *); # endif #endif @@ -557,7 +531,8 @@ #endif /* gcc 3.1 and up support the [restrict] syntax. */ #ifndef __restrict_arr -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) +# if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) \ + && !defined __GNUG__ # define __restrict_arr __restrict # else # define __restrict_arr @@ -565,19 +540,19 @@ #endif /* POSIX compatibility. */ -extern int regcomp _RE_ARGS ((regex_t *__restrict __preg, - const char *__restrict __pattern, - int __cflags)); - -extern int regexec _RE_ARGS ((const regex_t *__restrict __preg, - const char *__restrict __string, size_t __nmatch, - regmatch_t __pmatch[__restrict_arr], - int __eflags)); +extern int regcomp (regex_t *__restrict __preg, + const char *__restrict __pattern, + int __cflags); + +extern int regexec (const regex_t *__restrict __preg, + const char *__restrict __string, size_t __nmatch, + regmatch_t __pmatch[__restrict_arr], + int __eflags); -extern size_t regerror _RE_ARGS ((int __errcode, const regex_t *__preg, - char *__errbuf, size_t __errbuf_size)); +extern size_t regerror (int __errcode, const regex_t *__restrict __preg, + char *__restrict __errbuf, size_t __errbuf_size); -extern void regfree _RE_ARGS ((regex_t *__preg)); +extern void regfree (regex_t *__preg); #ifdef __cplusplus @@ -585,11 +560,3 @@ #endif /* C++ */ #endif /* regex.h */ - -/* -Local variables: -make-backup-files: t -version-control: t -trim-versions-without-asking: nil -End: -*/ diff -urN gawk-3.1.5/regex_internal.c gawk-3.1.6/regex_internal.c --- gawk-3.1.5/regex_internal.c 2005-07-04 09:36:05.000000000 +0300 +++ gawk-3.1.6/regex_internal.c 2007-01-12 13:56:49.000000000 +0200 @@ -1,5 +1,5 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . @@ -22,21 +22,13 @@ re_string_t *pstr, RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa) internal_function; -#ifdef RE_ENABLE_I18N -static int re_string_skip_chars (re_string_t *pstr, int new_raw_idx, - wint_t *last_wc) internal_function; -#endif /* RE_ENABLE_I18N */ -static reg_errcode_t register_state (re_dfa_t *dfa, re_dfastate_t *newstate, - unsigned int hash) internal_function; -static re_dfastate_t *create_ci_newstate (re_dfa_t *dfa, +static re_dfastate_t *create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, unsigned int hash) internal_function; -static re_dfastate_t *create_cd_newstate (re_dfa_t *dfa, +static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context, unsigned int hash) internal_function; -static unsigned int inline calc_state_hash (const re_node_set *nodes, - unsigned int context) internal_function; /* Functions for string operation. */ @@ -44,12 +36,9 @@ re_string_reconstruct before using the object. */ static reg_errcode_t -re_string_allocate (pstr, str, len, init_len, trans, icase, dfa) - re_string_t *pstr; - const char *str; - int len, init_len, icase; - RE_TRANSLATE_TYPE trans; - const re_dfa_t *dfa; +internal_function +re_string_allocate (re_string_t *pstr, const char *str, int len, int init_len, + RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa) { reg_errcode_t ret; int init_buf_len; @@ -75,12 +64,9 @@ /* This function allocate the buffers, and initialize them. */ static reg_errcode_t -re_string_construct (pstr, str, len, trans, icase, dfa) - re_string_t *pstr; - const char *str; - int len, icase; - RE_TRANSLATE_TYPE trans; - const re_dfa_t *dfa; +internal_function +re_string_construct (re_string_t *pstr, const char *str, int len, + RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa) { reg_errcode_t ret; memset (pstr, '\0', sizeof (re_string_t)); @@ -141,33 +127,32 @@ /* Helper functions for re_string_allocate, and re_string_construct. */ static reg_errcode_t -re_string_realloc_buffers (pstr, new_buf_len) - re_string_t *pstr; - int new_buf_len; +internal_function +re_string_realloc_buffers (re_string_t *pstr, int new_buf_len) { #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { - wint_t *new_array = re_realloc (pstr->wcs, wint_t, new_buf_len); - if (BE (new_array == NULL, 0)) + wint_t *new_wcs = re_realloc (pstr->wcs, wint_t, new_buf_len); + if (BE (new_wcs == NULL, 0)) return REG_ESPACE; - pstr->wcs = new_array; + pstr->wcs = new_wcs; if (pstr->offsets != NULL) { - int *new_array = re_realloc (pstr->offsets, int, new_buf_len); - if (BE (new_array == NULL, 0)) + int *new_offsets = re_realloc (pstr->offsets, int, new_buf_len); + if (BE (new_offsets == NULL, 0)) return REG_ESPACE; - pstr->offsets = new_array; + pstr->offsets = new_offsets; } } #endif /* RE_ENABLE_I18N */ if (pstr->mbs_allocated) { - unsigned char *new_array = re_realloc (pstr->mbs, unsigned char, - new_buf_len); - if (BE (new_array == NULL, 0)) + unsigned char *new_mbs = re_realloc (pstr->mbs, unsigned char, + new_buf_len); + if (BE (new_mbs == NULL, 0)) return REG_ESPACE; - pstr->mbs = new_array; + pstr->mbs = new_mbs; } pstr->bufs_len = new_buf_len; return REG_NOERROR; @@ -175,18 +160,15 @@ static void -re_string_construct_common (str, len, pstr, trans, icase, dfa) - const char *str; - int len; - re_string_t *pstr; - RE_TRANSLATE_TYPE trans; - int icase; - const re_dfa_t *dfa; +internal_function +re_string_construct_common (const char *str, int len, re_string_t *pstr, + RE_TRANSLATE_TYPE trans, int icase, + const re_dfa_t *dfa) { pstr->raw_mbs = (const unsigned char *) str; pstr->len = len; pstr->raw_len = len; - pstr->trans = (unsigned RE_TRANSLATE_TYPE) trans; + pstr->trans = trans; pstr->icase = icase ? 1 : 0; pstr->mbs_allocated = (trans != NULL || icase); pstr->mb_cur_max = dfa->mb_cur_max; @@ -210,16 +192,18 @@ built and starts from PSTR->VALID_LEN. */ static void -build_wcs_buffer (pstr) - re_string_t *pstr; +internal_function +build_wcs_buffer (re_string_t *pstr) { #ifdef _LIBC - unsigned char buf[pstr->mb_cur_max]; + unsigned char buf[MB_LEN_MAX]; + assert (MB_LEN_MAX >= pstr->mb_cur_max); #else unsigned char buf[64]; #endif mbstate_t prev_st; - int byte_idx, end_idx, mbclen, remain_len; + int byte_idx, end_idx, remain_len; + size_t mbclen; /* Build the buffers from pstr->valid_len to either pstr->len or pstr->bufs_len. */ @@ -275,16 +259,18 @@ /* Build wide character buffer PSTR->WCS like build_wcs_buffer, but for REG_ICASE. */ -static int -build_wcs_upper_buffer (pstr) - re_string_t *pstr; +static reg_errcode_t +internal_function +build_wcs_upper_buffer (re_string_t *pstr) { mbstate_t prev_st; - int src_idx, byte_idx, end_idx, mbclen, remain_len; + int src_idx, byte_idx, end_idx, remain_len; + size_t mbclen; #ifdef _LIBC - unsigned char buf[pstr->mb_cur_max]; + char buf[MB_LEN_MAX]; + assert (MB_LEN_MAX >= pstr->mb_cur_max); #else - unsigned char buf[64]; + char buf[64]; #endif byte_idx = pstr->valid_len; @@ -316,15 +302,15 @@ mbclen = mbrtowc (&wc, ((const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx), remain_len, &pstr->cur_state); - if (BE (mbclen > 0, 1)) + if (BE (mbclen + 2 > 2, 1)) { wchar_t wcu = wc; if (iswlower (wc)) { - int mbcdlen; + size_t mbcdlen; wcu = towupper (wc); - mbcdlen = wcrtomb ((char *)buf, wcu, &prev_st); + mbcdlen = wcrtomb (buf, wcu, &prev_st); if (BE (mbclen == mbcdlen, 1)) memcpy (pstr->mbs + byte_idx, buf, mbclen); else @@ -367,7 +353,6 @@ { wchar_t wc; const char *p; - offsets_needed: remain_len = end_idx - byte_idx; prev_st = pstr->cur_state; @@ -385,20 +370,20 @@ else p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + src_idx; mbclen = mbrtowc (&wc, p, remain_len, &pstr->cur_state); - if (BE (mbclen > 0, 1)) + if (BE (mbclen + 2 > 2, 1)) { wchar_t wcu = wc; if (iswlower (wc)) { - int mbcdlen; + size_t mbcdlen; wcu = towupper (wc); mbcdlen = wcrtomb ((char *) buf, wcu, &prev_st); if (BE (mbclen == mbcdlen, 1)) memcpy (pstr->mbs + byte_idx, buf, mbclen); - else + else if (mbcdlen != (size_t) -1) { - int i; + size_t i; if (byte_idx + mbcdlen > pstr->bufs_len) { @@ -415,7 +400,7 @@ } if (!pstr->offsets_needed) { - for (i = 0; i < byte_idx; ++i) + for (i = 0; i < (size_t) byte_idx; ++i) pstr->offsets[i] = i; pstr->offsets_needed = 1; } @@ -438,13 +423,15 @@ src_idx += mbclen; continue; } + else + memcpy (pstr->mbs + byte_idx, p, mbclen); } else memcpy (pstr->mbs + byte_idx, p, mbclen); if (BE (pstr->offsets_needed != 0, 0)) { - int i; + size_t i; for (i = 0; i < mbclen; ++i) pstr->offsets[byte_idx + i] = src_idx + i; } @@ -489,14 +476,13 @@ Return the index. */ static int -re_string_skip_chars (pstr, new_raw_idx, last_wc) - re_string_t *pstr; - int new_raw_idx; - wint_t *last_wc; +internal_function +re_string_skip_chars (re_string_t *pstr, int new_raw_idx, wint_t *last_wc) { mbstate_t prev_st; - int rawbuf_idx, mbclen; - wchar_t wc = 0; + int rawbuf_idx; + size_t mbclen; + wchar_t wc = WEOF; /* Skip the characters which are not necessary to check. */ for (rawbuf_idx = pstr->raw_mbs_idx + pstr->valid_raw_len; @@ -509,7 +495,11 @@ remain_len, &pstr->cur_state); if (BE (mbclen == (size_t) -2 || mbclen == (size_t) -1 || mbclen == 0, 0)) { - /* We treat these cases as a singlebyte character. */ + /* We treat these cases as a single byte character. */ + if (mbclen == 0 || remain_len == 0) + wc = L'\0'; + else + wc = *(unsigned char *) (pstr->raw_mbs + rawbuf_idx); mbclen = 1; pstr->cur_state = prev_st; } @@ -525,8 +515,8 @@ This function is used in case of REG_ICASE. */ static void -build_upper_buffer (pstr) - re_string_t *pstr; +internal_function +build_upper_buffer (re_string_t *pstr) { int char_idx, end_idx; end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; @@ -548,8 +538,8 @@ /* Apply TRANS to the buffer in PSTR. */ static void -re_string_translate_buffer (pstr) - re_string_t *pstr; +internal_function +re_string_translate_buffer (re_string_t *pstr) { int buf_idx, end_idx; end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len; @@ -569,9 +559,8 @@ convert to upper case in case of REG_ICASE, apply translation. */ static reg_errcode_t -re_string_reconstruct (pstr, idx, eflags) - re_string_t *pstr; - int idx, eflags; +internal_function +re_string_reconstruct (re_string_t *pstr, int idx, int eflags) { int offset = idx - pstr->raw_mbs_idx; if (BE (offset < 0, 0)) @@ -596,34 +585,98 @@ if (BE (offset != 0, 1)) { - /* Are the characters which are already checked remain? */ - if (BE (offset < pstr->valid_raw_len, 1) -#ifdef RE_ENABLE_I18N - /* Handling this would enlarge the code too much. - Accept a slowdown in that case. */ - && pstr->offsets_needed == 0 -#endif - ) + /* Should the already checked characters be kept? */ + if (BE (offset < pstr->valid_raw_len, 1)) { /* Yes, move them to the front of the buffer. */ - pstr->tip_context = re_string_context_at (pstr, offset - 1, eflags); #ifdef RE_ENABLE_I18N - if (pstr->mb_cur_max > 1) - memmove (pstr->wcs, pstr->wcs + offset, - (pstr->valid_len - offset) * sizeof (wint_t)); + if (BE (pstr->offsets_needed, 0)) + { + int low = 0, high = pstr->valid_len, mid; + do + { + mid = (high + low) / 2; + if (pstr->offsets[mid] > offset) + high = mid; + else if (pstr->offsets[mid] < offset) + low = mid + 1; + else + break; + } + while (low < high); + if (pstr->offsets[mid] < offset) + ++mid; + pstr->tip_context = re_string_context_at (pstr, mid - 1, + eflags); + /* This can be quite complicated, so handle specially + only the common and easy case where the character with + different length representation of lower and upper + case is present at or after offset. */ + if (pstr->valid_len > offset + && mid == offset && pstr->offsets[mid] == offset) + { + memmove (pstr->wcs, pstr->wcs + offset, + (pstr->valid_len - offset) * sizeof (wint_t)); + memmove (pstr->mbs, pstr->mbs + offset, pstr->valid_len - offset); + pstr->valid_len -= offset; + pstr->valid_raw_len -= offset; + for (low = 0; low < pstr->valid_len; low++) + pstr->offsets[low] = pstr->offsets[low + offset] - offset; + } + else + { + /* Otherwise, just find out how long the partial multibyte + character at offset is and fill it with WEOF/255. */ + pstr->len = pstr->raw_len - idx + offset; + pstr->stop = pstr->raw_stop - idx + offset; + pstr->offsets_needed = 0; + while (mid > 0 && pstr->offsets[mid - 1] == offset) + --mid; + while (mid < pstr->valid_len) + if (pstr->wcs[mid] != WEOF) + break; + else + ++mid; + if (mid == pstr->valid_len) + pstr->valid_len = 0; + else + { + pstr->valid_len = pstr->offsets[mid] - offset; + if (pstr->valid_len) + { + for (low = 0; low < pstr->valid_len; ++low) + pstr->wcs[low] = WEOF; + memset (pstr->mbs, 255, pstr->valid_len); + } + } + pstr->valid_raw_len = pstr->valid_len; + } + } + else +#endif + { + pstr->tip_context = re_string_context_at (pstr, offset - 1, + eflags); +#ifdef RE_ENABLE_I18N + if (pstr->mb_cur_max > 1) + memmove (pstr->wcs, pstr->wcs + offset, + (pstr->valid_len - offset) * sizeof (wint_t)); #endif /* RE_ENABLE_I18N */ - if (BE (pstr->mbs_allocated, 0)) - memmove (pstr->mbs, pstr->mbs + offset, - pstr->valid_len - offset); - pstr->valid_len -= offset; - pstr->valid_raw_len -= offset; + if (BE (pstr->mbs_allocated, 0)) + memmove (pstr->mbs, pstr->mbs + offset, + pstr->valid_len - offset); + pstr->valid_len -= offset; + pstr->valid_raw_len -= offset; #if DEBUG - assert (pstr->valid_len > 0); + assert (pstr->valid_len > 0); #endif + } } else { /* No, skip all characters until IDX. */ + int prev_valid_len = pstr->valid_len; + #ifdef RE_ENABLE_I18N if (BE (pstr->offsets_needed, 0)) { @@ -633,7 +686,6 @@ } #endif pstr->valid_len = 0; - pstr->valid_raw_len = 0; #ifdef RE_ENABLE_I18N if (pstr->mb_cur_max > 1) { @@ -648,40 +700,66 @@ byte other than 0x80 - 0xbf. */ raw = pstr->raw_mbs + pstr->raw_mbs_idx; end = raw + (offset - pstr->mb_cur_max); - for (p = raw + offset - 1; p >= end; --p) - if ((*p & 0xc0) != 0x80) - { - mbstate_t cur_state; - wchar_t wc2; - int mlen = raw + pstr->len - p; - unsigned char buf[6]; - - q = p; - if (BE (pstr->trans != NULL, 0)) - { - int i = mlen < 6 ? mlen : 6; - while (--i >= 0) - buf[i] = pstr->trans[p[i]]; - q = buf; - } - /* XXX Don't use mbrtowc, we know which conversion - to use (UTF-8 -> UCS4). */ - memset (&cur_state, 0, sizeof (cur_state)); - mlen = mbrtowc (&wc2, p, mlen, &cur_state) - - (raw + offset - p); - if (mlen >= 0) - { - memset (&pstr->cur_state, '\0', - sizeof (mbstate_t)); - pstr->valid_len = mlen; - wc = wc2; - } - break; - } + if (end < pstr->raw_mbs) + end = pstr->raw_mbs; + p = raw + offset - 1; +#ifdef _LIBC + /* We know the wchar_t encoding is UCS4, so for the simple + case, ASCII characters, skip the conversion step. */ + if (isascii (*p) && BE (pstr->trans == NULL, 1)) + { + memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); + /* pstr->valid_len = 0; */ + wc = (wchar_t) *p; + } + else +#endif + for (; p >= end; --p) + if ((*p & 0xc0) != 0x80) + { + mbstate_t cur_state; + wchar_t wc2; + int mlen = raw + pstr->len - p; + unsigned char buf[6]; + size_t mbclen; + + q = p; + if (BE (pstr->trans != NULL, 0)) + { + int i = mlen < 6 ? mlen : 6; + while (--i >= 0) + buf[i] = pstr->trans[p[i]]; + q = buf; + } + /* XXX Don't use mbrtowc, we know which conversion + to use (UTF-8 -> UCS4). */ + memset (&cur_state, 0, sizeof (cur_state)); + mbclen = mbrtowc (&wc2, (const char *) p, mlen, + &cur_state); + if (raw + offset - p <= mbclen + && mbclen < (size_t) -2) + { + memset (&pstr->cur_state, '\0', + sizeof (mbstate_t)); + pstr->valid_len = mbclen - (raw + offset - p); + wc = wc2; + } + break; + } } if (wc == WEOF) pstr->valid_len = re_string_skip_chars (pstr, idx, &wc) - idx; + if (wc == WEOF) + pstr->tip_context + = re_string_context_at (pstr, prev_valid_len - 1, eflags); + else + pstr->tip_context = ((BE (pstr->word_ops_used != 0, 0) + && IS_WIDE_WORD_CHAR (wc)) + ? CONTEXT_WORD + : ((IS_WIDE_NEWLINE (wc) + && pstr->newline_anchor) + ? CONTEXT_NEWLINE : 0)); if (BE (pstr->valid_len, 0)) { for (wcs_idx = 0; wcs_idx < pstr->valid_len; ++wcs_idx) @@ -690,17 +768,12 @@ memset (pstr->mbs, 255, pstr->valid_len); } pstr->valid_raw_len = pstr->valid_len; - pstr->tip_context = ((BE (pstr->word_ops_used != 0, 0) - && IS_WIDE_WORD_CHAR (wc)) - ? CONTEXT_WORD - : ((IS_WIDE_NEWLINE (wc) - && pstr->newline_anchor) - ? CONTEXT_NEWLINE : 0)); } else #endif /* RE_ENABLE_I18N */ { int c = pstr->raw_mbs[pstr->raw_mbs_idx + offset - 1]; + pstr->valid_raw_len = 0; if (pstr->trans) c = pstr->trans[c]; pstr->tip_context = (bitset_contain (pstr->word_char, c) @@ -722,7 +795,7 @@ { if (pstr->icase) { - int ret = build_wcs_upper_buffer (pstr); + reg_errcode_t ret = build_wcs_upper_buffer (pstr); if (BE (ret != REG_NOERROR, 0)) return ret; } @@ -731,24 +804,23 @@ } else #endif /* RE_ENABLE_I18N */ - if (BE (pstr->mbs_allocated, 0)) - { - if (pstr->icase) - build_upper_buffer (pstr); - else if (pstr->trans != NULL) - re_string_translate_buffer (pstr); - } - else - pstr->valid_len = pstr->len; + if (BE (pstr->mbs_allocated, 0)) + { + if (pstr->icase) + build_upper_buffer (pstr); + else if (pstr->trans != NULL) + re_string_translate_buffer (pstr); + } + else + pstr->valid_len = pstr->len; pstr->cur_idx = 0; return REG_NOERROR; } static unsigned char -re_string_peek_byte_case (pstr, idx) - const re_string_t *pstr; - int idx; +internal_function __attribute ((pure)) +re_string_peek_byte_case (const re_string_t *pstr, int idx) { int ch, off; @@ -783,8 +855,8 @@ } static unsigned char -re_string_fetch_byte_case (pstr) - re_string_t *pstr; +internal_function __attribute ((pure)) +re_string_fetch_byte_case (re_string_t *pstr) { if (BE (!pstr->mbs_allocated, 1)) return re_string_fetch_byte (pstr); @@ -820,8 +892,8 @@ } static void -re_string_destruct (pstr) - re_string_t *pstr; +internal_function +re_string_destruct (re_string_t *pstr) { #ifdef RE_ENABLE_I18N re_free (pstr->wcs); @@ -834,9 +906,8 @@ /* Return the context at IDX in INPUT. */ static unsigned int -re_string_context_at (input, idx, eflags) - const re_string_t *input; - int idx, eflags; +internal_function +re_string_context_at (const re_string_t *input, int idx, int eflags) { int c; if (BE (idx < 0, 0)) @@ -880,9 +951,8 @@ /* Functions for set operation. */ static reg_errcode_t -re_node_set_alloc (set, size) - re_node_set *set; - int size; +internal_function +re_node_set_alloc (re_node_set *set, int size) { /* * ADR: valgrind says size can be 0, which then doesn't @@ -903,9 +973,8 @@ } static reg_errcode_t -re_node_set_init_1 (set, elem) - re_node_set *set; - int elem; +internal_function +re_node_set_init_1 (re_node_set *set, int elem) { set->alloc = 1; set->nelem = 1; @@ -920,9 +989,8 @@ } static reg_errcode_t -re_node_set_init_2 (set, elem1, elem2) - re_node_set *set; - int elem1, elem2; +internal_function +re_node_set_init_2 (re_node_set *set, int elem1, int elem2) { set->alloc = 2; set->elems = re_malloc (int, 2); @@ -951,9 +1019,8 @@ } static reg_errcode_t -re_node_set_init_copy (dest, src) - re_node_set *dest; - const re_node_set *src; +internal_function +re_node_set_init_copy (re_node_set *dest, const re_node_set *src) { dest->nelem = src->nelem; if (src->nelem > 0) @@ -977,9 +1044,9 @@ Note: We assume dest->elems is NULL, when dest->alloc is 0. */ static reg_errcode_t -re_node_set_add_intersect (dest, src1, src2) - re_node_set *dest; - const re_node_set *src1, *src2; +internal_function +re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, + const re_node_set *src2) { int i1, i2, is, id, delta, sbase; if (src1->nelem == 0 || src2->nelem == 0) @@ -1068,9 +1135,9 @@ DEST. Return value indicate the error code or REG_NOERROR if succeeded. */ static reg_errcode_t -re_node_set_init_union (dest, src1, src2) - re_node_set *dest; - const re_node_set *src1, *src2; +internal_function +re_node_set_init_union (re_node_set *dest, const re_node_set *src1, + const re_node_set *src2) { int i1, i2, id; if (src1 != NULL && src1->nelem > 0 && src2 != NULL && src2->nelem > 0) @@ -1121,9 +1188,8 @@ DEST. Return value indicate the error code or REG_NOERROR if succeeded. */ static reg_errcode_t -re_node_set_merge (dest, src) - re_node_set *dest; - const re_node_set *src; +internal_function +re_node_set_merge (re_node_set *dest, const re_node_set *src) { int is, id, sbase, delta; if (src == NULL || src->nelem == 0) @@ -1205,9 +1271,8 @@ return -1 if an error is occured, return 1 otherwise. */ static int -re_node_set_insert (set, elem) - re_node_set *set; - int elem; +internal_function +re_node_set_insert (re_node_set *set, int elem) { int idx; /* In case the set is empty. */ @@ -1230,12 +1295,12 @@ /* Realloc if we need. */ if (set->alloc == set->nelem) { - int *new_array; + int *new_elems; set->alloc = set->alloc * 2; - new_array = re_realloc (set->elems, int, set->alloc); - if (BE (new_array == NULL, 0)) + new_elems = re_realloc (set->elems, int, set->alloc); + if (BE (new_elems == NULL, 0)) return -1; - set->elems = new_array; + set->elems = new_elems; } /* Move the elements which follows the new element. Test the @@ -1263,19 +1328,18 @@ Return -1 if an error is occured, return 1 otherwise. */ static int -re_node_set_insert_last (set, elem) - re_node_set *set; - int elem; +internal_function +re_node_set_insert_last (re_node_set *set, int elem) { /* Realloc if we need. */ if (set->alloc == set->nelem) { - int *new_array; + int *new_elems; set->alloc = (set->alloc + 1) * 2; - new_array = re_realloc (set->elems, int, set->alloc); - if (BE (new_array == NULL, 0)) + new_elems = re_realloc (set->elems, int, set->alloc); + if (BE (new_elems == NULL, 0)) return -1; - set->elems = new_array; + set->elems = new_elems; } /* Insert the new element. */ @@ -1287,8 +1351,8 @@ return 1 if SET1 and SET2 are equivalent, return 0 otherwise. */ static int -re_node_set_compare (set1, set2) - const re_node_set *set1, *set2; +internal_function __attribute ((pure)) +re_node_set_compare (const re_node_set *set1, const re_node_set *set2) { int i; if (set1 == NULL || set2 == NULL || set1->nelem != set2->nelem) @@ -1302,9 +1366,8 @@ /* Return (idx + 1) if SET contains the element ELEM, return 0 otherwise. */ static int -re_node_set_contains (set, elem) - const re_node_set *set; - int elem; +internal_function __attribute ((pure)) +re_node_set_contains (const re_node_set *set, int elem) { unsigned int idx, right, mid; if (set->nelem <= 0) @@ -1325,9 +1388,8 @@ } static void -re_node_set_remove_at (set, idx) - re_node_set *set; - int idx; +internal_function +re_node_set_remove_at (re_node_set *set, int idx) { if (idx < 0 || idx >= set->nelem) return; @@ -1341,21 +1403,24 @@ Or return -1, if an error will be occured. */ static int -re_dfa_add_node (dfa, token) - re_dfa_t *dfa; - re_token_t token; +internal_function +re_dfa_add_node (re_dfa_t *dfa, re_token_t token) { if (BE (dfa->nodes_len >= dfa->nodes_alloc, 0)) { - int new_nodes_alloc = dfa->nodes_alloc * 2; + size_t new_nodes_alloc = dfa->nodes_alloc * 2; int *new_nexts, *new_indices; re_node_set *new_edests, *new_eclosures; + re_token_t *new_nodes; - re_token_t *new_array = re_realloc (dfa->nodes, re_token_t, - new_nodes_alloc); - if (BE (new_array == NULL, 0)) + /* Avoid overflows. */ + if (BE (new_nodes_alloc < dfa->nodes_alloc, 0)) return -1; - dfa->nodes = new_array; + + new_nodes = re_realloc (dfa->nodes, re_token_t, new_nodes_alloc); + if (BE (new_nodes == NULL, 0)) + return -1; + dfa->nodes = new_nodes; new_nexts = re_realloc (dfa->nexts, int, new_nodes_alloc); new_indices = re_realloc (dfa->org_indices, int, new_nodes_alloc); new_edests = re_realloc (dfa->edests, re_node_set, new_nodes_alloc); @@ -1381,10 +1446,9 @@ return dfa->nodes_len++; } -static unsigned int inline -calc_state_hash (nodes, context) - const re_node_set *nodes; - unsigned int context; +static inline unsigned int +internal_function +calc_state_hash (const re_node_set *nodes, unsigned int context) { unsigned int hash = nodes->nelem + context; int i; @@ -1402,11 +1466,10 @@ - We never return non-NULL value in case of any errors, it is for optimization. */ -static re_dfastate_t* -re_acquire_state (err, dfa, nodes) - reg_errcode_t *err; - re_dfa_t *dfa; - const re_node_set *nodes; +static re_dfastate_t * +internal_function +re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa, + const re_node_set *nodes) { unsigned int hash; re_dfastate_t *new_state; @@ -1431,13 +1494,10 @@ /* There are no appropriate state in the dfa, create the new one. */ new_state = create_ci_newstate (dfa, nodes, hash); - if (BE (new_state != NULL, 1)) - return new_state; - else - { - *err = REG_ESPACE; - return NULL; - } + if (BE (new_state == NULL, 0)) + *err = REG_ESPACE; + + return new_state; } /* Search for the state whose node_set is equivalent to NODES and @@ -1450,12 +1510,10 @@ - We never return non-NULL value in case of any errors, it is for optimization. */ -static re_dfastate_t* -re_acquire_state_context (err, dfa, nodes, context) - reg_errcode_t *err; - re_dfa_t *dfa; - const re_node_set *nodes; - unsigned int context; +static re_dfastate_t * +internal_function +re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa, + const re_node_set *nodes, unsigned int context) { unsigned int hash; re_dfastate_t *new_state; @@ -1479,13 +1537,10 @@ } /* There are no appropriate state in `dfa', create the new one. */ new_state = create_cd_newstate (dfa, nodes, context, hash); - if (BE (new_state != NULL, 1)) - return new_state; - else - { - *err = REG_ESPACE; - return NULL; - } + if (BE (new_state == NULL, 0)) + *err = REG_ESPACE; + + return new_state; } /* Finish initialization of the new state NEWSTATE, and using its hash value @@ -1493,10 +1548,8 @@ indicates the error code if failed. */ static reg_errcode_t -register_state (dfa, newstate, hash) - re_dfa_t *dfa; - re_dfastate_t *newstate; - unsigned int hash; +register_state (const re_dfa_t *dfa, re_dfastate_t *newstate, + unsigned int hash) { struct re_state_table_entry *spot; reg_errcode_t err; @@ -1528,14 +1581,29 @@ return REG_NOERROR; } +static void +free_state (re_dfastate_t *state) +{ + re_node_set_free (&state->non_eps_nodes); + re_node_set_free (&state->inveclosure); + if (state->entrance_nodes != &state->nodes) + { + re_node_set_free (state->entrance_nodes); + re_free (state->entrance_nodes); + } + re_node_set_free (&state->nodes); + re_free (state->word_trtable); + re_free (state->trtable); + re_free (state); +} + /* Create the new state which is independ of contexts. Return the new state if succeeded, otherwise return NULL. */ static re_dfastate_t * -create_ci_newstate (dfa, nodes, hash) - re_dfa_t *dfa; - const re_node_set *nodes; - unsigned int hash; +internal_function +create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, + unsigned int hash) { int i; reg_errcode_t err; @@ -1583,10 +1651,9 @@ Return the new state if succeeded, otherwise return NULL. */ static re_dfastate_t * -create_cd_newstate (dfa, nodes, context, hash) - re_dfa_t *dfa; - const re_node_set *nodes; - unsigned int context, hash; +internal_function +create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, + unsigned int context, unsigned int hash) { int i, nctx_nodes = 0; reg_errcode_t err; @@ -1657,20 +1724,3 @@ } return newstate; } - -static void -free_state (state) - re_dfastate_t *state; -{ - re_node_set_free (&state->non_eps_nodes); - re_node_set_free (&state->inveclosure); - if (state->entrance_nodes != &state->nodes) - { - re_node_set_free (state->entrance_nodes); - re_free (state->entrance_nodes); - } - re_node_set_free (&state->nodes); - re_free (state->word_trtable); - re_free (state->trtable); - re_free (state); -} diff -urN gawk-3.1.5/regex_internal.h gawk-3.1.6/regex_internal.h --- gawk-3.1.5/regex_internal.h 2005-05-11 18:28:17.000000000 +0300 +++ gawk-3.1.6/regex_internal.h 2007-09-25 08:26:22.000000000 +0200 @@ -15,8 +15,8 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. */ + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ #ifndef _REGEX_INTERNAL_H #define _REGEX_INTERNAL_H 1 @@ -39,6 +39,20 @@ #if defined HAVE_WCTYPE_H || defined _LIBC # include #endif /* HAVE_WCTYPE_H || _LIBC */ +#if defined HAVE_STDBOOL_H || defined _LIBC +# include +#endif /* HAVE_STDBOOL_H || _LIBC */ +#if defined HAVE_STDINT_H || defined _LIBC +# include +#endif /* HAVE_STDINT_H || _LIBC */ +#if defined _LIBC +# include +#else +# define __libc_lock_define(CLASS,NAME) +# define __libc_lock_init(NAME) do { } while (0) +# define __libc_lock_lock(NAME) do { } while (0) +# define __libc_lock_unlock(NAME) do { } while (0) +#endif #ifndef GAWK /* In case that the system doesn't have isblank(). */ @@ -49,7 +63,7 @@ /* * This is a freaking mess. On glibc systems you have to define * a magic constant to get isblank() out of , since it's - * a C99 function. To heck wiht all that and borrow a page from + * a C99 function. To heck with all that and borrow a page from * dfa.c's book. */ @@ -75,7 +89,7 @@ # ifdef _LIBC # undef gettext # define gettext(msgid) \ - INTUSE(__dcgettext) (INTUSE(_libc_intl_domainname), msgid, LC_MESSAGES) + INTUSE(__dcgettext) (_libc_intl_domainname, msgid, LC_MESSAGES) # endif #else # define gettext(msgid) (msgid) @@ -87,6 +101,11 @@ # define gettext_noop(String) String #endif +/* For loser systems without the definition. */ +#ifndef SIZE_MAX +# define SIZE_MAX ((size_t) -1) +#endif + #ifndef NO_MBSUPPORT #include "mbsupport.h" /* gawk */ #endif @@ -105,8 +124,6 @@ # define inline #endif -/* Number of bits in a byte. */ -#define BYTE_BITS 8 /* Number of single byte character. */ #define SBC_MAX 256 @@ -121,6 +138,7 @@ # define __wctype wctype # define __iswctype iswctype # define __btowc btowc +#undef __mempcpy /* GAWK */ # define __mempcpy mempcpy # define __wcrtomb wcrtomb # define __regfree regfree @@ -133,42 +151,31 @@ # define __attribute(arg) #endif -/* Error messages (regcomp.c), with hackery to support very old compilers. */ -#ifdef NO_TOKEN_PASTING -#define RE_ERRMSG(idx) __re_error_msgid[(int) (idx)] -#define ERRMSG_TYPE char * const /* pointers */ -#define ERRMSG_OFFSET(base,offset) ((base)+1) /* array index */ -#define ERRMSG_SEPARATOR , -#else -#define RE_ERRMSG(idx) (__re_error_msgid + __re_error_msgid_idx[(int) (idx)]) -#define ERRMSG_TYPE char /* one string */ -#define ERRMSG_OFFSET(base,offset) ((base)+(offset)) /* substring index */ -#define ERRMSG_SEPARATOR "\0" -#endif - -extern const ERRMSG_TYPE __re_error_msgid[] attribute_hidden; +extern const char __re_error_msgid[] attribute_hidden; extern const size_t __re_error_msgid_idx[] attribute_hidden; -/* Number of bits in an unsinged int. */ -#define UINT_BITS (sizeof (unsigned int) * BYTE_BITS) -/* Number of unsigned int in an bit_set. */ -#define BITSET_UINTS ((SBC_MAX + UINT_BITS - 1) / UINT_BITS) -typedef unsigned int bitset[BITSET_UINTS]; -typedef unsigned int *re_bitset_ptr_t; -typedef const unsigned int *re_const_bitset_ptr_t; - -#define bitset_set(set,i) (set[i / UINT_BITS] |= 1 << i % UINT_BITS) -#define bitset_clear(set,i) (set[i / UINT_BITS] &= ~(1 << i % UINT_BITS)) -#define bitset_contain(set,i) (set[i / UINT_BITS] & (1 << i % UINT_BITS)) -#define bitset_empty(set) memset (set, 0, sizeof (unsigned int) * BITSET_UINTS) -#define bitset_set_all(set) \ - memset (set, 255, sizeof (unsigned int) * BITSET_UINTS) -#define bitset_copy(dest,src) \ - memcpy (dest, src, sizeof (unsigned int) * BITSET_UINTS) -static inline void bitset_not (bitset set); -static inline void bitset_merge (bitset dest, const bitset src); -static inline void bitset_not_merge (bitset dest, const bitset src); -static inline void bitset_mask (bitset dest, const bitset src); +/* An integer used to represent a set of bits. It must be unsigned, + and must be at least as wide as unsigned int. */ +typedef unsigned long int bitset_word_t; +/* All bits set in a bitset_word_t. */ +#define BITSET_WORD_MAX ULONG_MAX +/* Number of bits in a bitset_word_t. */ +#define BITSET_WORD_BITS (sizeof (bitset_word_t) * CHAR_BIT) +/* Number of bitset_word_t in a bit_set. */ +#define BITSET_WORDS (SBC_MAX / BITSET_WORD_BITS) +typedef bitset_word_t bitset_t[BITSET_WORDS]; +typedef bitset_word_t *re_bitset_ptr_t; +typedef const bitset_word_t *re_const_bitset_ptr_t; + +#define bitset_set(set,i) \ + (set[i / BITSET_WORD_BITS] |= (bitset_word_t) 1 << i % BITSET_WORD_BITS) +#define bitset_clear(set,i) \ + (set[i / BITSET_WORD_BITS] &= ~((bitset_word_t) 1 << i % BITSET_WORD_BITS)) +#define bitset_contain(set,i) \ + (set[i / BITSET_WORD_BITS] & ((bitset_word_t) 1 << i % BITSET_WORD_BITS)) +#define bitset_empty(set) memset (set, '\0', sizeof (bitset_t)) +#define bitset_set_all(set) memset (set, '\xff', sizeof (bitset_t)) +#define bitset_copy(dest,src) memcpy (dest, src, sizeof (bitset_t)) #define PREV_WORD_CONSTRAINT 0x0001 #define PREV_NOTWORD_CONSTRAINT 0x0002 @@ -374,7 +381,7 @@ the beginning of the input string. */ unsigned int tip_context; /* The translation passed as a part of an argument of re_compile_pattern. */ - unsigned RE_TRANSLATE_TYPE trans; + RE_TRANSLATE_TYPE trans; /* Copy of re_dfa_t's word_char. */ re_const_bitset_ptr_t word_char; /* 1 if REG_ICASE. */ @@ -401,45 +408,18 @@ # endif #endif -#ifndef RE_NO_INTERNAL_PROTOTYPES -static reg_errcode_t re_string_allocate (re_string_t *pstr, const char *str, - int len, int init_len, - RE_TRANSLATE_TYPE trans, int icase, - const re_dfa_t *dfa) - internal_function; -static reg_errcode_t re_string_construct (re_string_t *pstr, const char *str, - int len, RE_TRANSLATE_TYPE trans, - int icase, const re_dfa_t *dfa) - internal_function; -static reg_errcode_t re_string_reconstruct (re_string_t *pstr, int idx, - int eflags) internal_function; static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr, int new_buf_len) internal_function; -# ifdef RE_ENABLE_I18N +#ifdef RE_ENABLE_I18N static void build_wcs_buffer (re_string_t *pstr) internal_function; -static int build_wcs_upper_buffer (re_string_t *pstr) internal_function; -# endif /* RE_ENABLE_I18N */ +static reg_errcode_t build_wcs_upper_buffer (re_string_t *pstr) internal_function; +#endif /* RE_ENABLE_I18N */ static void build_upper_buffer (re_string_t *pstr) internal_function; static void re_string_translate_buffer (re_string_t *pstr) internal_function; -static void re_string_destruct (re_string_t *pstr) internal_function; -# ifdef RE_ENABLE_I18N -static int re_string_elem_size_at (const re_string_t *pstr, int idx) - internal_function __attribute ((pure)); -static inline int re_string_char_size_at (const re_string_t *pstr, int idx) - internal_function __attribute ((pure)); -static inline wint_t re_string_wchar_at (const re_string_t *pstr, int idx) - internal_function __attribute ((pure)); -# endif /* RE_ENABLE_I18N */ static unsigned int re_string_context_at (const re_string_t *input, int idx, int eflags) internal_function __attribute ((pure)); -static unsigned char re_string_peek_byte_case (const re_string_t *pstr, - int idx) - internal_function __attribute ((pure)); -static unsigned char re_string_fetch_byte_case (re_string_t *pstr) - internal_function __attribute ((pure)); -#endif #define re_string_peek_byte(pstr, offset) \ ((pstr)->mbs[(pstr)->cur_idx + offset]) #define re_string_fetch_byte(pstr) \ @@ -457,6 +437,25 @@ #define re_string_skip_bytes(pstr,idx) ((pstr)->cur_idx += (idx)) #define re_string_set_index(pstr,idx) ((pstr)->cur_idx = (idx)) +#ifndef _LIBC +# if HAVE_ALLOCA +# if (_MSC_VER) +# include +# define __libc_use_alloca(n) 0 +# else +# include +/* The OS usually guarantees only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + allocate anything larger than 4096 bytes. Also care for the possibility + of a few compiler-allocated temporary stack slots. */ +# define __libc_use_alloca(n) ((n) < 4032) +# endif +# else +/* alloca is implemented with malloc, so just use malloc. */ +# define __libc_use_alloca(n) 0 +# endif +#endif + #define re_malloc(t,n) ((t *) malloc ((n) * sizeof (t))) /* SunOS 4.1.x realloc doesn't accept null pointers: pre-Standard C. Sigh. */ #define re_realloc(p,t,n) ((p != NULL) ? (t *) realloc (p,(n)*sizeof(t)) : (t *) calloc(n,sizeof(t))) @@ -569,7 +568,6 @@ { int str_idx; int node; - int next_last_offset; state_array_t *path; int alasts; /* Allocation size of LASTS. */ int nlasts; /* The number of LASTS. */ @@ -592,9 +590,9 @@ /* The string object corresponding to the input string. */ re_string_t input; #if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) - re_dfa_t *const dfa; + const re_dfa_t *const dfa; #else - re_dfa_t *dfa; + const re_dfa_t *dfa; #endif /* EFLAGS of the argument of regexec. */ int eflags; @@ -641,8 +639,8 @@ struct re_dfa_t { re_token_t *nodes; - int nodes_alloc; - int nodes_len; + size_t nodes_alloc; + size_t nodes_len; int *nexts; int *org_indices; re_node_set *edests; @@ -660,13 +658,12 @@ /* number of subexpressions `re_nsub' is in regex_t. */ unsigned int state_hash_mask; - int states_alloc; int init_node; int nbackref; /* The number of backreference in this dfa. */ /* Bitmap expressing which backreference is used. */ - unsigned int used_bkref_map; - unsigned int completed_bkref_map; + bitset_word_t used_bkref_map; + bitset_word_t completed_bkref_map; unsigned int has_plural_match : 1; /* If this dfa has "multibyte node", which is a backreference or @@ -677,52 +674,22 @@ unsigned int map_notascii : 1; unsigned int word_ops_used : 1; int mb_cur_max; - bitset word_char; + bitset_t word_char; reg_syntax_t syntax; int *subexp_map; #ifdef DEBUG char* re_str; #endif +#if defined _LIBC + __libc_lock_define (, lock) +#endif }; -#ifndef RE_NO_INTERNAL_PROTOTYPES -static reg_errcode_t re_node_set_alloc (re_node_set *set, int size) internal_function; -static reg_errcode_t re_node_set_init_1 (re_node_set *set, int elem) internal_function; -static reg_errcode_t re_node_set_init_2 (re_node_set *set, int elem1, - int elem2) internal_function; #define re_node_set_init_empty(set) memset (set, '\0', sizeof (re_node_set)) -static reg_errcode_t re_node_set_init_copy (re_node_set *dest, - const re_node_set *src) internal_function; -static reg_errcode_t re_node_set_add_intersect (re_node_set *dest, - const re_node_set *src1, - const re_node_set *src2) internal_function; -static reg_errcode_t re_node_set_init_union (re_node_set *dest, - const re_node_set *src1, - const re_node_set *src2) internal_function; -static reg_errcode_t re_node_set_merge (re_node_set *dest, - const re_node_set *src) internal_function; -static int re_node_set_insert (re_node_set *set, int elem) internal_function; -static int re_node_set_insert_last (re_node_set *set, - int elem) internal_function; -static int re_node_set_compare (const re_node_set *set1, - const re_node_set *set2) - internal_function __attribute ((pure)); -static int re_node_set_contains (const re_node_set *set, int elem) - internal_function __attribute ((pure)); -static void re_node_set_remove_at (re_node_set *set, int idx) internal_function; #define re_node_set_remove(set,id) \ (re_node_set_remove_at (set, re_node_set_contains (set, id) - 1)) #define re_node_set_empty(p) ((p)->nelem = 0) #define re_node_set_free(set) re_free ((set)->elems) -static int re_dfa_add_node (re_dfa_t *dfa, re_token_t token) internal_function; -static re_dfastate_t *re_acquire_state (reg_errcode_t *err, re_dfa_t *dfa, - const re_node_set *nodes) internal_function; -static re_dfastate_t *re_acquire_state_context (reg_errcode_t *err, - re_dfa_t *dfa, - const re_node_set *nodes, - unsigned int context) internal_function; -static void free_state (re_dfastate_t *state) internal_function; -#endif typedef enum @@ -748,41 +715,33 @@ /* Inline functions for bitset operation. */ static inline void -bitset_not (bitset set) +bitset_not (bitset_t set) { int bitset_i; - for (bitset_i = 0; bitset_i < BITSET_UINTS; ++bitset_i) + for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i) set[bitset_i] = ~set[bitset_i]; } static inline void -bitset_merge (bitset dest, const bitset src) +bitset_merge (bitset_t dest, const bitset_t src) { int bitset_i; - for (bitset_i = 0; bitset_i < BITSET_UINTS; ++bitset_i) + for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i) dest[bitset_i] |= src[bitset_i]; } static inline void -bitset_not_merge (bitset dest, const bitset src) -{ - int i; - for (i = 0; i < BITSET_UINTS; ++i) - dest[i] |= ~src[i]; -} - -static inline void -bitset_mask (bitset dest, const bitset src) +bitset_mask (bitset_t dest, const bitset_t src) { int bitset_i; - for (bitset_i = 0; bitset_i < BITSET_UINTS; ++bitset_i) + for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i) dest[bitset_i] &= src[bitset_i]; } -#if defined RE_ENABLE_I18N && !defined RE_NO_INTERNAL_PROTOTYPES +#ifdef RE_ENABLE_I18N /* Inline functions for re_string. */ static inline int -internal_function +internal_function __attribute ((pure)) re_string_char_size_at (const re_string_t *pstr, int idx) { int byte_idx; @@ -795,7 +754,7 @@ } static inline wint_t -internal_function +internal_function __attribute ((pure)) re_string_wchar_at (const re_string_t *pstr, int idx) { if (pstr->mb_cur_max == 1) @@ -804,14 +763,14 @@ } static int -internal_function +internal_function __attribute ((pure)) re_string_elem_size_at (const re_string_t *pstr, int idx) { -#ifdef _LIBC +# ifdef _LIBC const unsigned char *p, *extra; const int32_t *table, *indirect; int32_t tmp; -# include +# include uint_fast32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules != 0) @@ -826,7 +785,7 @@ return p - pstr->mbs - idx; } else -#endif /* _LIBC */ +# endif /* _LIBC */ return 1; } #endif /* RE_ENABLE_I18N */ diff -urN gawk-3.1.5/regexec.c gawk-3.1.6/regexec.c --- gawk-3.1.5/regexec.c 2005-05-11 18:28:17.000000000 +0300 +++ gawk-3.1.6/regexec.c 2007-04-06 14:18:06.000000000 +0300 @@ -1,5 +1,5 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . @@ -25,7 +25,7 @@ static reg_errcode_t match_ctx_add_entry (re_match_context_t *cache, int node, int str_idx, int from, int to) internal_function; -static int search_cur_bkref_entry (re_match_context_t *mctx, int str_idx) +static int search_cur_bkref_entry (const re_match_context_t *mctx, int str_idx) internal_function; static reg_errcode_t match_ctx_add_subtop (re_match_context_t *mctx, int node, int str_idx) internal_function; @@ -52,81 +52,76 @@ int ret_len) internal_function; static unsigned re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, int nregs, int regs_allocated) internal_function; -static inline re_dfastate_t *acquire_init_state_context - (reg_errcode_t *err, const re_match_context_t *mctx, int idx) - __attribute ((always_inline)) internal_function; static reg_errcode_t prune_impossible_nodes (re_match_context_t *mctx) internal_function; static int check_matching (re_match_context_t *mctx, int fl_longest_match, - int *p_match_first) - internal_function; -static int check_halt_node_context (const re_dfa_t *dfa, int node, - unsigned int context) internal_function; + int *p_match_first) internal_function; static int check_halt_state_context (const re_match_context_t *mctx, const re_dfastate_t *state, int idx) internal_function; -static void update_regs (re_dfa_t *dfa, regmatch_t *pmatch, +static void update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, regmatch_t *prev_idx_match, int cur_node, int cur_idx, int nmatch) internal_function; -static int proceed_next_node (const re_match_context_t *mctx, - int nregs, regmatch_t *regs, - int *pidx, int node, re_node_set *eps_via_nodes, - struct re_fail_stack_t *fs) internal_function; static reg_errcode_t push_fail_stack (struct re_fail_stack_t *fs, int str_idx, int dest_node, int nregs, regmatch_t *regs, - re_node_set *eps_via_nodes) internal_function; -static int pop_fail_stack (struct re_fail_stack_t *fs, int *pidx, int nregs, - regmatch_t *regs, re_node_set *eps_via_nodes) internal_function; + re_node_set *eps_via_nodes) + internal_function; static reg_errcode_t set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, regmatch_t *pmatch, int fl_backtrack) internal_function; -static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs) internal_function; +static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs) + internal_function; #ifdef RE_ENABLE_I18N static int sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx, - int node_idx, int str_idx, int max_str_idx) internal_function; + int node_idx, int str_idx, int max_str_idx) + internal_function; #endif /* RE_ENABLE_I18N */ -static reg_errcode_t sift_states_backward (re_match_context_t *mctx, - re_sift_context_t *sctx) internal_function; -static reg_errcode_t build_sifted_states (re_match_context_t *mctx, +static reg_errcode_t sift_states_backward (const re_match_context_t *mctx, + re_sift_context_t *sctx) + internal_function; +static reg_errcode_t build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, int str_idx, - re_node_set *cur_dest) internal_function; -static reg_errcode_t update_cur_sifted_state (re_match_context_t *mctx, + re_node_set *cur_dest) + internal_function; +static reg_errcode_t update_cur_sifted_state (const re_match_context_t *mctx, re_sift_context_t *sctx, int str_idx, - re_node_set *dest_nodes) internal_function; -static reg_errcode_t add_epsilon_src_nodes (re_dfa_t *dfa, - re_node_set *dest_nodes, - const re_node_set *candidates) internal_function; -static reg_errcode_t sub_epsilon_src_nodes (re_dfa_t *dfa, int node, + re_node_set *dest_nodes) + internal_function; +static reg_errcode_t add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, - const re_node_set *and_nodes) internal_function; -static int check_dst_limits (re_match_context_t *mctx, re_node_set *limits, + const re_node_set *candidates) + internal_function; +static int check_dst_limits (const re_match_context_t *mctx, + re_node_set *limits, int dst_node, int dst_idx, int src_node, int src_idx) internal_function; -static int check_dst_limits_calc_pos_1 (re_match_context_t *mctx, +static int check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, int subexp_idx, - int from_node, int bkref_idx) internal_function; -static int check_dst_limits_calc_pos (re_match_context_t *mctx, + int from_node, int bkref_idx) + internal_function; +static int check_dst_limits_calc_pos (const re_match_context_t *mctx, int limit, int subexp_idx, int node, int str_idx, int bkref_idx) internal_function; -static reg_errcode_t check_subexp_limits (re_dfa_t *dfa, +static reg_errcode_t check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates, re_node_set *limits, struct re_backref_cache_entry *bkref_ents, int str_idx) internal_function; -static reg_errcode_t sift_states_bkref (re_match_context_t *mctx, +static reg_errcode_t sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, - int str_idx, const re_node_set *candidates) internal_function; -static reg_errcode_t clean_state_log_if_needed (re_match_context_t *mctx, - int next_state_log_idx) internal_function; -static reg_errcode_t merge_state_array (re_dfa_t *dfa, re_dfastate_t **dst, - re_dfastate_t **src, int num) internal_function; + int str_idx, const re_node_set *candidates) + internal_function; +static reg_errcode_t merge_state_array (const re_dfa_t *dfa, + re_dfastate_t **dst, + re_dfastate_t **src, int num) + internal_function; static re_dfastate_t *find_recover_state (reg_errcode_t *err, re_match_context_t *mctx) internal_function; static re_dfastate_t *transit_state (reg_errcode_t *err, @@ -134,27 +129,33 @@ re_dfastate_t *state) internal_function; static re_dfastate_t *merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, - re_dfastate_t *next_state) internal_function; + re_dfastate_t *next_state) + internal_function; static reg_errcode_t check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes, int str_idx) internal_function; #if 0 static re_dfastate_t *transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, - re_dfastate_t *pstate) internal_function; + re_dfastate_t *pstate) + internal_function; #endif #ifdef RE_ENABLE_I18N static reg_errcode_t transit_state_mb (re_match_context_t *mctx, - re_dfastate_t *pstate) internal_function; + re_dfastate_t *pstate) + internal_function; #endif /* RE_ENABLE_I18N */ static reg_errcode_t transit_state_bkref (re_match_context_t *mctx, - const re_node_set *nodes) internal_function; + const re_node_set *nodes) + internal_function; static reg_errcode_t get_subexp (re_match_context_t *mctx, - int bkref_node, int bkref_str_idx) internal_function; + int bkref_node, int bkref_str_idx) + internal_function; static reg_errcode_t get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, re_sub_match_last_t *sub_last, - int bkref_node, int bkref_str) internal_function; + int bkref_node, int bkref_str) + internal_function; static int find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, int subexp_idx, int type) internal_function; static reg_errcode_t check_arrival (re_match_context_t *mctx, @@ -164,34 +165,41 @@ static reg_errcode_t check_arrival_add_next_nodes (re_match_context_t *mctx, int str_idx, re_node_set *cur_nodes, - re_node_set *next_nodes) internal_function; -static reg_errcode_t check_arrival_expand_ecl (re_dfa_t *dfa, + re_node_set *next_nodes) + internal_function; +static reg_errcode_t check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, - int ex_subexp, int type) internal_function; -static reg_errcode_t check_arrival_expand_ecl_sub (re_dfa_t *dfa, + int ex_subexp, int type) + internal_function; +static reg_errcode_t check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, int target, int ex_subexp, int type) internal_function; static reg_errcode_t expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, int cur_str, - int subexp_num, int type) internal_function; -static int build_trtable (re_dfa_t *dfa, + int subexp_num, int type) + internal_function; +static int build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) internal_function; #ifdef RE_ENABLE_I18N -static int check_node_accept_bytes (re_dfa_t *dfa, int node_idx, - const re_string_t *input, int idx) internal_function; +static int check_node_accept_bytes (const re_dfa_t *dfa, int node_idx, + const re_string_t *input, int idx) + internal_function; # ifdef _LIBC static unsigned int find_collation_sequence_value (const unsigned char *mbs, - size_t name_len) internal_function; + size_t name_len) + internal_function; # endif /* _LIBC */ #endif /* RE_ENABLE_I18N */ -static int group_nodes_into_DFAstates (re_dfa_t *dfa, +static int group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, re_node_set *states_node, - bitset *states_ch) internal_function; + bitset_t *states_ch) internal_function; static int check_node_accept (const re_match_context_t *mctx, - const re_token_t *node, int idx) internal_function; -static reg_errcode_t extend_buffers (re_match_context_t *mctx) internal_function; + const re_token_t *node, int idx) + internal_function; +static reg_errcode_t extend_buffers (re_match_context_t *mctx) + internal_function; /* Entry point for POSIX code. */ @@ -233,12 +241,15 @@ start = 0; length = strlen (string); } + + __libc_lock_lock (dfa->lock); if (preg->no_sub) err = re_search_internal (preg, string, length, start, length - start, length, 0, NULL, eflags); else err = re_search_internal (preg, string, length, start, length - start, length, nmatch, pmatch, eflags); + __libc_lock_unlock (dfa->lock); return err != REG_NOERROR; } @@ -411,6 +422,8 @@ else if (BE (start + range < 0, 0)) range = -start; + __libc_lock_lock (dfa->lock); + eflags |= (bufp->not_bol) ? REG_NOTBOL : 0; eflags |= (bufp->not_eol) ? REG_NOTEOL : 0; @@ -439,7 +452,10 @@ nregs = bufp->re_nsub + 1; pmatch = re_malloc (regmatch_t, nregs); if (BE (pmatch == NULL, 0)) - return -2; + { + rval = -2; + goto out; + } result = re_search_internal (bufp, string, length, start, range, stop, nregs, pmatch, eflags); @@ -469,6 +485,8 @@ rval = pmatch[0].rm_so; } re_free (pmatch); + out: + __libc_lock_unlock (dfa->lock); return rval; } @@ -602,7 +620,7 @@ regmatch_t pmatch[]; { reg_errcode_t err; - re_dfa_t *dfa = (re_dfa_t *)preg->buffer; + const re_dfa_t *dfa = (const re_dfa_t *) preg->buffer; int left_lim, right_lim, incr; int fl_longest_match, match_first, match_kind, match_last = -1; int extra_nmatch; @@ -614,7 +632,7 @@ #endif char *fastmap = (preg->fastmap != NULL && preg->fastmap_accurate && range && !preg->can_be_null) ? preg->fastmap : NULL; - unsigned RE_TRANSLATE_TYPE t = (unsigned RE_TRANSLATE_TYPE) preg->translate; + RE_TRANSLATE_TYPE t = preg->translate; #if !(defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) memset (&mctx, '\0', sizeof (re_match_context_t)); @@ -871,14 +889,14 @@ #ifdef RE_ENABLE_I18N if (BE (mctx.input.offsets_needed != 0, 0)) { - if (pmatch[reg_idx].rm_so == mctx.input.valid_len) - pmatch[reg_idx].rm_so += mctx.input.valid_raw_len - mctx.input.valid_len; - else - pmatch[reg_idx].rm_so = mctx.input.offsets[pmatch[reg_idx].rm_so]; - if (pmatch[reg_idx].rm_eo == mctx.input.valid_len) - pmatch[reg_idx].rm_eo += mctx.input.valid_raw_len - mctx.input.valid_len; - else - pmatch[reg_idx].rm_eo = mctx.input.offsets[pmatch[reg_idx].rm_eo]; + pmatch[reg_idx].rm_so = + (pmatch[reg_idx].rm_so == mctx.input.valid_len + ? mctx.input.valid_raw_len + : mctx.input.offsets[pmatch[reg_idx].rm_so]); + pmatch[reg_idx].rm_eo = + (pmatch[reg_idx].rm_eo == mctx.input.valid_len + ? mctx.input.valid_raw_len + : mctx.input.offsets[pmatch[reg_idx].rm_eo]); } #else assert (mctx.input.offsets_needed == 0); @@ -915,7 +933,7 @@ prune_impossible_nodes (mctx) re_match_context_t *mctx; { - re_dfa_t *const dfa = mctx->dfa; + const re_dfa_t *const dfa = mctx->dfa; int halt_node, match_last; reg_errcode_t ret; re_dfastate_t **sifted_states; @@ -998,12 +1016,11 @@ since initial states may have constraints like "\<", "^", etc.. */ static inline re_dfastate_t * -acquire_init_state_context (err, mctx, idx) - reg_errcode_t *err; - const re_match_context_t *mctx; - int idx; +__attribute ((always_inline)) internal_function +acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx, + int idx) { - re_dfa_t *const dfa = mctx->dfa; + const re_dfa_t *const dfa = mctx->dfa; if (dfa->init_state->has_constraint) { unsigned int context; @@ -1041,12 +1058,11 @@ index of the buffer. */ static int -check_matching (mctx, fl_longest_match, p_match_first) - re_match_context_t *mctx; - int fl_longest_match; - int *p_match_first; +internal_function +check_matching (re_match_context_t *mctx, int fl_longest_match, + int *p_match_first) { - re_dfa_t *const dfa = mctx->dfa; + const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; int match = 0; int match_last = -1; @@ -1173,10 +1189,9 @@ /* Check NODE match the current context. */ -static int check_halt_node_context (dfa, node, context) - const re_dfa_t *dfa; - int node; - unsigned int context; +static int +internal_function +check_halt_node_context (const re_dfa_t *dfa, int node, unsigned int context) { re_token_type_t type = dfa->nodes[node].type; unsigned int constraint = dfa->nodes[node].constraint; @@ -1194,10 +1209,9 @@ match the context, return the node. */ static int -check_halt_state_context (mctx, state, idx) - const re_match_context_t *mctx; - const re_dfastate_t *state; - int idx; +internal_function +check_halt_state_context (const re_match_context_t *mctx, + const re_dfastate_t *state, int idx) { int i; unsigned int context; @@ -1217,21 +1231,22 @@ of errors. */ static int -proceed_next_node (mctx, nregs, regs, pidx, node, eps_via_nodes, fs) - const re_match_context_t *mctx; - regmatch_t *regs; - int nregs, *pidx, node; - re_node_set *eps_via_nodes; - struct re_fail_stack_t *fs; -{ - re_dfa_t *const dfa = mctx->dfa; - int i, err, dest_node; - dest_node = -1; +internal_function +proceed_next_node (const re_match_context_t *mctx, int nregs, regmatch_t *regs, + int *pidx, int node, re_node_set *eps_via_nodes, + struct re_fail_stack_t *fs) +{ + const re_dfa_t *const dfa = mctx->dfa; + int i, err; if (IS_EPSILON_NODE (dfa->nodes[node].type)) { - re_node_set *cur_nodes = &mctx->state_log[*pidx]->nodes; + re_node_set *cur_nodes; re_node_set *edests = &dfa->edests[node]; int dest_node; + + if (mctx->state_log[*pidx] == NULL) + return -1; + cur_nodes = &mctx->state_log[*pidx]->nodes; err = re_node_set_insert (eps_via_nodes, node); if (BE (err < 0, 0)) return -2; @@ -1292,6 +1307,7 @@ if (naccepted == 0) { + int dest_node; err = re_node_set_insert (eps_via_nodes, node); if (BE (err < 0, 0)) return -2; @@ -1305,7 +1321,7 @@ if (naccepted != 0 || check_node_accept (mctx, dfa->nodes + node, *pidx)) { - dest_node = dfa->nexts[node]; + int dest_node = dfa->nexts[node]; *pidx = (naccepted == 0) ? *pidx + 1 : *pidx + naccepted; if (fs && (*pidx > mctx->match_last || mctx->state_log[*pidx] == NULL || !re_node_set_contains (&mctx->state_log[*pidx]->nodes, @@ -1319,11 +1335,9 @@ } static reg_errcode_t -push_fail_stack (fs, str_idx, dest_node, nregs, regs, eps_via_nodes) - struct re_fail_stack_t *fs; - int str_idx, dest_node, nregs; - regmatch_t *regs; - re_node_set *eps_via_nodes; +internal_function +push_fail_stack (struct re_fail_stack_t *fs, int str_idx, int dest_node, + int nregs, regmatch_t *regs, re_node_set *eps_via_nodes) { reg_errcode_t err; int num = fs->num++; @@ -1348,11 +1362,9 @@ } static int -pop_fail_stack (fs, pidx, nregs, regs, eps_via_nodes) - struct re_fail_stack_t *fs; - int *pidx, nregs; - regmatch_t *regs; - re_node_set *eps_via_nodes; +internal_function +pop_fail_stack (struct re_fail_stack_t *fs, int *pidx, int nregs, + regmatch_t *regs, re_node_set *eps_via_nodes) { int num = --fs->num; assert (num >= 0); @@ -1370,19 +1382,17 @@ pmatch[i].rm_so == pmatch[i].rm_eo == -1 for 0 < i < nmatch. */ static reg_errcode_t -set_regs (preg, mctx, nmatch, pmatch, fl_backtrack) - const regex_t *preg; - const re_match_context_t *mctx; - size_t nmatch; - regmatch_t *pmatch; - int fl_backtrack; +internal_function +set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, + regmatch_t *pmatch, int fl_backtrack) { - re_dfa_t *dfa = (re_dfa_t *) preg->buffer; + const re_dfa_t *dfa = (const re_dfa_t *) preg->buffer; int idx, cur_node; re_node_set eps_via_nodes; struct re_fail_stack_t *fs; struct re_fail_stack_t fs_body = { 0, 2, NULL }; regmatch_t *prev_idx_match; + int prev_idx_match_malloced = 0; #ifdef DEBUG assert (nmatch > 1); @@ -1401,7 +1411,20 @@ cur_node = dfa->init_node; re_node_set_init_empty (&eps_via_nodes); - prev_idx_match = re_malloc (regmatch_t, nmatch); +#ifdef HAVE_ALLOCA + if (__libc_use_alloca (nmatch * sizeof (regmatch_t))) + prev_idx_match = (regmatch_t *) alloca (nmatch * sizeof (regmatch_t)); + else +#endif + { + prev_idx_match = re_malloc (regmatch_t, nmatch); + if (prev_idx_match == NULL) + { + free_fail_stack_return (fs); + return REG_ESPACE; + } + prev_idx_match_malloced = 1; + } memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch); for (idx = pmatch[0].rm_so; idx <= pmatch[0].rm_eo ;) @@ -1419,7 +1442,8 @@ if (reg_idx == nmatch) { re_node_set_free (&eps_via_nodes); - re_free (prev_idx_match); + if (prev_idx_match_malloced) + re_free (prev_idx_match); return free_fail_stack_return (fs); } cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch, @@ -1428,7 +1452,8 @@ else { re_node_set_free (&eps_via_nodes); - re_free (prev_idx_match); + if (prev_idx_match_malloced) + re_free (prev_idx_match); return REG_NOERROR; } } @@ -1442,8 +1467,9 @@ if (BE (cur_node == -2, 0)) { re_node_set_free (&eps_via_nodes); + if (prev_idx_match_malloced) + re_free (prev_idx_match); free_fail_stack_return (fs); - re_free (prev_idx_match); return REG_ESPACE; } if (fs) @@ -1452,19 +1478,21 @@ else { re_node_set_free (&eps_via_nodes); - re_free (prev_idx_match); + if (prev_idx_match_malloced) + re_free (prev_idx_match); return REG_NOMATCH; } } } re_node_set_free (&eps_via_nodes); - re_free (prev_idx_match); + if (prev_idx_match_malloced) + re_free (prev_idx_match); return free_fail_stack_return (fs); } static reg_errcode_t -free_fail_stack_return (fs) - struct re_fail_stack_t *fs; +internal_function +free_fail_stack_return (struct re_fail_stack_t *fs) { if (fs) { @@ -1480,10 +1508,9 @@ } static void -update_regs (dfa, pmatch, prev_idx_match, cur_node, cur_idx, nmatch) - re_dfa_t *dfa; - regmatch_t *pmatch, *prev_idx_match; - int cur_node, cur_idx, nmatch; +internal_function +update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, + regmatch_t *prev_idx_match, int cur_node, int cur_idx, int nmatch) { int type = dfa->nodes[cur_node].type; if (type == OP_OPEN_SUBEXP) @@ -1553,9 +1580,8 @@ ((state) != NULL && re_node_set_contains (&(state)->nodes, node)) static reg_errcode_t -sift_states_backward (mctx, sctx) - re_match_context_t *mctx; - re_sift_context_t *sctx; +internal_function +sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) { reg_errcode_t err; int null_cnt = 0; @@ -1612,14 +1638,12 @@ } static reg_errcode_t -build_sifted_states (mctx, sctx, str_idx, cur_dest) - re_match_context_t *mctx; - re_sift_context_t *sctx; - int str_idx; - re_node_set *cur_dest; +internal_function +build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, + int str_idx, re_node_set *cur_dest) { - re_dfa_t *const dfa = mctx->dfa; - re_node_set *cur_src = &mctx->state_log[str_idx]->non_eps_nodes; + const re_dfa_t *const dfa = mctx->dfa; + const re_node_set *cur_src = &mctx->state_log[str_idx]->non_eps_nodes; int i; /* Then build the next sifted state. @@ -1676,9 +1700,8 @@ /* Helper functions. */ static reg_errcode_t -clean_state_log_if_needed (mctx, next_state_log_idx) - re_match_context_t *mctx; - int next_state_log_idx; +internal_function +clean_state_log_if_needed (re_match_context_t *mctx, int next_state_log_idx) { int top = mctx->state_log_top; @@ -1702,11 +1725,9 @@ } static reg_errcode_t -merge_state_array (dfa, dst, src, num) - re_dfa_t *dfa; - re_dfastate_t **dst; - re_dfastate_t **src; - int num; +internal_function +merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst, + re_dfastate_t **src, int num) { int st_idx; reg_errcode_t err; @@ -1731,14 +1752,13 @@ } static reg_errcode_t -update_cur_sifted_state (mctx, sctx, str_idx, dest_nodes) - re_match_context_t *mctx; - re_sift_context_t *sctx; - int str_idx; - re_node_set *dest_nodes; +internal_function +update_cur_sifted_state (const re_match_context_t *mctx, + re_sift_context_t *sctx, int str_idx, + re_node_set *dest_nodes) { - re_dfa_t *const dfa = mctx->dfa; - reg_errcode_t err; + const re_dfa_t *const dfa = mctx->dfa; + reg_errcode_t err = REG_NOERROR; const re_node_set *candidates; candidates = ((mctx->state_log[str_idx] == NULL) ? NULL : &mctx->state_log[str_idx]->nodes); @@ -1780,10 +1800,9 @@ } static reg_errcode_t -add_epsilon_src_nodes (dfa, dest_nodes, candidates) - re_dfa_t *dfa; - re_node_set *dest_nodes; - const re_node_set *candidates; +internal_function +add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, + const re_node_set *candidates) { reg_errcode_t err = REG_NOERROR; int i; @@ -1806,11 +1825,9 @@ } static reg_errcode_t -sub_epsilon_src_nodes (dfa, node, dest_nodes, candidates) - re_dfa_t *dfa; - int node; - re_node_set *dest_nodes; - const re_node_set *candidates; +internal_function +sub_epsilon_src_nodes (const re_dfa_t *dfa, int node, re_node_set *dest_nodes, + const re_node_set *candidates) { int ecl_idx; reg_errcode_t err; @@ -1857,12 +1874,11 @@ } static int -check_dst_limits (mctx, limits, dst_node, dst_idx, src_node, src_idx) - re_match_context_t *mctx; - re_node_set *limits; - int dst_node, dst_idx, src_node, src_idx; +internal_function +check_dst_limits (const re_match_context_t *mctx, re_node_set *limits, + int dst_node, int dst_idx, int src_node, int src_idx) { - re_dfa_t *const dfa = mctx->dfa; + const re_dfa_t *const dfa = mctx->dfa; int lim_idx, src_pos, dst_pos; int dst_bkref_idx = search_cur_bkref_entry (mctx, dst_idx); @@ -1894,12 +1910,12 @@ } static int -check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx, from_node, bkref_idx) - re_match_context_t *mctx; - int boundaries, subexp_idx, from_node, bkref_idx; +internal_function +check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, + int subexp_idx, int from_node, int bkref_idx) { - re_dfa_t *const dfa = mctx->dfa; - re_node_set *eclosures = dfa->eclosures + from_node; + const re_dfa_t *const dfa = mctx->dfa; + const re_node_set *eclosures = dfa->eclosures + from_node; int node_idx; /* Else, we are on the boundary: examine the nodes on the epsilon @@ -1920,8 +1936,9 @@ if (ent->node != node) continue; - if (subexp_idx <= 8 * sizeof (ent->eps_reachable_subexps_map) - && !(ent->eps_reachable_subexps_map & (1 << subexp_idx))) + if (subexp_idx < BITSET_WORD_BITS + && !(ent->eps_reachable_subexps_map + & ((bitset_word_t) 1 << subexp_idx))) continue; /* Recurse trying to reach the OP_OPEN_SUBEXP and @@ -1947,7 +1964,9 @@ if (cpos == 0 && (boundaries & 2)) return 0; - ent->eps_reachable_subexps_map &= ~(1 << subexp_idx); + if (subexp_idx < BITSET_WORD_BITS) + ent->eps_reachable_subexps_map + &= ~((bitset_word_t) 1 << subexp_idx); } while (ent++->more); } @@ -1972,9 +1991,10 @@ } static int -check_dst_limits_calc_pos (mctx, limit, subexp_idx, from_node, str_idx, bkref_idx) - re_match_context_t *mctx; - int limit, subexp_idx, from_node, str_idx, bkref_idx; +internal_function +check_dst_limits_calc_pos (const re_match_context_t *mctx, int limit, + int subexp_idx, int from_node, int str_idx, + int bkref_idx) { struct re_backref_cache_entry *lim = mctx->bkref_ents + limit; int boundaries; @@ -2001,13 +2021,10 @@ which are against limitations from DEST_NODES. */ static reg_errcode_t -check_subexp_limits (dfa, dest_nodes, candidates, limits, bkref_ents, str_idx) - re_dfa_t *dfa; - re_node_set *dest_nodes; - const re_node_set *candidates; - re_node_set *limits; - struct re_backref_cache_entry *bkref_ents; - int str_idx; +internal_function +check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, + const re_node_set *candidates, re_node_set *limits, + struct re_backref_cache_entry *bkref_ents, int str_idx) { reg_errcode_t err; int node_idx, lim_idx; @@ -2092,13 +2109,11 @@ } static reg_errcode_t -sift_states_bkref (mctx, sctx, str_idx, candidates) - re_match_context_t *mctx; - re_sift_context_t *sctx; - int str_idx; - const re_node_set *candidates; +internal_function +sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, + int str_idx, const re_node_set *candidates) { - re_dfa_t *const dfa = mctx->dfa; + const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; int node_idx, node; re_sift_context_t local_sctx; @@ -2126,7 +2141,10 @@ enabled_idx = first_idx; do { - int subexp_len, to_idx, dst_node; + int subexp_len; + int to_idx; + int dst_node; + int ret; re_dfastate_t *cur_state; if (entry->node != node) @@ -2152,8 +2170,8 @@ } local_sctx.last_node = node; local_sctx.last_str_idx = str_idx; - err = re_node_set_insert (&local_sctx.limits, enabled_idx); - if (BE (err < 0, 0)) + ret = re_node_set_insert (&local_sctx.limits, enabled_idx); + if (BE (ret < 0, 0)) { err = REG_ESPACE; goto free_return; @@ -2191,12 +2209,11 @@ #ifdef RE_ENABLE_I18N static int -sift_states_iter_mb (mctx, sctx, node_idx, str_idx, max_str_idx) - const re_match_context_t *mctx; - re_sift_context_t *sctx; - int node_idx, str_idx, max_str_idx; +internal_function +sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx, + int node_idx, int str_idx, int max_str_idx) { - re_dfa_t *const dfa = mctx->dfa; + const re_dfa_t *const dfa = mctx->dfa; int naccepted; /* Check the node can accept `multi byte'. */ naccepted = check_node_accept_bytes (dfa, node_idx, &mctx->input, str_idx); @@ -2222,10 +2239,9 @@ update the destination of STATE_LOG. */ static re_dfastate_t * -transit_state (err, mctx, state) - reg_errcode_t *err; - re_match_context_t *mctx; - re_dfastate_t *state; +internal_function +transit_state (reg_errcode_t *err, re_match_context_t *mctx, + re_dfastate_t *state) { re_dfastate_t **trtable; unsigned char ch; @@ -2281,12 +2297,11 @@ /* Update the state_log if we need */ re_dfastate_t * -merge_state_with_log (err, mctx, next_state) - reg_errcode_t *err; - re_match_context_t *mctx; - re_dfastate_t *next_state; +internal_function +merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, + re_dfastate_t *next_state) { - re_dfa_t *const dfa = mctx->dfa; + const re_dfa_t *const dfa = mctx->dfa; int cur_idx = re_string_cur_idx (&mctx->input); if (cur_idx > mctx->state_log_top) @@ -2361,11 +2376,10 @@ multi-byte match, then look in the log for a state from which to restart matching. */ re_dfastate_t * -find_recover_state (err, mctx) - reg_errcode_t *err; - re_match_context_t *mctx; +internal_function +find_recover_state (reg_errcode_t *err, re_match_context_t *mctx) { - re_dfastate_t *cur_state = NULL; + re_dfastate_t *cur_state; do { int max = mctx->state_log_top; @@ -2381,7 +2395,7 @@ cur_state = merge_state_with_log (err, mctx, NULL); } - while (err == REG_NOERROR && cur_state == NULL); + while (*err == REG_NOERROR && cur_state == NULL); return cur_state; } @@ -2393,12 +2407,11 @@ correspoding back references. */ static reg_errcode_t -check_subexp_matching_top (mctx, cur_nodes, str_idx) - re_match_context_t *mctx; - re_node_set *cur_nodes; - int str_idx; +internal_function +check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes, + int str_idx) { - re_dfa_t *const dfa = mctx->dfa; + const re_dfa_t *const dfa = mctx->dfa; int node_idx; reg_errcode_t err; @@ -2411,8 +2424,9 @@ { int node = cur_nodes->elems[node_idx]; if (dfa->nodes[node].type == OP_OPEN_SUBEXP - && dfa->nodes[node].opr.idx < (8 * sizeof (dfa->used_bkref_map)) - && dfa->used_bkref_map & (1 << dfa->nodes[node].opr.idx)) + && dfa->nodes[node].opr.idx < BITSET_WORD_BITS + && (dfa->used_bkref_map + & ((bitset_word_t) 1 << dfa->nodes[node].opr.idx))) { err = match_ctx_add_subtop (mctx, node, str_idx); if (BE (err != REG_NOERROR, 0)) @@ -2427,12 +2441,10 @@ accepting the current input byte. */ static re_dfastate_t * -transit_state_sb (err, mctx, state) - reg_errcode_t *err; - re_match_context_t *mctx; - re_dfastate_t *state; +transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, + re_dfastate_t *state) { - re_dfa_t *const dfa = mctx->dfa; + const re_dfa_t *const dfa = mctx->dfa; re_node_set next_nodes; re_dfastate_t *next_state; int node_cnt, cur_str_idx = re_string_cur_idx (&mctx->input); @@ -2468,11 +2480,10 @@ #ifdef RE_ENABLE_I18N static reg_errcode_t -transit_state_mb (mctx, pstate) - re_match_context_t *mctx; - re_dfastate_t *pstate; +internal_function +transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) { - re_dfa_t *const dfa = mctx->dfa; + const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; int i; @@ -2525,7 +2536,8 @@ if (BE (err != REG_NOERROR, 0)) return err; } - context = re_string_context_at (&mctx->input, dest_idx - 1, mctx->eflags); + context = re_string_context_at (&mctx->input, dest_idx - 1, + mctx->eflags); mctx->state_log[dest_idx] = re_acquire_state_context (&err, dfa, &dest_nodes, context); if (dest_state != NULL) @@ -2538,11 +2550,10 @@ #endif /* RE_ENABLE_I18N */ static reg_errcode_t -transit_state_bkref (mctx, nodes) - re_match_context_t *mctx; - const re_node_set *nodes; +internal_function +transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) { - re_dfa_t *const dfa = mctx->dfa; + const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; int i; int cur_str_idx = re_string_cur_idx (&mctx->input); @@ -2653,18 +2664,18 @@ delay these checking for prune_impossible_nodes(). */ static reg_errcode_t -get_subexp (mctx, bkref_node, bkref_str_idx) - re_match_context_t *mctx; - int bkref_node, bkref_str_idx; +internal_function +get_subexp (re_match_context_t *mctx, int bkref_node, int bkref_str_idx) { - re_dfa_t *const dfa = mctx->dfa; + const re_dfa_t *const dfa = mctx->dfa; int subexp_num, sub_top_idx; const char *buf = (const char *) re_string_get_buffer (&mctx->input); /* Return if we have already checked BKREF_NODE at BKREF_STR_IDX. */ int cache_idx = search_cur_bkref_entry (mctx, bkref_str_idx); if (cache_idx != -1) { - const struct re_backref_cache_entry *entry = mctx->bkref_ents + cache_idx; + const struct re_backref_cache_entry *entry + = mctx->bkref_ents + cache_idx; do if (entry->node == bkref_node) return REG_NOERROR; /* We already checked it. */ @@ -2711,7 +2722,8 @@ buf = (const char *) re_string_get_buffer (&mctx->input); } if (memcmp (buf + bkref_str_off, buf + sl_str, sl_str_diff) != 0) - break; /* We don't need to search this sub expression any more. */ + /* We don't need to search this sub expression any more. */ + break; } bkref_str_off += sl_str_diff; sl_str += sl_str_diff; @@ -2762,7 +2774,8 @@ continue; /* Does this state have a ')' of the sub expression? */ nodes = &mctx->state_log[sl_str]->nodes; - cls_node = find_subexp_node (dfa, nodes, subexp_num, OP_CLOSE_SUBEXP); + cls_node = find_subexp_node (dfa, nodes, subexp_num, + OP_CLOSE_SUBEXP); if (cls_node == -1) continue; /* No. */ if (sub_top->path == NULL) @@ -2775,7 +2788,8 @@ /* Can the OP_OPEN_SUBEXP node arrive the OP_CLOSE_SUBEXP node in the current context? */ err = check_arrival (mctx, sub_top->path, sub_top->node, - sub_top->str_idx, cls_node, sl_str, OP_CLOSE_SUBEXP); + sub_top->str_idx, cls_node, sl_str, + OP_CLOSE_SUBEXP); if (err == REG_NOMATCH) continue; if (BE (err != REG_NOERROR, 0)) @@ -2799,17 +2813,16 @@ and SUB_LAST. */ static reg_errcode_t -get_subexp_sub (mctx, sub_top, sub_last, bkref_node, bkref_str) - re_match_context_t *mctx; - const re_sub_match_top_t *sub_top; - re_sub_match_last_t *sub_last; - int bkref_node, bkref_str; +internal_function +get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, + re_sub_match_last_t *sub_last, int bkref_node, int bkref_str) { reg_errcode_t err; int to_idx; /* Can the subexpression arrive the back reference? */ err = check_arrival (mctx, &sub_last->path, sub_last->node, - sub_last->str_idx, bkref_node, bkref_str, OP_OPEN_SUBEXP); + sub_last->str_idx, bkref_node, bkref_str, + OP_OPEN_SUBEXP); if (err != REG_NOERROR) return err; err = match_ctx_add_entry (mctx, bkref_node, bkref_str, sub_top->str_idx, @@ -2829,10 +2842,9 @@ E.g. RE: (a){2} */ static int -find_subexp_node (dfa, nodes, subexp_idx, type) - const re_dfa_t *dfa; - const re_node_set *nodes; - int subexp_idx, type; +internal_function +find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, + int subexp_idx, int type) { int cls_idx; for (cls_idx = 0; cls_idx < nodes->nelem; ++cls_idx) @@ -2852,14 +2864,12 @@ Return REG_NOERROR if it can arrive, or REG_NOMATCH otherwise. */ static reg_errcode_t -check_arrival (mctx, path, top_node, top_str, last_node, last_str, - type) - re_match_context_t *mctx; - state_array_t *path; - int top_node, top_str, last_node, last_str, type; +internal_function +check_arrival (re_match_context_t *mctx, state_array_t *path, int top_node, + int top_str, int last_node, int last_str, int type) { - re_dfa_t *const dfa = mctx->dfa; - reg_errcode_t err; + const re_dfa_t *const dfa = mctx->dfa; + reg_errcode_t err = REG_NOERROR; int subexp_num, backup_cur_idx, str_idx, null_cnt; re_dfastate_t *cur_state = NULL; re_node_set *cur_nodes, next_nodes; @@ -2874,7 +2884,7 @@ int old_alloc = path->alloc; path->alloc += last_str + mctx->max_mb_elem_len + 1; new_array = re_realloc (path->array, re_dfastate_t *, path->alloc); - if (new_array == NULL) + if (BE (new_array == NULL, 0)) { path->alloc = old_alloc; return REG_ESPACE; @@ -2884,7 +2894,7 @@ sizeof (re_dfastate_t *) * (path->alloc - old_alloc)); } - str_idx = path->next_idx == 0 ? top_str : path->next_idx; + str_idx = path->next_idx ? path->next_idx : top_str; /* Temporary modify MCTX. */ backup_state_log = mctx->state_log; @@ -2912,7 +2922,7 @@ if (cur_state && cur_state->has_backref) { err = re_node_set_init_copy (&next_nodes, &cur_state->nodes); - if (BE ( err != REG_NOERROR, 0)) + if (BE (err != REG_NOERROR, 0)) return err; } else @@ -2924,7 +2934,7 @@ { err = expand_bkref_cache (mctx, &next_nodes, str_idx, subexp_num, type); - if (BE ( err != REG_NOERROR, 0)) + if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; @@ -2955,7 +2965,8 @@ if (cur_state) { err = check_arrival_add_next_nodes (mctx, str_idx, - &cur_state->non_eps_nodes, &next_nodes); + &cur_state->non_eps_nodes, + &next_nodes); if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); @@ -2973,7 +2984,7 @@ } err = expand_bkref_cache (mctx, &next_nodes, str_idx, subexp_num, type); - if (BE ( err != REG_NOERROR, 0)) + if (BE (err != REG_NOERROR, 0)) { re_node_set_free (&next_nodes); return err; @@ -3014,12 +3025,11 @@ Can't we unify them? */ static reg_errcode_t -check_arrival_add_next_nodes (mctx, str_idx, cur_nodes, next_nodes) - re_match_context_t *mctx; - int str_idx; - re_node_set *cur_nodes, *next_nodes; +internal_function +check_arrival_add_next_nodes (re_match_context_t *mctx, int str_idx, + re_node_set *cur_nodes, re_node_set *next_nodes) { - re_dfa_t *const dfa = mctx->dfa; + const re_dfa_t *const dfa = mctx->dfa; int result; int cur_idx; re_node_set union_set; @@ -3036,8 +3046,7 @@ /* If the node may accept `multi byte'. */ if (dfa->nodes[cur_node].accept_mb) { - reg_errcode_t err; - + reg_errcode_t err = REG_NOERROR; naccepted = check_node_accept_bytes (dfa, cur_node, &mctx->input, str_idx); if (naccepted > 1) @@ -3095,10 +3104,9 @@ */ static reg_errcode_t -check_arrival_expand_ecl (dfa, cur_nodes, ex_subexp, type) - re_dfa_t *dfa; - re_node_set *cur_nodes; - int ex_subexp, type; +internal_function +check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, + int ex_subexp, int type) { reg_errcode_t err; int idx, outside_node; @@ -3115,7 +3123,7 @@ for (idx = 0; idx < cur_nodes->nelem; ++idx) { int cur_node = cur_nodes->elems[idx]; - re_node_set *eclosure = dfa->eclosures + cur_node; + const re_node_set *eclosure = dfa->eclosures + cur_node; outside_node = find_subexp_node (dfa, eclosure, ex_subexp, type); if (outside_node == -1) { @@ -3149,10 +3157,9 @@ problematic append it to DST_NODES. */ static reg_errcode_t -check_arrival_expand_ecl_sub (dfa, dst_nodes, target, ex_subexp, type) - re_dfa_t *dfa; - int target, ex_subexp, type; - re_node_set *dst_nodes; +internal_function +check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, + int target, int ex_subexp, int type) { int cur_node; for (cur_node = target; !re_node_set_contains (dst_nodes, cur_node);) @@ -3194,13 +3201,11 @@ in MCTX->BKREF_ENTS. */ static reg_errcode_t -expand_bkref_cache (mctx, cur_nodes, cur_str, subexp_num, - type) - re_match_context_t *mctx; - int cur_str, subexp_num, type; - re_node_set *cur_nodes; +internal_function +expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, + int cur_str, int subexp_num, int type) { - re_dfa_t *const dfa = mctx->dfa; + const re_dfa_t *const dfa = mctx->dfa; reg_errcode_t err; int cache_idx_start = search_cur_bkref_entry (mctx, cur_str); struct re_backref_cache_entry *ent; @@ -3285,39 +3290,44 @@ Return 1 if succeeded, otherwise return NULL. */ static int -build_trtable (dfa, state) - re_dfa_t *dfa; - re_dfastate_t *state; +internal_function +build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) { reg_errcode_t err; int i, j, ch, need_word_trtable = 0; - unsigned int elem, mask; - int dests_node_malloced = 0, dest_states_malloced = 0; + bitset_word_t elem, mask; + bool dests_node_malloced = false; + bool dest_states_malloced = false; int ndests; /* Number of the destination states from `state'. */ re_dfastate_t **trtable; re_dfastate_t **dest_states = NULL, **dest_states_word, **dest_states_nl; re_node_set follows, *dests_node; - bitset *dests_ch; - bitset acceptable; + bitset_t *dests_ch; + bitset_t acceptable; + + struct dests_alloc + { + re_node_set dests_node[SBC_MAX]; + bitset_t dests_ch[SBC_MAX]; + } *dests_alloc; /* We build DFA states which corresponds to the destination nodes from `state'. `dests_node[i]' represents the nodes which i-th destination state contains, and `dests_ch[i]' represents the characters which i-th destination state accepts. */ -#ifdef _LIBC - if (__libc_use_alloca ((sizeof (re_node_set) + sizeof (bitset)) * SBC_MAX)) - dests_node = (re_node_set *) - alloca ((sizeof (re_node_set) + sizeof (bitset)) * SBC_MAX); +#ifdef HAVE_ALLOCA + if (__libc_use_alloca (sizeof (struct dests_alloc))) + dests_alloc = (struct dests_alloc *) alloca (sizeof (struct dests_alloc)); else #endif { - dests_node = (re_node_set *) - malloc ((sizeof (re_node_set) + sizeof (bitset)) * SBC_MAX); - if (BE (dests_node == NULL, 0)) + dests_alloc = re_malloc (struct dests_alloc, 1); + if (BE (dests_alloc == NULL, 0)) return 0; - dests_node_malloced = 1; + dests_node_malloced = true; } - dests_ch = (bitset *) (dests_node + SBC_MAX); + dests_node = dests_alloc->dests_node; + dests_ch = dests_alloc->dests_ch; /* Initialize transiton table. */ state->word_trtable = state->trtable = NULL; @@ -3328,7 +3338,7 @@ if (BE (ndests <= 0, 0)) { if (dests_node_malloced) - free (dests_node); + free (dests_alloc); /* Return 0 in case of an error, 1 otherwise. */ if (ndests == 0) { @@ -3343,8 +3353,8 @@ if (BE (err != REG_NOERROR, 0)) goto out_free; -#ifdef _LIBC - if (__libc_use_alloca ((sizeof (re_node_set) + sizeof (bitset)) * SBC_MAX +#ifdef HAVE_ALLOCA + if (__libc_use_alloca ((sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX + ndests * 3 * sizeof (re_dfastate_t *))) dest_states = (re_dfastate_t **) alloca (ndests * 3 * sizeof (re_dfastate_t *)); @@ -3362,10 +3372,10 @@ for (i = 0; i < ndests; ++i) re_node_set_free (dests_node + i); if (dests_node_malloced) - free (dests_node); + free (dests_alloc); return 0; } - dest_states_malloced = 1; + dest_states_malloced = true; } dest_states_word = dest_states + ndests; dest_states_nl = dest_states_word + ndests; @@ -3427,8 +3437,8 @@ goto out_free; /* For all characters ch...: */ - for (i = 0; i < BITSET_UINTS; ++i) - for (ch = i * UINT_BITS, elem = acceptable[i], mask = 1; + for (i = 0; i < BITSET_WORDS; ++i) + for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1; elem; mask <<= 1, elem >>= 1, ++ch) if (BE (elem & 1, 0)) @@ -3458,8 +3468,8 @@ goto out_free; /* For all characters ch...: */ - for (i = 0; i < BITSET_UINTS; ++i) - for (ch = i * UINT_BITS, elem = acceptable[i], mask = 1; + for (i = 0; i < BITSET_WORDS; ++i) + for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1; elem; mask <<= 1, elem >>= 1, ++ch) if (BE (elem & 1, 0)) @@ -3500,7 +3510,7 @@ re_node_set_free (dests_node + i); if (dests_node_malloced) - free (dests_node); + free (dests_alloc); return 1; } @@ -3511,17 +3521,15 @@ to DEST_CH[i]. This function return the number of destinations. */ static int -group_nodes_into_DFAstates (dfa, state, dests_node, dests_ch) - re_dfa_t *dfa; - const re_dfastate_t *state; - re_node_set *dests_node; - bitset *dests_ch; +internal_function +group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, + re_node_set *dests_node, bitset_t *dests_ch) { reg_errcode_t err; int result; int i, j, k; int ndests; /* Number of the destinations from `state'. */ - bitset accepts; /* Characters a node can accept. */ + bitset_t accepts; /* Characters a node can accept. */ const re_node_set *cur_nodes = &state->nodes; bitset_empty (accepts); ndests = 0; @@ -3556,7 +3564,7 @@ #ifdef RE_ENABLE_I18N else if (type == OP_UTF8_PERIOD) { - memset (accepts, 255, sizeof (unsigned int) * BITSET_UINTS / 2); + memset (accepts, '\xff', sizeof (bitset_t) / 2); if (!(dfa->syntax & RE_DOT_NEWLINE)) bitset_clear (accepts, '\n'); if (dfa->syntax & RE_DOT_NOT_NULL) @@ -3572,7 +3580,7 @@ { if (constraint & NEXT_NEWLINE_CONSTRAINT) { - int accepts_newline = bitset_contain (accepts, NEWLINE_CHAR); + bool accepts_newline = bitset_contain (accepts, NEWLINE_CHAR); bitset_empty (accepts); if (accepts_newline) bitset_set (accepts, NEWLINE_CHAR); @@ -3587,7 +3595,7 @@ if (constraint & NEXT_WORD_CONSTRAINT) { - unsigned int any_set = 0; + bitset_word_t any_set = 0; if (type == CHARACTER && !node->word_char) { bitset_empty (accepts); @@ -3595,18 +3603,18 @@ } #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) - for (j = 0; j < BITSET_UINTS; ++j) + for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= (dfa->word_char[j] | ~dfa->sb_char[j])); else #endif - for (j = 0; j < BITSET_UINTS; ++j) + for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= dfa->word_char[j]); if (!any_set) continue; } if (constraint & NEXT_NOTWORD_CONSTRAINT) { - unsigned int any_set = 0; + bitset_word_t any_set = 0; if (type == CHARACTER && node->word_char) { bitset_empty (accepts); @@ -3614,11 +3622,11 @@ } #ifdef RE_ENABLE_I18N if (dfa->mb_cur_max > 1) - for (j = 0; j < BITSET_UINTS; ++j) + for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= ~(dfa->word_char[j] & dfa->sb_char[j])); else #endif - for (j = 0; j < BITSET_UINTS; ++j) + for (j = 0; j < BITSET_WORDS; ++j) any_set |= (accepts[j] &= ~dfa->word_char[j]); if (!any_set) continue; @@ -3629,10 +3637,10 @@ state. Above, we make sure that accepts is not empty. */ for (j = 0; j < ndests; ++j) { - bitset intersec; /* Intersection sets, see below. */ - bitset remains; + bitset_t intersec; /* Intersection sets, see below. */ + bitset_t remains; /* Flags, see below. */ - int has_intersec, not_subset, not_consumed; + bitset_word_t has_intersec, not_subset, not_consumed; /* Optimization, skip if this state doesn't accept the character. */ if (type == CHARACTER && !bitset_contain (dests_ch[j], node->opr.c)) @@ -3640,7 +3648,7 @@ /* Enumerate the intersection set of this state and `accepts'. */ has_intersec = 0; - for (k = 0; k < BITSET_UINTS; ++k) + for (k = 0; k < BITSET_WORDS; ++k) has_intersec |= intersec[k] = accepts[k] & dests_ch[j][k]; /* And skip if the intersection set is empty. */ if (!has_intersec) @@ -3648,7 +3656,7 @@ /* Then check if this state is a subset of `accepts'. */ not_subset = not_consumed = 0; - for (k = 0; k < BITSET_UINTS; ++k) + for (k = 0; k < BITSET_WORDS; ++k) { not_subset |= remains[k] = ~accepts[k] & dests_ch[j][k]; not_consumed |= accepts[k] = accepts[k] & ~dests_ch[j][k]; @@ -3703,14 +3711,14 @@ can only accept one byte. */ static int -check_node_accept_bytes (dfa, node_idx, input, str_idx) - re_dfa_t *dfa; - int node_idx, str_idx; - const re_string_t *input; +internal_function +check_node_accept_bytes (const re_dfa_t *dfa, int node_idx, + const re_string_t *input, int str_idx) { const re_token_t *node = dfa->nodes + node_idx; int char_len, elem_len; int i; + wint_t wc; if (BE (node->type == OP_UTF8_PERIOD, 0)) { @@ -3780,15 +3788,16 @@ } elem_len = re_string_elem_size_at (input, str_idx); - if ((elem_len <= 1 && char_len <= 1) || char_len == 0) + wc = __btowc(*(input->mbs+str_idx)); + if (((elem_len <= 1 && char_len <= 1) || char_len == 0) && (wc != WEOF && wc < SBC_MAX)) return 0; if (node->type == COMPLEX_BRACKET) { const re_charset_t *cset = node->opr.mbcset; # ifdef _LIBC - const unsigned char *pin = ((char *) re_string_get_buffer (input) - + str_idx); + const unsigned char *pin + = ((const unsigned char *) re_string_get_buffer (input) + str_idx); int j; uint32_t nrules; # endif /* _LIBC */ @@ -3940,9 +3949,8 @@ # ifdef _LIBC static unsigned int -find_collation_sequence_value (mbs, mbs_len) - const unsigned char *mbs; - size_t mbs_len; +internal_function +find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len) { uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); if (nrules == 0) @@ -4004,10 +4012,9 @@ byte of the INPUT. */ static int -check_node_accept (mctx, node, idx) - const re_match_context_t *mctx; - const re_token_t *node; - int idx; +internal_function +check_node_accept (const re_match_context_t *mctx, const re_token_t *node, + int idx) { unsigned char ch; ch = re_string_byte_at (&mctx->input, idx); @@ -4055,8 +4062,8 @@ /* Extend the buffers, if the buffers have run out. */ static reg_errcode_t -extend_buffers (mctx) - re_match_context_t *mctx; +internal_function +extend_buffers (re_match_context_t *mctx) { reg_errcode_t ret; re_string_t *pstr = &mctx->input; @@ -4114,9 +4121,8 @@ /* Initialize MCTX. */ static reg_errcode_t -match_ctx_init (mctx, eflags, n) - re_match_context_t *mctx; - int eflags, n; +internal_function +match_ctx_init (re_match_context_t *mctx, int eflags, int n) { mctx->eflags = eflags; mctx->match_last = -1; @@ -4143,8 +4149,8 @@ of the input, or changes the input string. */ static void -match_ctx_clean (mctx) - re_match_context_t *mctx; +internal_function +match_ctx_clean (re_match_context_t *mctx) { int st_idx; for (st_idx = 0; st_idx < mctx->nsub_tops; ++st_idx) @@ -4173,8 +4179,8 @@ /* Free all the memory associated with MCTX. */ static void -match_ctx_free (mctx) - re_match_context_t *mctx; +internal_function +match_ctx_free (re_match_context_t *mctx) { /* First, free all the memory associated with MCTX->SUB_TOPS. */ match_ctx_clean (mctx); @@ -4188,9 +4194,9 @@ */ static reg_errcode_t -match_ctx_add_entry (mctx, node, str_idx, from, to) - re_match_context_t *mctx; - int node, str_idx, from, to; +internal_function +match_ctx_add_entry (re_match_context_t *mctx, int node, int str_idx, int from, + int to) { if (mctx->nbkref_ents >= mctx->abkref_ents) { @@ -4237,9 +4243,8 @@ found. Note that MCTX->BKREF_ENTS is already sorted by MCTX->STR_IDX. */ static int -search_cur_bkref_entry (mctx, str_idx) - re_match_context_t *mctx; - int str_idx; +internal_function +search_cur_bkref_entry (const re_match_context_t *mctx, int str_idx) { int left, right, mid, last; last = right = mctx->nbkref_ents; @@ -4261,9 +4266,8 @@ at STR_IDX. */ static reg_errcode_t -match_ctx_add_subtop (mctx, node, str_idx) - re_match_context_t *mctx; - int node, str_idx; +internal_function +match_ctx_add_subtop (re_match_context_t *mctx, int node, int str_idx) { #ifdef DEBUG assert (mctx->sub_tops != NULL); @@ -4292,9 +4296,8 @@ at STR_IDX, whose corresponding OP_OPEN_SUBEXP is SUB_TOP. */ static re_sub_match_last_t * -match_ctx_add_sublast (subtop, node, str_idx) - re_sub_match_top_t *subtop; - int node, str_idx; +internal_function +match_ctx_add_sublast (re_sub_match_top_t *subtop, int node, int str_idx) { re_sub_match_last_t *new_entry; if (BE (subtop->nlasts == subtop->alasts, 0)) @@ -4320,10 +4323,9 @@ } static void -sift_ctx_init (sctx, sifted_sts, limited_sts, last_node, last_str_idx) - re_sift_context_t *sctx; - re_dfastate_t **sifted_sts, **limited_sts; - int last_node, last_str_idx; +internal_function +sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts, + re_dfastate_t **limited_sts, int last_node, int last_str_idx) { sctx->sifted_states = sifted_sts; sctx->limited_states = limited_sts; diff -urN gawk-3.1.5/replace.c gawk-3.1.6/replace.c --- gawk-3.1.5/replace.c 2005-05-11 18:28:17.000000000 +0300 +++ gawk-3.1.6/replace.c 2007-04-13 00:29:15.000000000 +0300 @@ -55,7 +55,7 @@ #include "missing_d/strchr.c" #endif /* HAVE_STRCHR */ -#if !defined(HAVE_STRTOD) || defined(STRTOD_NOT_C89) +#if !defined(HAVE_STRTOD) #include "missing_d/strtod.c" #endif /* HAVE_STRTOD */ @@ -78,3 +78,11 @@ #undef DEBUG #include "missing_d/mktime.c" #endif /* HAVE_MKTIME */ + +#ifndef HAVE_SNPRINTF +#include "missing_d/snprintf.c" +#endif + +#if defined(HAVE_SOCKETS) && ! defined(HAVE_GETADDRINFO) +#include "missing_d/getaddrinfo.c" +#endif diff -urN gawk-3.1.5/test/ChangeLog gawk-3.1.6/test/ChangeLog --- gawk-3.1.5/test/ChangeLog 2005-07-26 21:47:35.000000000 +0300 +++ gawk-3.1.6/test/ChangeLog 2007-10-22 08:50:46.000000000 +0200 @@ -1,3 +1,211 @@ +Mon Oct 22 08:49:05 2007 Arnold D. Robbins + + * Release 3.1.6: Release tar file made. + +Wed Sep 26 14:32:28 2007 Arnold D. Robbins + + * Makefile.am (localenl): New test. + (regtest): Fixed invocation of shell script. + * localenl.sh, localenl.ok: New files. + * reg/func2.good: Revised to match current gawk output. + +Wed Sep 26 14:49:04 2007 Eli Zaretskii + + * exitval2.w32: New file, a Windows version for exitval2.awk. + +Tue May 29 13:22:33 2007 Arnold D. Robbins + + * badargs.ok: Updated. + +Thu May 17 21:10:51 2007 Pat Rankin + + * icasers.awk: Modify pattern to work on VMS too, doesn't + break Unix/Linux. + +Tue May 15 22:05:24 2007 Pat Rankin + + Steps towards generating VMS .mms file to run test suite. + + * Makefile.am (FAIL_CODE1): New macro, list of programs + that exit 1. + * Gentests: Add VMS code. + * Gentests.vms: New file. + +Wed May 2 19:30:54 2007 Stepan Kasal + + Revert precedence of concatenation and | getline. + From mail dated 2005-10-31. + + * parsefld.awk, parsefld.in, parsefld.ok: New files. + * Makefile.am (parsefld): New basic test, check for $/regex/ and + for /re1/+/re2/. + * getline.awk, getline.ok: Add precedence check "echo " "date"|getline + +Sun Apr 29 22:43:28 2007 Arnold D. Robbins + + * hsprint.awk: Add extra "%" to format string. Thanks to Nelson Beebe. + * hsprint.ok: Revised. + +Tue Apr 24 23:15:01 2007 Andrew J. Schorr + + * fmtspcl.tok: Provide correct version. + +Tue Apr 17 22:23:41 2007 Arnold D. Robbins + + * double2.awk, double2.ok: Limit to 2^63 for portability across + different platforms. Sigh. + +Thu Apr 12 20:00:27 2007 Andrew J. Schorr + + * Makefile.am, Makefile.in (fmtspcl): Use fmtspcl.tok to build + a fmtspcl.ok file suitable for the given platform. + (diffout): Handle case where the .ok file is in the build directory. + +Mon Mar 26 08:24:04 2007 Arnold D. Robbins + + * Makefile.am (fmtspcl.ok): Don't remove for cleaning, add + to EXTRA_DIST. + +Fri Mar 9 11:38:34 2007 Arnold D. Robbins + + * Makefile.am (fmtspcl.tok): Removed use of and reference + to this file. + +Tue Feb 6 08:21:02 2007 Arnold D. Robbins + + * Makefile.am (double1, double2, zero2): New tests. + * double1.awk, double1.ok, double2.awk, double2.ok, + zero2.awk, zero2.ok: New files. + +Sun Feb 4 16:32:45 2007 Arnold D. Robbins + + * Makefile.am (parse1): New test. + * parse1.awk, parse1.in, parse1.ok: New files. + +Thu Feb 1 17:41:48 2007 Andrew J. Schorr + + * Makefile.am (fmtspcl): New test. + (CLEANFILES): Add fmtpspcl.ok to list. + * fmtspcl.awk, fmtspcl.tok: New files. + +Mon Jan 29 15:31:35 2007 Andrew J. Schorr + + * Makefile.am (diffout): Make it work if no problems. + (valgrind-scan): New target to show problems. + +Mon Jan 29 12:51:16 2007 Arnold D. Robbins + + * Makefile.am (reint2): New test. + * reint2.awk, reint2.in, reint2.ok: New files. + +Fri Jan 26 20:01:38 2007 Andrew J. Schorr + + * Makefile.am (intformat): New test. + * intformat.awk, intformat.ok: New files. + +Tue Jan 23 08:10:48 2007 Arnold D. Robbins + + * Makefile.am (fwtest2): New test. + * fwtest2.awk, fwtest2.in, fwtest2.ok: New files. + +Sun Jan 21 13:09:33 2007 Arnold D. Robbins + + * Makefile.am (synerr2, wideidx2): New test. + * synerr2.awk, synerr2.ok, wideidx2.awk, wideidx2.ok: New files. + +Fri Jan 19 15:11:12 2007 Arnold D. Robbins + + * Makefile.am (strnum1, widesub4): New test. + * strnum1.awk, strnum1.ok, widesub4.awk, widesub4.ok: New files. + +Thu Jan 18 13:37:00 2007 Andrew J. Schorr + + * Makeilfe.am (devfd, wideidx, widesub, widesub2, widesub3): New + tests. + * devfd.in4, devfd.in5, devfd.ok, wideidx.awk, wideidx.in, wideidx.ok, + widesub.awk, widesub.ok, widesub2.awk, widesub2.ok, widesub3.awk, + widesub3.in, widesub3.ok: New files. + +Tue Jan 16 12:16:39 2007 Andrew J. Schorr + + * Makefile.am: In pid test, no further need to remove _pid.in, + since the test no longer creates that file. + * pid.awk: Do not read correct values from stdin (they are now passed + as command-line variables with -v). Make sure to produce output + if the comparisons are successful. + * pid.ok: No longer empty, should contain 3 lines if all goes well. + * pid.sh: Do not create _pid.in; instead, pass values in with -v. + +Sun Jan 14 18:03:12 2007 Arnold D. Robbins + + * fnarray.ok: Updated. + +2007-01-13 Eli Zaretskii + + * pipeio2.awk: Don't use empty lines, because Windows ECHO does + something different when invoked without arguments. + + * pipeio2.ok: Update. + + * Makefile.am (EXTRA_DIST): Add exitval2.w32. + + * exitval2.w32: New file. + +Sat Jan 13 21:25:11 2007 Ralf Wildenhues + + * lintold.awk, lintold.in, lintold.ok: New `--lint-old' test. + * Gentests, Makefile.am: Adjust. + +Sat Jan 13 21:17:51 2007 Ralf Wildenhues + + * Makefile.am (Maketests): Allow rebuilding from a VPATH build. + +Fri Jan 12 14:04:24 2007 Arnold D. Robbins + + * Makefile.am (mtchi18n): new test. + * mtchi18n.awk, mtchi18n.in, mtchi18n.ok: new files. + +Wed Sep 6 02:09:26 2006 Arnold D. Robbins + + * Makefile.am (mixed1): new test. + * mixed1.ok: new file. + +Tue Jun 20 05:37:53 2006 Arnold D. Robbins + + * Makefile.am (devfd1, devfd2): new tests. + * devfd.in1, devfd.in2, devfd1.awk, devfd1.ok, devfd2.ok: new files. + +Sun Mar 12 23:48:31 2006 Arnold D. Robbins + + * Makefile.am (concat4): new test. + * concat4.awk, concat4.in, concat4.ok: new files. + +Sun Mar 12 23:33:26 2006 Arnold D. Robbins + + * Makefile.am (subi18n): new test (from + KIMURA Koichi ). + * subi18n.awk, subi18n.ok: New files. + +Mon Dec 19 05:41:56 2005 Arnold D. Robbins + + * Makefile.am (ovrflow1): new test. + * ovrflow1.awk, ovrflow1.ok: new files. + +Wed Dec 14 19:01:08 2005 Arnold D. Robbins + + * Makefile.am (binmode1): new test. + * binmode1.ok: new file. + +Fri Oct 7 12:28:41 2005 Arnold D. Robbins + + * Makefile.am (fwtest): new test. + * fwtest.awk, fwtest.in, fwtest.ok: new files. + +Fri Aug 12 14:40:47 2005 Arnold D. Robbins + + * Makefile.am (nofile): New test. + * nofile.ok: New file. + Tue Jul 26 21:46:16 2005 Arnold D. Robbins * Release 3.1.5: Release tar file made. diff -urN gawk-3.1.5/test/Gentests gawk-3.1.6/test/Gentests --- gawk-3.1.5/test/Gentests 2005-05-11 18:28:17.000000000 +0300 +++ gawk-3.1.6/test/Gentests 2007-05-15 22:04:29.000000000 +0300 @@ -3,6 +3,8 @@ # This program should generate Maketests BEGIN { + if (VMSTESTS) vmsargvfixup() + # read the list of files for (i = 2; i < ARGC; i++) files[ARGV[i]] @@ -29,6 +31,13 @@ next } +/^NEED_LINT_OLD *=/,/[^\\]$/ { + gsub(/(^NEED_LINT_OLD *=|\\$)/,"") + for (i = 1; i <= NF; i++) + lint_old[$i] + next +} + /^GENTESTS_UNUSED *=/,/[^\\]$/ { gsub(/(^GENTESTS_UNUSED *=|\\$)/,"") for (i = 1; i <= NF; i++) @@ -63,7 +72,9 @@ printf "WARNING: file `%s.awk' not found.\n", x > "/dev/stderr" else delete files[x".awk"] - + + if (VMSTESTS) return vmsgenerate(x) + print x ":" s = "" @@ -71,6 +82,10 @@ s = s " --lint" delete lint[x] } + if (x in lint_old) { + s = s " --lint-old" + delete lint_old[x] + } if (x".in" in files) { s = s " < $(srcdir)/$@.in" delete files[x".in"] @@ -85,8 +100,14 @@ for (x in lint) if (!(x in targets)) printf "WARNING: --lint target `%s' is missing.\n", x > "/dev/stderr" + for (x in lint_old) + if (!(x in targets)) + printf "WARNING: --lint-old target `%s' is missing.\n", x > "/dev/stderr" for (x in files) if (!(x in unused) && \ !(gensub(/\.(awk|in)$/,"","",x) in targets)) printf "WARNING: unused file `%s'.\n", x > "/dev/stderr" } + +# VMSTESTS: generate test template in vms format +# gawk -v "VMSTESTS=1" -f Gentests -f Gentests.vms Makefile.am *.awk *.in >Maketests.vms diff -urN gawk-3.1.5/test/Makefile.am gawk-3.1.6/test/Makefile.am --- gawk-3.1.5/test/Makefile.am 2005-07-26 21:07:43.000000000 +0300 +++ gawk-3.1.6/test/Makefile.am 2007-09-26 15:13:42.000000000 +0200 @@ -1,14 +1,14 @@ # # test/Makefile.am --- automake input file for gawk # -# Copyright (C) 1988-2005 the Free Software Foundation, Inc. +# Copyright (C) 1988-2006 the Free Software Foundation, Inc. # # This file is part of GAWK, the GNU implementation of the # AWK Programming Language. # # GAWK is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # GAWK is distributed in the hope that it will be useful, @@ -99,6 +99,7 @@ backw.in \ backw.ok \ badargs.ok \ + binmode1.ok \ childin.awk \ childin.in \ childin.ok \ @@ -121,6 +122,9 @@ concat2.ok \ concat3.awk \ concat3.ok \ + concat4.awk \ + concat4.in \ + concat4.ok \ convfmt.awk \ convfmt.ok \ datanonl.awk \ @@ -134,6 +138,18 @@ delarpm2.ok \ delfunc.awk \ delfunc.ok \ + devfd.in1 \ + devfd.in2 \ + devfd.in4 \ + devfd.in5 \ + devfd.ok \ + devfd1.awk \ + devfd1.ok \ + devfd2.ok \ + double1.awk \ + double1.ok \ + double2.awk \ + double2.ok \ dynlj.awk \ dynlj.ok \ eofsplit.awk \ @@ -142,6 +158,7 @@ exitval1.ok \ exitval2.awk \ exitval2.ok \ + exitval2.w32 \ fflush.ok \ fflush.sh \ fieldwdth.awk \ @@ -153,6 +170,8 @@ fldchgnf.awk \ fldchgnf.in \ fldchgnf.ok \ + fmtspcl.awk \ + fmtspcl.tok \ fmttest.awk \ fmttest.ok \ fnamedat.awk \ @@ -199,6 +218,12 @@ funstack.awk \ funstack.in \ funstack.ok \ + fwtest.awk \ + fwtest.in \ + fwtest.ok \ + fwtest2.awk \ + fwtest2.in \ + fwtest2.ok \ gensub.awk \ gensub.in \ gensub.ok \ @@ -269,6 +294,8 @@ inputred.ok \ intest.awk \ intest.ok \ + intformat.awk \ + intformat.ok \ intprec.awk \ intprec.ok \ iobug1.awk \ @@ -280,8 +307,13 @@ leadnl.ok \ lint.awk \ lint.ok \ + lintold.awk \ + lintold.in \ + lintold.ok \ litoct.awk \ litoct.ok \ + localenl.ok \ + localenl.sh \ longdbl.awk \ longdbl.in \ longdbl.ok \ @@ -308,7 +340,11 @@ messages.awk \ minusstr.awk \ minusstr.ok \ + mixed1.ok \ mmap8k.in \ + mtchi18n.awk \ + mtchi18n.in \ + mtchi18n.ok \ nasty.awk \ nasty.ok \ nasty2.awk \ @@ -336,6 +372,7 @@ nlstrina.ok \ noeffect.awk \ noeffect.ok \ + nofile.ok \ nofmtch.awk \ nofmtch.ok \ noloop1.awk \ @@ -387,10 +424,18 @@ out1.ok \ out2.ok \ out3.ok \ + ovrflow1.awk \ + ovrflow1.ok \ paramdup.awk \ paramdup.ok \ paramtyp.awk \ paramtyp.ok \ + parse1.awk \ + parse1.in \ + parse1.ok \ + parsefld.awk \ + parsefld.in \ + parsefld.ok \ parseme.awk \ parseme.ok \ pcntplus.awk \ @@ -456,6 +501,9 @@ reint.awk \ reint.in \ reint.ok \ + reint2.awk \ + reint2.in \ + reint2.ok \ reparse.awk \ reparse.in \ reparse.ok \ @@ -525,6 +573,8 @@ strtod.awk \ strtod.in \ strtod.ok \ + strnum1.awk \ + strnum1.ok \ strtonum.awk \ strtonum.ok \ strftime.awk \ @@ -533,6 +583,8 @@ subamp.awk \ subamp.in \ subamp.ok \ + subi18n.awk \ + subi18n.ok \ subsepnm.awk \ subsepnm.ok \ subslash.awk \ @@ -545,6 +597,8 @@ switch2.awk \ synerr1.awk \ synerr1.ok \ + synerr2.awk \ + synerr2.ok \ tradanch.awk \ tradanch.in \ tradanch.ok \ @@ -564,9 +618,25 @@ whiny.awk \ whiny.in \ whiny.ok \ + wideidx.awk \ + wideidx.in \ + wideidx.ok \ + wideidx2.awk \ + wideidx2.ok \ + widesub.awk \ + widesub.ok \ + widesub2.awk \ + widesub2.ok \ + widesub3.awk \ + widesub3.in \ + widesub3.ok \ + widesub4.awk \ + widesub4.ok \ wjposer1.awk \ wjposer1.in \ wjposer1.ok \ + zero2.awk \ + zero2.ok \ zeroe0.awk \ zeroe0.ok \ zeroflag.awk \ @@ -574,48 +644,55 @@ TESTS_WE_ARE_NOT_DOING_YET_FIXME_ONE_DAY = longdbl -# Get rid of core files when cleaning -CLEANFILES = core core.* +# Get rid of core files when cleaning and generated .ok file +CLEANFILES = core core.* fmtspcl.ok # try to keep these sorted BASIC_TESTS = addcomma anchgsub argarray arrayparm arrayref arrymem1 \ arrayprm2 arrayprm3 arryref2 arryref3 arryref4 arryref5 arynasty \ arynocls aryprm1 aryprm2 aryprm3 aryprm4 aryprm5 aryprm6 aryprm7 \ aryprm8 arysubnm asgext awkpath back89 backgsub childin clobber \ - clsflnam compare compare2 concat1 concat2 concat3 convfmt datanonl defref \ - delarprm delarpm2 delfunc dynlj eofsplit exitval1 exitval2 fldchg fldchgnf fmttest fnamedat \ + clsflnam compare compare2 concat1 concat2 concat3 concat4 convfmt datanonl defref \ + delarprm delarpm2 delfunc dynlj eofsplit exitval1 exitval2 fldchg fldchgnf fmtspcl fmttest fnamedat \ fnarray fnarray2 fnarydel fnaryscl fnasgnm fnmisc fnparydl \ fordel forsimp fsbs fsspcoln fsrs fstabplus funsemnl funsmnam funstack getline \ getline2 getline3 getlnbuf getnr2tb getnr2tm gsubasgn gsubtest \ - gsubtst2 gsubtst3 gsubtst4 gsubtst5 hex hsprint inputred intest \ + gsubtst2 gsubtst3 gsubtst4 gsubtst5 hex hsprint inputred intest intformat \ intprec iobug1 leaddig leadnl litoct longsub longwrds manglprm math membug1 \ - messages minusstr mmap8k nasty nasty2 negexp nested nfldstr \ - nfneg nfset nlfldsep nlinstr nlstrina noeffect nofmtch noloop1 \ + messages minusstr mmap8k mtchi18n nasty nasty2 negexp nested nfldstr \ + nfneg nfset nlfldsep nlinstr nlstrina noeffect nofile nofmtch noloop1 \ noloop2 nonl noparms nors nulrsend numindex numsubstr octsub ofmt \ - ofmtbig ofmtfidl ofmts onlynl opasnidx opasnslf paramdup paramtyp \ - parseme pcntplus prdupval prec printf0 printf1 prmarscl prmreuse \ + ofmtbig ofmtfidl ofmts onlynl opasnidx opasnslf ovrflow1 paramdup paramtyp \ + parse1 parsefld parseme pcntplus prdupval prec printf0 printf1 prmarscl prmreuse \ prt1eval prtoeval psx96sub rand rebt8b1 rebt8b2 redfilnm regeq \ reindops reparse resplit rs rsnul1nl rsnulbig rsnulbig2 rstest1 \ rstest2 rstest3 rstest4 rstest5 rswhite scalar sclforin sclifin \ sortempty splitargv splitarr splitdef splitvar splitwht sprintfc \ - strcat1 strtod subamp subsepnm subslash substr swaplns synerr1 tradanch \ - tweakfld uninit2 uninit3 uninit4 uninitialized unterm wjposer1 \ - zeroe0 zeroflag - -UNIX_TESTS = fflush getlnhd pid pipeio1 pipeio2 poundbang space strftlng - -GAWK_EXT_TESTS = argtest asort asorti backw badargs clos1way fieldwdth fsfwfs \ - gensub gensub2 gnuops2 gnuops3 gnureops icasefs icasers igncdym igncfs ignrcase \ - ignrcas2 lint match1 match2 manyfiles nondec nondec2 posix procinfs \ - printfbad1 regx8bit rebuf reint rsstart1 rsstart2 rsstart3 \ - rstest6 shadow sort1 strtonum strftime whiny + strcat1 strtod strnum1 subamp subi18n subsepnm subslash substr swaplns \ + synerr1 synerr2 tradanch \ + tweakfld uninit2 uninit3 uninit4 uninitialized unterm wideidx wideidx2 \ + widesub widesub2 widesub3 widesub4 wjposer1 zeroe0 zeroflag zero2 + +UNIX_TESTS = fflush getlnhd localenl pid pipeio1 pipeio2 poundbang space strftlng + +GAWK_EXT_TESTS = argtest asort asorti backw badargs binmode1 clos1way devfd devfd1 devfd2 double1 double2 \ + fieldwdth fsfwfs fwtest fwtest2 gensub gensub2 gnuops2 gnuops3 gnureops icasefs \ + icasers igncdym igncfs ignrcase ignrcas2 lint lintold match1 match2 manyfiles \ + nondec nondec2 posix procinfs printfbad1 regx8bit rebuf reint reint2 rsstart1 \ + rsstart2 rsstart3 rstest6 shadow sort1 strtonum strftime whiny EXTRA_TESTS = regtest inftest INET_TESTS = inetechu inetecht inetdayu inetdayt # List of the tests which should be run with --lint option: -NEED_LINT = defref noeffect nofmtch shadow uninit2 uninit3 uninit4 uninitialized +NEED_LINT = defref fmtspcl noeffect nofmtch shadow uninit2 uninit3 uninit4 uninitialized + +# List of the tests which should be run with --lint-old option: +NEED_LINT_OLD = lintold + +# List of the tests which fail with EXIT CODE 1 +FAIL_CODE1 = fnarray2 fnmisc gsubasgn mixed1 noparms paramdup synerr1 synerr2 unterm # List of the files that appear in manual tests or are for reserve testing: GENTESTS_UNUSED = Makefile.in gtlnbufv.awk printfloat.awk switch2.awk @@ -719,7 +796,7 @@ @echo 'Some of the output from regtest is very system specific, do not' @echo 'be distressed if your output differs from that distributed.' @echo 'Manual inspection is called for.' - AWK=`pwd`/$(AWK) $(srcdir)/regtest.sh + AWK=$(AWKPROG) $(srcdir)/regtest.sh manyfiles:: @echo manyfiles @@ -780,6 +857,11 @@ @echo ab | $(AWK) --traditional -f $(srcdir)/litoct.awk >_$@ @-$(CMP) $(srcdir)/litoct.ok _$@ && rm -f _$@ +devfd:: + @echo $@ + @$(AWK) 1 /dev/fd/4 /dev/fd/5 4<$(srcdir)/devfd.in4 5<$(srcdir)/devfd.in5 >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + fflush:: @echo $@ @$(srcdir)/fflush.sh >_$@ @@ -806,7 +888,7 @@ pid:: @echo pid @AWKPATH=$(srcdir) AWK=$(AWKPROG) $(SHELL) $(srcdir)/pid.sh $$$$ > _`basename $@` ; : - @-$(CMP) $(srcdir)/pid.ok _`basename $@` && rm -f _`basename $@` _`basename $@`.in + @-$(CMP) $(srcdir)/pid.ok _`basename $@` && rm -f _`basename $@` strftlng:: @echo $@ @@ -821,6 +903,14 @@ @echo A B C D E | tr -d '\12\15' | $(AWK) '{ print $$NF }' - $(srcdir)/nors.in > _$@ @-$(CMP) $(srcdir)/nors.ok _$@ && rm -f _$@ +fmtspcl.ok: fmtspcl.tok Makefile + @$(AWK) -v "sd=$(srcdir)" 'BEGIN {pnan = sprintf("%g",sqrt(-1)); nnan = sprintf("%g",-sqrt(-1)); pinf = sprintf("%g",-log(0)); ninf = sprintf("%g",log(0))} {sub(/positive_nan/,pnan); sub(/negative_nan/,nnan); sub(/positive_infinity/,pinf); sub(/negative_infinity/,ninf); sub(/fmtspcl/,(sd"/fmtspcl")); print}' < $(srcdir)/fmtspcl.tok > $@ 2>/dev/null + +fmtspcl: fmtspcl.ok + @echo fmtspcl + @$(AWK) -f $(srcdir)/fmtspcl.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $@.ok _$@ && rm -f _$@ + reint:: @echo $@ @$(AWK) --re-interval -f $(srcdir)/reint.awk $(srcdir)/reint.in >_$@ @@ -923,6 +1013,42 @@ @WHINY_USERS=1 $(AWK) -f $(srcdir)/$@.awk $(srcdir)/$@.in >_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +wideidx:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +wideidx2:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +widesub:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +widesub2:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +widesub3:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +widesub4:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + ignrcas2:: @echo $@ @GAWKLOCALE=en_US ; export GAWKLOCALE ; \ @@ -967,14 +1093,70 @@ @$(AWK) --non-decimal-data -v a=0x1 -f $(srcdir)/$@.awk >_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +nofile:: + @echo $@ + @$(AWK) '{}' no/such/file >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +binmode1:: + @echo $@ + @$(AWK) -v BINMODE=3 'BEGIN { print BINMODE }' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +subi18n:: + @echo $@ + @GAWKLOCALE=en_US.UTF-8 ; $(AWK) -f $(srcdir)/$@.awk > _$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +concat4:: + @echo $@ + @GAWKLOCALE=en_US.UTF-8 ; $(AWK) -f $(srcdir)/$@.awk $(srcdir)/$@.in > _$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +devfd1:: + @echo $@ + @$(AWK) -f $(srcdir)/$@.awk 4< $(srcdir)/devfd.in1 5< $(srcdir)/devfd.in2 >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +# The program text is the '1' which will print each record. How compact can you get? +devfd2:: + @echo $@ + @$(AWK) 1 /dev/fd/4 /dev/fd/5 4< $(srcdir)/devfd.in1 5< $(srcdir)/devfd.in2 >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +mixed1:: + @echo $@ + @$(AWK) -f /dev/null --source 'BEGIN {return junk}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +mtchi18n:: + @echo $@ + @GAWKLOCALE=ru_RU.UTF-8 ; export GAWKLOCALE ; \ + $(AWK) -f $(srcdir)/$@.awk $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +reint2:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) --re-interval -f $@.awk $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +localenl:: + @echo $@ + @$(srcdir)/$@.sh >_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + + + # Targets generated for other tests: include Maketests $(srcdir)/Maketests: $(srcdir)/Makefile.am $(srcdir)/Gentests - $(AWK) -f $(srcdir)/Gentests "$(srcdir)/Makefile.am" *.awk *.in > $(srcdir)/Maketests + files=`cd "$(srcdir)" && echo *.awk *.in`; \ + $(AWK) -f $(srcdir)/Gentests "$(srcdir)/Makefile.am" $$files > $(srcdir)/Maketests clean: - rm -fr _* core core.* junk out1 out2 out3 strftime.ok test1 test2 seq *~ + rm -fr _* core core.* fmtspcl.ok junk out1 out2 out3 strftime.ok test1 test2 seq *~ # An attempt to print something that can be grepped for in build logs pass-fail: @@ -988,10 +1170,31 @@ diffout: for i in _* ; \ do \ + if [ "$$i" != "_*" ]; then \ echo ============== $$i ============= ; \ + if [ -r $${i#_}.ok ]; then \ + diff -c $${i#_}.ok $$i ; \ + else \ diff -c $(srcdir)/$${i#_}.ok $$i ; \ + fi ; \ + fi ; \ done | more +# convenient way to scan valgrind results for errors +valgrind-scan: + @echo "Scanning valgrind log files for problems:" + @$(AWK) '\ + function show() {if (cmd) {printf "%s: %s\n",FILENAME,cmd; cmd = ""}; \ + printf "\t%s\n",$$0}; \ + {$$1 = ""}; \ + /Prog and args are:/ {incmd = 1; cmd = ""; next}; \ + incmd {if (NF == 1) incmd = 0; else {cmd = (cmd $$0); next}}; \ + /ERROR SUMMARY:/ && !/: 0 errors from 0 contexts/ {show()}; \ + /definitely lost:/ && !/: 0 bytes in 0 blocks/ {show()}; \ + /possibly lost:/ && !/: 0 bytes in 0 blocks/ {show()}; \ + / suppressed:/ && !/: 0 bytes in 0 blocks/ {show()}; \ + ' log.[0-9]* + # This target is for testing with electric fence. efence: for i in $$(ls _* | sed 's;_\(.*\);\1;') ; \ diff -urN gawk-3.1.5/test/Makefile.in gawk-3.1.6/test/Makefile.in --- gawk-3.1.5/test/Makefile.in 2005-07-26 21:44:03.000000000 +0300 +++ gawk-3.1.6/test/Makefile.in 2007-10-22 08:52:01.000000000 +0200 @@ -1,8 +1,8 @@ -# Makefile.in generated by automake 1.9.5 from Makefile.am. +# Makefile.in generated by automake 1.10 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. +# 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -17,14 +17,14 @@ # # test/Makefile.am --- automake input file for gawk # -# Copyright (C) 1988-2005 the Free Software Foundation, Inc. +# Copyright (C) 1988-2006 the Free Software Foundation, Inc. # # This file is part of GAWK, the GNU implementation of the # AWK Programming Language. # # GAWK is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # GAWK is distributed in the hope that it will be useful, @@ -36,15 +36,11 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA # -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c @@ -63,13 +59,14 @@ subdir = test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/arch.m4 \ - $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ - $(top_srcdir)/m4/intmax_t.m4 $(top_srcdir)/m4/inttypes_h.m4 \ - $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ - $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/longlong.m4 \ - $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ - $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/socket.m4 \ - $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strtod.m4 \ + $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intmax_t.m4 \ + $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ + $(top_srcdir)/m4/lcmessage.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ + $(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/nls.m4 \ + $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ + $(top_srcdir)/m4/socket.m4 $(top_srcdir)/m4/stdint_h.m4 \ $(top_srcdir)/m4/uintmax_t.m4 $(top_srcdir)/m4/ulonglong.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -81,8 +78,6 @@ DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -108,6 +103,9 @@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GREP = @GREP@ +INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -124,8 +122,9 @@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ -MKINSTALLDIRS = @MKINSTALLDIRS@ +MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ @@ -145,12 +144,14 @@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ YACC = @YACC@ +YFLAGS = @YFLAGS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ @@ -162,28 +163,39 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ +builddir = @builddir@ datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ EXTRA_DIST = \ reg \ lib \ @@ -260,6 +272,7 @@ backw.in \ backw.ok \ badargs.ok \ + binmode1.ok \ childin.awk \ childin.in \ childin.ok \ @@ -282,6 +295,9 @@ concat2.ok \ concat3.awk \ concat3.ok \ + concat4.awk \ + concat4.in \ + concat4.ok \ convfmt.awk \ convfmt.ok \ datanonl.awk \ @@ -295,6 +311,18 @@ delarpm2.ok \ delfunc.awk \ delfunc.ok \ + devfd.in1 \ + devfd.in2 \ + devfd.in4 \ + devfd.in5 \ + devfd.ok \ + devfd1.awk \ + devfd1.ok \ + devfd2.ok \ + double1.awk \ + double1.ok \ + double2.awk \ + double2.ok \ dynlj.awk \ dynlj.ok \ eofsplit.awk \ @@ -303,6 +331,7 @@ exitval1.ok \ exitval2.awk \ exitval2.ok \ + exitval2.w32 \ fflush.ok \ fflush.sh \ fieldwdth.awk \ @@ -314,6 +343,8 @@ fldchgnf.awk \ fldchgnf.in \ fldchgnf.ok \ + fmtspcl.awk \ + fmtspcl.tok \ fmttest.awk \ fmttest.ok \ fnamedat.awk \ @@ -360,6 +391,12 @@ funstack.awk \ funstack.in \ funstack.ok \ + fwtest.awk \ + fwtest.in \ + fwtest.ok \ + fwtest2.awk \ + fwtest2.in \ + fwtest2.ok \ gensub.awk \ gensub.in \ gensub.ok \ @@ -430,6 +467,8 @@ inputred.ok \ intest.awk \ intest.ok \ + intformat.awk \ + intformat.ok \ intprec.awk \ intprec.ok \ iobug1.awk \ @@ -441,8 +480,13 @@ leadnl.ok \ lint.awk \ lint.ok \ + lintold.awk \ + lintold.in \ + lintold.ok \ litoct.awk \ litoct.ok \ + localenl.ok \ + localenl.sh \ longdbl.awk \ longdbl.in \ longdbl.ok \ @@ -469,7 +513,11 @@ messages.awk \ minusstr.awk \ minusstr.ok \ + mixed1.ok \ mmap8k.in \ + mtchi18n.awk \ + mtchi18n.in \ + mtchi18n.ok \ nasty.awk \ nasty.ok \ nasty2.awk \ @@ -497,6 +545,7 @@ nlstrina.ok \ noeffect.awk \ noeffect.ok \ + nofile.ok \ nofmtch.awk \ nofmtch.ok \ noloop1.awk \ @@ -548,10 +597,18 @@ out1.ok \ out2.ok \ out3.ok \ + ovrflow1.awk \ + ovrflow1.ok \ paramdup.awk \ paramdup.ok \ paramtyp.awk \ paramtyp.ok \ + parse1.awk \ + parse1.in \ + parse1.ok \ + parsefld.awk \ + parsefld.in \ + parsefld.ok \ parseme.awk \ parseme.ok \ pcntplus.awk \ @@ -617,6 +674,9 @@ reint.awk \ reint.in \ reint.ok \ + reint2.awk \ + reint2.in \ + reint2.ok \ reparse.awk \ reparse.in \ reparse.ok \ @@ -686,6 +746,8 @@ strtod.awk \ strtod.in \ strtod.ok \ + strnum1.awk \ + strnum1.ok \ strtonum.awk \ strtonum.ok \ strftime.awk \ @@ -694,6 +756,8 @@ subamp.awk \ subamp.in \ subamp.ok \ + subi18n.awk \ + subi18n.ok \ subsepnm.awk \ subsepnm.ok \ subslash.awk \ @@ -706,6 +770,8 @@ switch2.awk \ synerr1.awk \ synerr1.ok \ + synerr2.awk \ + synerr2.ok \ tradanch.awk \ tradanch.in \ tradanch.ok \ @@ -725,9 +791,25 @@ whiny.awk \ whiny.in \ whiny.ok \ + wideidx.awk \ + wideidx.in \ + wideidx.ok \ + wideidx2.awk \ + wideidx2.ok \ + widesub.awk \ + widesub.ok \ + widesub2.awk \ + widesub2.ok \ + widesub3.awk \ + widesub3.in \ + widesub3.ok \ + widesub4.awk \ + widesub4.ok \ wjposer1.awk \ wjposer1.in \ wjposer1.ok \ + zero2.awk \ + zero2.ok \ zeroe0.awk \ zeroe0.ok \ zeroflag.awk \ @@ -735,46 +817,53 @@ TESTS_WE_ARE_NOT_DOING_YET_FIXME_ONE_DAY = longdbl -# Get rid of core files when cleaning -CLEANFILES = core core.* +# Get rid of core files when cleaning and generated .ok file +CLEANFILES = core core.* fmtspcl.ok # try to keep these sorted BASIC_TESTS = addcomma anchgsub argarray arrayparm arrayref arrymem1 \ arrayprm2 arrayprm3 arryref2 arryref3 arryref4 arryref5 arynasty \ arynocls aryprm1 aryprm2 aryprm3 aryprm4 aryprm5 aryprm6 aryprm7 \ aryprm8 arysubnm asgext awkpath back89 backgsub childin clobber \ - clsflnam compare compare2 concat1 concat2 concat3 convfmt datanonl defref \ - delarprm delarpm2 delfunc dynlj eofsplit exitval1 exitval2 fldchg fldchgnf fmttest fnamedat \ + clsflnam compare compare2 concat1 concat2 concat3 concat4 convfmt datanonl defref \ + delarprm delarpm2 delfunc dynlj eofsplit exitval1 exitval2 fldchg fldchgnf fmtspcl fmttest fnamedat \ fnarray fnarray2 fnarydel fnaryscl fnasgnm fnmisc fnparydl \ fordel forsimp fsbs fsspcoln fsrs fstabplus funsemnl funsmnam funstack getline \ getline2 getline3 getlnbuf getnr2tb getnr2tm gsubasgn gsubtest \ - gsubtst2 gsubtst3 gsubtst4 gsubtst5 hex hsprint inputred intest \ + gsubtst2 gsubtst3 gsubtst4 gsubtst5 hex hsprint inputred intest intformat \ intprec iobug1 leaddig leadnl litoct longsub longwrds manglprm math membug1 \ - messages minusstr mmap8k nasty nasty2 negexp nested nfldstr \ - nfneg nfset nlfldsep nlinstr nlstrina noeffect nofmtch noloop1 \ + messages minusstr mmap8k mtchi18n nasty nasty2 negexp nested nfldstr \ + nfneg nfset nlfldsep nlinstr nlstrina noeffect nofile nofmtch noloop1 \ noloop2 nonl noparms nors nulrsend numindex numsubstr octsub ofmt \ - ofmtbig ofmtfidl ofmts onlynl opasnidx opasnslf paramdup paramtyp \ - parseme pcntplus prdupval prec printf0 printf1 prmarscl prmreuse \ + ofmtbig ofmtfidl ofmts onlynl opasnidx opasnslf ovrflow1 paramdup paramtyp \ + parse1 parsefld parseme pcntplus prdupval prec printf0 printf1 prmarscl prmreuse \ prt1eval prtoeval psx96sub rand rebt8b1 rebt8b2 redfilnm regeq \ reindops reparse resplit rs rsnul1nl rsnulbig rsnulbig2 rstest1 \ rstest2 rstest3 rstest4 rstest5 rswhite scalar sclforin sclifin \ sortempty splitargv splitarr splitdef splitvar splitwht sprintfc \ - strcat1 strtod subamp subsepnm subslash substr swaplns synerr1 tradanch \ - tweakfld uninit2 uninit3 uninit4 uninitialized unterm wjposer1 \ - zeroe0 zeroflag - -UNIX_TESTS = fflush getlnhd pid pipeio1 pipeio2 poundbang space strftlng -GAWK_EXT_TESTS = argtest asort asorti backw badargs clos1way fieldwdth fsfwfs \ - gensub gensub2 gnuops2 gnuops3 gnureops icasefs icasers igncdym igncfs ignrcase \ - ignrcas2 lint match1 match2 manyfiles nondec nondec2 posix procinfs \ - printfbad1 regx8bit rebuf reint rsstart1 rsstart2 rsstart3 \ - rstest6 shadow sort1 strtonum strftime whiny + strcat1 strtod strnum1 subamp subi18n subsepnm subslash substr swaplns \ + synerr1 synerr2 tradanch \ + tweakfld uninit2 uninit3 uninit4 uninitialized unterm wideidx wideidx2 \ + widesub widesub2 widesub3 widesub4 wjposer1 zeroe0 zeroflag zero2 + +UNIX_TESTS = fflush getlnhd localenl pid pipeio1 pipeio2 poundbang space strftlng +GAWK_EXT_TESTS = argtest asort asorti backw badargs binmode1 clos1way devfd devfd1 devfd2 double1 double2 \ + fieldwdth fsfwfs fwtest fwtest2 gensub gensub2 gnuops2 gnuops3 gnureops icasefs \ + icasers igncdym igncfs ignrcase ignrcas2 lint lintold match1 match2 manyfiles \ + nondec nondec2 posix procinfs printfbad1 regx8bit rebuf reint reint2 rsstart1 \ + rsstart2 rsstart3 rstest6 shadow sort1 strtonum strftime whiny EXTRA_TESTS = regtest inftest INET_TESTS = inetechu inetecht inetdayu inetdayt # List of the tests which should be run with --lint option: -NEED_LINT = defref noeffect nofmtch shadow uninit2 uninit3 uninit4 uninitialized +NEED_LINT = defref fmtspcl noeffect nofmtch shadow uninit2 uninit3 uninit4 uninitialized + +# List of the tests which should be run with --lint-old option: +NEED_LINT_OLD = lintold + +# List of the tests which fail with EXIT CODE 1 +FAIL_CODE1 = fnarray2 fnmisc gsubasgn mixed1 noparms paramdup synerr1 synerr2 unterm # List of the files that appear in manual tests or are for reserve testing: GENTESTS_UNUSED = Makefile.in gtlnbufv.awk printfloat.awk switch2.awk @@ -812,7 +901,6 @@ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -uninstall-info-am: tags: TAGS TAGS: @@ -821,22 +909,21 @@ distdir: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ @@ -894,12 +981,20 @@ install-data-am: +install-dvi: install-dvi-am + install-exec-am: +install-html: install-html-am + install-info: install-info-am install-man: +install-pdf: install-pdf-am + +install-ps: install-ps-am + installcheck-am: maintainer-clean: maintainer-clean-am @@ -918,16 +1013,19 @@ ps-am: -uninstall-am: uninstall-info-am +uninstall-am: + +.MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \ - uninstall-info-am + mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am # Message stuff is to make it a little easier to follow. @@ -1018,7 +1116,7 @@ @echo 'Some of the output from regtest is very system specific, do not' @echo 'be distressed if your output differs from that distributed.' @echo 'Manual inspection is called for.' - AWK=`pwd`/$(AWK) $(srcdir)/regtest.sh + AWK=$(AWKPROG) $(srcdir)/regtest.sh manyfiles:: @echo manyfiles @@ -1079,6 +1177,11 @@ @echo ab | $(AWK) --traditional -f $(srcdir)/litoct.awk >_$@ @-$(CMP) $(srcdir)/litoct.ok _$@ && rm -f _$@ +devfd:: + @echo $@ + @$(AWK) 1 /dev/fd/4 /dev/fd/5 4<$(srcdir)/devfd.in4 5<$(srcdir)/devfd.in5 >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + fflush:: @echo $@ @$(srcdir)/fflush.sh >_$@ @@ -1105,7 +1208,7 @@ pid:: @echo pid @AWKPATH=$(srcdir) AWK=$(AWKPROG) $(SHELL) $(srcdir)/pid.sh $$$$ > _`basename $@` ; : - @-$(CMP) $(srcdir)/pid.ok _`basename $@` && rm -f _`basename $@` _`basename $@`.in + @-$(CMP) $(srcdir)/pid.ok _`basename $@` && rm -f _`basename $@` strftlng:: @echo $@ @@ -1120,6 +1223,14 @@ @echo A B C D E | tr -d '\12\15' | $(AWK) '{ print $$NF }' - $(srcdir)/nors.in > _$@ @-$(CMP) $(srcdir)/nors.ok _$@ && rm -f _$@ +fmtspcl.ok: fmtspcl.tok Makefile + @$(AWK) -v "sd=$(srcdir)" 'BEGIN {pnan = sprintf("%g",sqrt(-1)); nnan = sprintf("%g",-sqrt(-1)); pinf = sprintf("%g",-log(0)); ninf = sprintf("%g",log(0))} {sub(/positive_nan/,pnan); sub(/negative_nan/,nnan); sub(/positive_infinity/,pinf); sub(/negative_infinity/,ninf); sub(/fmtspcl/,(sd"/fmtspcl")); print}' < $(srcdir)/fmtspcl.tok > $@ 2>/dev/null + +fmtspcl: fmtspcl.ok + @echo fmtspcl + @$(AWK) -f $(srcdir)/fmtspcl.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $@.ok _$@ && rm -f _$@ + reint:: @echo $@ @$(AWK) --re-interval -f $(srcdir)/reint.awk $(srcdir)/reint.in >_$@ @@ -1222,6 +1333,42 @@ @WHINY_USERS=1 $(AWK) -f $(srcdir)/$@.awk $(srcdir)/$@.in >_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +wideidx:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +wideidx2:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +widesub:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +widesub2:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +widesub3:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +widesub4:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + ignrcas2:: @echo $@ @GAWKLOCALE=en_US ; export GAWKLOCALE ; \ @@ -1265,6 +1412,59 @@ @echo $@ @$(AWK) --non-decimal-data -v a=0x1 -f $(srcdir)/$@.awk >_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +nofile:: + @echo $@ + @$(AWK) '{}' no/such/file >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +binmode1:: + @echo $@ + @$(AWK) -v BINMODE=3 'BEGIN { print BINMODE }' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +subi18n:: + @echo $@ + @GAWKLOCALE=en_US.UTF-8 ; $(AWK) -f $(srcdir)/$@.awk > _$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +concat4:: + @echo $@ + @GAWKLOCALE=en_US.UTF-8 ; $(AWK) -f $(srcdir)/$@.awk $(srcdir)/$@.in > _$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +devfd1:: + @echo $@ + @$(AWK) -f $(srcdir)/$@.awk 4< $(srcdir)/devfd.in1 5< $(srcdir)/devfd.in2 >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +# The program text is the '1' which will print each record. How compact can you get? +devfd2:: + @echo $@ + @$(AWK) 1 /dev/fd/4 /dev/fd/5 4< $(srcdir)/devfd.in1 5< $(srcdir)/devfd.in2 >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +mixed1:: + @echo $@ + @$(AWK) -f /dev/null --source 'BEGIN {return junk}' >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +mtchi18n:: + @echo $@ + @GAWKLOCALE=ru_RU.UTF-8 ; export GAWKLOCALE ; \ + $(AWK) -f $(srcdir)/$@.awk $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >> _$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +reint2:: + @echo $@ + @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \ + AWKPATH=$(srcdir) $(AWK) --re-interval -f $@.awk $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +localenl:: + @echo $@ + @$(srcdir)/$@.sh >_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ Gt-dummy: # file Maketests, generated from Makefile.am by the Gentests program addcomma: @@ -1622,6 +1822,11 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +intformat: + @echo intformat + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + intprec: @echo intprec @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -1797,6 +2002,11 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +ovrflow1: + @echo ovrflow1 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + paramdup: @echo paramdup @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -1807,6 +2017,16 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +parse1: + @echo parse1 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +parsefld: + @echo parsefld + @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + parseme: @echo parseme @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -1992,6 +2212,11 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +strnum1: + @echo strnum1 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + subsepnm: @echo subsepnm @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -2017,6 +2242,11 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +synerr2: + @echo synerr2 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + uninit2: @echo uninit2 @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -2057,6 +2287,11 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +zero2: + @echo zero2 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + getlnhd: @echo getlnhd @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -2082,6 +2317,16 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +double1: + @echo double1 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +double2: + @echo double2 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + fieldwdth: @echo fieldwdth @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -2092,6 +2337,16 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +fwtest: + @echo fwtest + @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +fwtest2: + @echo fwtest2 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + gensub: @echo gensub @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -2147,6 +2402,11 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +lintold: + @echo lintold + @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint-old < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + match1: @echo match1 @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -2212,10 +2472,11 @@ # Targets generated for other tests: $(srcdir)/Maketests: $(srcdir)/Makefile.am $(srcdir)/Gentests - $(AWK) -f $(srcdir)/Gentests "$(srcdir)/Makefile.am" *.awk *.in > $(srcdir)/Maketests + files=`cd "$(srcdir)" && echo *.awk *.in`; \ + $(AWK) -f $(srcdir)/Gentests "$(srcdir)/Makefile.am" $$files > $(srcdir)/Maketests clean: - rm -fr _* core core.* junk out1 out2 out3 strftime.ok test1 test2 seq *~ + rm -fr _* core core.* fmtspcl.ok junk out1 out2 out3 strftime.ok test1 test2 seq *~ # An attempt to print something that can be grepped for in build logs pass-fail: @@ -2229,10 +2490,31 @@ diffout: for i in _* ; \ do \ + if [ "$$i" != "_*" ]; then \ echo ============== $$i ============= ; \ + if [ -r $${i#_}.ok ]; then \ + diff -c $${i#_}.ok $$i ; \ + else \ diff -c $(srcdir)/$${i#_}.ok $$i ; \ + fi ; \ + fi ; \ done | more +# convenient way to scan valgrind results for errors +valgrind-scan: + @echo "Scanning valgrind log files for problems:" + @$(AWK) '\ + function show() {if (cmd) {printf "%s: %s\n",FILENAME,cmd; cmd = ""}; \ + printf "\t%s\n",$$0}; \ + {$$1 = ""}; \ + /Prog and args are:/ {incmd = 1; cmd = ""; next}; \ + incmd {if (NF == 1) incmd = 0; else {cmd = (cmd $$0); next}}; \ + /ERROR SUMMARY:/ && !/: 0 errors from 0 contexts/ {show()}; \ + /definitely lost:/ && !/: 0 bytes in 0 blocks/ {show()}; \ + /possibly lost:/ && !/: 0 bytes in 0 blocks/ {show()}; \ + / suppressed:/ && !/: 0 bytes in 0 blocks/ {show()}; \ + ' log.[0-9]* + # This target is for testing with electric fence. efence: for i in $$(ls _* | sed 's;_\(.*\);\1;') ; \ diff -urN gawk-3.1.5/test/Maketests gawk-3.1.6/test/Maketests --- gawk-3.1.5/test/Maketests 2005-07-26 21:10:48.000000000 +0300 +++ gawk-3.1.6/test/Maketests 2007-09-26 15:13:45.000000000 +0200 @@ -355,6 +355,11 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +intformat: + @echo intformat + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + intprec: @echo intprec @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -530,6 +535,11 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +ovrflow1: + @echo ovrflow1 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + paramdup: @echo paramdup @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -540,6 +550,16 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +parse1: + @echo parse1 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +parsefld: + @echo parsefld + @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + parseme: @echo parseme @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -725,6 +745,11 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +strnum1: + @echo strnum1 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + subsepnm: @echo subsepnm @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -750,6 +775,11 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +synerr2: + @echo synerr2 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + uninit2: @echo uninit2 @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -790,6 +820,11 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +zero2: + @echo zero2 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + getlnhd: @echo getlnhd @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -815,6 +850,16 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +double1: + @echo double1 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +double2: + @echo double2 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + fieldwdth: @echo fieldwdth @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -825,6 +870,16 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +fwtest: + @echo fwtest + @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + +fwtest2: + @echo fwtest2 + @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + gensub: @echo gensub @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @@ -880,6 +935,11 @@ @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +lintold: + @echo lintold + @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint-old < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + match1: @echo match1 @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff -urN gawk-3.1.5/test/badargs.ok gawk-3.1.6/test/badargs.ok --- gawk-3.1.5/test/badargs.ok 2005-05-11 18:28:18.000000000 +0300 +++ gawk-3.1.6/test/badargs.ok 2007-05-29 22:43:32.000000000 +0300 @@ -22,6 +22,7 @@ -W source=program-text --source=program-text -W traditional --traditional -W usage --usage + -W use-lc-numeric --use-lc-numeric -W version --version To report bugs, see node `Bugs' in `gawk.info', which is diff -urN gawk-3.1.5/test/binmode1.ok gawk-3.1.6/test/binmode1.ok --- gawk-3.1.5/test/binmode1.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/binmode1.ok 2006-08-11 15:52:23.000000000 +0300 @@ -0,0 +1 @@ +3 diff -urN gawk-3.1.5/test/concat4.awk gawk-3.1.6/test/concat4.awk --- gawk-3.1.5/test/concat4.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/concat4.awk 2006-08-11 15:52:23.000000000 +0300 @@ -0,0 +1,7 @@ +{ + a = $0 + print index(a,"b") + getline + a = a $0 + print index(a,"b") +} diff -urN gawk-3.1.5/test/concat4.in gawk-3.1.6/test/concat4.in --- gawk-3.1.5/test/concat4.in 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/concat4.in 2006-08-11 15:52:23.000000000 +0300 @@ -0,0 +1,2 @@ +foo +bar diff -urN gawk-3.1.5/test/concat4.ok gawk-3.1.6/test/concat4.ok --- gawk-3.1.5/test/concat4.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/concat4.ok 2006-08-11 15:52:23.000000000 +0300 @@ -0,0 +1,2 @@ +0 +4 diff -urN gawk-3.1.5/test/devfd.in1 gawk-3.1.6/test/devfd.in1 --- gawk-3.1.5/test/devfd.in1 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/devfd.in1 2006-08-11 15:52:23.000000000 +0300 @@ -0,0 +1,20 @@ +this is file f1, line 1 +this is file f1, line 2 +this is file f1, line 3 +this is file f1, line 4 +this is file f1, line 5 +this is file f1, line 6 +this is file f1, line 7 +this is file f1, line 8 +this is file f1, line 9 +this is file f1, line 10 +this is file f1, line 11 +this is file f1, line 12 +this is file f1, line 13 +this is file f1, line 14 +this is file f1, line 15 +this is file f1, line 16 +this is file f1, line 17 +this is file f1, line 18 +this is file f1, line 19 +this is file f1, line 20 diff -urN gawk-3.1.5/test/devfd.in2 gawk-3.1.6/test/devfd.in2 --- gawk-3.1.5/test/devfd.in2 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/devfd.in2 2006-08-11 15:52:23.000000000 +0300 @@ -0,0 +1,20 @@ +this is file f2, line 1 +this is file f2, line 2 +this is file f2, line 3 +this is file f2, line 4 +this is file f2, line 5 +this is file f2, line 6 +this is file f2, line 7 +this is file f2, line 8 +this is file f2, line 9 +this is file f2, line 10 +this is file f2, line 11 +this is file f2, line 12 +this is file f2, line 13 +this is file f2, line 14 +this is file f2, line 15 +this is file f2, line 16 +this is file f2, line 17 +this is file f2, line 18 +this is file f2, line 19 +this is file f2, line 20 diff -urN gawk-3.1.5/test/devfd.in4 gawk-3.1.6/test/devfd.in4 --- gawk-3.1.5/test/devfd.in4 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/devfd.in4 2007-01-18 21:43:32.000000000 +0200 @@ -0,0 +1 @@ +file on fd 4 diff -urN gawk-3.1.5/test/devfd.in5 gawk-3.1.6/test/devfd.in5 --- gawk-3.1.5/test/devfd.in5 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/devfd.in5 2007-01-18 21:43:32.000000000 +0200 @@ -0,0 +1 @@ +file on fd 5 diff -urN gawk-3.1.5/test/devfd.ok gawk-3.1.6/test/devfd.ok --- gawk-3.1.5/test/devfd.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/devfd.ok 2007-01-18 21:43:32.000000000 +0200 @@ -0,0 +1,2 @@ +file on fd 4 +file on fd 5 diff -urN gawk-3.1.5/test/devfd1.awk gawk-3.1.6/test/devfd1.awk --- gawk-3.1.5/test/devfd1.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/devfd1.awk 2006-08-11 15:52:23.000000000 +0300 @@ -0,0 +1,11 @@ +BEGIN { + while (1) { + if ((getline l1 < "/dev/fd/4") <= 0) + break + print l1 + + if ((getline l2 < "/dev/fd/5") <= 0) + break + print l2 + } +} diff -urN gawk-3.1.5/test/devfd1.ok gawk-3.1.6/test/devfd1.ok --- gawk-3.1.5/test/devfd1.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/devfd1.ok 2006-08-11 15:52:23.000000000 +0300 @@ -0,0 +1,40 @@ +this is file f1, line 1 +this is file f2, line 1 +this is file f1, line 2 +this is file f2, line 2 +this is file f1, line 3 +this is file f2, line 3 +this is file f1, line 4 +this is file f2, line 4 +this is file f1, line 5 +this is file f2, line 5 +this is file f1, line 6 +this is file f2, line 6 +this is file f1, line 7 +this is file f2, line 7 +this is file f1, line 8 +this is file f2, line 8 +this is file f1, line 9 +this is file f2, line 9 +this is file f1, line 10 +this is file f2, line 10 +this is file f1, line 11 +this is file f2, line 11 +this is file f1, line 12 +this is file f2, line 12 +this is file f1, line 13 +this is file f2, line 13 +this is file f1, line 14 +this is file f2, line 14 +this is file f1, line 15 +this is file f2, line 15 +this is file f1, line 16 +this is file f2, line 16 +this is file f1, line 17 +this is file f2, line 17 +this is file f1, line 18 +this is file f2, line 18 +this is file f1, line 19 +this is file f2, line 19 +this is file f1, line 20 +this is file f2, line 20 diff -urN gawk-3.1.5/test/devfd2.ok gawk-3.1.6/test/devfd2.ok --- gawk-3.1.5/test/devfd2.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/devfd2.ok 2006-08-11 15:52:23.000000000 +0300 @@ -0,0 +1,40 @@ +this is file f1, line 1 +this is file f1, line 2 +this is file f1, line 3 +this is file f1, line 4 +this is file f1, line 5 +this is file f1, line 6 +this is file f1, line 7 +this is file f1, line 8 +this is file f1, line 9 +this is file f1, line 10 +this is file f1, line 11 +this is file f1, line 12 +this is file f1, line 13 +this is file f1, line 14 +this is file f1, line 15 +this is file f1, line 16 +this is file f1, line 17 +this is file f1, line 18 +this is file f1, line 19 +this is file f1, line 20 +this is file f2, line 1 +this is file f2, line 2 +this is file f2, line 3 +this is file f2, line 4 +this is file f2, line 5 +this is file f2, line 6 +this is file f2, line 7 +this is file f2, line 8 +this is file f2, line 9 +this is file f2, line 10 +this is file f2, line 11 +this is file f2, line 12 +this is file f2, line 13 +this is file f2, line 14 +this is file f2, line 15 +this is file f2, line 16 +this is file f2, line 17 +this is file f2, line 18 +this is file f2, line 19 +this is file f2, line 20 diff -urN gawk-3.1.5/test/double1.awk gawk-3.1.6/test/double1.awk --- gawk-3.1.5/test/double1.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/double1.awk 2007-02-06 21:51:44.000000000 +0200 @@ -0,0 +1,4 @@ +BEGIN { + print 9223372036854775808 + printf("%d\n", 9223372036854775808) +} diff -urN gawk-3.1.5/test/double1.ok gawk-3.1.6/test/double1.ok --- gawk-3.1.5/test/double1.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/double1.ok 2007-02-20 22:33:55.000000000 +0200 @@ -0,0 +1,2 @@ +9223372036854775808 +9223372036854775808 diff -urN gawk-3.1.5/test/double2.awk gawk-3.1.6/test/double2.awk --- gawk-3.1.5/test/double2.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/double2.awk 2007-04-17 22:20:55.000000000 +0300 @@ -0,0 +1,46 @@ +# Date: Mon, 19 Dec 2005 18:14:13 -0800 +# From: David Ellsworth +# Subject: Re: gawk number to string bug +# To: eggert@CS.UCLA.EDU, eliz@gnu.org +# Cc: arnold@skeeve.com, aschorr@telemetry-investments.com, +# bug-gnu-utils@gnu.org, ellswort@nas.nasa.gov +# Message-id: <200512200214.jBK2EDuu020216@ece03.nas.nasa.gov> +# +# Since you are taking my bug report seriously (which is really great), +# let me add some more fuel to the fire. Consider this program: +# +# BEGIN { x=2**60; for(i=60;i<=65;i++) { printf "2^%d= %s %d %g\n",i,x,x,x; x*=2}} +# +# which prints out powers of two around 2^63. On an Opteron (as well as +# an Itanium), you get +# +# 2^60= 1152921504606846976 1152921504606846976 1.15292e+18 +# 2^61= 2305843009213693952 2305843009213693952 2.30584e+18 +# 2^62= 4611686018427387904 4611686018427387904 4.61169e+18 +# 2^63= -9223372036854775808 9223372036854775808 9.22337e+18 +# 2^64= 1.84467e+19 0 1.84467e+19 +# 2^65= 3.68935e+19 3.68935e+19 3.68935e+19 +# +# On a Xeon, you get +# +# 2^60= 1.15292e+18 1152921504606846976 1.15292e+18 +# 2^61= 2.30584e+18 2305843009213693952 2.30584e+18 +# 2^62= 4.61169e+18 4611686018427387904 4.61169e+18 +# 2^63= 9.22337e+18 9223372036854775808 9.22337e+18 +# 2^64= 1.84467e+19 0 1.84467e+19 +# 2^65= 3.68935e+19 3.68935e+19 3.68935e+19 +# +# The 2^64 value for %d is probably also a bug since the outputs +# for 2^63 and 2^65 are reasonable. +# +# - David +# + +BEGIN { + x = 2 ^ 60 +# for (i = 60; i <= 65; i++) { + for (i = 60; i <= 63; i++) { + printf "2^%d= %s %d %g %o\n", i, x, x, x, x + x *= 2 + } +} diff -urN gawk-3.1.5/test/double2.ok gawk-3.1.6/test/double2.ok --- gawk-3.1.5/test/double2.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/double2.ok 2007-04-17 22:23:13.000000000 +0300 @@ -0,0 +1,4 @@ +2^60= 1152921504606846976 1152921504606846976 1.15292e+18 100000000000000000000 +2^61= 2305843009213693952 2305843009213693952 2.30584e+18 200000000000000000000 +2^62= 4611686018427387904 4611686018427387904 4.61169e+18 400000000000000000000 +2^63= 9223372036854775808 9223372036854775808 9.22337e+18 1000000000000000000000 diff -urN gawk-3.1.5/test/exitval2.w32 gawk-3.1.6/test/exitval2.w32 --- gawk-3.1.5/test/exitval2.w32 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/exitval2.w32 2007-01-13 22:15:05.000000000 +0200 @@ -0,0 +1,3 @@ +BEGIN { print "foo" | "sh -c \"read x ; echo $x ; exit 12\"" } +# this should still exit 0, as pointed out by kenny mccormack in +# comp.lang.awk on 2 feb 2005 diff -urN gawk-3.1.5/test/fmtspcl.awk gawk-3.1.6/test/fmtspcl.awk --- gawk-3.1.5/test/fmtspcl.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/fmtspcl.awk 2007-04-24 23:15:51.000000000 +0300 @@ -0,0 +1,26 @@ +function display(x,str, i,res) { + for (i = 0; i < n; i++) { + if ((res = sprintf(formats[i],x)) != str) + printf "sprintf(%s,%s) = %s (!= %s)\n", + formats[i],x,res,str + } +} + +BEGIN { + nan = sqrt(-1) + nan_str = sprintf("%f",nan) + nnan_str = sprintf("%f",-nan) + inf = -log(0) + inf_str = sprintf("%f",inf) + + n = 0 + formats[n++] = "%f" + formats[n++] = "%s" + formats[n++] = "%g" + formats[n++] = "%x" + formats[n++] = "%d" + display(nan,nan_str) + display(-nan,nnan_str) + display(inf,inf) + display(-inf,"-"inf_str) +} diff -urN gawk-3.1.5/test/fmtspcl.tok gawk-3.1.6/test/fmtspcl.tok --- gawk-3.1.5/test/fmtspcl.tok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/fmtspcl.tok 2007-04-24 23:13:49.000000000 +0300 @@ -0,0 +1,9 @@ +gawk: fmtspcl.awk:10: warning: sqrt: called with negative argument -1 +gawk: fmtspcl.awk:6: warning: [s]printf: value positive_nan is out of range for `%x' format +gawk: fmtspcl.awk:6: warning: [s]printf: value positive_nan is out of range for `%d' format +gawk: fmtspcl.awk:6: warning: [s]printf: value negative_nan is out of range for `%x' format +gawk: fmtspcl.awk:6: warning: [s]printf: value negative_nan is out of range for `%d' format +gawk: fmtspcl.awk:6: warning: [s]printf: value positive_infinity is out of range for `%x' format +gawk: fmtspcl.awk:6: warning: [s]printf: value positive_infinity is out of range for `%d' format +gawk: fmtspcl.awk:6: warning: [s]printf: value negative_infinity is out of range for `%x' format +gawk: fmtspcl.awk:6: warning: [s]printf: value negative_infinity is out of range for `%d' format diff -urN gawk-3.1.5/test/fnarray.ok gawk-3.1.6/test/fnarray.ok --- gawk-3.1.5/test/fnarray.ok 2005-05-11 18:28:18.000000000 +0300 +++ gawk-3.1.6/test/fnarray.ok 2007-01-14 22:39:56.000000000 +0200 @@ -1,3 +1,5 @@ gawk: fnarray.awk:5: Num = foo[c] gawk: fnarray.awk:5: ^ use of non-array as array -EXIT CODE: 1 +gawk: fnarray.awk:5: fatal: function `foo' called with space between name and `(', +or used as a variable or an array +EXIT CODE: 2 diff -urN gawk-3.1.5/test/fwtest.awk gawk-3.1.6/test/fwtest.awk --- gawk-3.1.5/test/fwtest.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/fwtest.awk 2006-08-11 15:52:23.000000000 +0300 @@ -0,0 +1,2 @@ +BEGIN { FIELDWIDTHS = "1 1 1" } +{ print NF, $1, $2, $3 } diff -urN gawk-3.1.5/test/fwtest.in gawk-3.1.6/test/fwtest.in --- gawk-3.1.5/test/fwtest.in 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/fwtest.in 2006-08-11 15:52:23.000000000 +0300 @@ -0,0 +1 @@ +abc diff -urN gawk-3.1.5/test/fwtest.ok gawk-3.1.6/test/fwtest.ok --- gawk-3.1.5/test/fwtest.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/fwtest.ok 2006-08-11 15:52:23.000000000 +0300 @@ -0,0 +1 @@ +3 a b c diff -urN gawk-3.1.5/test/fwtest2.awk gawk-3.1.6/test/fwtest2.awk --- gawk-3.1.5/test/fwtest2.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/fwtest2.awk 2007-01-23 20:30:21.000000000 +0200 @@ -0,0 +1,59 @@ +# Date: Fri, 24 Mar 2006 15:17:24 +0100 +# From: =?UTF-8?Q?Ram=C3=B3n_Garc=C3=ADa?= +# Subject: Re: Bug when parsing FIELDWIDTHS +# In-reply-to: <200603241144.k2OBiFOX030158@skeeve.com> +# To: Aharon Robbins +# Message-id: +# MIME-version: 1.0 +# Content-type: multipart/mixed; boundary="----=_Part_9022_17179442.1143209844259" +# DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; +# h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; +# b=QVst9uUwAllKuDwXhuHbNjpRJStt3nEGc7p+BMG+HNk/qyHmnG/TYXSvIVKgZFja1thLhYbPYncw2MyEHtKyZuiTJCYqvpjWeST9qQNfxVMeu8FahqAky7n8ldsjOK6ncbCoE3hZe/g/Z9ZsVFC9LORXvM5uo7y1MGkUhgxO4qU= +# +# ------=_Part_9022_17179442.1143209844259 +# Content-Type: text/plain; charset=UTF-8 +# Content-Transfer-Encoding: base64 +# Content-Disposition: inline +# +# DQpTdXJlLiBIZXJlIGl0IGlzLg0KDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj +# IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQpUaGlz +# IE1haWwgV2FzIFNjYW5uZWQgYnkgMDEyLm5ldCBBbnRpVmlydXMgU2VydmljZTItIFBvd2VyZWQg +# YnkgVHJlbmRNaWNybyBJbnRlcnNjYW4NCg== +# ------=_Part_9022_17179442.1143209844259 +# Content-Type: application/octet-stream; name=bug_data +# Content-Transfer-Encoding: 7bit +# X-Attachment-Id: f_el6ll617 +# Content-Disposition: attachment; filename="bug_data" +# +# 0.4867373206 1.3206333033 -0.2333178127 +# 0.5668176165 1.3711756314 -0.2193558040 +# 0.4325251781 1.3399488722 -0.1568307497 +# 0.4900487563 1.3295759570 -0.2217392402 +# -0.6790064191 1.2536623801 -0.2955415433 +# -0.6311440220 1.2966579993 -0.2246692210 +# -0.7209390351 1.1783407099 -0.2539408209 +# -0.6782473356 1.2495242556 -0.2811436366 +# -0.7062054082 1.1223820964 -1.1619805834 +# -0.6491590119 1.1248946162 -1.0851579675 +# -0.7948856821 1.1208852325 -1.1259821556 +# -0.7102549262 1.1225121126 -1.1475381286 +# +# ------=_Part_9022_17179442.1143209844259 +# Content-Type: application/octet-stream; name=bug.awk +# Content-Transfer-Encoding: 7bit +# X-Attachment-Id: f_el6llnjj +# Content-Disposition: attachment; filename="bug.awk" +# +#!/usr/bin/awk -f +BEGIN { + FIELDWIDTHS = "15 15 15"; +} +{ + x = $1; + y = $2; + z = $3; + print "x y z", x, y, z +} +# +# ------=_Part_9022_17179442.1143209844259-- +# diff -urN gawk-3.1.5/test/fwtest2.in gawk-3.1.6/test/fwtest2.in --- gawk-3.1.5/test/fwtest2.in 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/fwtest2.in 2007-01-23 20:30:21.000000000 +0200 @@ -0,0 +1,12 @@ + 0.4867373206 1.3206333033 -0.2333178127 + 0.5668176165 1.3711756314 -0.2193558040 + 0.4325251781 1.3399488722 -0.1568307497 + 0.4900487563 1.3295759570 -0.2217392402 + -0.6790064191 1.2536623801 -0.2955415433 + -0.6311440220 1.2966579993 -0.2246692210 + -0.7209390351 1.1783407099 -0.2539408209 + -0.6782473356 1.2495242556 -0.2811436366 + -0.7062054082 1.1223820964 -1.1619805834 + -0.6491590119 1.1248946162 -1.0851579675 + -0.7948856821 1.1208852325 -1.1259821556 + -0.7102549262 1.1225121126 -1.1475381286 diff -urN gawk-3.1.5/test/fwtest2.ok gawk-3.1.6/test/fwtest2.ok --- gawk-3.1.5/test/fwtest2.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/fwtest2.ok 2007-01-23 20:30:21.000000000 +0200 @@ -0,0 +1,12 @@ +x y z 0.4867373206 1.3206333033 -0.2333178127 +x y z 0.5668176165 1.3711756314 -0.2193558040 +x y z 0.4325251781 1.3399488722 -0.1568307497 +x y z 0.4900487563 1.3295759570 -0.2217392402 +x y z -0.6790064191 1.2536623801 -0.2955415433 +x y z -0.6311440220 1.2966579993 -0.2246692210 +x y z -0.7209390351 1.1783407099 -0.2539408209 +x y z -0.6782473356 1.2495242556 -0.2811436366 +x y z -0.7062054082 1.1223820964 -1.1619805834 +x y z -0.6491590119 1.1248946162 -1.0851579675 +x y z -0.7948856821 1.1208852325 -1.1259821556 +x y z -0.7102549262 1.1225121126 -1.1475381286 diff -urN gawk-3.1.5/test/getline.awk gawk-3.1.6/test/getline.awk --- gawk-3.1.5/test/getline.awk 2005-05-11 18:28:18.000000000 +0300 +++ gawk-3.1.6/test/getline.awk 2007-05-04 14:09:46.000000000 +0300 @@ -26,4 +26,8 @@ a = cmd | getline x close(cmd) print a, x + + # Concatenation has higher precedence than IO. + "echo " "date" | getline + print } diff -urN gawk-3.1.5/test/getline.ok gawk-3.1.6/test/getline.ok --- gawk-3.1.5/test/getline.ok 2005-05-11 18:28:18.000000000 +0300 +++ gawk-3.1.6/test/getline.ok 2007-05-04 14:09:46.000000000 +0300 @@ -5,3 +5,4 @@ 2 B -1 C 1 D +date diff -urN gawk-3.1.5/test/hsprint.awk gawk-3.1.6/test/hsprint.awk --- gawk-3.1.5/test/hsprint.awk 2005-05-11 18:28:18.000000000 +0300 +++ gawk-3.1.6/test/hsprint.awk 2007-04-29 22:43:20.000000000 +0300 @@ -51,7 +51,7 @@ substr(spc,s,1) substr(alt,a,1) substr(zero,z,1); fstr = sprintf(\ "%6s|%s%s|%s%s|%s%s|%s%s|%s%s|%s%s|\n", - fmt, + "%" fmt, fmt, oper[r], fmt, oper[r+1], fmt, oper[r+2], @@ -69,6 +69,3 @@ print ""; } } - - - diff -urN gawk-3.1.5/test/hsprint.ok gawk-3.1.6/test/hsprint.ok --- gawk-3.1.5/test/hsprint.ok 2005-05-11 18:28:18.000000000 +0300 +++ gawk-3.1.6/test/hsprint.ok 2007-04-29 22:45:49.000000000 +0300 @@ -1,66 +1,66 @@ - %| 45| 55| 2d| 12.68| 1.27e+01| 12.68| - %0|00045|00055|0002d|0012.68|001.27e+01|0000012.68| - %#| 45| 055| 0x2d| 12.68| 1.27e+01| 12.68| - %#0|00045|00055|0x02d|0012.68|001.27e+01|0000012.68| - % | 45| 55| 2d| 12.68| 1.27e+01| 12.68| - % 0| 0045|00055|0002d| 012.68| 01.27e+01| 000012.68| - % #| 45| 055| 0x2d| 12.68| 1.27e+01| 12.68| - % #0| 0045|00055|0x02d| 012.68| 01.27e+01| 000012.68| - %+| +45| 55| 2d| +12.68| +1.27e+01| +12.68| - %+0|+0045|00055|0002d|+012.68|+01.27e+01|+000012.68| - %+#| +45| 055| 0x2d| +12.68| +1.27e+01| +12.68| - %+#0|+0045|00055|0x02d|+012.68|+01.27e+01|+000012.68| - %+ | +45| 55| 2d| +12.68| +1.27e+01| +12.68| - %+ 0|+0045|00055|0002d|+012.68|+01.27e+01|+000012.68| - %+ #| +45| 055| 0x2d| +12.68| +1.27e+01| +12.68| - %+ #0|+0045|00055|0x02d|+012.68|+01.27e+01|+000012.68| - %-|45 |55 |2d |12.68 |1.27e+01 |12.68 | - %-0|45 |55 |2d |12.68 |1.27e+01 |12.68 | - %-#|45 |055 |0x2d |12.68 |1.27e+01 |12.68 | - %-#0|45 |055 |0x2d |12.68 |1.27e+01 |12.68 | - %- | 45 |55 |2d | 12.68 | 1.27e+01 | 12.68 | - %- 0| 45 |55 |2d | 12.68 | 1.27e+01 | 12.68 | - %- #| 45 |055 |0x2d | 12.68 | 1.27e+01 | 12.68 | - %- #0| 45 |055 |0x2d | 12.68 | 1.27e+01 | 12.68 | - %-+|+45 |55 |2d |+12.68 |+1.27e+01 |+12.68 | - %-+0|+45 |55 |2d |+12.68 |+1.27e+01 |+12.68 | - %-+#|+45 |055 |0x2d |+12.68 |+1.27e+01 |+12.68 | - %-+#0|+45 |055 |0x2d |+12.68 |+1.27e+01 |+12.68 | - %-+ |+45 |55 |2d |+12.68 |+1.27e+01 |+12.68 | - %-+ 0|+45 |55 |2d |+12.68 |+1.27e+01 |+12.68 | - %-+ #|+45 |055 |0x2d |+12.68 |+1.27e+01 |+12.68 | + %| 45| 55| 2d| 12.68| 1.27e+01| 12.68| + %0|00045|00055|0002d|0012.68|001.27e+01|0000012.68| + %#| 45| 055| 0x2d| 12.68| 1.27e+01| 12.68| + %#0|00045|00055|0x02d|0012.68|001.27e+01|0000012.68| + % | 45| 55| 2d| 12.68| 1.27e+01| 12.68| + % 0| 0045|00055|0002d| 012.68| 01.27e+01| 000012.68| + % #| 45| 055| 0x2d| 12.68| 1.27e+01| 12.68| + % #0| 0045|00055|0x02d| 012.68| 01.27e+01| 000012.68| + %+| +45| 55| 2d| +12.68| +1.27e+01| +12.68| + %+0|+0045|00055|0002d|+012.68|+01.27e+01|+000012.68| + %+#| +45| 055| 0x2d| +12.68| +1.27e+01| +12.68| + %+#0|+0045|00055|0x02d|+012.68|+01.27e+01|+000012.68| + %+ | +45| 55| 2d| +12.68| +1.27e+01| +12.68| + %+ 0|+0045|00055|0002d|+012.68|+01.27e+01|+000012.68| + %+ #| +45| 055| 0x2d| +12.68| +1.27e+01| +12.68| +%+ #0|+0045|00055|0x02d|+012.68|+01.27e+01|+000012.68| + %-|45 |55 |2d |12.68 |1.27e+01 |12.68 | + %-0|45 |55 |2d |12.68 |1.27e+01 |12.68 | + %-#|45 |055 |0x2d |12.68 |1.27e+01 |12.68 | + %-#0|45 |055 |0x2d |12.68 |1.27e+01 |12.68 | + %- | 45 |55 |2d | 12.68 | 1.27e+01 | 12.68 | + %- 0| 45 |55 |2d | 12.68 | 1.27e+01 | 12.68 | + %- #| 45 |055 |0x2d | 12.68 | 1.27e+01 | 12.68 | +%- #0| 45 |055 |0x2d | 12.68 | 1.27e+01 | 12.68 | + %-+|+45 |55 |2d |+12.68 |+1.27e+01 |+12.68 | + %-+0|+45 |55 |2d |+12.68 |+1.27e+01 |+12.68 | + %-+#|+45 |055 |0x2d |+12.68 |+1.27e+01 |+12.68 | +%-+#0|+45 |055 |0x2d |+12.68 |+1.27e+01 |+12.68 | + %-+ |+45 |55 |2d |+12.68 |+1.27e+01 |+12.68 | +%-+ 0|+45 |55 |2d |+12.68 |+1.27e+01 |+12.68 | +%-+ #|+45 |055 |0x2d |+12.68 |+1.27e+01 |+12.68 | %-+ #0|+45 |055 |0x2d |+12.68 |+1.27e+01 |+12.68 | - %| zap| *| -3| -3.46| -3.46e+00| -3.457| - %0|00zap|0000*|-000003|-003.46|-03.46e+00|-00003.457| - %#| zap| *| -3.| -3.46| -3.46e+00| -3.457| - %#0|00zap|0000*|-00003.|-003.46|-03.46e+00|-00003.457| - % | zap| *| -3| -3.46| -3.46e+00| -3.457| - % 0|00zap|0000*|-000003|-003.46|-03.46e+00|-00003.457| - % #| zap| *| -3.| -3.46| -3.46e+00| -3.457| - % #0|00zap|0000*|-00003.|-003.46|-03.46e+00|-00003.457| - %+| zap| *| -3| -3.46| -3.46e+00| -3.457| - %+0|00zap|0000*|-000003|-003.46|-03.46e+00|-00003.457| - %+#| zap| *| -3.| -3.46| -3.46e+00| -3.457| - %+#0|00zap|0000*|-00003.|-003.46|-03.46e+00|-00003.457| - %+ | zap| *| -3| -3.46| -3.46e+00| -3.457| - %+ 0|00zap|0000*|-000003|-003.46|-03.46e+00|-00003.457| - %+ #| zap| *| -3.| -3.46| -3.46e+00| -3.457| - %+ #0|00zap|0000*|-00003.|-003.46|-03.46e+00|-00003.457| - %-|zap |* |-3 |-3.46 |-3.46e+00 |-3.457 | - %-0|zap |* |-3 |-3.46 |-3.46e+00 |-3.457 | - %-#|zap |* |-3. |-3.46 |-3.46e+00 |-3.457 | - %-#0|zap |* |-3. |-3.46 |-3.46e+00 |-3.457 | - %- |zap |* |-3 |-3.46 |-3.46e+00 |-3.457 | - %- 0|zap |* |-3 |-3.46 |-3.46e+00 |-3.457 | - %- #|zap |* |-3. |-3.46 |-3.46e+00 |-3.457 | - %- #0|zap |* |-3. |-3.46 |-3.46e+00 |-3.457 | - %-+|zap |* |-3 |-3.46 |-3.46e+00 |-3.457 | - %-+0|zap |* |-3 |-3.46 |-3.46e+00 |-3.457 | - %-+#|zap |* |-3. |-3.46 |-3.46e+00 |-3.457 | - %-+#0|zap |* |-3. |-3.46 |-3.46e+00 |-3.457 | - %-+ |zap |* |-3 |-3.46 |-3.46e+00 |-3.457 | - %-+ 0|zap |* |-3 |-3.46 |-3.46e+00 |-3.457 | - %-+ #|zap |* |-3. |-3.46 |-3.46e+00 |-3.457 | + %| zap| *| -3| -3.46| -3.46e+00| -3.457| + %0|00zap|0000*|-000003|-003.46|-03.46e+00|-00003.457| + %#| zap| *| -3.| -3.46| -3.46e+00| -3.457| + %#0|00zap|0000*|-00003.|-003.46|-03.46e+00|-00003.457| + % | zap| *| -3| -3.46| -3.46e+00| -3.457| + % 0|00zap|0000*|-000003|-003.46|-03.46e+00|-00003.457| + % #| zap| *| -3.| -3.46| -3.46e+00| -3.457| + % #0|00zap|0000*|-00003.|-003.46|-03.46e+00|-00003.457| + %+| zap| *| -3| -3.46| -3.46e+00| -3.457| + %+0|00zap|0000*|-000003|-003.46|-03.46e+00|-00003.457| + %+#| zap| *| -3.| -3.46| -3.46e+00| -3.457| + %+#0|00zap|0000*|-00003.|-003.46|-03.46e+00|-00003.457| + %+ | zap| *| -3| -3.46| -3.46e+00| -3.457| + %+ 0|00zap|0000*|-000003|-003.46|-03.46e+00|-00003.457| + %+ #| zap| *| -3.| -3.46| -3.46e+00| -3.457| +%+ #0|00zap|0000*|-00003.|-003.46|-03.46e+00|-00003.457| + %-|zap |* |-3 |-3.46 |-3.46e+00 |-3.457 | + %-0|zap |* |-3 |-3.46 |-3.46e+00 |-3.457 | + %-#|zap |* |-3. |-3.46 |-3.46e+00 |-3.457 | + %-#0|zap |* |-3. |-3.46 |-3.46e+00 |-3.457 | + %- |zap |* |-3 |-3.46 |-3.46e+00 |-3.457 | + %- 0|zap |* |-3 |-3.46 |-3.46e+00 |-3.457 | + %- #|zap |* |-3. |-3.46 |-3.46e+00 |-3.457 | +%- #0|zap |* |-3. |-3.46 |-3.46e+00 |-3.457 | + %-+|zap |* |-3 |-3.46 |-3.46e+00 |-3.457 | + %-+0|zap |* |-3 |-3.46 |-3.46e+00 |-3.457 | + %-+#|zap |* |-3. |-3.46 |-3.46e+00 |-3.457 | +%-+#0|zap |* |-3. |-3.46 |-3.46e+00 |-3.457 | + %-+ |zap |* |-3 |-3.46 |-3.46e+00 |-3.457 | +%-+ 0|zap |* |-3 |-3.46 |-3.46e+00 |-3.457 | +%-+ #|zap |* |-3. |-3.46 |-3.46e+00 |-3.457 | %-+ #0|zap |* |-3. |-3.46 |-3.46e+00 |-3.457 | diff -urN gawk-3.1.5/test/icasers.awk gawk-3.1.6/test/icasers.awk --- gawk-3.1.5/test/icasers.awk 2005-05-11 18:28:18.000000000 +0300 +++ gawk-3.1.6/test/icasers.awk 2007-05-17 21:10:22.000000000 +0300 @@ -1,2 +1,2 @@ -BEGIN { RS = "[[:upper:]]+" } +BEGIN { RS = "[[:upper:]\\n]+" } { print ; IGNORECASE = ! IGNORECASE } diff -urN gawk-3.1.5/test/intformat.awk gawk-3.1.6/test/intformat.awk --- gawk-3.1.5/test/intformat.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/intformat.awk 2007-01-30 20:26:50.000000000 +0200 @@ -0,0 +1,74 @@ +function abs(x) { + return (x+0 >= 0) ? x : -x +} + +function check(x,what, f,res) { + for (f in formats) { + res = sprintf(f,x) + if (formats[f] == "non-decimal") { + if ((x >= 0) && (res !~ /e+/)) { + if (abs(strtonum(res)-x) > 1e-5*abs(x)) + printf "(sprintf(%s,%s) = %s)-%g = %g\n", + f,what,res,x,strtonum(res)-x + } + } + else if (abs(res-x) > 1e-5*abs(x)) + printf "(sprintf(%s,%s) = %s)-%g = %g\n", + f,what,res,x,res-x + } +} + +function check_cons(fmt,base,rot,mexp, i,j,dig,res,s) { + # first off, check that zero formats properly + if ((s = sprintf(fmt,0)) != "0") + printf "(sprintf(%s,0) = %s) != 0\n",fmt,s + + res = "1" + dig = 1 + j = 0 + for (i = 0; i <= mexp; i++) { + s = sprintf(fmt,base^i) + if (s ~ /e+/) + return + if (s != res) + printf "(sprintf(%s,%d^%d) = %s) != %s\n", + fmt,base,i,s,res + if (++j == rot) { + dig = 1 + res = ("10"substr(res,2)) + j = 0 + } + else { + dig *= 2 + res = (dig substr(res,2)) + } + } +} + +BEGIN { + formats["%s"] = "" + formats["%d"] = "" + formats["%.0f"] = "" + formats["0%o"] = "non-decimal" + formats["0x%x"] = "non-decimal" + + check(0,"0") + for (i = 0; i <= 308; i++) { + check(10^i,"10^"i) + check(-10^i,"-10^"i) + } + for (i = 0; i <= 1023; i++) { + check(2^i,"2^"i) + check(-2^i,"-2^"i) + } + + check_cons("%d",10,1,9) + check_cons("%x",2,4,31) + check_cons("%o",2,3,31) + + # make sure basic %d and %x are working properly + printf "%d %d %x\n",3.7,-3.7,23.7 + + # check another problem in gawk 3.1.5: precision over 30 crashes + printf "%.55d\n",1 +} diff -urN gawk-3.1.5/test/intformat.ok gawk-3.1.6/test/intformat.ok --- gawk-3.1.5/test/intformat.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/intformat.ok 2007-01-30 20:26:50.000000000 +0200 @@ -0,0 +1,2 @@ +3 -3 17 +0000000000000000000000000000000000000000000000000000001 diff -urN gawk-3.1.5/test/lintold.awk gawk-3.1.6/test/lintold.awk --- gawk-3.1.5/test/lintold.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/lintold.awk 2007-01-13 21:24:03.000000000 +0200 @@ -0,0 +1,21 @@ +# lintold.awk --- test --lint-old + +BEGIN { + a[1] = 1 + for (i in a) + print a[i] + delete a[1] + if (2 in a) + a[2] **= 2; + if ((2,3) in a) + a[2,3] ^= 2 ** 3 ^ 15; +} +BEGIN { + FS = "ab" + foo = "\b\f\r" +} +END { +} +END { + print "done" +} diff -urN gawk-3.1.5/test/lintold.in gawk-3.1.6/test/lintold.in --- gawk-3.1.5/test/lintold.in 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/lintold.in 2007-01-13 21:24:03.000000000 +0200 @@ -0,0 +1 @@ + diff -urN gawk-3.1.5/test/lintold.ok gawk-3.1.6/test/lintold.ok --- gawk-3.1.5/test/lintold.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/lintold.ok 2007-01-13 21:31:34.000000000 +0200 @@ -0,0 +1,16 @@ +gawk: lintold.awk:7: warning: `delete' is not supported in old awk +gawk: lintold.awk:8: warning: old awk does not support the keyword `in' except after `for' +gawk: lintold.awk:9: warning: old awk does not support operator `**=' +gawk: lintold.awk:10: warning: old awk does not support the keyword `in' except after `for' +gawk: lintold.awk:10: warning: old awk does not support multidimensional arrays +gawk: lintold.awk:11: warning: operator `^=' is not supported in old awk +gawk: lintold.awk:11: warning: old awk does not support operator `**' +gawk: lintold.awk:11: warning: operator `^' is not supported in old awk +gawk: lintold.awk:13: warning: old awk does not support multiple `BEGIN' or `END' rules +gawk: lintold.awk:15: warning: old awk does not support the `\b' escape sequence +gawk: lintold.awk:15: warning: old awk does not support the `\f' escape sequence +gawk: lintold.awk:15: warning: old awk does not support the `\r' escape sequence +gawk: lintold.awk:19: warning: old awk does not support multiple `BEGIN' or `END' rules +1 +gawk: lintold.awk:14: warning: old awk does not support regexps as value of `FS' +done diff -urN gawk-3.1.5/test/localenl.ok gawk-3.1.6/test/localenl.ok --- gawk-3.1.5/test/localenl.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/localenl.ok 2007-09-26 14:32:14.000000000 +0200 @@ -0,0 +1,5 @@ +LC_ALL=C passed +LC_ALL=UNKNOWN passed +LC_ALL=POSIX passed +LC_ALL=en_US.ISO-8859-1 passed +LC_ALL=en_US.UTF-8 passed diff -urN gawk-3.1.5/test/localenl.sh gawk-3.1.6/test/localenl.sh --- gawk-3.1.5/test/localenl.sh 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/localenl.sh 2007-09-26 14:31:58.000000000 +0200 @@ -0,0 +1,74 @@ +#! /bin/sh +# From arnold@f7.net Sun Apr 22 20:15:25 2007 +# Date: Thu, 19 Apr 2007 17:09:02 +0300 +# From: Pekka Pessi +# X-Face: #V(jdpv[lI!TNUU=2*oh:="#suS*ponXW"yr6G;~L}uZ\JfD\"IG#G{j`hZI;=DmT\H +# pfDMyJ`i=:M;BM3R.`[>P^ER8+]i +# Subject: UTF-8 locale and \n in regexps +# To: bug-gawk@gnu.org +# Cc: Pekka.Pessi@nokia.com +# Message-id: +# MIME-version: 1.0 +# Content-type: multipart/mixed; boundary="=-=-=" +# +# --=-=-= +# +# Hello, +# +# It looks like regexp with \n in [^] behaves badly if locale has +# an UTF-8 ctype. +# +# It looks like if there is \n and an range without \n, like /\n[^x\n]foo/, +# and first \n ends an even-numbered line within the string, regexp +# does not match. +# +# Please see the attached script for an demonstration. +# +# --Pekka Pessi +# +# +# --=-=-= +# Content-Disposition: inline; filename=gawk-test +# +#! /bin/sh + +AWK=${AWK:-../gawk} + +for LC_ALL in C UNKNOWN POSIX en_US.ISO-8859-1 en_US.UTF-8 +do +export LC_ALL +cat < +# Received: from localhost (skeeve [127.0.0.1]) +# by skeeve.com (8.12.11/8.12.11) with ESMTP id jBF6ubXX003003 +# for ; Thu, 15 Dec 2005 08:57:08 +0200 +# Received: from pop.012.net.il [84.95.5.221] +# by localhost with POP3 (fetchmail-6.2.5) +# for arnold@localhost (single-drop); Thu, 15 Dec 2005 08:57:08 +0200 (IST) +# Received: from mtain3.012.net.il ([10.220.5.7]) +# by i_mss3.012.net.il (HyperSendmail v2004.12) +# with ESMTP id <0IRI007F9SHYRDF0@i_mss3.012.net.il> for arobbins@012.net.il; +# Thu, 15 Dec 2005 05:32:22 +0200 (IST) +# Received: from i_mtain1.012.net.il ([10.220.20.4]) +# by i_mtain3.012.net.il (HyperSendmail v2004.12) +# with ESMTP id <0IRI00CUNSHXU5D0@i_mtain3.012.net.il> for arobbins@012.net.il +# (ORCPT arobbins@012.net.il); Thu, 15 Dec 2005 05:32:22 +0200 (IST) +# Received: from f7.net ([64.34.169.74]) +# by i_mtain1.012.net.il (HyperSendmail v2004.12) +# with ESMTP id <0IRI005JEPNHIG00@i_mtain1.012.net.il> for arobbins@012.net.il; +# Thu, 15 Dec 2005 04:30:54 +0200 (IST) +# Received: (from arnold@localhost) by f7.net (8.11.7-20030920/8.11.7) +# id jBF2TkQ18162 for arobbins@012.net.il; Wed, 14 Dec 2005 20:29:46 -0600 +# Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164]) +# by f7.net (8.11.7-20030920/8.11.7) with ESMTP id jBF2Tis18148 for +# ; Wed, 14 Dec 2005 20:29:44 -0600 +# Received: from monty-python.gnu.org ([199.232.76.173]) +# by fencepost.gnu.org with esmtp (Exim 4.34) +# id 1Emir1-0007i6-1e for bug-gawk@gnu.org; Wed, 14 Dec 2005 21:28:23 -0500 +# Received: from Debian-exim by monty-python.gnu.org with spam-scanned +# (Exim 4.34) id 1Emiv6-0006FV-9G for bug-gawk@gnu.org; Wed, +# 14 Dec 2005 21:32:37 -0500 +# Received: from [129.99.139.165] (helo=ece03.nas.nasa.gov) +# by monty-python.gnu.org with esmtp (TLS-1.0:DHE_RSA_3DES_EDE_CBC_SHA:24) +# (Exim 4.34) id 1Emiv5-0006F0-UO for bug-gawk@gnu.org; Wed, +# 14 Dec 2005 21:32:36 -0500 +# Received: from ece03.nas.nasa.gov (localhost.localdomain [127.0.0.1]) +# by ece03.nas.nasa.gov (8.12.11/8.12.11) with ESMTP id jBF2TcNa022308; Wed, +# 14 Dec 2005 18:29:38 -0800 +# Received: (from ellswort@localhost) +# by ece03.nas.nasa.gov (8.12.11/8.12.11/Submit) id jBF2TcQC022307; Wed, +# 14 Dec 2005 18:29:38 -0800 +# Date: Wed, 14 Dec 2005 18:29:38 -0800 +# From: David Ellsworth +# Subject: gawk number to string bug +# To: bug-gawk@gnu.org +# Cc: ellswort@nas.nasa.gov +# Message-id: <200512150229.jBF2TcQC022307@ece03.nas.nasa.gov> +# Original-recipient: rfc822;arobbins@012.net.il +# X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) on skeeve.com +# X-Spam-Level: +# X-Spam-Status: No, hits=-4.9 required=5.0 tests=BAYES_00 autolearn=ham +# version=2.63 +# +# +# I ran into a bug in how gawk converts numbers into strings. +# +# Running the program + BEGIN { print 9223372036854775808 } +# prints +# -9223372036854775808 +# on a 64-bit machine. On a 32-bit machine, the same program prints out +# 9.22337e+18 +# which is correct. +# +# Note that 9223372036854775808 == 2^63. Printing out other powers of 2 +# is OK. +# +# Version details: +# gawk version 3.1.5, freshly downloaded from gnu.org +# gcc (GCC) 3.4.4 (Gentoo 3.4.4-r1, ssp-3.4.4-1.0, pie-8.7.8) +# uname -a output: +# Linux pixie 2.6.12-gentoo-r10 #2 SMP Tue Nov 1 03:42:22 PST 2005 +# x86_64 Dual Core AMD Opteron(tm) Processor 275 AuthenticAMD GNU/Linux +# +# (the 32-bit example used gawk version 3.1.3) +# +# - David +# +# +# ##################################################################################### +# This Mail Was Scanned by 012.net AntiVirus Service4- Powered by TrendMicro Interscan +# diff -urN gawk-3.1.5/test/ovrflow1.ok gawk-3.1.6/test/ovrflow1.ok --- gawk-3.1.5/test/ovrflow1.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/ovrflow1.ok 2007-02-20 22:33:55.000000000 +0200 @@ -0,0 +1 @@ +9223372036854775808 diff -urN gawk-3.1.5/test/parse1.awk gawk-3.1.6/test/parse1.awk --- gawk-3.1.5/test/parse1.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/parse1.awk 2007-02-05 22:40:52.000000000 +0200 @@ -0,0 +1,35 @@ +# Date: Fri, 06 Jan 2006 14:02:17 -0800 +# From: Paul Eggert +# Subject: gawk misparses $expr++ if expr ends in ++ +# To: bug-gawk@gnu.org +# Message-id: <87irsxypzq.fsf@penguin.cs.ucla.edu> +# +# Here's an example of the problem: +# +# $ gawk 'BEGIN{a=3}{print $$a++++}' +# gawk: {print $$a++++} +# gawk: ^ syntax error +# +# But it's not a syntax error, as the expression conforms to the POSIX +# spec: it should be treated like '$($a++)++'. +# +# Mawk, Solaris awk (old awk), and Solaris nawk all accept the +# expression. For example: +# +# $ echo '3 4 5 6 7 8 9' | nawk 'BEGIN{a=3}{print $$a++++}' +# 7 +# +# This is with gawk 3.1.5 on Solaris 8 (sparc). +# +# +# ##################################################################################### +# This Mail Was Scanned by 012.net AntiVirus Service1- Powered by TrendMicro Interscan +# +BEGIN { a = 3 } + +{ + print "in:", $0 + print "a =", a + print $$a++++ + print "out:", $0 +} diff -urN gawk-3.1.5/test/parse1.in gawk-3.1.6/test/parse1.in --- gawk-3.1.5/test/parse1.in 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/parse1.in 2007-02-05 22:40:52.000000000 +0200 @@ -0,0 +1 @@ +3 4 5 6 7 8 9 diff -urN gawk-3.1.5/test/parse1.ok gawk-3.1.6/test/parse1.ok --- gawk-3.1.5/test/parse1.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/parse1.ok 2007-02-05 22:40:52.000000000 +0200 @@ -0,0 +1,4 @@ +in: 3 4 5 6 7 8 9 +a = 3 +7 +out: 3 4 6 6 8 8 9 diff -urN gawk-3.1.5/test/parsefld.awk gawk-3.1.6/test/parsefld.awk --- gawk-3.1.5/test/parsefld.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/parsefld.awk 2007-05-04 14:09:47.000000000 +0300 @@ -0,0 +1,2 @@ +{ print $/= b/ c /= d/ } +{ print /a/ + /b/ + !/c/} diff -urN gawk-3.1.5/test/parsefld.in gawk-3.1.6/test/parsefld.in --- gawk-3.1.5/test/parsefld.in 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/parsefld.in 2007-05-04 14:09:47.000000000 +0300 @@ -0,0 +1 @@ +a = b diff -urN gawk-3.1.5/test/parsefld.ok gawk-3.1.6/test/parsefld.ok --- gawk-3.1.5/test/parsefld.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/parsefld.ok 2007-05-04 14:09:47.000000000 +0300 @@ -0,0 +1,2 @@ +a0 +3 diff -urN gawk-3.1.5/test/pid.awk gawk-3.1.6/test/pid.awk --- gawk-3.1.5/test/pid.awk 2005-05-11 18:28:18.000000000 +0300 +++ gawk-3.1.6/test/pid.awk 2007-01-16 22:01:27.000000000 +0200 @@ -27,18 +27,20 @@ BEGIN { getline pid <"/dev/pid" getline ppid <"/dev/ppid" -} -NR == 1 { - if (pid != $0) { - printf "Bad pid %d, wanted %d\n", $0, pid - } -} -NR == 2 { - if (ppid != $0) { - printf "Bad ppid %d, wanted %d\n", $0, ppid - } -} -END { # ADR --- added + + if (pid != ok_pid) + printf "Bad pid %d, wanted %d\n", pid, ok_pid + else + print "PID ok" + + if (ppid != ok_ppid) + printf "Bad ppid %d, wanted %d\n", ppid, ok_ppid + else + print "PPID ok" + + # ADR --- added close("/dev/pid") close("/dev/ppid") + + print "All Done." } diff -urN gawk-3.1.5/test/pid.ok gawk-3.1.6/test/pid.ok --- gawk-3.1.5/test/pid.ok 2005-05-11 18:28:18.000000000 +0300 +++ gawk-3.1.6/test/pid.ok 2007-01-16 22:01:27.000000000 +0200 @@ -0,0 +1,3 @@ +PID ok +PPID ok +All Done. diff -urN gawk-3.1.5/test/pid.sh gawk-3.1.6/test/pid.sh --- gawk-3.1.5/test/pid.sh 2005-05-11 18:28:18.000000000 +0300 +++ gawk-3.1.6/test/pid.sh 2007-01-16 22:01:27.000000000 +0200 @@ -1,5 +1,3 @@ #! /bin/sh AWK=${AWK-../gawk} -echo $$ > _pid.in -echo $1 >> _pid.in -exec $AWK -f pid.awk _pid.in 2>/dev/null +exec $AWK -v "ok_pid=$$" -v "ok_ppid=$1" -f pid.awk 2>/dev/null diff -urN gawk-3.1.5/test/pipeio2.awk gawk-3.1.6/test/pipeio2.awk --- gawk-3.1.5/test/pipeio2.awk 2005-05-11 18:28:18.000000000 +0300 +++ gawk-3.1.6/test/pipeio2.awk 2007-01-13 22:15:05.000000000 +0200 @@ -25,7 +25,9 @@ #com = "cal 01 1997" com = ("cat " SRCDIR "/pipeio2.in") - while ((com | getline fnam) > 0) { + # Don't use empty lines, because Windows ECHO does + # something different when invoked without arguments + while ((com | getline fnam) > 0 && fnam != "") { # com_tr = "echo " fnam " | tr [0-9]. ..........." # com_tr = "echo " fnam " | sed 's/[0-9]/./g'" diff -urN gawk-3.1.5/test/pipeio2.ok gawk-3.1.6/test/pipeio2.ok --- gawk-3.1.5/test/pipeio2.ok 2005-05-11 18:28:18.000000000 +0300 +++ gawk-3.1.6/test/pipeio2.ok 2007-01-13 22:15:05.000000000 +0200 @@ -12,5 +12,3 @@ .. .. .. .. .. .. .. 'echo 26 27 28 29 30 31 | sed "s/[0-9]/./g"' .. .. .. .. .. .. -'echo | sed "s/[0-9]/./g"' - diff -urN gawk-3.1.5/test/reg/func2.good gawk-3.1.6/test/reg/func2.good --- gawk-3.1.5/test/reg/func2.good 2005-05-11 18:28:17.000000000 +0300 +++ gawk-3.1.6/test/reg/func2.good 2007-09-26 15:13:49.000000000 +0200 @@ -1,2 +1,2 @@ gawk: reg/func2.awk:2: fatal: function `dummy' called with space between name and `(', -or used in other expression context +or used as a variable or an array diff -urN gawk-3.1.5/test/reg/func2.out gawk-3.1.6/test/reg/func2.out --- gawk-3.1.5/test/reg/func2.out 2005-06-26 09:26:46.000000000 +0300 +++ gawk-3.1.6/test/reg/func2.out 1970-01-01 02:00:00.000000000 +0200 @@ -1,2 +0,0 @@ -gawk: reg/func2.awk:2: fatal: function `dummy' called with space between name and `(', -or used as a variable or an array diff -urN gawk-3.1.5/test/reint2.awk gawk-3.1.6/test/reint2.awk --- gawk-3.1.5/test/reint2.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/reint2.awk 2007-01-30 20:26:50.000000000 +0200 @@ -0,0 +1 @@ +/^([[:digit:]]+[[:space:]]+){2}/ diff -urN gawk-3.1.5/test/reint2.in gawk-3.1.6/test/reint2.in --- gawk-3.1.5/test/reint2.in 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/reint2.in 2007-01-30 20:26:50.000000000 +0200 @@ -0,0 +1 @@ +1 2 3 diff -urN gawk-3.1.5/test/reint2.ok gawk-3.1.6/test/reint2.ok --- gawk-3.1.5/test/reint2.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/reint2.ok 2007-01-30 20:26:50.000000000 +0200 @@ -0,0 +1 @@ +1 2 3 diff -urN gawk-3.1.5/test/strnum1.awk gawk-3.1.6/test/strnum1.awk --- gawk-3.1.5/test/strnum1.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/strnum1.awk 2007-01-19 14:36:42.000000000 +0200 @@ -0,0 +1,35 @@ +# Date: Tue, 04 Jul 2006 21:06:14 +0200 (MEST) +# From: Heiner Marxen +# Subject: conversion error +# To: bug-gawk@gnu.org +# Message-id: <200607041906.k64J6Eqa019360@drb9.drb.insel.de> +# +# Hello, +# +# The following awk script fails for gawk 3.1.4 and 3.1.5. +# Older versions did not do this, but I cannot say, how old they were. +# +BEGIN { + if( 0 ) { #ok + t = "8" + }else { #fails + t = "" + t = t "8" + } + printf("8 = %d\n", 0+t) # ok without this line + t = t "8" # does not invalidate numeric interpretation + printf("88 = %s\n", 0+t) + ## The above prints "88 = 8" with gawk 3.1.4 and 3.1.5 +} +# +# +# The following one-liner already exhibits the bug: +# +# gawk 'BEGIN{t=""; t=t "8";printf("8=%d\n", 0+t);t=t "8";printf("88=%s\n", 0+t)}' +# +# +# Preliminary observation: under somewhat strange conditions a variable +# does retain its numeric interpretation although something is appended to it. +# -- +# Heiner Marxen http://www.drb.insel.de/~heiner/ +# diff -urN gawk-3.1.5/test/strnum1.ok gawk-3.1.6/test/strnum1.ok --- gawk-3.1.5/test/strnum1.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/strnum1.ok 2007-01-19 14:37:06.000000000 +0200 @@ -0,0 +1,2 @@ +8 = 8 +88 = 88 diff -urN gawk-3.1.5/test/subi18n.awk gawk-3.1.6/test/subi18n.awk --- gawk-3.1.5/test/subi18n.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/subi18n.awk 2006-08-11 15:52:23.000000000 +0300 @@ -0,0 +1,68 @@ +# Date: Mon, 27 Feb 2006 12:35:30 +0900 +# From: KIMURA Koichi +# Subject: gawk: sub_common has multi-byte aware bug +# To: bug-gawk@gnu.org +# Message-id: <20060227121045.2198.KIMURA.KOICHI@canon.co.jp> +# +# Hi, +# +# A certain user faced bug of sub builtin function and report to me. +# Then I investigated the bug. +# +# reproduce script is here. + +BEGIN { + str = "type=\"directory\" version=\"1.0\"" + #print "BEGIN:", str + + while (str) { + sub(/^[^=]*/, "", str); + s = substr(str, 2) + print s + sub(/^="[^"]*"/, "", str) + sub(/^[ \t]*/, "", str) + } +} + +# and sample result is here (on GNU/Linux Fedora core 3) +# +# [kbk@skuld gawk-3.1.5]$ LC_ALL=C ./gawk -f subbug.awk +# "directory" version="1.0" +# "1.0" +# [kbk@skuld gawk-3.1.5]$ LC_ALL=en_US.UTF-8 ./gawk -f subbug.awk +# "directory" version="1.0" +# "dire +# [kbk@skuld gawk-3.1.5]$ +# +# In my investigation, this bug is cause by don't release wide-string when +# sub is executed. +# +# patch is here. +# +# --- builtin.c.orig 2005-07-27 03:07:43.000000000 +0900 +# +++ builtin.c 2006-02-26 02:07:52.000000000 +0900 +# @@ -2463,6 +2468,15 @@ sub_common(NODE *tree, long how_many, in +# t->stptr = buf; +# t->stlen = textlen; +# +# +#ifdef MBS_SUPPORT +# + if (t->flags & WSTRCUR) { +# + if (t->wstptr != NULL) +# + free(t->wstptr); +# + t->wstptr = NULL; +# + t->wstlen = 0; +# + t->flags &= ~WSTRCUR; +# + } +# +#endif +# free_temp(s); +# if (matches > 0 && lhs) { +# if (priv) { +# +# +# -- +# KIMURA Koichi +# +# +# ##################################################################################### +# This Mail Was Scanned by 012.net AntiVirus Service1- Powered by TrendMicro Interscan +# diff -urN gawk-3.1.5/test/subi18n.ok gawk-3.1.6/test/subi18n.ok --- gawk-3.1.5/test/subi18n.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/subi18n.ok 2006-08-11 15:52:23.000000000 +0300 @@ -0,0 +1,2 @@ +"directory" version="1.0" +"1.0" diff -urN gawk-3.1.5/test/synerr2.awk gawk-3.1.6/test/synerr2.awk --- gawk-3.1.5/test/synerr2.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/synerr2.awk 2007-01-23 20:30:21.000000000 +0200 @@ -0,0 +1,47 @@ +# From: =?ISO-8859-1?Q?J=FCrgen_Kahrs?= +# Newsgroups: gnu.utils.bug +# Subject: Re: gawk-3.1.5: syntax error, core dump +# Date: Fri, 23 Jun 2006 18:12:07 +0200 +# Lines: 12 +# Approved: bug-gnu-utils@gnu.org +# Message-ID: +# References: +# Reply-To: Juergen.KahrsDELETETHIS@vr-web.de +# NNTP-Posting-Host: lists.gnu.org +# Mime-Version: 1.0 +# Content-Type: text/plain; charset=ISO-8859-1 +# Content-Transfer-Encoding: 7bit +# X-Trace: news.Stanford.EDU 1151079136 27033 199.232.76.165 (23 Jun 2006 16:12:16 GMT) +# X-Complaints-To: news@news.stanford.edu +# To: gnu-utils-bug@moderators.isc.org +# Envelope-to: bug-gnu-utils@gnu.org +# X-Orig-X-Trace: individual.net +# vYX9N7nUUtqHxPyspweN0gZ4Blkl17z/xU01EwbykxB178O8M= +# User-Agent: Thunderbird 1.5 (X11/20060317) +# In-Reply-To: +# X-BeenThere: bug-gnu-utils@gnu.org +# X-Mailman-Version: 2.1.5 +# Precedence: list +# List-Id: Bug reports for the GNU utilities +# List-Unsubscribe: , +# +# List-Archive: +# List-Post: +# List-Help: +# List-Subscribe: , +# +# Path: news.012.net.il!seanews2.seabone.net!newsfeed.albacom.net!news.mailgate.org!newsfeed.stueberl.de!newsfeed.news2me.com!headwall.stanford.edu!newsfeed.stanford.edu!shelby.stanford.edu!individual.net!not-for-mail +# Xref: news.012.net.il gnu.utils.bug:813 +# +# Karel Zak wrote: +# +# > it seems that gawk has problem with "syntax error" reporting: +# > +# > ./gawk '/^include / { system(sprintf("cd /etc; cat %s", [$]2)); skip +# > = 1; } { if (!skip) print $0; skipQuit; }' < /etc/ld.so.conf +# +# This test case can be boiled down to +# +# gawk 'BEGIN {sprintf("%s", $)}' +# +BEGIN { sprintf("%s", $) } diff -urN gawk-3.1.5/test/synerr2.ok gawk-3.1.6/test/synerr2.ok --- gawk-3.1.5/test/synerr2.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/synerr2.ok 2007-01-23 20:30:21.000000000 +0200 @@ -0,0 +1,3 @@ +gawk: synerr2.awk:47: BEGIN { sprintf("%s", $) } +gawk: synerr2.awk:47: ^ syntax error +EXIT CODE: 1 diff -urN gawk-3.1.5/test/wideidx.awk gawk-3.1.6/test/wideidx.awk --- gawk-3.1.5/test/wideidx.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/wideidx.awk 2007-01-18 21:43:32.000000000 +0200 @@ -0,0 +1,7 @@ +{ + a=$0 + print index(a,"b") + getline + a = a $0 + print index(a,"b") +} diff -urN gawk-3.1.5/test/wideidx.in gawk-3.1.6/test/wideidx.in --- gawk-3.1.5/test/wideidx.in 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/wideidx.in 2007-01-18 21:43:32.000000000 +0200 @@ -0,0 +1,2 @@ +foo +bar diff -urN gawk-3.1.5/test/wideidx.ok gawk-3.1.6/test/wideidx.ok --- gawk-3.1.5/test/wideidx.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/wideidx.ok 2007-01-18 21:43:32.000000000 +0200 @@ -0,0 +1,2 @@ +0 +4 diff -urN gawk-3.1.5/test/wideidx2.awk gawk-3.1.6/test/wideidx2.awk --- gawk-3.1.5/test/wideidx2.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/wideidx2.awk 2007-01-23 20:30:21.000000000 +0200 @@ -0,0 +1,89 @@ +# Date: Thu, 27 Apr 2006 20:59:03 +0100 +# From: Lee Haywood +# Subject: gawk multi-byte support bugs, assertion bug and fix. +# To: bug-gawk@gnu.org +# Message-id: <60962be00604271259na0d8fdayb9d0c69a853216e8@mail.gmail.com> +# MIME-version: 1.0 +# Content-type: multipart/alternative; +# boundary="----=_Part_10136_920879.1146167943492" +# Status: RO +# +# ------=_Part_10136_920879.1146167943492 +# Content-Type: text/plain; charset=ISO-8859-1 +# Content-Transfer-Encoding: quoted-printable +# Content-Disposition: inline +# +# +# Firstly, I have been getting the following error from version 3.1.5. +# +# awk: node.c:515: unref: Assertion `(tmp->flags & 4096) !=3D 0' failed. +# +# In mk_number() in node.c the MBS_SUPPORT code is inside the GAWKDEBUG +# section - moving it outside explicitly clears the string values, which +# prevents the assertion error from occurring. The corrected version is +# shown at the end of this message. +# +# As an aside, I also noticed that n->wstptr is not cleared by +# set_field() and set_record() in field.c when the flags are set to +# exclude WSTRCUR. However, I do not have a test case to show if +# changing them makes any difference. +# +# A second problem also occurs when gawk 3.1.5 is compiled with +# multi-byte character support (MBS_SUPPORT). The following code should +# change the index of the substring "bc" from 2 to 3, but it gets +# reported as 2 in both cases - which is obviously disastrous. +# +# awk 'BEGIN { +# Value =3D "abc" +# +# print "Before <" Value "> ", +# index( Value, "bc" ) +# +# sub( /bc/, "bbc", Value ) +# +# print "After <" Value ">", +# index( Value, "bc" ) +# }' +# +# Compiling with MBS_SUPPORT undefined makes these problems go away. +# +# /* mk_number --- allocate a node with defined number */ +# +# NODE * +# mk_number(AWKNUM x, unsigned int flags) +# { +# register NODE *r; +# +# getnode(r); +# r->type =3D Node_val; +# r->numbr =3D x; +# r->flags =3D flags; +# #if defined MBS_SUPPORT +# r->wstptr =3D NULL; +# r->wstlen =3D 0; +# #endif /* MBS_SUPPORT */ +# #ifdef GAWKDEBUG +# r->stref =3D 1; +# r->stptr =3D NULL; +# r->stlen =3D 0; +# #if defined MBS_SUPPORT +# r->flags &=3D ~WSTRCUR; +# #endif /* MBS_SUPPORT */ +# #endif /* GAWKDEBUG */ +# return r; +# } +# +# Thanks. +# +# -- +# Lee Haywood. + +BEGIN { + Value = "abc" + + print "Before <" Value "> ", index( Value, "bc" ) + + sub( /bc/, "bbc", Value ) + + print "After <" Value ">", index( Value, "bc" ) +} diff -urN gawk-3.1.5/test/wideidx2.ok gawk-3.1.6/test/wideidx2.ok --- gawk-3.1.5/test/wideidx2.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/wideidx2.ok 2007-01-23 20:30:21.000000000 +0200 @@ -0,0 +1,2 @@ +Before 2 +After 3 diff -urN gawk-3.1.5/test/widesub.awk gawk-3.1.6/test/widesub.awk --- gawk-3.1.5/test/widesub.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/widesub.awk 2007-01-18 21:43:32.000000000 +0200 @@ -0,0 +1,12 @@ +BEGIN { + str = "type=\"directory\" version=\"1.0\"" + #print "BEGIN:", str + + while (str) { + sub(/^[^=]*/, "", str); + s = substr(str, 2) + print s + sub(/^="[^"]*"/, "", str) + sub(/^[ \t]*/, "", str) + } +} diff -urN gawk-3.1.5/test/widesub.ok gawk-3.1.6/test/widesub.ok --- gawk-3.1.5/test/widesub.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/widesub.ok 2007-01-18 21:43:32.000000000 +0200 @@ -0,0 +1,2 @@ +"directory" version="1.0" +"1.0" diff -urN gawk-3.1.5/test/widesub2.awk gawk-3.1.6/test/widesub2.awk --- gawk-3.1.5/test/widesub2.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/widesub2.awk 2007-01-18 21:43:32.000000000 +0200 @@ -0,0 +1,9 @@ +BEGIN { + Value = "abc" + + print "Before <" Value "> ", index( Value, "bc" ) + + sub( /bc/, "bbc", Value ) + + print "After <" Value ">", index( Value, "bc" ) +} diff -urN gawk-3.1.5/test/widesub2.ok gawk-3.1.6/test/widesub2.ok --- gawk-3.1.5/test/widesub2.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/widesub2.ok 2007-01-18 21:43:32.000000000 +0200 @@ -0,0 +1,2 @@ +Before 2 +After 3 diff -urN gawk-3.1.5/test/widesub3.awk gawk-3.1.6/test/widesub3.awk --- gawk-3.1.5/test/widesub3.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/widesub3.awk 2007-01-18 21:43:32.000000000 +0200 @@ -0,0 +1,6 @@ +{ + if (substr($1,1,1) == substr($0,1,1)) + print "substr matches" + sub(/foo/,"bar") + print nr++ +} diff -urN gawk-3.1.5/test/widesub3.in gawk-3.1.6/test/widesub3.in --- gawk-3.1.5/test/widesub3.in 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/widesub3.in 2007-01-18 21:43:32.000000000 +0200 @@ -0,0 +1,2 @@ +test +foo diff -urN gawk-3.1.5/test/widesub3.ok gawk-3.1.6/test/widesub3.ok --- gawk-3.1.5/test/widesub3.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/widesub3.ok 2007-01-18 21:43:32.000000000 +0200 @@ -0,0 +1,4 @@ +substr matches +0 +substr matches +1 diff -urN gawk-3.1.5/test/widesub4.awk gawk-3.1.6/test/widesub4.awk --- gawk-3.1.5/test/widesub4.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/widesub4.awk 2007-01-19 15:02:21.000000000 +0200 @@ -0,0 +1,54 @@ +# Date: Sun, 28 May 2006 11:20:58 +0200 +# From: Frantisek Hanzlik +# Subject: sub() function do'nt alter string length in awk 3.1.5 +# To: bug-gawk@gnu.org +# Message-id: <44796B7A.3050908@hanzlici.cz> +# +# Hello, +# I not know when it is my mistake or gawk bug - in simple example below +# I delete some chars from string variable, and after this string is +# modified, but its length is unchanged. +# +# awk 'BEGIN{A="1234567890abcdef"; +# for (i=1;i<6;i++){print length(A),"A=" A ".";sub("....","",A)} +# }' +# 16 A=1234567890abcdef. +# 16 A=567890abcdef. +# 16 A=90abcdef. +# 16 A=cdef. +# 16 A=. +# +# When I use gensub() instead of sub(), result is as I expected: +# +# awk 'BEGIN{A="1234567890abcdef"; +# for (i=1;i<6;i++){print length(A),"A=" A ".";A=gensub("....","",1,A)} +# }' +# 16 A=1234567890abcdef. +# 12 A=567890abcdef. +# 8 A=90abcdef. +# 4 A=cdef. +# 0 A=. +# +# OS/GAWK versions: +# - GNU/Linux kernel 2.6.16-1.2122_FC5 #1 i686, Fedora Core 5 distro +# - glibc-2.4-8 +# - GNU Awk 3.1.5 +# +# Yours sincerely +# Frantisek Hanzlík +# +# == Lucní 502 Linux/Unix, Novell, Internet Tel: +420-373729699 == +# == 33209 Stenovice e-mail:franta@hanzlici.cz Fax: +420-373729699 == +# == Czech Republic http://hanzlici.cz/ GSM: +420-604117319 == +# +# +# +# ##################################################################################### +# This Mail Was Scanned by 012.net AntiVirus Service3- Powered by TrendMicro Interscan +# +BEGIN{A="1234567890abcdef"; + for (i=1;i<6;i++){print length(A),"A=" A ".";sub("....","",A)} +} +BEGIN{A="1234567890abcdef"; + for (i=1;i<6;i++){print length(A),"A=" A ".";A=gensub("....","",1,A)} +} diff -urN gawk-3.1.5/test/widesub4.ok gawk-3.1.6/test/widesub4.ok --- gawk-3.1.5/test/widesub4.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/widesub4.ok 2007-01-19 15:08:27.000000000 +0200 @@ -0,0 +1,10 @@ +16 A=1234567890abcdef. +12 A=567890abcdef. +8 A=90abcdef. +4 A=cdef. +0 A=. +16 A=1234567890abcdef. +12 A=567890abcdef. +8 A=90abcdef. +4 A=cdef. +0 A=. diff -urN gawk-3.1.5/test/zero2.awk gawk-3.1.6/test/zero2.awk --- gawk-3.1.5/test/zero2.awk 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/zero2.awk 2007-02-06 21:51:44.000000000 +0200 @@ -0,0 +1,5 @@ +BEGIN { + printf "%d\n", -.4 + printf "%d\n", -0.0 + printf "%d\n", -.9 +} diff -urN gawk-3.1.5/test/zero2.ok gawk-3.1.6/test/zero2.ok --- gawk-3.1.5/test/zero2.ok 1970-01-01 02:00:00.000000000 +0200 +++ gawk-3.1.6/test/zero2.ok 2007-02-06 21:51:44.000000000 +0200 @@ -0,0 +1,3 @@ +0 +0 +0 diff -urN gawk-3.1.5/unsupported/atari/ChangeLog gawk-3.1.6/unsupported/atari/ChangeLog --- gawk-3.1.5/unsupported/atari/ChangeLog 2005-07-26 21:47:40.000000000 +0300 +++ gawk-3.1.6/unsupported/atari/ChangeLog 2007-10-22 08:49:56.000000000 +0200 @@ -1,3 +1,7 @@ +Mon Oct 22 08:49:05 2007 Arnold D. Robbins + + * Release 3.1.6: Release tar file made. + Tue Jul 26 21:46:16 2005 Arnold D. Robbins * Release 3.1.5: Release tar file made. diff -urN gawk-3.1.5/unsupported/atari/Makefile.awklib gawk-3.1.6/unsupported/atari/Makefile.awklib --- gawk-3.1.5/unsupported/atari/Makefile.awklib 2005-05-11 18:28:19.000000000 +0300 +++ gawk-3.1.6/unsupported/atari/Makefile.awklib 2007-08-11 22:40:06.000000000 +0300 @@ -5,14 +5,14 @@ # This Makefile actually will work for awklib even when NOT # compiling with Atari Makefile!!! # -# Copyright (C) 1995, 96 the Free Software Foundation, Inc. +# Copyright (C) 1995, 1996 the Free Software Foundation, Inc. # # This file is part of GAWK, the GNU implementation of the # AWK Programming Language. # # GAWK is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/unsupported/atari/Makefile.st gawk-3.1.6/unsupported/atari/Makefile.st --- gawk-3.1.5/unsupported/atari/Makefile.st 2005-05-11 18:28:19.000000000 +0300 +++ gawk-3.1.6/unsupported/atari/Makefile.st 2007-08-11 22:40:06.000000000 +0300 @@ -16,7 +16,7 @@ # # GAWK is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/unsupported/atari/config.h gawk-3.1.6/unsupported/atari/config.h --- gawk-3.1.5/unsupported/atari/config.h 2005-05-11 18:28:19.000000000 +0300 +++ gawk-3.1.6/unsupported/atari/config.h 2007-08-11 22:40:06.000000000 +0300 @@ -7,14 +7,14 @@ */ /* - * Copyright (C) 1995, 96 the Free Software Foundation, Inc. + * Copyright (C) 1995, 1996 the Free Software Foundation, Inc. * * This file is part of GAWK, the GNU implementation of the * AWK Programming Language. * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/unsupported/atari/gawkmisc.atr gawk-3.1.6/unsupported/atari/gawkmisc.atr --- gawk-3.1.5/unsupported/atari/gawkmisc.atr 2005-05-11 18:28:19.000000000 +0300 +++ gawk-3.1.6/unsupported/atari/gawkmisc.atr 2007-08-11 22:40:06.000000000 +0300 @@ -10,7 +10,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/unsupported/atari/redirect.h gawk-3.1.6/unsupported/atari/redirect.h --- gawk-3.1.5/unsupported/atari/redirect.h 2005-05-11 18:28:19.000000000 +0300 +++ gawk-3.1.6/unsupported/atari/redirect.h 2007-08-11 22:40:06.000000000 +0300 @@ -10,7 +10,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/unsupported/tandem/ChangeLog gawk-3.1.6/unsupported/tandem/ChangeLog --- gawk-3.1.5/unsupported/tandem/ChangeLog 2005-07-26 21:47:42.000000000 +0300 +++ gawk-3.1.6/unsupported/tandem/ChangeLog 2007-10-22 08:50:01.000000000 +0200 @@ -1,3 +1,7 @@ +Mon Oct 22 08:49:05 2007 Arnold D. Robbins + + * Release 3.1.6: Release tar file made. + Tue Jul 26 21:46:16 2005 Arnold D. Robbins * Release 3.1.5: Release tar file made. diff -urN gawk-3.1.5/unsupported/tandem/config.h gawk-3.1.6/unsupported/tandem/config.h --- gawk-3.1.5/unsupported/tandem/config.h 2005-05-11 18:28:19.000000000 +0300 +++ gawk-3.1.6/unsupported/tandem/config.h 2007-08-11 22:40:06.000000000 +0300 @@ -12,7 +12,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/unsupported/tandem/tmisc.c gawk-3.1.6/unsupported/tandem/tmisc.c --- gawk-3.1.5/unsupported/tandem/tmisc.c 2005-05-11 18:28:19.000000000 +0300 +++ gawk-3.1.6/unsupported/tandem/tmisc.c 2007-08-11 22:40:06.000000000 +0300 @@ -35,7 +35,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/version.c gawk-3.1.6/version.c --- gawk-3.1.5/version.c 2005-07-26 21:44:16.000000000 +0300 +++ gawk-3.1.6/version.c 2007-10-22 08:53:00.000000000 +0200 @@ -1,6 +1,6 @@ #include "config.h" -const char *version_string = "@(#)GNU Awk 3.1.5"; +const char *version_string = "@(#)GNU Awk 3.1.6"; /* 1.02 fixed /= += *= etc to return the new Left Hand Side instead of the Right Hand Side */ diff -urN gawk-3.1.5/vms/ChangeLog gawk-3.1.6/vms/ChangeLog --- gawk-3.1.5/vms/ChangeLog 2005-07-26 21:47:44.000000000 +0300 +++ gawk-3.1.6/vms/ChangeLog 2007-10-22 08:50:50.000000000 +0200 @@ -1,3 +1,50 @@ +Mon Oct 22 08:49:05 2007 Arnold D. Robbins + + * Release 3.1.6: Release tar file made. + +Wed May 16 19:54:00 2007 Pat Rankin + + * vms-conf.h: re-sync with configh.in. + +Sun Apr 29 18:09:17 2007 Pat Rankin + + * redirect.h: declare snprintf() if CRTL_VER_V732 is defined; + redefining __CRTL_VER in config.h causes to suppress it. + + * vmstest.com (fnarray): exit code has changed to 2. + (pid): target values now passed by command line rather than file. + +Fri Apr 20 16:48:30 2007 Pat Rankin + + * vms-conf.h: #define HAVE_SNPRINTF for V7.3-2 and later CRTL. + * redirect.h: #define snprintf to gawk_snprintf if we're using + missing_d/snprintf.c; avoids diagnostic about its declaration. + +Thu Apr 12 18:59:33 2007 Pat Rankin + + * vms-conf.h: Leave HAVE_MKSTEMP undefined; we want tmpfile(). + +Thu Mar 29 19:30:20 2007 Pat Rankin + + * vms-conf.h: reconcile with configh.in. + + * descrip.mms: compile floatcomp.c; add pgawk target and build + pgawk.exe for `make all'. + * vmsbuild.com: compile floatcomp.c; always build pgawk.exe in + addition to gawk.exe. + +Wed Jul 27 21:31:14 2005 Pat Rankin + + * vmstest.com: Format test group feedback differently (append "...") + to distinguish it from individual test feedback. + (manyfiles): Determine the number of files to use dynamically + instead of using hardcoded 300 in case user's open file quota + is generous enough to support more than that. + (longsub): Add error trap so that failure when gawk is built with + VAXCRTL doesn't cause testing to terminate. + (vms_io1): Invoke with normal Unix-style command line syntax. + (vms_cmd): New test; split off DCL-style command line from vms_io1. + Tue Jul 26 21:46:16 2005 Arnold D. Robbins * Release 3.1.5: Release tar file made. diff -urN gawk-3.1.5/vms/descrip.mms gawk-3.1.6/vms/descrip.mms --- gawk-3.1.5/vms/descrip.mms 2005-07-26 21:43:24.000000000 +0300 +++ gawk-3.1.6/vms/descrip.mms 2007-04-06 13:29:37.000000000 +0300 @@ -12,6 +12,10 @@ # gawk.exe : # This is the default target. DEC C has become the default compiler. # +# pgawk.exe : +# An alternate version which generates some profiling feedback for +# the awk programs it executes. Included with `make all'. +# # awkgram.c : # If you don't have bison but do have VMS POSIX or DEC/Shell, # change the PARSER and PASERINIT macros to use yacc. If you don't @@ -88,10 +92,12 @@ NOOP = continue # object files +GAWKOBJ = eval.obj,profile.obj +PGAWKOBJ = eval_p.obj,profile_p.obj AWKOBJ1 = array.obj,awkgram.obj,builtin.obj,dfa.obj,ext.obj,\ - field.obj,gawkmisc.obj,getopt.obj,getopt1.obj,io.obj,main.obj,\ - msg.obj,node.obj,random.obj,re.obj -AWKOBJ2 = regex.obj,replace.obj,version.obj,eval.obj,profile.obj + field.obj,floatcomp.obj,gawkmisc.obj,getopt.obj,getopt1.obj,io.obj +AWKOBJ2 = main.obj,msg.obj,node.obj,random.obj,re.obj,\ + regex.obj,replace.obj,version.obj AWKOBJS = $(AWKOBJ1),$(AWKOBJ2) # VMSOBJS @@ -101,11 +107,11 @@ VMSCMD = gawk_cmd.obj # built from .cld file VMSOBJS = $(VMSCODE),$(VMSCMD) -# source and documentation files -AWKSRC = array.c,builtin.c,ext.c,eval.c,dfa.c,field.c,gawkmisc.c,\ - getopt.c,getopt1.c,io.c,main.c,msg.c,node.c,random.c,re.c,\ - random.c,regcomp.c,regex.c,regex_internal.c,regexec.c,\ - replace.c,version.c,eval.c,profile.c +# primary source files +AWKSRC = array.c,builtin.c,dfa.c,eval.c,eval_p.c,ext.c,field.c,\ + floatcomp.c,gawkmisc.c,getopt.c,getopt1.c,io.c,main.c,\ + msg.c,node.c,profile.c,profile_p.c,random.c,re.c,regcomp.c,\ + regex.c,regex_internal.c,regexec.c,replace.c,version.c ALLSRC = $(AWKSRC),awkgram.y,awk.h,custom.h,dfa.h,getopt.h,\ gettext.h,mbsupport.h,protos.h,random.h @@ -125,20 +131,41 @@ PATCHLVL=5 # generic target -all : gawk +all : gawk,pgawk $(NOOP) # dummy target to allow building "gawk" in addition to explicit "gawk.exe" gawk : gawk.exe $(ECHO) " GAWK " +pgawk : pgawk.exe + $(ECHO) " PGAWK " # rules to build gawk -gawk.exe : $(AWKOBJS) $(VMSOBJS) gawk.opt +gawk.exe : $(GAWKOBJ) $(AWKOBJS) $(VMSOBJS) gawk.opt $(LINK) $(LINKFLAGS) gawk.opt/options +# rules to build pgawk +pgawk.exe : $(PGAWKOBJ) $(AWKOBJS) $(VMSOBJS) pgawk.opt + $(LINK) $(LINKFLAGS) pgawk.opt/options + gawk.opt : $(MAKEFILE) # create linker options file open/write opt gawk.opt ! ~ 'cat <gawk.opt' write opt "! GAWK -- GNU awk" + @ write opt "$(GAWKOBJ)" + @ write opt "$(AWKOBJ1)" + @ write opt "$(AWKOBJ2)" + @ write opt "$(VMSOBJS)" + @ write opt "psect_attr=environ,noshr !extern [noshare] char **" + @ write opt "stack=48 !preallocate more pages (default is 20)" + @ write opt "iosegment=128 !ditto (default is 32)" + write opt "$(LIBS)" + write opt "identification=""V$(REL).$(PATCHLVL)""" + close opt + +pgawk.opt : $(MAKEFILE) # create linker options file + open/write opt pgawk.opt + write opt "! PGAWK -- GNU awk w/ run-time profiling" + @ write opt "$(PGAWKOBJ)" @ write opt "$(AWKOBJ1)" @ write opt "$(AWKOBJ2)" @ write opt "$(VMSOBJS)" @@ -161,6 +188,8 @@ $(AWKOBJS) : awk.h gettext.h mbsupport.h regex.h dfa.h \ config.h $(VMSDIR)redirect.h +$(GAWKOBJ) : awk.h config.h $(VMSDIR)redirect.h +$(PGAWKOBJ) : awk.h config.h $(VMSDIR)redirect.h random.obj : random.h builtin.obj : random.h awkgram.obj : awkgram.c awk.h @@ -194,10 +223,12 @@ - if f$search("[.*]*.*;-1").nes."" then purge [.*] clean : - - delete *.obj;*,gawk.opt;* + - delete *.obj;*,gawk.opt;*,pgawk.opt;* spotless : clean tidy + - if f$search("config.h").nes."" then rename config.h config.h-old/New - if f$search("gawk.exe").nes."" then delete gawk.exe;* + - if f$search("pgawk.exe").nes."" then delete pgawk.exe;* - if f$search("gawk.dvi").nes."" then delete gawk.dvi;* - if f$search("[.doc]texindex.exe").nes."" then delete [.doc]texindex.exe;* diff -urN gawk-3.1.5/vms/gawkmisc.vms gawk-3.1.6/vms/gawkmisc.vms --- gawk-3.1.5/vms/gawkmisc.vms 2005-05-11 18:28:19.000000000 +0300 +++ gawk-3.1.6/vms/gawkmisc.vms 2007-08-11 22:40:06.000000000 +0300 @@ -10,7 +10,7 @@ * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, diff -urN gawk-3.1.5/vms/redirect.h gawk-3.1.6/vms/redirect.h --- gawk-3.1.5/vms/redirect.h 2005-05-11 18:28:19.000000000 +0300 +++ gawk-3.1.6/vms/redirect.h 2007-08-11 22:40:06.000000000 +0300 @@ -3,14 +3,15 @@ */ /* - * Copyright (C) 1986, 88, 89, 91-93, 1996, 1997 the Free Software Foundation, Inc. + * Copyright (C) 1986, 88, 89, 91-93, 1996, 1997, 2007 + * the Free Software Foundation, Inc. * * This file is part of GAWK, the GNU implementation of the * AWK Programming Language. * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, @@ -82,6 +83,15 @@ #define open vms_open #define popen vms_popen #define pclose vms_pclose +#ifndef HAVE_SNPRINTF +#define snprintf gawk_snprintf /* avoid %CC-I-INTRINSICDECL diagnostic */ +#else +#ifdef CRTL_VER_V732 +/* when overriding the version of the C library that compiler thinks is + in use, we need to duplicate something being suppressed in */ +int snprintf(char *,size_t,const char *,...); +#endif +#endif #define strerror vms_strerror #define strdup vms_strdup #define unlink vms_unlink diff -urN gawk-3.1.5/vms/vms-conf.h gawk-3.1.6/vms/vms-conf.h --- gawk-3.1.5/vms/vms-conf.h 2005-05-11 18:28:19.000000000 +0300 +++ gawk-3.1.6/vms/vms-conf.h 2007-08-11 22:40:06.000000000 +0300 @@ -3,18 +3,19 @@ /* * config.h -- configuration definitions for gawk. * - * For VMS (assumes V4.6 or later; tested on V5.5-2 and V7.1) + * For VMS (assumes V4.6 or later; tested on V7.3-1, V8.3. */ /* - * Copyright (C) 1991-1992, 1995-1996, 1999, 2001, 2002, 2003, 2005 the Free Software Foundation, Inc. + * Copyright (C) 1991-1992, 1995-1996, 1999, 2001, 2002, 2003, 2005 + * the Free Software Foundation, Inc. * * This file is part of GAWK, the GNU implementation of the * AWK Programming Language. * * GAWK is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * GAWK is distributed in the hope that it will be useful, @@ -30,17 +31,19 @@ /* switch statements are enabled in awk programs */ #undef ALLOW_SWITCH -/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c' support on those systems. - */ -#undef CRAY_STACKSEG_END - -#if 0 +#if 0 /* no longer used */ /* Define to 1 if using alloca.c. */ #define C_ALLOCA 1 #else #define NO_ALLOCA /* vms/vms_fwrite.c needs this */ -#endif +/* If using the C implementation of alloca, define if you know the + direction of stack growth for your system; otherwise it will be + automatically deduced at run-time. + STACK_DIRECTION > 0 => grows toward higher addresses + STACK_DIRECTION < 0 => grows toward lower addresses + STACK_DIRECTION = 0 => direction of growth unknown */ +#define STACK_DIRECTION (-1) +#endif /*0*/ /* dynamic loading is possible */ #undef DYNAMIC @@ -59,42 +62,27 @@ /* Define to 1 if you have the `alarm' function. */ #define HAVE_ALARM 1 -/* Define to 1 if you have `alloca', as a function or macro. */ -#undef HAVE_ALLOCA +/* Define to 1 if you have the header file. */ +#undef HAVE_ARPA_INET_H -/* Define to 1 if you have and it should be used (not on Ultrix). - */ -#undef HAVE_ALLOCA_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_ARGZ_H +/* Define to 1 if you have the `btowc' function. */ +#undef HAVE_BTOWC -/* Define to 1 if you have the `asprintf' function. */ -#undef HAVE_ASPRINTF +/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +#undef HAVE_CFLOCALECOPYCURRENT + +/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +#undef HAVE_CFPREFERENCESCOPYAPPVALUE /* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT -/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you - don't. */ -#define HAVE_DECL_FEOF_UNLOCKED 0 - -/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if - you don't. */ -#define HAVE_DECL_FGETS_UNLOCKED 0 - -/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you - don't. */ -#define HAVE_DECL_GETC_UNLOCKED 0 - -/* Define to 1 if you have the declaration of `_snprintf', and to 0 if you - don't. */ -#define HAVE_DECL__SNPRINTF 0 - -/* Define to 1 if you have the declaration of `_snwprintf', and to 0 if you - don't. */ -#define HAVE_DECL__SNWPRINTF 0 +/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. + */ +#undef HAVE_DECL_TZNAME /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ #undef HAVE_DOPRNT @@ -105,20 +93,8 @@ /* Define to 1 if you have the `fmod' function. */ #define HAVE_FMOD 1 -/* Define to 1 if you have the `fwprintf' function. */ -#undef HAVE_FWPRINTF - -/* Define to 1 if you have the `getcwd' function. */ -#define HAVE_GETCWD 1 - -/* Define to 1 if you have the `getegid' function. */ -#undef HAVE_GETEGID - -/* Define to 1 if you have the `geteuid' function. */ -#define HAVE_GETEUID 1 - -/* Define to 1 if you have the `getgid' function. */ -#define HAVE_GETGID 1 +/* have getaddrinfo */ +#undef HAVE_GETADDRINFO /* Define to 1 if you have the `getgrent' function. */ #undef HAVE_GETGRENT @@ -126,15 +102,9 @@ /* Define to 1 if you have the `getgroups' function. */ #undef HAVE_GETGROUPS -/* Define if you have the getpagesize function. */ -#undef HAVE_GETPAGESIZE - /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT -/* Define to 1 if you have the `getuid' function. */ -#define HAVE_GETUID 1 - /* Define to 1 if you have the `grantpt' function. */ #undef HAVE_GRANTPT @@ -144,13 +114,16 @@ /* Define if you have the 'intmax_t' type in or . */ #undef HAVE_INTMAX_T -/* Define if exists and doesn't clash with . */ +/* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if exists, doesn't clash with , and declares uintmax_t. */ #undef HAVE_INTTYPES_H_WITH_UINTMAX +/* Define to 1 if you have the `isascii' function. */ +#define HAVE_ISASCII 1 + /* Define to 1 if you have the `iswctype' function. */ #undef HAVE_ISWCTYPE @@ -166,9 +139,6 @@ /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES -/* Define to 1 if you have the `dl' library (-ldl). */ -#undef HAVE_LIBDL - /* Define to 1 if you have the header file. */ #undef HAVE_LIBINTL_H @@ -181,14 +151,11 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H -/* Define if you have the 'long double' type. */ -#undef HAVE_LONG_DOUBLE - /* Define if you have the 'long long' type. */ #undef HAVE_LONG_LONG -/* Define to 1 if you have the header file. */ -#undef HAVE_MALLOC_H +/* Define to 1 if the system has the type `long long int'. */ +#undef HAVE_LONG_LONG_INT /* Define to 1 if you have the `mbrlen' function. */ #undef HAVE_MBRLEN @@ -205,26 +172,26 @@ /* Define to 1 if you have the `memcpy' function. */ #define HAVE_MEMCPY 1 +/* Define to 1 if you have the `memcpy_ulong' function. */ +#undef HAVE_MEMCPY_ULONG + /* Define to 1 if you have the `memmove' function. */ #define HAVE_MEMMOVE 1 /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H -/* Define to 1 if you have the `mempcpy' function. */ -#undef HAVE_MEMPCPY - /* Define to 1 if you have the `memset' function. */ #define HAVE_MEMSET 1 -/* we have the mktime function */ -#define HAVE_MKTIME 1 +/* Define to 1 if you have the `memset_ulong' function. */ +#undef HAVE_MEMSET_ULONG -/* Define to 1 if you have a working `mmap' system call. */ -#undef HAVE_MMAP +/* Define to 1 if you have the `mkstemp' function. */ +#undef HAVE_MKSTEMP -/* Define to 1 if you have the `munmap' function. */ -#undef HAVE_MUNMAP +/* we have the mktime function */ +#define HAVE_MKTIME 1 /* Define to 1 if you have the header file. */ #undef HAVE_NETDB_H @@ -232,21 +199,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_NETINET_IN_H -/* Define to 1 if you have the header file. */ -#undef HAVE_NL_TYPES_H - /* we have portals on /p on this system */ #undef HAVE_PORTALS -/* Define if your printf() function supports format strings with positions. */ -#undef HAVE_POSIX_PRINTF - -/* Define to 1 if you have the `putenv' function. */ -#undef HAVE_PUTENV - -/* Define to 1 if you have the `setenv' function. */ -#undef HAVE_SETENV - /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE @@ -256,6 +211,9 @@ /* Define to 1 if you have the `snprintf' function. */ #undef HAVE_SNPRINTF +/* newer systems define this type here */ +#undef HAVE_SOCKADDR_STORAGE + /* we have sockets on this system */ #undef HAVE_SOCKETS @@ -275,18 +233,9 @@ /* Define to 1 if you have the header file. */ #define HAVE_STDLIB_H 1 -/* Define to 1 if you have the `stpcpy' function. */ -#undef HAVE_STPCPY - -/* Define to 1 if you have the `strcasecmp' function. */ -#undef HAVE_STRCASECMP - /* Define to 1 if you have the `strchr' function. */ #define HAVE_STRCHR 1 -/* Define to 1 if you have the `strdup' function. */ -#undef HAVE_STRDUP - /* Define to 1 if you have the `strerror' function. */ #define HAVE_STRERROR 1 @@ -346,12 +295,19 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H -/* Define if you have that is POSIX.1 compatible. */ +/* Define to 1 if you have that is POSIX.1 compatible. */ #undef HAVE_SYS_WAIT_H /* Define to 1 if you have the header file. */ #undef HAVE_TERMIOS_H +/* Define to 1 if you have the `tmpfile' function. */ +#define HAVE_TMPFILE 1 +/* Force snprintf.c to use tmpfile() instead of mkstemp(). */ +#ifdef HAVE_MKSTEMP +#undef HAVE_MKSTEMP +#endif + /* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use `HAVE_STRUCT_TM_TM_ZONE' instead. */ #undef HAVE_TM_ZONE @@ -362,9 +318,6 @@ /* Define to 1 if you have the `towupper' function. */ #undef HAVE_TOWUPPER -/* Define to 1 if you have the `tsearch' function. */ -#undef HAVE_TSEARCH - /* Define to 1 if you don't have `tm_zone' but do have the external array `tzname'. */ #define HAVE_TZNAME 1 /* (faked in vms/vms_misc.c) */ @@ -382,27 +335,24 @@ #undef HAVE_UNISTD_H #endif -/* Define if you have the unsigned long long type. */ +/* Define if you have the 'unsigned long long' type. */ #undef HAVE_UNSIGNED_LONG_LONG +/* Define to 1 if the system has the type `unsigned long long int'. */ +#undef HAVE_UNSIGNED_LONG_LONG_INT + /* Define to 1 if you have the `vprintf' function. */ #define HAVE_VPRINTF 1 /* Define to 1 if you have the header file. */ #undef HAVE_WCHAR_H -/* Define if you have the 'wchar_t' type. */ -#undef HAVE_WCHAR_T - /* Define to 1 if you have the `wcrtomb' function. */ #undef HAVE_WCRTOMB /* Define to 1 if you have the `wcscoll' function. */ #undef HAVE_WCSCOLL -/* Define to 1 if you have the `wcslen' function. */ -#undef HAVE_WCSLEN - /* Define to 1 if you have the `wctype' function. */ #undef HAVE_WCTYPE @@ -415,23 +365,8 @@ /* systems should define this type here */ #undef HAVE_WINT_T -/* Define to 1 if you have the `__argz_count' function. */ -#undef HAVE___ARGZ_COUNT - -/* Define to 1 if you have the `__argz_next' function. */ -#undef HAVE___ARGZ_NEXT - -/* Define to 1 if you have the `__argz_stringify' function. */ -#undef HAVE___ARGZ_STRINGIFY - -/* Define to 1 if you have the `__fsetlocking' function. */ -#undef HAVE___FSETLOCKING - -/* Define as const if the declaration of iconv() needs const. */ -#undef ICONV_CONST - -/* Define if integer division by zero raises signal SIGFPE. */ -#define INTDIV0_RAISES_SIGFPE 1 +/* disable fatal errors on directories */ +#undef NO_DIRECTORY_FATAL /* disable lint checks */ #undef NO_LINT @@ -446,21 +381,18 @@ #define PACKAGE_NAME "GNU Awk" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "GNU Awk 3.1.4c" +#define PACKAGE_STRING "GNU Awk 3.1.6" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "gawk" /* Define to the version of this package. */ -#define PACKAGE_VERSION "3.1.4c" +#define PACKAGE_VERSION "3.1.6" /* Define to 1 if *printf supports %F format */ #undef PRINTF_HAS_F_FORMAT -/* Define if exists and defines unusable PRI* macros. */ -#undef PRI_MACROS_BROKEN - -/* Define if compiler has function prototypes */ +/* Define to 1 if the C compiler supports function prototypes. */ #define PROTOTYPES 1 /* Define as the return type of signal handlers (`int' or `void'). */ @@ -472,27 +404,12 @@ /* The size of a `unsigned long', as computed by sizeof. */ #define SIZEOF_UNSIGNED_LONG 4 -/* Define as the maximum value of type 'size_t', if the system doesn't define - it. */ -#define SIZE_MAX 0xffffffffUL - /* return type of sprintf */ #define SPRINTF_RET int -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at run-time. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -#define STACK_DIRECTION (-1) - /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 -/* strtod doesn't have C89 semantics */ -#define STRTOD_NOT_C89 1 - /* some systems define this type here */ #undef TIME_T_IN_SYS_TYPES_H @@ -506,7 +423,7 @@ #define USE_INCLUDED_STRFTIME 1 /* Version number of package */ -#define VERSION "3.1.4" +#define VERSION "3.1.6" /* Define to 1 if on AIX 3. System headers sometimes define this. @@ -518,6 +435,11 @@ /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif + /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES @@ -536,6 +458,17 @@ # undef __CHAR_UNSIGNED__ #endif +/* Enable extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif + /* Define like PROTOTYPES; this can be used by system headers. */ #define __PROTOTYPES 1 @@ -554,22 +487,22 @@ /* Define to widest signed type if doesn't define. */ #define intmax_t long int -/* Define to `long' if doesn't define. */ -#undef off_t - /* Define to `int' if doesn't define. */ #undef pid_t -/* Define as the type of the result of subtracting two pointers, if the system - doesn't define it. */ -#undef ptrdiff_t - -/* Define to empty if the C compiler doesn't support this keyword. */ -#undef signed +/* Define to equivalent of C99 restrict keyword, or to nothing if this is not + supported. Do not define if restrict is supported directly. */ +#define restrict +#if defined(__DECC) && (__DECC_VER >= 60400000) +#undef restrict +#endif /* Define to `unsigned' if doesn't define. */ #undef size_t +/* type to use in place of socklen_t if not defined */ +#undef socklen_t + /* Define to `int' if does not define. */ #define ssize_t int @@ -581,7 +514,7 @@ #define uintmax_t unsigned long #if 0 -#include /* overrides for stuff autoconf can't deal with */ +#include "custom.h" /* overrides for stuff autoconf can't deal with */ #else /* Whether `time_t' is an unsigned type. */ @@ -662,6 +595,10 @@ # define __VMS_VER 60100000 #endif #if __CRTL_VER >= 60200000 +# if __CRTL_VER >= 70320000 +# define CRTL_VER_V732 +# define HAVE_SNPRINTF 1 +# endif # if __CRTL_VER >= 70301000 # define CRTL_VER_V731 # endif @@ -692,6 +629,7 @@ #ifdef __GNUC__ /* #define const */ /* #undef STDC_HEADERS */ +/* #undef HAVE_STDDEF_H */ #ifndef STDC_HEADERS #define alloca __builtin_alloca #define environ $$PsectAttributes_NOSHR$$environ /* awful GAS kludge */ @@ -703,6 +641,6 @@ #include "vms/redirect.h" #undef IN_CONFIG_H -#endif /**/ +#endif /*"custom.h"*/ #endif /*CONFIG_H*/ diff -urN gawk-3.1.5/vms/vmsbuild.com gawk-3.1.6/vms/vmsbuild.com --- gawk-3.1.5/vms/vmsbuild.com 2005-07-26 21:43:14.000000000 +0300 +++ gawk-3.1.6/vms/vmsbuild.com 2007-06-04 01:10:57.000000000 +0300 @@ -7,9 +7,10 @@ $! gawk 3.0.1 revised, Nov'96 $! gawk 3.1.0 revised, Mar'01 $! gawk 3.1.1 revised, Apr'02 +$! gawk 3.1.6 revised, Mar'07 $! $ REL = "3.1" !release version number -$ PATCHLVL = "5" +$ PATCHLVL = "6" $! $! $ CCFLAGS = "/noList" ! "/noOpt/Debug" @@ -65,6 +66,7 @@ $ cc dfa.c $ cc ext.c $ cc field.c +$ cc floatcomp.c $ cc gawkmisc.c $ cc getopt.c $ cc getopt1.c @@ -78,7 +80,9 @@ $ cc replace.c $ cc version.c $ cc eval.c +$ cc eval_p.c $ cc profile.c +$ cc profile_p.c $ cc [.vms]vms_misc.c $ cc [.vms]vms_popen.c $ cc [.vms]vms_fwrite.c @@ -91,9 +95,9 @@ $ close/noLog Fopt $ create gawk.opt ! GAWK -- GNU awk -array.obj,awkgram.obj,builtin.obj,dfa.obj,ext.obj,field.obj,gawkmisc.obj -getopt.obj,getopt1.obj,io.obj,main.obj,msg.obj,node.obj,random.obj -re.obj,regex.obj,replace.obj,version.obj,eval.obj,profile.obj +array.obj,awkgram.obj,builtin.obj,dfa.obj,ext.obj,field.obj,floatcomp.obj +gawkmisc.obj,getopt.obj,getopt1.obj,io.obj,main.obj,msg.obj,node.obj +random.obj,re.obj,regex.obj,replace.obj,version.obj,eval.obj,profile.obj []vms_misc.obj,vms_popen.obj,vms_fwrite.obj,vms_args.obj []vms_gawk.obj,vms_cli.obj,gawk_cmd.obj psect_attr=environ,noshr !extern [noshare] char ** @@ -104,7 +108,23 @@ $ write Fopt "identification=""V''REL'.''PATCHLVL'""" $ close Fopt $! +$ create pgawk.opt +! PGAWK -- GNU awk w/ run-time profiling +array.obj,awkgram.obj,builtin.obj,dfa.obj,ext.obj,field.obj,floatcomp.obj +gawkmisc.obj,getopt.obj,getopt1.obj,io.obj,main.obj,msg.obj,node.obj +random.obj,re.obj,regex.obj,replace.obj,version.obj,eval_p.obj,profile_p.obj +[]vms_misc.obj,vms_popen.obj,vms_fwrite.obj,vms_args.obj +[]vms_gawk.obj,vms_cli.obj,gawk_cmd.obj +psect_attr=environ,noshr !extern [noshare] char ** +stack=48 !preallocate more pages (default is 20) +iosegment=128 !ditto (default is 32) +$ open/append Fopt pgawk.opt +$ write Fopt libs +$ write Fopt "identification=""V''REL'.''PATCHLVL'""" +$ close Fopt +$! $ v = f$verify(1) $ link/exe=gawk.exe gawk.opt/options +$ link/exe=pgawk.exe pgawk.opt/options $! 'f$verify(v)' $ exit diff -urN gawk-3.1.5/vms/vmstest.com gawk-3.1.6/vms/vmstest.com --- gawk-3.1.5/vms/vmstest.com 2005-05-25 20:33:40.000000000 +0300 +++ gawk-3.1.6/vms/vmstest.com 2007-04-30 05:39:23.000000000 +0300 @@ -24,7 +24,7 @@ $ $all: $bigtest: bigtest_list = "basic unix_tests gawk_ext vms_tests" -$ echo "bigtest" +$ echo "bigtest..." $bigtest_loop: bigtest_test = f$element(0," ",bigtest_list) $ bigtest_list = bigtest_list - bigtest_test - " " $ if bigtest_test.nes." " then gosub 'bigtest_test' @@ -62,7 +62,7 @@ + " rstest4 rstest5 scalar sortempty splitarr strcat1" - + " subsepnm synerr1 uninit2 uninit3 uninit4" - + " uninitialized unterm wjposer1 zeroe0" -$ echo "basic" +$ echo "basic..." $basic_loop1: basic_test = f$element(0," ",basic_lst1) $ basic_lst1 = basic_lst1 - basic_test - " " $ if basic_test.nes." " then gosub 'basic_test' @@ -83,7 +83,7 @@ $ $unix_tests: unix_tst_list = "fflush getlnhd pid pipeio1" - + " pipeio2 poundbang strftlng" -$ echo "unix_tests" +$ echo "unix_tests..." $unix_tst_loop: unix_tst_test = f$element(0," ",unix_tst_list) $ unix_tst_list = unix_tst_list - unix_tst_test - " " $ if unix_tst_test.nes." " then gosub 'unix_tst_test' @@ -94,15 +94,15 @@ + " fsfwfs gensub gnuops2 gnureops igncdym igncfs" - + " ignrcase lint manyfiles nondec posix procinfs" - + " regx8bit reint shadow sort1 strftime" -$ echo "gawk_ext (gawk.extensions)" +$ echo "gawk_ext... (gawk.extensions)" $gawk_ext_loop: gawk_ext_test = f$element(0," ",gawk_ext_list) $ gawk_ext_list = gawk_ext_list - gawk_ext_test - " " $ if gawk_ext_test.nes." " then gosub 'gawk_ext_test' $ if gawk_ext_list.nes."" then goto gawk_ext_loop $ return $ -$vms_tests: vms_tst_list = "vms_io1" -$ echo "vms_tests" +$vms_tests: vms_tst_list = "vms_io1 vms_cmd" +$ echo "vms_tests..." $vms_tst_loop: vms_tst_test = f$element(0," ",vms_tst_list) $ vms_tst_list = vms_tst_list - vms_tst_test - " " $ if vms_tst_test.nes." " then gosub 'vms_tst_test' @@ -110,7 +110,7 @@ $ return $ $extra: extra_list = "regtest inftest inet" -$ echo "extra" +$ echo "extra..." $extra_loop: extra_test = f$element(0," ",extra_list) $ extra_list = extra_list - extra_test - " " $ if extra_test.nes." " then gosub 'extra_test' @@ -118,7 +118,7 @@ $ return $ $inet: inet_list = "inetechu inetecht inetdayu inetdayt" -$ echo "inet" +$ echo "inet..." $ type sys$input: The inet tests only work if gawk has been built with tcp/ip socket support and your system supports the services "discard" at port 9 @@ -224,17 +224,29 @@ $ return $ $manyfiles: echo "manyfiles" +$!! this used to use a hard-coded value of 300 simultaneously open +$!! files, but if our open file quota is generous enough then that +$!! wouldn't exercise the ability to handle more than the maximum +$!! number allowed at once +$ f_cnt = 300 +$ chnlc = f$getsyi("CHANNELCNT") +$ fillm = f$getjpi("","FILLM") +$ if fillm.ge.chnlc then fillm = chnlc - 1 +$ if fillm.ge.f_cnt then f_cnt = fillm + 10 $ if f$search("[.junk]*.*").nes."" then rm [.junk]*.*;* $ if f$parse("[.junk]").eqs."" then create/Dir/Prot=(O:rwed) [.junk] -$ gawk "BEGIN { for (i = 1; i <= 300; i++) print i, i}" >tmp. -$ echo "This may take quite a while..." -$ echo "" +$ gawk -v "F_CNT=''f_cnt'" "BEGIN {for (i = 1; i <= F_CNT; i++) print i, i}" >tmp. +$ echo "(processing ''f_cnt' files; this may take quite a while)" $ gawk -f manyfiles.awk tmp. tmp. $ define/User sys$error _NL: $ define/User sys$output tmp.too $ search/Match=Nor/Output=_NL:/Log [.junk]*.* "" $!/Log output: "%SEARCH-S-NOMATCH, - <#> records" plus 1 line summary -$ gawk "$4!=2{++count}; END{if(NR!=301||count!=1){print ""Failed!""}}" tmp.too +$ gawk -v "F_CNT=''f_cnt'" -f - tmp.too +$deck !some input begins with "$" +$4 != 2 {++count} +END {if (NR != F_CNT+1 || count != 1) {print "\nFailed!"}} +$eod $ rm tmp.;,tmp.too;,[.junk]*.*;*,[]junk.dir; $ return $ @@ -603,7 +615,7 @@ $ set noOn $ AWKPATH_srcdir $ gawk -f fnarray.awk >tmp. 2>&1 -$ if .not.$status then call exit_code 1 +$ if .not.$status then call exit_code 2 $ set On $ cmp fnarray.ok tmp. $ if $status then rm tmp.; @@ -672,14 +684,9 @@ $ return $ $pid: echo "pid" -$ if f$search("pid.ok").eqs."" then create pid.ok -$ if f$trnlnm("FTMP").nes."" then close/noLog ftmp -$ open/Write ftmp _pid.in -$ write ftmp f$integer("%x" + f$getjpi("","PID")) -$ write ftmp f$integer("%x" + f$getjpi("","OWNER")) -$ close ftmp -$ gawk -f pid.awk _pid.in >tmp. >& _NL: -$ rm _pid.in; +$ pid = f$integer("%x" + f$getjpi("","PID")) +$ ppid = f$integer("%x" + f$getjpi("","OWNER")) +$ gawk -v "ok_pid=''pid'" -v "ok_ppid=''ppid'" -f pid.awk >tmp. >& _NL: $ cmp pid.ok tmp. $ if $status then rm tmp.; $ return @@ -1217,6 +1224,7 @@ $ return $ $longsub: echo "longsub" +$ set noOn $ gawk -f longsub.awk longsub.in >tmp. $!! the records here are too long for DIFF to handle $!! so assume success as long as gawk doesn't crash @@ -1224,6 +1232,7 @@ $!! call fixup_LRL tmp. "purge" $!! cmp longsub.ok tmp. $ if $status then rm tmp.; +$ set On $ return $ $arrayprm2: echo "arrayprm2" @@ -1656,13 +1665,23 @@ Hello $ endif $ ! define/User dbg$input sys$command: -$ gawk /Input=sys$input _NL: /Output=tmp. +$ gawk -f - >tmp. # prior to 3.0.4, gawk crashed doing any redirection after closing stdin BEGIN { print "Hello" >"/dev/stdout" } $ cmp vms_io1.ok tmp. $ if $status then rm tmp.; $ return $ +$vms_cmd: echo "vms_cmd" +$ if f$search("vms_cmd.ok").eqs."" +$ then create vms_cmd.ok +World! +$ endif +$ gawk /Commands="BEGIN { print ""World!"" }" _NL: /Output=tmp. +$ cmp vms_cmd.ok tmp. +$ if $status then rm tmp.; +$ return +$ $clean: $ if f$search("tmp.") .nes."" then rm tmp.;* $ if f$search("tmp.too") .nes."" then rm tmp.too;* diff -urN gawk-3.1.5/ylwrap gawk-3.1.6/ylwrap --- gawk-3.1.5/ylwrap 2005-05-11 18:28:19.000000000 +0300 +++ gawk-3.1.6/ylwrap 2007-01-12 12:22:51.000000000 +0200 @@ -1,7 +1,7 @@ #! /bin/sh # ylwrap - wrapper for lex/yacc invocations. -scriptversion=2005-02-02.22 +scriptversion=2005-05-14.22 # Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. @@ -20,7 +20,8 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a EOF # Final cleanup echo Sleeping and touching files to update timestamps. # touch list of zero length files sleep 2 touch aclocal.m4 configh.in test/Makefile.in touch awklib/Makefile.in doc/Makefile.in Makefile.in sleep 2 chmod +x configure chmod +x test/localenl.sh touch configure version.c echo Remove any .orig or "'~'" files that may remain. echo Use '"configure && make"' to rebuild any dependent files. echo Use "'make distclean'" to clean up.