From: Anas Nashif Date: Mon, 5 Nov 2012 05:23:24 +0000 (-0800) Subject: Imported Upstream version 1.21 X-Git-Tag: upstream/1.21^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Fsandbox%2Fpcoval%2Fupstream;p=platform%2Fupstream%2Fgroff.git Imported Upstream version 1.21 --- f522c1ee6d7bd011af2bd90296ccfd9901ad12ab diff --git a/BUG-REPORT b/BUG-REPORT new file mode 100644 index 0000000..293101e --- /dev/null +++ b/BUG-REPORT @@ -0,0 +1,55 @@ + Groff Bug Report + +Please read the PROBLEMS file before sending in a bug report. + +Please fill in all fields, even if you think they are not relevant. + +Please delete the text in brackets before sending it in. + +Please report separate bugs separately. + +Send the completed form to bug-groff@gnu.org + +GROFF VERSION: +[The version of groff you are using. For example, `1.05'] + +MACHINE: +[The machine you are using. For example, `Sun SPARCstation 2'] + +OS: +[The operating system you are using. For example, `SunOS 4.1.1'] + +COMPILER: +[The compiler you are used to compile groff. For example, `g++ 1.40.3'] + +INPUT FILES: +[Include all the files necessary to reproduce the problem that are not +part of the standard groff distribution. This includes font +description files, DESC files and macro files (with the exception of +the -ms and -mm macros: we have them). Send them as a shell archive or +as a uuencoded, compressed tar file. + +It's easier for us if you can provide an example that doesn't depend on +any macro package, but obviously if you're reporting a problem with a +macro package that won't be possible. Also a short example is more +convenient than a long one, but don't worry if you can't find a short +example. Don't say something like ``any file that X'': Always send a +definite example.] + +COMMAND LINE: +[The command line that we should run in order to observe the bug. For +example, `gtroff -Tps bug.tr'. If the command line uses -ms or -mm, +say whether these refer to the groff versions or the Unix versions of +the macros.] + +DESCRIPTION OF INCORRECT BEHAVIOUR: +[What goes wrong when that command line is run? For example, `gtroff +gets a segmentation fault', or `The output looks bad because the bar +over the x is too long and is too far over to the left.' If you get an +error message, include it here without modification: Don't edit it to +make it more readable.] + +SUGGESTED FIX [optional]: +[If you can suggest a fix for the problem, include a context diff here. +But don't delay sending in a bug report in the hope of finding a fix. +Guesses about the cause of the bug are not usually helpful.] diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..3665e85 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,9052 @@ +2010-12-31 Werner LEMBERG + +Version 1.21 released +===================== + + * NEWS, REVISION, VERSION, doc/groff.texinfo, doc/webpage.ms: Updated. + * aclocal.m4, configure: Regenerated. + +2010-12-31 Werner LEMBERG + + * doc/webpage.ms: Updated. + +2010-12-31 Werner LEMBERG + + * configure: Regenerate with autoconf 2.67. + +2010-12-31 Werner LEMBERG + + Update various scripts. + + * config.guess, config.sub: Update from `config' repository. + * install-sh, mkinstalldirs: Update from `gnulib' repository. + +2010-12-31 Werner LEMBERG + + Update texinfo.tex. + + * doc/texinfo.tex: Update von `texinfo' repository. + +2010-12-30 Werner LEMBERG + + Call texi2dvi with correct makeinfo binary. + + * doc/Makefile.in (.texinfo.dvi, .texinfo.pdf): Use $(MAKEINFO). + +2010-12-30 Werner LEMBERG + + Documentation updates. + + * NEWS, PROBLEMS, MANIFEST: Update. + +2010-12-26 Werner LEMBERG + + Speed up troff. + + * src/include/ptable.h (PTABLE): Make hash tables much more sparse + by changing the ratio `FULL_NUM/FULL_DEN' from 2/3 to 1/4. This + increases the allocated memory by about 200kByte (which is nothing + today) but assures that there aren't extremely long searches for a + free hash slot in case that the hash function doesn't return a free + one. Due to the nature of the entries in uniuni.cpp, the used hash + function in ptable.cpp is not optimal, but using a sparse array + compensates this. + +2010-12-20 Werner LEMBERG + + Replace patch from 2010-12-18 with a much faster implementation. + + * src/roff/troff/node.h (node): Add virtual function + `get_break_code'. + + * src/roff/troff/node.cpp (inter_char_space_node): Remove class + completely. + (glyph_node::merge_glyph_node): Restore previous version. + + (break_char_node): Add `prev_break_code' field and update + constructors. + (node::get_break_code, break_char_node::get_break_code): Implement. + + (node::add_char): Pass remaining cflags values. + + (break_char_node::add_self): Use the logic of the now deleted + `inter_char_space_node::add_self' function to insert a space node if + necessary. + +2010-12-20 Daiki Ueno + + A new try to not changing srcdir if building in separate builddir. + + Makefile.in ($GNULIBDIRS): Disable calls to autoconf and friends. + +2010-12-20 Werner LEMBERG + + Speed up access to cflags values. + + We now recompute the cflags values for all charinfo objects if + `.class' has been called. + + * src/roff/troff/charinfo.h: Add external references to `class_flag' + and `get_flags'. + (charinfo): `get_flags' no longer has a return value. + (charinfo::overlaps_horizontally, charinfo::overlaps_vertically, + charinfo::can_break_before, charinfo::can_break_after, + charinfo::can_break_after, charinfo::ends_sentence, + charinfo::transparent,, charinfo:ignore_hcodes, + charinfo::prohibit_break_before, charinfo::prohibit_break_after, + charinfo::inter_char_space): Call global `get_flags' only if + necessary. + (charinfo::add_to_class): Set `class_flag'. + + * src/roff/troff/input.cpp (class_flag): New global flag. + (charinfo::charinfo): Call `get_flags' member function. + (get_flags): New global function which iterates over all entries in + the charinfo dictionary. + (charinfo::get_flags): Set `flags' directly. + +2010-12-19 Werner LEMBERG + + Protect `.class' against cyclic nesting. + + * src/roff/troff/charinfo.h (charinfo::contains): Add optional + boolean argument. + * src/roff/troff/input.cpp (define_class, charinfo::contains): Check + for cyclic nesting. + +2010-12-18 Werner LEMBERG + + Improve CJK support with new values for `.cflags'. + + This patch introduces three new values to `.cflags': + + don't break before character: 128 + don't break after character: 256 + allow inter-character break: 512 + + They are handled differently if compared to other cflags values: + + (1) hcode values are completely ignored + (2) similar to kern values, and contrary to the other cflags + values, troff looks at pairs of characters to decide whether a + break gets inserted + + A yet-to-be-written patch should add inter-character spacing if + those flags are active; currently, only zero-width breakpoints are + inserted. + + * src/roff/troff/charinfo.h (charinfo): Change type of `flags' to + `int'. Update callers accordingly. + New enum values `DONT_BREAK_BEFORE', `DONT_BREAK_AFTER', and + `INTER_CHAR_SPACE'. + New member functions `prohibit_break_before', + `prohibit_break_after', and `inter_char_space'. + * src/roff/troff/input.cpp: Updated. + + * src/roff/troff/node.cpp (inter_char_space_node): New class similar + to kern_pair_node, collecting charinfo entities with the + abovementioned cflags values. + (break_char_type): Add new enum values. + (glyph_node::merge_glyph_node): Handle abovementioned cflags values + and emit an `inter_char_space_node' if necessary. + + * tmac/ja.tmac: Use new cflags values. + + * doc/groff.texinfo, NEWS, man/groff_diff.man: Document new values. + +2010-12-18 Werner LEMBERG + + Remove compiler warning. + + * src/libs/libgroff/relocate.cpp (msw2posixpath): Remove redundant + dereferencing. + +2010-12-16 Daiki Ueno + + Don't change srcdir if building in a separate builddir. + + * Makefile.in ($GNULIBDIRS): Copy configuring stuff of gnulib if + necessary. + +2010-12-15 Werner LEMBERG + + Fix compilation problem. + + This issue happens with gcc 4.2.4. + + * src/roff/troff/node.cpp (node::~node): Move to... + * src/roff/troff/node.h: Here. This ensures that the inline + member function is publicly visible. + +2010-12-15 Werner LEMBERG + + Remove unused code. + + * src/roff/troff/node.cpp, src/roff/troff/node.h + (space_node::space_node): Remove unused constructor. + +2010-12-15 Werner LEMBERG + + Use enum to increase readability. + + * src/roff/troff/node.cpp (break_char_type): New enum. + (break_char_node::add_self, node::add_char): Use it. + +2010-12-13 Daiki Ueno + Werner LEMBERG + + Add wide character support to grotty. + + This is a huge patch, mainly by adding the gnulib infrastructure in + a separate directory tree (in `src/libs/gnulib/lib') for its + `wcwidth' module. However, the actual changes to native groff + source files are just a few lines. + + * Makefile.comm (INCLUDES): Updated. + (LIBGNU): Define. + + * Makefile.in (NOMAKEDIRS): Updated. + (GNULLIBDIRS): Define. + (DISTDIRS): Add GNULLIBDIRS. + ($LIBDIRS): Depend on GNULLIBDIRS. + ($GNULLIBDIRS): New target. + + * src/libs/libgroff/font.cpp (font::get_width, font::load) + [is_unicode]: Use `wcwidth'. + + * src/roff/troff/Makefile.sub (XLIBS): Add LIBGNU. + * src/roff/troff/input.cpp (main): Set LC_CTYPE. + + * src/devices/grotty/Makefile.sub (XLIBS): Add LIBGNU. + * src/devices/grotty/tty.cpp (main): Set LC_CTYPE. + + * src/libs/gnulib/*: New files. The import was done as follows: + + . Call + + gnulib-tool --create-testdir \ + --dir=src/libs/gnulib \ + wcwidth + + to get a testbed. + + . Manually move directories src/libs/gl{lib,m4} to + src/libs/{lib,m4}, and do s/gllib/lib/ and s/glm4/m4/ everywhere + to `convert' the gnulib testbed to a standard gnulib + configuration as maintained by gnulib-tool. + + . Call + + gnulib-tool --add-import \ + --dir=src/libs/gnulib \ + wcwidth + + to update everything. + +2010-12-13 Werner LEMBERG + + `.class' must not emit empty lines. + + * src/roff/troff/input.cpp (define_class): Add missing `skip_line' + calls. + +2010-12-06 UKAI Fumitoshi + Colin Watson + + Add Japanese localization. + + * tmac/ja.tmac: New file. + * tmac/Makefile.sub (NORMALFILES): Updated. + +2010-12-06 Colin Watson + Daiki Ueno + + Implement support for character classes. + + This patch uses standard C++ headers, contrary to the rest of groff. + Ideally, everything in groff should be updated to do the same. + + * src/include/font.h (glyph_to_unicode): New function. + + * src/libs/libgroff/font.cpp (glyph_to_unicode): Implement it. + (font::contains, font::get_code): Use it. + + * src/roff/troff/charinfo.h: Include and . + (charinfo): New members `ranges' and `nested_classes'. + New member functions `get_unicode_code' and `get_flags'. + New member functions `add_to_class', `is_class', and `contains'. + (charinfo::overlaps_horizontally, charinfo::overlaps_vertically, + charinfo::can_break_before, charinfo::can_break_after, + charinfo::can_break_after, charinfo::ends_sentence, + charinfo::transparent,, charinfo:ignore_hcodes): Use `get_flags', + which handles character classes also. + + * src/roff/troff/input.cpp (char_class_dictionary): New global + variable. + (define_class): New function. + (init_input_requests): Register `class'. + + (charinfo::get_unicode_code, charinfo::get_flags, + charinfo::contains): Implement it. + + * NEWS, doc/groff.texinfo (Character Classes), man/groff_diff.man, + man/groff.man: Document it. + +2010-11-11 Anton Shepelev + + [grohtml]: Improve texinfo documentation. + + * doc/groff.texinfo (grohtml): Insert man page description, slightly + extended. + +2010-11-11 Werner LEMBERG + + Fix crash in tbl with option `nospaces'. + Reported by Louis Guillaume . + + * src/libs/libgroff/string.cpp (string::remove_spaces): If input + data consists of spaces only and thus reduces to nothing, set `sz' + to 0. + +2010-11-02 Ulrich Spörlein + + [mdoc]: Complete previous patch and document OpenBSD releases. + + * tmac/doc-common (doc-operating-system-NetBSD): Add versions 5.0, + 5.0.1, and 5.0.2. + (doc-operating-system-OpenBSD-*): New strings. + (doc-operating-system-FreeBSD-*): Add version 8.1. + (doc-operating-system-DragonFly-*): Add versions 2.2, 2.4, 2.6, and + 2.8. + (Os): Handle DragonFly and OpenBSD. + + * tmac/groff_mdoc.man: Document OpenBSD releases. + Add DragonFly release 2.8. + +2010-11-02 Ulrich Spörlein + + [mdoc]: Improve man page. + + * tmac/groff_tmac.man: Fix prologue macro order. + Update NetBSD, FreeBSD, and DragonflyBSD version numbers. + Other minor layout improvements. + +2010-11-02 Anton Shepelev + + [grohtml] Improve man page. + + * src/devices/grohtml/grohtml.man: Document two-pass handling of + input data. + +2010-09-19 Werner LEMBERG + + [groff] Don't use prefix for preconv. + Reported by Dorai Sitaram + + * src/roff/groff/groff.cpp (main): Fix it. + +2010-07-28 Larry Kollar + + * doc/groff.texinfo, man/groff.man: Document `!' operator better. + +2010-06-28 Jan Vcelak + + * src/roff/troff/node.cpp (make_node): Adding missing `%'. + Reported in + http://lists.gnu.org/archive/html/bug-groff/2010-06/msg00022.html + +2010-06-05 Larry Jones + + * man/groff_diff.man: Document \n[.P]. + +2010-06-04 Werner LEMBERG + + * NEWS: Updated. + +2010-06-04 Denis M. Wilson + + afmtodit: Add option `-o' to specify an output file. + + * src/utils/afmtodit.pl: Implement it. + * src/utils/afmtodit.man: Document it. + +2010-06-04 Larry Jones + + * man/groff_diff.man: Document \n[.O]. + +2010-05-30 Werner LEMBERG + + Fix metric files for devps families A, BM, and font ZCMI. + Problem reported by Denis M. Wilson . + + * font/devps/{AB, ABI, AI, AR, BMB, BMBI, BMI, BMR, ZCMI}: + Regenerated, using correct AFM files (from the Adobe Core 35 fonts + with 229 glyphs). + +2010-05-28 Werner LEMBERG + + Don't use obsolete intermediate output command `F'. + Reported by Krzysztof Zelechowski + + * src/roff/troff/nodes.cpp (troff_output_file::really_put_filename): + Replace `F' command with `x F'. + +2010-05-24 Werner LEMBERG + + * PROBLEMS: Document that mdoc doesn't work with test-groff. + Reported by Krzysztof Zelechowski + +2010-05-22 Werner LEMBERG + + Document preconv in texinfo. + + * doc/groff.texinfo: Mention preconv and its related command line + options for groff. + Add stubs for direct preconv documentation. + Sort groff options and environment variables. + +2010-05-22 Werner LEMBERG + + Use DESC's `unicode' keyword for grotty. + + Consequently, no longer check directly for the `utf8' device name + which prevented the creation of arbitrarily called output device + directories like `devunicode'. + + Problem reported by Christopher Yeleighton + in Savannah bug #29895. + + * src/devices/grotty/tty.cpp (tty_printer): Remove `is_utf8' member. + Replace all ocurrences with `font::is_unicode'. + (tty_printer::tty_printer): Remove argument. + + * src/devices/grotty/grotty.man: Document `unicode' keyword. + +2010-05-19 Werner LEMBERG + + Update symbol tables for devps font generation. + + * font/devps/generate/textmap: Sort alphabetically. + Replace tabs with spaces. + + * font/devps/generate/symbolchars: Update list to remove duplicates + which have already been added to `textmap' on 2007-04-09. + + * font/devps/symbolmap: Regenerated. + + * font/devps/*: Regenerate font definition files. + +2010-05-09 Colin Watson + + Handle ditroff command `Dt' without argument gracefully. + + Without this patch, grotty goes into an infinite loop if it tries to + process + + x T utf8 + x res 240 24 40 + x init + p1 + Dt + + * src/libs/libdriver/input.cpp (get_integer_arg): Emit a fatal error + on a non-integer argument, bringing the code into line with the + behaviour documented in the header comment. + (get_possibly_integer_args): Terminate the loop on a non-integer + argument. + (next_arg_begin): Return newline or EOF after emitting the + corresponding error, rather than continuing on to the next line. + +2010-05-01 Werner LEMBERG + + * doc/groff.texinfo: Improve documentation of \R escape. + +2010-03-10 Werner LEMBERG + + * doc/groff.texinfo: Document \n[DD] register. + Updated version stuff. + +2010-03-10 Larry Kollar + + * tmac/groff_ms.man: Document \n[DD] register. + Problem reported by Ted. + +2010-02-25 Colin Watson + + Use named signals for `trap' in shell scripts. + + * contrib/eqn2graph/eqn2graph.sh, contrib/grap2graph/grap2/graph.sh, + contrib/pic2graph/pic2graph.sh: Do it. + +2010-02-25 Werner LEMBERG + + Fix angle brackets in grohtml. + Reported by Colin Watson . + + * src/devices/grohtml/post-html.cpp (get_html_entity): Add U+27E8 + and U+27E9. + +2010-02-24 Colin Watson + + Add new FreeBSD and Posix versions. + + * tmac/doc-common: Add FreeBSD versions 7.2, 7.3, and 8.0 + * tmac/doc-syms: Add Posix 2008 + * tmac/groff_mdoc.man: Document it. + +2010-02-16 Larry Kollar + + tbl: Add `nowarn' option. + + * src/preproc/tbl/table.h (table): Add `NOWARN' enumeration value. + + * src/preproc/tbl/main.cpp (process_options), + src/preprox/tbl/table.cpp (table::compute_expand_width, + table::compute_separation_factor): Handle `NOWARN'. + + * src/preproc/tbl/tbl.man, NEWS: Document it. + +2010-02-08 Larry Kollar + + * tmac/www.tmac (www-li-ol): Fix indentation if more than 10 items. + +2010-02-04 Larry Kollar + + Improve `tbl' warnings. + + * src/preproc/tbl/table.cpp (table::compute_expand_width, + table::compute_separation_factor): Add file name strings to + warnings. + +2010-01-23 Bjarni Ingi Gislason + + Fix `MC' macro of the ms package. + + * tmac/s.tmac (@MC): Define `pg*col-top' after the paragraph has + been initialized. Otherwise, using this example, + + .nh + .nf + .kern 0 + .pl 6c + .ll 70n + .MC 30n + Text for multiple columns. + Text for multiple columns. + Text for multiple columns. + Text for multiple columns. + Text for multiple columns. + + the columns start at different vertical positions. + +2010-01-23 Larry Kollar + + * tmac/www.tmac (www-li-{ul,ol,dl}): Handle `PORPHANS' register. + +2010-01-23 Larry Kollar + + PROBLEMS: Document some Mac OS issues. + +2010-01-02 Deri James + + Don't hardcode `ps' device. + This is needed for cooperation with gropdf. + + * src/preproc/pic/troff.cpp (troff_output::text): Use GROPS_REG. + +2009-12-31 Werner LEMBERG + + Make patterns with uppercase letters work. + Problem reported by Bjarni Ingi Gislason . + + * src/roff/troff/input.cpp (init_hpf_code_table): Use `cmlower'. + * doc/groff.texinfo, man/groff_diff.man: Update documentation of + `hpfcode' request. + +2009-11-24 Maurice van der Pot + + Fix double frees and memory leaks. + + * src/roff/troff/env.cpp (environment::make_tag): Use local object. + * src/roff/troff/input.cpp (input_stack::check_end_diversion): Free + `diversion_state' here. + (interpolate_arg): Fix memory leaks. + * src/roff/troff/mtsm.cpp (mtsm::pop_state): Don't free `sp->state'. + +2009-11-20 Paulo Ricardo Zanoni + + * */*.cpp: Replace `printf(string);' with `printf("%s", string);'. + +2009-10-28 Werner LEMBERG + + Document limitations with `#' characters, tbl, and eqn. + Problem reported by Michael Kain . + + * src/preproc/eqn/eqn.man, src/preproc/tbl/tbl.man: Do it. + +2009-10-26 Werner LEMBERG + + * tmac/doc-common (Dx): Define register. + +2009-10-26 Jörg Sonnenberger + + Implement `%U' in mdoc for URL references. + + * tmac/doc-common (%U): New register. + (Rd): Handle `doc-url-count' and `doc-url-name'. + + * tmac/doc.tmac (doc-url-count, doc-url-name): New registers. + (doc-save-global-vars, doc-restore-global-vars, doc-reset-reference, + doc-print-reference): Handle `doc-url-count' and `doc-url-name'. + (%U): New macro. + + * NEWS, tmac/groff_mdoc.man: Document `%U' macro. + +2009-09-09 Jari Aalto + + * src/roff/groff/groff.man: Point to troff(1) for `-w' and `-W'. + +2009-09-08 Werner LEMBERG + + [troff]: Fix hyphenation problem with kerned letters. + Problem reported by Steve Izma . + + * src/roff/troff/node.cpp + (kern_pair_node::add_discretionary_hyphen): Compute `tf' using the + first node, `n1'. `n2' might be another kerning node, and the + `get_tfont' member function isn't defined then. + +2009-09-01 Michael Cain + + [pic] Fix a border case for arc computation. + + * src/preproc/pic/object.cpp (object_spec::make_arc): It can happen + that test `radius < d' in the loop is satisfied, but the difference + in the two values is on the order of 1e-10. If `radius' is small, + doubling the value can lead to a fairly gross error. + + The original code appears to have been intended to deal with the + situation when radius is orders of magnitude less than `d'. The + replacement code simply assigns `radius' the smallest value that + avoids problems with the floating point code further on in the + routine. + +2009-08-14 Roger Leigh + + * man/groff_char.man: Fix white heart and diamond unicode values. + +2009-07-29 Werner LEMBERG + + * tmac/hyphen.fr: Fix typo which prevents hyphenation. + Reported by Seb . + +2009-06-25 Werner LEMBERG + + Make groff compile on Interix. + Reported by Jay Krell . + + * configure.ac: Call AC_USE_SYTEM_EXTENSIONS. + + * src/include/lib.h [__INTERIX]: Define _ALL_SOURCE. + + * configure: Regenerated. + +2009-05-29 Werner LEMBERG + + pic: Fix handling of nested positions. + Reported by Doug McIlroy . + + * src/preproc/pic/pic.y: Split `expr' into `expr_lower_than' and + `expr_not_lower_than' so that we can handle + + (1/3)<(1/2),baz> + + correctly. Without the patch, `(1/3)<(1/2)' is handled prematurely + as a comparison. + +2009-05-07 Werner LEMBERG + + Accept \0 and friends within \o. + Reported by Doug McIlroy . + + * src/roff/troff/token.h (token): Add TOKEN_HORIZONTAL_SPACE + enumeration value together with `horizontal_space' member function. + Add `do_overstrike' as a friend. + + * src/roff/troff/input.cpp: Use TOKEN_HORIZONTAL_SPACE for \0, \|, + \^, and \h. + Update all affected places. + (do_overstrike): Remove `static' attribute. + Accept all escapes which produce a fixed horizontal space. + +2009-04-24 Werner LEMBERG + + Use straight quotes where appropriate. + Reported by Reuben Thomas . + + * man/groff.man: Do it. + +2009-04-14 Werner LEMBERG + + Fix documentation of `em' request. + Reported by Joachim Walsdorff + . + + * doc/groff.texinfo (End-of-input Traps): Rewrite. + +2009-04-10 Werner LEMBERG + + Fix a memory leak in troff for -Thtml. + Reported by Urs Eggli . + + * src/roff/troff/node.h (node::~node): Move to... + * src/roff/troff/node.cpp: Here. Free `state' and `push_state'. + +2009-04-01 Werner LEMBERG + + * tmac/doc.tmac: Call `ec' before mapping characters. + +2009-03-07 Werner LEMBERG + Gunnar Florus + + Improve configuration. + + * configure.ac: Read `VERSION' and `REVISION' files to provide + proper values for AC_INIT. + * Makefile.in: Use `@datarootdir@' and `@docdir@' so that + configure's `--datarootdir' and `--docdir' options are honoured. + Documentation is now by default installed into something like + `/usr/local/share/doc/groff-1.20.1'. + + * configure: Regenerated. + +2009-02-21 Colin Watson + Werner LEMBERG + + Add a new `file' warning category. + + * src/roff/troff/troff.h (warning_type): Add WARN_FILE. + * src/roff/troff/input.cpp (DEFAULT_WARNING_MASK): Include + WARN_FILE. + (warning_table): Add `file' category. + (macro_source): Convert error on missing macro file to a + warning. + * NEWS, doc/groff.texinfo (I/O, Warnings), man/groff_diff.man, + src/roff/troff/troff.man: Document new warning category. + +2009-02-18 Werner LEMBERG + + * doc/groff.texinfo: Improve documentation of `lsm' request. + +2009-02-14 Werner LEMBERG + + Implement a leading spaces macro request, `lsm', in analogy to + `blm'. + Implement two new number registers, \n[lsn] and \n[lss], which hold + the number of spaces and the horizontal space, respectively, which + would be inserted if the macro registered by `lsm' wasn't called. + + * src/roff/troff/input.cpp (leading_spaces_macro_name, + leading_spaces_number, leading_spaces_space): New global + variables. + (leading_spaces_macro): New function. + (process_input_stack) : Handle `lsm'. + (init_input_requests): Register `lsm', \n[lsn], and \n[lss]. + + * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo + (Leading Spaces Traps): Document new requests and registers. + +2009-02-10 Denis M. Wilson + + * man/groff.man: Document missing number registers (`$$', `.b', + `.F', `.j', `.k', `.L', `.O', `.P', `.R', `opmaxx', `opmaxy', + `opminx', `opminy'). + + * doc/groff.texinfo: Document missing `.R' register. + Add `.U' to register index. + +2009-01-19 Werner LEMBERG + + Fix incorrect grops color state before \X'...'. + Problem reported by Miklos Somogyi . + + * src/devices/grops/ps.cpp (ps_printer::special): Check color state + before doing a PS special and flush buffer. + Update called functions. + +2009-01-09 Werner LEMBERG + +Version 1.20.1 released +======================= + + `gnu.png' isn't needed any more. + + * doc/Makefile.in: Don't handle or create `gnu.png'. + Update all affected targets. + + * doc/Makefile.sub: Don't handle or create `gnu.png'. + Update alll affected targets. + + + `gnu.eps' was missing in the tarball. + Problem reported by Patrik Gräser. + + (PROCESSEDEXAMPLEFILES): Remove `gnu.eps'. + (MOSTLYCLEANNOTSRCDIRADD): Fix names of info files. + (install_data): Handle `gnu.eps' specially. + + * MORE.STUFF: Mention texi2html's troff backend. + Mention http://groff.ffii.org/groff/contrib. + + * README: Mention `MORE.STUFF'. + + * NEWS, doc/webpage.ms, doc/groff.texinfo: Updated. + +2009-01-08 Werner LEMBERG + + * */Makefile.* (CLEANADD, CLEANNOTSRCDIRADD, CLEANDIRADD): Renamed + to... + (MOSTLYCLEANADD, MOSTLYCLEANNOTSRCDIRADD, MOSTLYCLEANDIRADD): This. + +2009-01-06 Werner LEMBERG + + Remove heuristics for LIBEXT. + + * configure.ac: Provide LIBEXT. + * Makefile.in: Use it. + + * configure: Regenerated. + +2009-01-05 Werner LEMBERG + +Version 1.20 released +===================== + +2009-01-05 Werner LEMBERG + + * */*: Update FDL 1.1 to FDL 1.3. + +2009-01-05 Werner LEMBERG + + * */*: Update copyright year. + +2009-01-05 Werner LEMBERG + + * MANIFEST: Updated. + +2009-01-05 Werner LEMBERG + + * doc/texinfo.tex (\key): Fix excessive whitespace. + (\texinfoversion): Tag file as patched. + +2009-01-05 Werner LEMBERG + + * tmac/s.tmac (@TS, TE, @EQ, @EN), tmac/an-old.tmac (TS, TE, EQ, + EN), tmac/e.tmac (TS, TE, EQ, EN): Set line length to a large value + if processed with -Thtml. + +2009-01-04 Werner LEMBERG + + * tmac/www.tmac (TS, TE, EQ, EN): Set line length to a large value + if processed with -Thtml to avoid warning messages (from code + inserted by tbl, for example). + +2009-01-04 Gunnar Florus + + * */*: Update GPL2 to GPL3. + +2009-01-04 Werner LEMBERG + + * Makefile.in (dist): Don't use soft links but copy files to + preserve the file's time stamps. + * Makefile.sub (configure): Remove `autom4te.cache'. + +2009-01-04 Werner LEMBERG + + * tmac/de.tmac: Fix German date strings. Reported by Axel Kielhorn. + +2009-01-04 Werner LEMBERG + + * doc/texinfo.tex: Updated from `texinfo' CVS repository. + * doc/txi-en.tex: New file from `texinfo' CVS repository. + +2009-01-04 Werner LEMBERG + + * font/make-Rproto: Moved to... + * font/util/make-Rproto: Here. + + * Makefile.in (NOMAKEDIRS): Add `m4', `font/devps/old', and + `font/util'. + +2009-01-04 Werner LEMBERG + + * src/roff/troff/TODO: Mention local variables. + +2009-01-03 Werner LEMBERG + + * contrib/hdtbl/examples/col_rowspan_colors.roff, + contrib/hdtbl/examples/color_boxes.roff, + contrib/hdtbl/examples/color_nested_tables.roff, + contrib/hdtbl/examples/color_table_cells.roff, + contrib/hdtbl/examples/color_transitions.roff, + contrib/hdtbl/examples/short_reference.roff: Minor improvements. + +2009-01-03 Werner LEMBERG + + * doc/webpage.ms: Updated. + +2009-01-03 Werner LEMBERG + + * NEWS, doc/groff.texinfo, font/devps/*, VERSION, REVISION: Prepare + for version 1.20. + +2009-01-03 Werner LEMBERG + + * src/preproc/tbl/table.cpp (table::compute_expand_width, + table::compute_separation_factor): In warning messages, don't refer + to pages but to input line numbers. + +2009-01-03 Werner LEMBERG + + * tmac/groff_ms.man: Improve formatting of tables. + +2009-01-03 Werner LEMBERG + + * tmac/www.tmac (www->): Handle XHTML. + (HTML

): Handle non-HTML devices. + (www:url_check_tag): Avoid warnings. + +2009-01-03 Werner LEMBERG + + * tmac/an-old.tmac, tmac/doc.tmac: For -Tutf8, map \-, -, ', and ` + conservatively to ASCII for the sake of easy cut and paste. + +2009-01-03 Werner LEMBERG + + * NEWS: Mention hdtbl. + +2009-01-02 Werner LEMBERG + + * tmac/groff_mdoc.man: Update OS version string listing. + +2009-01-02 Werner LEMBERG + + * config.rpath, m4/codeset.m4, m4/glibc21.m4, m4/iconv.m4, + m4/lib-link.m4, m4/lib-prefix.m4, src/include/localcharset.h, + src/libs/libgroff/config.charset, src/libs/libgroff/localcharset.c, + src/libs/libgroff/ref-add.sin, src/libs/libgroff/ref-del.sin: + Updated from `gnulib' git repository. + + * configure: Regenerated. + +2009-01-02 Werner LEMBERG + + * tmac/ptx.tmac: New file. + + * NEWS, man/groff_tmac: man: Document it. + +2008-12-30 Werner LEMBERG + + Fix more quoting issues. + + * tmac/www.tmac (BCL, BGIMG, PIMG, MPIMG, LNS): For the sake of + XHTML, quote more arguments. + (IMG): Fix quoting. + +2008-12-30 Werner LEMBERG + + Fix quoting issues in www.tmac. + + * tmac/www.tmac (www:url_breaks_splitted): Renamed to... + (www:url_breaks_split): This. + (www->): New string to close tag singletons like or
. In + XHTML mode (not implemented yet), this has to be changed from `>' to + `/>'. + (IMG): Don't use + Use www->. + (PIMG, MPIMG): Don't use + Use www->. + Fix doublequote issues. + (HR): Don't use . + Use www->. + (LNS): Fix doublequote issues. + +2008-12-24 Michail Vidiassov + + * tmac/doc-common: Add entries for Mac OS X and FreeBSD. + +2008-12-22 Alexey Gladkov + + * contrib/groffer/perl/roff2.pl: Fix syntax error. + +2008-12-15 Werner LEMBERG + + * NEWS: Mention `preconv'. + +2008-11-12 Werner LEMBERG + + Implement `x' specifier for expanded columns. Contrary to old DWB + tbl, more than a single `x' specifier can be used. At the same + time, remove most of the code from change 2007-02-09 which collides + with the new implementation. + + * src/preproc/tbl/main.cpp (format): Add `expand' array. + (format::format, format::~format): Updated. + (input_entry_format): Add `expand' field. + (input_entry_format::input_entry_format): Updated. + (input_entry_format::debug_print): Handle `expand'. + (process_format): Handle `x' specifier. + (process_data): Updated. + + * src/preproc/tbl/table.cpp (AVAILABLE_REG, COLCOUNT_REG): Remove. + (EXPAND_REG): New macro. + (table_entry::divert, block_entry::divert, + alphabetic_block_entry::divert): Add parameter to control whether + expanded columns shall be handled. + (block_entry::do_width): Remove. + (block_entry::do_divert): Add parameter to control whether expanded + columns shall be handled. + Treat expanded columns like columns with a minimum width. + Remove `experimental' code. + (table::table, table::~table, table::allocate): Updated. + (table::set_expand_column): New function. + (table::count_block_columns): Replace with... + (table::count_expand_columns): This function. + (table::divide_span): Handle expanded columns the same as equal + columns. + (table::sum_columns): Add parameter to control whether expanded + columns shall be handled. + (table::compute_available_block_width): Replace with... + (table::compute_expand_width): This function. + (table::compute_total_separation): New function, taking code from + `compute_separation_factor'. + (table::compute_separation_factor): Simpler code. The check for the + `EXPAND' flag has been moved to the caller. + (table::compute_widths): Add `top-level' changes to handle expanded + blocks. + + * src/preproc/tbl/table.h (table): New field `total_separation'. + Remove `blockflag' array. + Add `expand' array. + Update member function declarations. + + * src/preproc/tbl/tbl.man: Document `x' specifier. + Expand documentation to cover all aspects of Lesk's tbl reference. + + * NEWS: Document `x' specifier. + +2008-11-08 Werner LEMBERG + + * src/preproc/tbl/tbl.man: Restructuring. + Improve text block documentation. + +2008-11-07 Werner LEMBERG + + * src/preproc/tbl/table.cpp (table::compute_widths): Use default + scaling operator for minimum width. Without this fix, `lw3' (or + `lw(3)' would be handled as a column with a minimum width of 3u + instead of 3n. + +2008-11-05 Werner LEMBERG + + * tmac/doc-common (Dt): Start a new page if necessary and set up + headers. + + * tmac/andoc.tmac (reload-doc): Simplify due to change in + doc-common. + + * NEWS: Document it. + +2008-10-18 Werner LEMBERG + + * src/preproc/tbl/main.cpp (process_format): Rename `x' and `X' to + `m' and `M', respectively. + Sort entries in `switch' block. + * src/preproc/tbl/tbl.man: Updated. + Sort key entries; other minor improvements. + +2008-10-17 Werner LEMBERG + + * src/preproc/tbl/table.cpp (table::compute_available_block_width): + New function. + (table::compute_widths): Replace some code with new function + (shifted to a more appropriate place). + * src/preproc/tbl/table.h: Updated. + +2008-10-16 Werner LEMBERG + + * tmac/doc-common (doc-operating-system-*), tmac/groff_mdoc.man: Add + NetBSD 4.0.1. + +2008-10-13 Werner LEMBERG + + * tmac/groff_mdoc.man: Update documentation on BSD-like OS string + versions. + +2008-10-10 Werner LEMBERG + + * man/roff.man, doc/groff.texinfo: Improve the history part. This + is based on input from Tom Van Vleck . + + + * src/preproc/eqn/sqrt.cpp (sqrt_box::compute_metrics): Assure that + value of `rst' register is not zero, as can happen for the HTML + output device. Otherwise, there are too many loops, and we get a + stack overflow because of recursion. + +2008-10-05 Stephen Gildea + + * src/preproc/ref/ref.cpp (reference::compute_sort_key): Do + not insert SORT_SEP before the first field, so that sort_key + has the same format as before the patch of 2003-08-23. + +2008-10-04 Werner LEMBERG + + * tmac/doc-common (doc-operating-system-*): Update releases. + + * tmac/an-old.tmac (an-extra1, an-extra2, an-extra3): Initialize. + + * tmac/andoc.tmac: Rewritten, based on a preliminary version from + Tadziu Hoffmann. It can now process multiple man pages with both + man and mdoc formats intermixed. + + * NEWS, tmac/groff_man.man, tmac/groff_mdoc.man, + man/groff_tmac.man: Document it. + +2008-10-04 Werner LEMBERG + + * src/roff/troff/input.cpp (do_suppress): Make \O[3], \O[4], and + \O[5] non-transparent w.r.t. beginning-of-line recognition (similar + to the other \O variants). + + * tmac/www.tmac (TS, TE, EQ, EN): Don't use .als for setting up + default macros. This causes endless loops (at least for TE). + + * doc/groff.texinfo: Improve documentation of `.als'. + +2008-10-03 Werner LEMBERG + + * src/devices/grops/grops.man, src/roff/troff/troff.man, + src/preproc/soelim/soelim.man: Correct documentation of -I switch. + Reported by Larry Kollar. + Other minor formatting issues. + +2008-10-02 Werner LEMBERG + + * tmac/trace.tmac: Much improved. + (trace-full): New register to be set on the command line; it + controls whether number and string register assignments get traced + also. + (!!c): New macro for comments. + (rm): New traced macro. + (de, de1, am, am1): Use \\[xxx]\\ calling method to pass \$0 to + `!!xxx'; this makes doc.tmac completely traceable. + Trace call of .de and friends also. + + * tmac/groff_tmac.man, NEWS: Update. + +2008-09-30 Werner LEMBERG + + Restore behaviour of \$0 if a macro is called with string syntax + (problem caused by change on 2008-09-29). + + * src/roff/troff/input.cpp (input_iterator, input_stack, + macro_iterator): Add `get_macro_name' member function. + (interpolate_string): Use it. + +2008-09-29 Werner LEMBERG + + Make \\*[xxx]\\ within a macro (with `xxx' a macro too) work as + expected. Without the patch, + + .de aaa + \\*[bbb]\\ + . tm \\$* + .. + .de bbb + . shift + .. + .aaa 1 2 3 + + prints `2 3' instead of `1 2 3'. + + * src/roff/troff/input.cpp (input_iterator, input_stack, + macro_iterator): Add `get_arg_list' member function. + (macro): Add `is_a_string', `is_string', and `clear_string_flag' + members. + Update constructors and operators. + (arg_list): Add copy constructor. + (macro_iterator): Add optional argument to constructor to indicate + whether arguments shall be inherited from calling macro. + (interpolate_string): If string argument is a macro, push a macro + iterator on the stack. + (do_define_macro): Call clear_string_flag if macro data contains a + newline. + + * src/roff/troff/request.h: Updated. + +2008-09-29 Eric S. Raymond + + * doc/pic.ms: Fold in documentation of pic2plot(1) capabilities. + Improve the documentation of text objects. + +2008-09-28 Eric S. Raymond + + * contrib/pic2graph, contrib/pic2graph.man, contrib/eqn2graph, + contrib/eqn2graph.man: Tweak scripts to cope with incompatible + changes in ImageMagick crop options. Document the bugs. + +2008-09-28 Werner LEMBERG + + If a macro is called as a string, inherit value of \n[.br] from the + caller. This is useful for `trace.tmac'. + + * src/roff/troff/input.cpp (string_iterator): New members + `with_break' and `get_break_flag'. + (string_iterator::string_iterator): Updated. + + * doc/groff.texinfo: Improve documentation of \$0 and string syntax + calling of macros. + Document behaviour of \n[.br] within strings. + +2008-09-26 Werner LEMBERG + + * tmac/trace.tmac: Add copyright message. + Use `.de1' where possible to make source code more readable. + (so, mso, als, rn): Restore escape character before executing the + request. + (de, de1, am, am1): Trace `.foo' also if called as `\\[foo]'. + +2008-09-24 Werner LEMBERG + + Fix incompatibility between `.de1' and `.do'. Without this change, + the following snippet + + .de1 xx + . tm \\n(.C + .. + .cp 1 + .do xx + + prints 1 instead of 0. + + * src/roff/troff/input.cc (do_request): If a macro gets processed, + call tok.next(). + (interpolate_macro): Add optional argument. Update callers. + (request::invoke): Add optional argument. + (macro::invoke): Add optional argument to delay call of tok.next(). + + * src/roff/troff/request.h (request_or_macro): Add argument to + `invoke' member. Update all derived classes. + + * doc/groff.texinfo: Improve documentation of .do request. + +2008-09-09 Werner LEMBERG + + * tmac/an-old.tmac (FT): Initialize properly. Reported by Tadziu + Hoffmann. + +2008-09-06 Werner LEMBERG + + * tmac/doc-common (Dd, Os, Dt): Reset `doc-command-name' to make + `.Nm' work properly if next manual page is printed. + +2008-08-20 Werner LEMBERG + + * src/preproc/tbl/tbl.man: Document computation of element widths. + +2008-08-20 Alexey Gladkov + Werner LEMBERG + + Add default encoding option -D to preconv and groff. + + * src/preproc/preconv/preconv.cpp (default_encoding): Make it an + array. + Update all users. + (main): Handle new option -D. + (usage): Updated. + * src/preproc/preconv/preconv.man: Updated. + + * src/roff/groff/groff.cpp (main): Handle new option -D. + (synopsis, help): Updated. + * src/roff/groff/groff.man: Updated. + +2008-07-26 Werner LEMBERG + + * tmac/eqnrc (.EQ, .EN): Provide default definitions. Reported + by Denis M. Wilson. + + * tmac/www.tmac (.EQ, .EN, .TS, .TE): Fix definitions. + +2008-07-24 Denis M. Wilson + + New options -f and -k for afmtodit. + + * src/afmtodit/afmtodit.pl: New options `-f NAME' sets the internal + name of the groff font. + New option `-k' disables output of kerning data. + * src/afmtodit/afmtodit.man, NEWS: Document new options. + +2008-07-18 Werner LEMBERG + + * src/preproc/tbl/table.cpp (table::compute_separation_factor): Emit + warning messages if table gets squeezed. + (table::compute_widths): Fix computation of AVAILABLE_REG. + Emit warning if table is wider than line length. + + * src/preproc/tbl/tbl.man: Minor improvements. + +2008-05-02 Larry Jones + + * contrib/chem/Makefile.sub (README, examples/README): In makefiles, + the `$<' macro is only guaranteed to be defined in inference rules, + not in explicit target rules. Since there is only one input file in + the places where it is used, the `$?' macro (which is guaranteed to be + defined for both kinds of rules) is a suitable replacement. + + * hdtbl/examples/fonts_n.in, hdtbl/examples/fonts_n.in: Most + versions of ls don't have a `--color' option. + +2008-04-30 Larry Jones + + * Makefile.comm (depend.temp): Add `EXTRA_CCFLAGS'. + +2008-04-29 Larry Jones + + * src/eqn/script.cpp (script_box::output): Portability fix. + +2008-04-05 Dorai Sitaram + + Add better support for `.TAG #