commit 15b23f46c3bba3acf7471ccc35fcb4d493f86d3f
parent 6c1e6612adf401fe50541e28f64791fa8c2cae20
Author: Chris Allegretta <chrisa@asty.org>
Date: Sat, 19 Jan 2002 19:15:18 +0000
- Upgrade to gettext 0.10.40, probably broke everything again :)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1022 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Diffstat:
M | ABOUT-NLS | | | 309 | ++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------- |
M | ChangeLog | | | 1 | + |
M | Makefile.am | | | 5 | +++-- |
M | configure.in | | | 2 | +- |
M | intl/ChangeLog | | | 1086 | +------------------------------------------------------------------------------ |
M | intl/Makefile.in | | | 253 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------ |
M | intl/VERSION | | | 2 | +- |
M | intl/bindtextdom.c | | | 336 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------- |
D | intl/cat-compat.c | | | 262 | ------------------------------------------------------------------------------- |
A | intl/config.charset | | | 438 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
M | intl/dcgettext.c | | | 625 | ++----------------------------------------------------------------------------- |
A | intl/dcigettext.c | | | 1259 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | intl/dcngettext.c | | | 60 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
M | intl/dgettext.c | | | 28 | ++++++++++++++-------------- |
A | intl/dngettext.c | | | 61 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
M | intl/explodename.c | | | 30 | ++++++++++++------------------ |
M | intl/finddomain.c | | | 68 | +++++++++++++++++++++++++------------------------------------------- |
M | intl/gettext.c | | | 38 | ++++++++++++++++---------------------- |
M | intl/gettext.h | | | 27 | ++++++++++++--------------- |
M | intl/gettextP.h | | | 195 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------- |
M | intl/hash-string.h | | | 20 | ++++++++++---------- |
M | intl/intl-compat.c | | | 134 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------- |
M | intl/l10nflist.c | | | 52 | +++++++++++++++++++++++----------------------------- |
M | intl/libgettext.h | | | 191 | ++++++++++++------------------------------------------------------------------- |
A | intl/libgnuintl.h | | | 128 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
D | intl/linux-msg.sed | | | 100 | ------------------------------------------------------------------------------- |
M | intl/loadinfo.h | | | 49 | ++++++++++++++++++++++++++++++++++++++++--------- |
M | intl/loadmsgcat.c | | | 409 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------ |
A | intl/localcharset.c | | | 271 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | intl/locale.alias | | | 78 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
M | intl/localealias.c | | | 138 | ++++++++++++++++++++++++++++++------------------------------------------------- |
A | intl/ngettext.c | | | 68 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | intl/plural.c | | | 1326 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | intl/plural.y | | | 413 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
D | intl/po2tbl.sed.in | | | 102 | ------------------------------------------------------------------------------- |
A | intl/ref-add.sin | | | 31 | +++++++++++++++++++++++++++++++ |
A | intl/ref-del.sin | | | 26 | ++++++++++++++++++++++++++ |
M | intl/textdomain.c | | | 98 | +++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------- |
D | intl/xopen-msg.sed | | | 104 | ------------------------------------------------------------------------------- |
A | m4/codeset.m4 | | | 17 | +++++++++++++++++ |
M | m4/gettext.m4 | | | 443 | +++++++++++++++++++++++++++++++++++++++++++------------------------------------ |
A | m4/glibc21.m4 | | | 26 | ++++++++++++++++++++++++++ |
A | m4/iconv.m4 | | | 69 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
A | m4/isc-posix.m4 | | | 17 | +++++++++++++++++ |
M | m4/lcmessage.m4 | | | 16 | +++++++++------- |
M | m4/progtest.m4 | | | 16 | ++++++++++------ |
M | po/ChangeLog | | | 20 | ++++++++++++++++++++ |
M | po/ca.po | | | 95 | +++++++++++++++++++++++++++++++++++++++++-------------------------------------- |
M | po/cs.po | | | 251 | ++++++++++++++++++++++++++++++++++++++++++++----------------------------------- |
M | po/da.po | | | 423 | ++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------- |
M | po/de.po | | | 470 | +++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------- |
M | po/es.po | | | 98 | ++++++++++++++++++++++++++++++++++++++++--------------------------------------- |
M | po/fi.po | | | 257 | ++++++++++++++++++++++++++++++++++++++++++++----------------------------------- |
M | po/fr.po | | | 459 | +++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------- |
M | po/gl.po | | | 259 | ++++++++++++++++++++++++++++++++++++++++++++----------------------------------- |
M | po/hu.po | | | 251 | ++++++++++++++++++++++++++++++++++++++++++++----------------------------------- |
M | po/id.po | | | 255 | ++++++++++++++++++++++++++++++++++++++++++++----------------------------------- |
M | po/it.po | | | 259 | ++++++++++++++++++++++++++++++++++++++++++++----------------------------------- |
M | po/nb.po | | | 281 | ++++++++++++++++++++++++++++++++++++++++++++----------------------------------- |
M | po/nl.po | | | 251 | ++++++++++++++++++++++++++++++++++++++++++++----------------------------------- |
M | po/nn.po | | | 363 | ++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------- |
M | po/pl.po | | | 259 | ++++++++++++++++++++++++++++++++++++++++++++----------------------------------- |
M | po/ru.po | | | 418 | ++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------- |
M | po/sv.po | | | 432 | ++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------- |
M | po/uk.po | | | 418 | ++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------- |
65 files changed, 9550 insertions(+), 5396 deletions(-)
diff --git a/ABOUT-NLS b/ABOUT-NLS
@@ -8,7 +8,7 @@ A few packages already provide translations for their messages.
If you found this `ABOUT-NLS' file inside a distribution, you may
assume that the distributed package does use GNU `gettext' internally,
-itself available at your nearest GNU archive site. But you do *not*
+itself available at your nearest GNU archive site. But you do _not_
need to install GNU `gettext' prior to configuring, installing or using
this package with messages translated.
@@ -22,8 +22,8 @@ related to internationalization, you should tell about the version of
`gettext' which is used. The information can be found in the
`intl/VERSION' file, in internationalized packages.
-One advise in advance
-=====================
+Quick configuration advice
+==========================
If you want to exploit the full power of internationalization, you
should configure it using
@@ -34,13 +34,14 @@ to force usage of internationalizing routines provided within this
package, despite the existence of internationalizing capabilities in the
operating system where this package is being installed. So far, only
the `gettext' implementation in the GNU C library version 2 provides as
-many features (such as locale alias or message inheritance) as the
-implementation here. It is also not possible to offer this additional
-functionality on top of a `catgets' implementation. Future versions of
-GNU `gettext' will very likely convey even more functionality. So it
-might be a good idea to change to GNU `gettext' as soon as possible.
-
- So you need not provide this option if you are using GNU libc 2 or
+many features (such as locale alias, message inheritance, automatic
+charset conversion or plural form handling) as the implementation here.
+It is also not possible to offer this additional functionality on top
+of a `catgets' implementation. Future versions of GNU `gettext' will
+very likely convey even more functionality. So it might be a good idea
+to change to GNU `gettext' as soon as possible.
+
+ So you need _not_ provide this option if you are using GNU libc 2 or
you have installed a recent copy of the GNU gettext package with the
included `libintl'.
@@ -53,23 +54,20 @@ Most such packages use GNU `gettext'. Other packages have their own
ways to internationalization, predating GNU `gettext'.
By default, this package will be installed to allow translation of
-messages. It will automatically detect whether the system provides
-usable `catgets' (if using this is selected by the installer) or
-`gettext' functions. If neither is available, the GNU `gettext' own
+messages. It will automatically detect whether the system already
+provides the GNU `gettext' functions. If not, the GNU `gettext' own
library will be used. This library is wholly contained within this
package, usually in the `intl/' subdirectory, so prior installation of
-the GNU `gettext' package is *not* required. Installers may use
+the GNU `gettext' package is _not_ required. Installers may use
special options at configuration time for changing the default
behaviour. The commands:
./configure --with-included-gettext
- ./configure --with-catgets
./configure --disable-nls
-will respectively bypass any pre-existing `catgets' or `gettext' to use
-the internationalizing routines provided within this package, enable
-the use of the `catgets' functions (if found on the locale system), or
-else, *totally* disable translation of messages.
+will respectively bypass any pre-existing `gettext' to use the
+internationalizing routines provided within this package, or else,
+_totally_ disable translation of messages.
When you already have GNU `gettext' installed on your system and run
configure without an option for your new package, `configure' will
@@ -83,18 +81,10 @@ package is more recent, you should use
to prevent auto-detection.
- By default the configuration process will not test for the `catgets'
-function and therefore they will not be used. The reasons are already
-given above: the emulation on top of `catgets' cannot provide all the
-extensions provided by the GNU `gettext' library. If you nevertheless
-want to use the `catgets' functions use
-
- ./configure --with-catgets
-
-to enable the test for `catgets' (this causes no harm if `catgets' is
-not available on your system). If you really select this option we
-would like to hear about the reasons because we cannot think of any
-good one ourself.
+ The configuration process will not test for the `catgets' function
+and therefore it will not be used. The reason is that even an
+emulation of `gettext' on top of `catgets' could not provide all the
+extensions of the GNU `gettext' library.
Internationalized packages have usually many `po/LL.po' files, where
LL gives an ISO 639 two-letter code identifying the language. Unless
@@ -110,22 +100,35 @@ Using This Package
As a user, if your language has been installed for this package, you
only have to set the `LANG' environment variable to the appropriate
-ISO 639 `LL' two-letter code prior to using the programs in the
-package. For example, let's suppose that you speak German. At the
-shell prompt, merely execute `setenv LANG de' (in `csh'),
-`export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash'). This
-can be done from your `.login' or `.profile' file, once and for all.
-
- An operating system might already offer message localization for
-many of its programs, while other programs have been installed locally
-with the full capabilities of GNU `gettext'. Just using `gettext'
-extended syntax for `LANG' would break proper localization of already
-available operating system programs. In this case, users should set
-both `LANGUAGE' and `LANG' variables in their environment, as programs
-using GNU `gettext' give preference to `LANGUAGE'. For example, some
-Swedish users would rather read translations in German than English for
-when Swedish is not available. This is easily accomplished by setting
-`LANGUAGE' to `sv:de' while leaving `LANG' to `sv'.
+`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code,
+and `CC' is an ISO 3166 two-letter country code. For example, let's
+suppose that you speak German and live in Germany. At the shell
+prompt, merely execute `setenv LANG de_DE' (in `csh'),
+`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
+This can be done from your `.login' or `.profile' file, once and for
+all.
+
+ You might think that the country code specification is redundant.
+But in fact, some languages have dialects in different countries. For
+example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
+country code serves to distinguish the dialects.
+
+ Not all programs have translations for all languages. By default, an
+English message is shown in place of a nonexistent translation. If you
+understand other languages, you can set up a priority list of languages.
+This is done through a different environment variable, called
+`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG'
+for the purpose of message handling, but you still need to have `LANG'
+set to the primary language; this is required by other parts of the
+system libraries. For example, some Swedish users who would rather
+read translations in German than English for when Swedish is not
+available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
+
+ In the `LANGUAGE' environment variable, but not in the `LANG'
+environment variable, `LL_CC' combinations can be abbreviated as `LL'
+to denote the language's main dialect. For example, `de' is equivalent
+to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
+(Portuguese as spoken in Portugal) in this context.
Translating Teams
=================
@@ -133,33 +136,21 @@ Translating Teams
For the Free Translation Project to be a success, we need interested
people who like their own language and write it well, and who are also
able to synergize with other translators speaking the same language.
-Each translation team has its own mailing list, courtesy of Linux
-International. You may reach your translation team at the address
-`LL@li.org', replacing LL by the two-letter ISO 639 code for your
-language. Language codes are *not* the same as the country codes given
-in ISO 3166. The following translation teams exist, as of December
-1997:
-
- Chinese `zh', Czech `cs', Danish `da', Dutch `nl', English `en',
- Esperanto `eo', Finnish `fi', French `fr', German `de', Hungarian
- `hu', Irish `ga', Italian `it', Indonesian `id', Japanese `ja',
- Korean `ko', Latin `la', Norwegian `no', Persian `fa', Polish
- `pl', Portuguese `pt', Russian `ru', Slovenian `sl', Spanish `es',
- Swedish `sv', and Turkish `tr'.
-
-For example, you may reach the Chinese translation team by writing to
-`zh@li.org'.
-
- If you'd like to volunteer to *work* at translating messages, you
+Each translation team has its own mailing list. The up-to-date list of
+teams can be found at the Free Translation Project's homepage,
+`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
+area.
+
+ If you'd like to volunteer to _work_ at translating messages, you
should become a member of the translating team for your own language.
-The subscribing address is *not* the same as the list itself, it has
+The subscribing address is _not_ the same as the list itself, it has
`-request' appended. For example, speakers of Swedish can send a
message to `sv-request@li.org', having this message body:
subscribe
Keep in mind that team members are expected to participate
-*actively* in translations, or at solving translational difficulties,
+_actively_ in translations, or at solving translational difficulties,
rather than merely lurking around. If your team does not exist yet and
you want to start one, or if you are unsure about what to do or how to
get started, please write to `translation@iro.umontreal.ca' to reach the
@@ -173,42 +164,128 @@ Available Packages
==================
Languages are not equally supported in all packages. The following
-matrix shows the current state of internationalization, as of December
-1997. The matrix shows, in regard of each package, for which languages
-PO files have been submitted to translation coordination.
-
- Ready PO files cs da de en es fi fr it ja ko nl no pl pt ru sl sv
- .----------------------------------------------------.
- bash | [] [] [] | 3
- bison | [] [] [] | 3
- clisp | [] [] [] [] | 4
- cpio | [] [] [] [] [] [] | 6
- diffutils | [] [] [] [] [] | 5
- enscript | [] [] [] [] [] [] | 6
- fileutils | [] [] [] [] [] [] [] [] [] [] | 10
- findutils | [] [] [] [] [] [] [] [] [] | 9
- flex | [] [] [] [] | 4
- gcal | [] [] [] [] [] | 5
- gettext | [] [] [] [] [] [] [] [] [] [] [] | 12
- grep | [] [] [] [] [] [] [] [] [] [] | 10
- hello | [] [] [] [] [] [] [] [] [] [] [] | 11
- id-utils | [] [] [] | 3
- indent | [] [] [] [] [] | 5
- libc | [] [] [] [] [] [] [] | 7
- m4 | [] [] [] [] [] [] | 6
- make | [] [] [] [] [] [] | 6
- music | [] [] | 2
- ptx | [] [] [] [] [] [] [] [] | 8
- recode | [] [] [] [] [] [] [] [] [] | 9
- sh-utils | [] [] [] [] [] [] [] [] | 8
- sharutils | [] [] [] [] [] [] | 6
- tar | [] [] [] [] [] [] [] [] [] [] [] | 11
- texinfo | [] [] [] | 3
- textutils | [] [] [] [] [] [] [] [] [] | 9
- wdiff | [] [] [] [] [] [] [] [] | 8
- `----------------------------------------------------'
- 17 languages cs da de en es fi fr it ja ko nl no pl pt ru sl sv
- 27 packages 6 4 25 1 18 1 26 2 1 12 20 9 19 7 4 7 17 179
+matrix shows the current state of internationalization, as of September
+2001. The matrix shows, in regard of each package, for which languages
+PO files have been submitted to translation coordination, with a
+translation percentage of at least 50%.
+
+ Ready PO files bg cs da de el en eo es et fi fr gl he hr id it ja
+ +----------------------------------------------------+
+ a2ps | [] [] [] |
+ bash | [] [] [] [] |
+ bfd | |
+ binutils | [] |
+ bison | [] [] [] [] [] |
+ clisp | [] [] [] [] |
+ cpio | [] [] [] [] [] |
+ diffutils | [] [] [] [] [] [] [] |
+ enscript | [] [] |
+ error | [] [] |
+ fetchmail | |
+ fileutils | [] [] [] [] [] [] [] [] |
+ findutils | [] [] [] [] [] [] [] [] |
+ flex | [] [] [] |
+ freetype | |
+ gas | |
+ gawk | [] [] |
+ gcal | |
+ gcc | |
+ gettext | [] [] [] [] [] [] [] [] [] [] |
+ gnupg | [] [] [] [] [] [] [] |
+ gprof | |
+ grep | [] [] [] [] [] [] [] [] |
+ hello | [] [] [] [] [] [] [] [] [] [] [] |
+ id-utils | [] [] [] |
+ indent | [] [] [] [] [] |
+ jpilot | [] |
+ kbd | |
+ ld | [] |
+ libc | [] [] [] [] [] [] [] [] |
+ lilypond | [] |
+ lynx | [] [] [] [] |
+ m4 | [] [] [] [] [] [] [] [] |
+ make | [] [] [] [] [] [] |
+ mysecretdiary | [] |
+ nano | [] [] [] |
+ opcodes | |
+ parted | [] [] [] |
+ ptx | [] [] [] [] [] [] [] |
+ python | |
+ recode | [] [] [] [] [] [] [] [] [] |
+ sed | [] [] [] [] [] [] [] [] [] [] [] [] |
+ sh-utils | [] [] [] [] [] [] [] [] [] [] |
+ sharutils | [] [] [] [] [] [] [] [] |
+ sketch | |
+ soundtracker | [] [] [] |
+ sp | |
+ tar | [] [] [] [] [] [] [] [] |
+ texinfo | [] [] [] [] [] [] |
+ textutils | [] [] [] [] [] [] [] [] |
+ util-linux | [] [] |
+ wdiff | [] [] [] |
+ wget | [] [] [] [] [] [] [] [] [] [] |
+ +----------------------------------------------------+
+ bg cs da de el en eo es et fi fr gl he hr id it ja
+ 0 14 24 32 11 1 8 23 13 1 33 22 4 0 7 9 18
+
+ ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh
+ +----------------------------------------------------+
+ a2ps | [] [] [] | 6
+ bash | | 4
+ bfd | | 0
+ binutils | | 1
+ bison | [] | 6
+ clisp | [] | 5
+ cpio | [] [] [] [] [] | 10
+ diffutils | [] [] [] [] | 11
+ enscript | [] [] [] | 5
+ error | [] [] | 4
+ fetchmail | | 0
+ fileutils | [] [] [] [] [] [] [] [] [] | 17
+ findutils | [] [] [] [] [] [] [] [] | 16
+ flex | [] [] [] | 6
+ freetype | | 0
+ gas | | 0
+ gawk | [] | 3
+ gcal | | 0
+ gcc | | 0
+ gettext | [] [] [] [] [] [] [] [] | 18
+ gnupg | [] [] [] | 10
+ gprof | | 0
+ grep | [] [] [] [] | 12
+ hello | [] [] [] [] [] [] [] [] [] [] [] | 22
+ id-utils | [] [] [] | 6
+ indent | [] [] [] [] [] [] [] | 12
+ jpilot | | 1
+ kbd | [] | 1
+ ld | | 1
+ libc | [] [] [] [] [] [] [] [] | 16
+ lilypond | [] [] | 3
+ lynx | [] [] [] [] | 8
+ m4 | [] [] [] [] | 12
+ make | [] [] [] [] [] [] | 12
+ mysecretdiary | | 1
+ nano | [] | 4
+ opcodes | [] | 1
+ parted | [] [] | 5
+ ptx | [] [] [] [] [] [] [] [] | 15
+ python | | 0
+ recode | [] [] [] [] | 13
+ sed | [] [] [] [] [] [] [] | 19
+ sh-utils | [] [] [] [] [] [] [] [] [] [] [] | 21
+ sharutils | [] [] [] | 11
+ sketch | | 0
+ soundtracker | | 3
+ sp | | 0
+ tar | [] [] [] [] [] [] [] | 15
+ texinfo | [] | 7
+ textutils | [] [] [] [] [] [] [] [] | 16
+ util-linux | [] [] | 4
+ wdiff | [] [] [] [] | 7
+ wget | [] [] [] [] [] [] [] | 17
+ +----------------------------------------------------+
+ 33 teams ko lv nb nl nn no pl pt pt_BR ru sk sl sv tr uk zh
+ 53 domains 9 1 6 20 0 6 17 1 13 25 10 11 23 21 2 2 387
Some counters in the preceding matrix are higher than the number of
visible blocks let us expect. This is because a few extra PO files are
@@ -221,7 +298,27 @@ distributed as such by its maintainer. There might be an observable
lag between the mere existence a PO file and its wide availability in a
distribution.
- If December 1997 seems to be old, you may fetch a more recent copy
-of this `ABOUT-NLS' file on most GNU archive sites.
+ If September 2001 seems to be old, you may fetch a more recent copy
+of this `ABOUT-NLS' file on most GNU archive sites. The most
+up-to-date matrix with full percentage details can be found at
+`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
+
+Using `gettext' in new packages
+===============================
+
+ If you are writing a freely available program and want to
+internationalize it you are welcome to use GNU `gettext' in your
+package. Of course you have to respect the GNU Library General Public
+License which covers the use of the GNU `gettext' library. This means
+in particular that even non-free programs can use `libintl' as a shared
+library, whereas only free software can use `libintl' as a static
+library or use modified versions of `libintl'.
+
+ Once the sources are changed appropriately and the setup can handle
+to use of `gettext' the only thing missing are the translations. The
+Free Translation Project is also available for packages which are not
+developed inside the GNU project. Therefore the information given above
+applies also for every other Free Software Project. Contact
+`translation@iro.umontreal.ca' to make the `.pot' files available to
+the translation teams.
-$Id$
diff --git a/ChangeLog b/ChangeLog
@@ -11,6 +11,7 @@ CVS code -
start="regex" end="regex". Cleaned up nanorc:parse_colors(),
added parse_next_regex(), changes to edit_add in winio.c(),
changes to colortype, cleaning up some old cruft.
+ - Upgrade to gettext 0.10.40, probably broke everything again :)
- color.c:
do_colorinit()
- Moved some comments and braces around so color can work
diff --git a/Makefile.am b/Makefile.am
@@ -2,8 +2,9 @@
AUTOMAKE_OPTIONS = gnu no-dependencies
M4DIR = $(srcdir)/m4
ACLOCAL_AMFLAGS = -I $(M4DIR)
-ACINCLUDE_INPUTS = $(M4DIR)/gettext.m4 $(M4DIR)/largefile.m4 \
- $(M4DIR)/lcmessage.m4 $(M4DIR)/progtest.m4
+ACINCLUDE_INPUTS = $(M4DIR)/gettext.m4 $(M4DIR)/iconv.m4 $(M4DIR)/largefile.m4 \
+ $(M4DIR)/progtest.m4 $(M4DIR)/codeset.m4 $(M4DIR)/glibc21.m4 \
+ $(M4DIR)/isc-posix.m4 $(M4DIR)/lcmessage.m4
bin_PROGRAMS = nano
nano_SOURCES = color.c \
diff --git a/configure.in b/configure.in
@@ -304,6 +304,6 @@ then
fi
dnl i18n stuff - pretty incomplete for now
-NANO_AM_GNU_GETTEXT
+AM_GNU_GETTEXT
AC_OUTPUT([Makefile intl/Makefile po/Makefile.in])
diff --git a/intl/ChangeLog b/intl/ChangeLog
@@ -1,1086 +1,4 @@
-1998-04-29 Ulrich Drepper <drepper@cygnus.com>
+2001-09-13 GNU <bug-gnu-utils@gnu.org>
- * intl/localealias.c (read_alias_file): Use unsigned char for
- local variables. Remove unused variable tp.
- * intl/l10nflist.c (_nl_normalize_codeset): Use unsigned char *
- for type of codeset. For loosing Solaris systems.
- * intl/loadinfo.h: Adapt prototype of _nl_normalize_codeset.
- * intl/bindtextdom.c (BINDTEXTDOMAIN): Don't define local variable
- len if not needed.
- Patches by Jim Meyering.
+ * Version 0.10.40 released.
-1998-04-28 Ulrich Drepper <drepper@cygnus.com>
-
- * loadmsgcat.c (_nl_load_domain): Don't assign the element use_mmap if
- mmap is not supported.
-
- * hash-string.h: Don't include <values.h>.
-
-1998-04-27 Ulrich Drepper <drepper@cygnus.com>
-
- * textdomain.c: Use strdup is available.
-
- * localealias.c: Define HAVE_MEMPCPY so that we can use this
- function. Define and use semapahores to protect modfication of
- global objects when compiling for glibc. Add code to allow
- freeing alias table.
-
- * l10nflist.c: Don't assume stpcpy not being a macro.
-
- * gettextP.h: Define internal_function macri if not already done.
- Use glibc byte-swap macros instead of defining SWAP when compiled
- for glibc.
- (struct loaded_domain): Add elements to allow unloading.
-
- * Makefile.in (distclean): Don't remove libintl.h here.
-
- * bindtextdomain.c: Carry over changes from glibc. Use strdup if
- available.
-
- * dcgettext.c: Don't assume stpcpy not being a macro. Mark internal
- functions. Add memory freeing code for glibc.
-
- * dgettext.c: Update copyright.
-
- * explodename.c: Include stdlib.h and string.h only if they exist.
- Use strings.h eventually.
-
- * finddomain.c: Mark internal functions. Use strdup if available.
- Add memory freeing code for glibc.
-
-1997-10-10 20:00 Ulrich Drepper <drepper@cygnus.com>
-
- * libgettext.h: Fix dummy textdomain and bindtextdomain macros.
- They should return reasonable values.
- Reported by Tom Tromey <tromey@cygnus.com>.
-
-1997-09-16 03:33 Ulrich Drepper <drepper@cygnus.com>
-
- * libgettext.h: Define PARAMS also to `args' if __cplusplus is defined.
- * intlh.inst.in: Likewise.
- Reported by Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>.
-
- * libintl.glibc: Update from current glibc version.
-
-1997-09-06 02:10 Ulrich Drepper <drepper@cygnus.com>
-
- * intlh.inst.in: Reformat copyright.
-
-1997-08-19 15:22 Ulrich Drepper <drepper@cygnus.com>
-
- * dcgettext.c (DCGETTEXT): Remove wrong comment.
-
-1997-08-16 00:13 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (install-data): Don't change directory to install.
-
-1997-08-01 14:30 Ulrich Drepper <drepper@cygnus.com>
-
- * cat-compat.c: Fix copyright.
-
- * localealias.c: Don't define strchr unless !HAVE_STRCHR.
-
- * loadmsgcat.c: Update copyright. Fix typos.
-
- * l10nflist.c: Don't define strchr unless !HAVE_STRCHR.
- (_nl_make_l10nflist): Handle sponsor and revision correctly.
-
- * gettext.c: Update copyright.
- * gettext.h: Likewise.
- * hash-string.h: Likewise.
-
- * finddomain.c: Remoave dead code. Define strchr only if
- !HAVE_STRCHR.
-
- * explodename.c: Include <sys/types.h>.
-
- * explodename.c: Reformat copyright text.
- (_nl_explode_name): Fix typo.
-
- * dcgettext.c: Define and use __set_errno.
- (guess_category_value): Don't use setlocale if HAVE_LC_MESSAGES is
- not defined.
-
- * bindtextdom.c: Pretty printing.
-
-1997-05-01 02:25 Ulrich Drepper <drepper@cygnus.com>
-
- * dcgettext.c (guess_category_value): Don't depend on
- HAVE_LC_MESSAGES. We don't need the macro here.
- Patch by Bruno Haible <haible@ilog.fr>.
-
- * cat-compat.c (textdomain): DoN't refer to HAVE_SETLOCALE_NULL
- macro. Instead use HAVE_LOCALE_NULL and define it when using
- glibc, as in dcgettext.c.
- Patch by Bruno Haible <haible@ilog.fr>.
-
- * Makefile.in (CPPFLAGS): New variable. Reported by Franc,ois
- Pinard.
-
-Mon Mar 10 06:51:17 1997 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in: Implement handling of libtool.
-
- * gettextP.h: Change data structures for use of generic lowlevel
- i18n file handling.
-
-Wed Dec 4 20:21:18 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * textdomain.c: Put parentheses around arguments of memcpy macro
- definition.
- * localealias.c: Likewise.
- * l10nflist.c: Likewise.
- * finddomain.c: Likewise.
- * bindtextdom.c: Likewise.
- Reported by Thomas Esken.
-
-Mon Nov 25 22:57:51 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * textdomain.c: Move definition of `memcpy` macro to right
- position.
-
-Fri Nov 22 04:01:58 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * finddomain.c [!HAVE_STRING_H && !_LIBC]: Define memcpy using
- bcopy if not already defined. Reported by Thomas Esken.
- * bindtextdom.c: Likewise.
- * l10nflist.c: Likewise.
- * localealias.c: Likewise.
- * textdomain.c: Likewise.
-
-Tue Oct 29 11:10:27 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (libdir): Change to use exec_prefix instead of
- prefix. Reported by Knut-HЕvardAksnes <etokna@eto.ericsson.se>.
-
-Sat Aug 31 03:07:09 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * l10nflist.c (_nl_normalize_codeset): We convert to lower case,
- so don't prepend uppercase `ISO' for only numeric arg.
-
-Fri Jul 19 00:15:46 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * l10nflist.c: Move inclusion of argz.h, ctype.h, stdlib.h after
- definition of _GNU_SOURCE. Patch by Roland McGrath.
-
- * Makefile.in (uninstall): Fix another bug with `for' loop and
- empty arguments. Patch by Jim Meyering. Correct name os
- uninstalled files: no intl- prefix anymore.
-
- * Makefile.in (install-data): Again work around shells which
- cannot handle mpty for list. Reported by Jim Meyering.
-
-Sat Jul 13 18:11:35 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (install): Split goal. Now depend on install-exec
- and install-data.
- (install-exec, install-data): New goals. Created from former
- install goal.
- Reported by Karl Berry.
-
-Sat Jun 22 04:58:14 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (MKINSTALLDIRS): New variable. Path to
- mkinstalldirs script.
- (install): use MKINSTALLDIRS variable or if the script is not present
- try to find it in the $top_scrdir).
-
-Wed Jun 19 02:56:56 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * l10nflist.c: Linux libc *partly* includes the argz_* functions.
- Grr. Work around by renaming the static version and use macros
- for renaming.
-
-Tue Jun 18 20:11:17 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * l10nflist.c: Correct presence test macros of __argz_* functions.
-
- * l10nflist.c: Include <argz.h> based on test of it instead when
- __argz_* functions are available.
- Reported by Andreas Schwab.
-
-Thu Jun 13 15:17:44 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * explodename.c, l10nflist.c: Define NULL for dumb systems.
-
-Tue Jun 11 17:05:13 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * intlh.inst.in, libgettext.h (dcgettext): Rename local variable
- result to __result to prevent name clash.
-
- * l10nflist.c, localealias.c, dcgettext.c: Define _GNU_SOURCE to
- get prototype for stpcpy and strcasecmp.
-
- * intlh.inst.in, libgettext.h: Move declaration of
- `_nl_msg_cat_cntr' outside __extension__ block to prevent warning
- from gcc's -Wnested-extern option.
-
-Fri Jun 7 01:58:00 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (install): Remove comment.
-
-Thu Jun 6 17:28:17 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (install): Work around for another Buglix stupidity.
- Always use an `else' close for `if's. Reported by Nelson Beebe.
-
- * Makefile.in (intlh.inst): Correct typo in phony rule.
- Reported by Nelson Beebe.
-
-Thu Jun 6 01:49:52 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * dcgettext.c (read_alias_file): Rename variable alloca_list to
- block_list as the macro calls assume.
- Patch by Eric Backus.
-
- * localealias.c [!HAVE_ALLOCA]: Define alloca as macro using
- malloc.
- (read_alias_file): Rename varriabe alloca_list to block_list as the
- macro calls assume.
- Patch by Eric Backus.
-
- * l10nflist.c: Correct conditional for <argz.h> inclusion.
- Reported by Roland McGrath.
-
- * Makefile.in (all): Depend on all-@USE_INCLUDED_LIBINTL@, not
- all-@USE_NLS@.
-
- * Makefile.in (install): intlh.inst comes from local dir, not
- $(srcdir).
-
- * Makefile.in (intlh.inst): Special handling of this goal. If
- used in gettext, this is really a rul to construct this file. If
- used in any other package it is defined as a .PHONY rule with
- empty body.
-
- * finddomain.c: Extract locale file information handling into
- l10nfile.c. Rename local stpcpy__ function to stpcpy.
-
- * dcgettext.c (stpcpy): Add local definition.
-
- * l10nflist.c: Solve some portability problems. Patches partly by
- Thomas Esken. Add local definition of stpcpy.
-
-Tue Jun 4 02:47:49 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * intlh.inst.in: Don't depend including <locale.h> on
- HAVE_LOCALE_H. Instead configure must rewrite this fiile
- depending on the result of the configure run.
-
- * Makefile.in (install): libintl.inst is now called intlh.inst.
- Add rules for updating intlh.inst from intlh.inst.in.
-
- * libintl.inst: Renamed to intlh.inst.in.
-
- * localealias.c, dcgettext.c [__GNUC__]: Define HAVE_ALLOCA to 1
- because gcc has __buitlin_alloca.
- Reported by Roland McGrath.
-
-Mon Jun 3 00:32:16 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * Makefile.in (installcheck): New goal to fulfill needs of
- automake's distcheck.
-
- * Makefile.in (install): Reorder commands so that VERSION is
- found.
-
- * Makefile.in (gettextsrcdir): Now use subdirectory intl/ in
- @datadir@/gettext.
- (COMSRCS): Add l10nfile.c.
- (OBJECTS): Add l10nfile.o.
- (DISTFILES): Rename to DISTFILE.normal. Remove $(DISTFILES.common).
- (DISTFILE.gettext): Remove $(DISTFILES.common).
- (all-gettext): Remove goal.
- (install): If $(PACKAGE) = gettext install, otherwose do nothing. No
- package but gettext itself should install libintl.h + headers.
- (dist): Extend goal to work for gettext, too.
- (dist-gettext): Remove goal.
-
- * dcgettext.c [!HAVE_ALLOCA]: Define macro alloca by using malloc.
-
-Sun Jun 2 17:33:06 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * loadmsgcat.c (_nl_load_domain): Parameter is now comes from
- find_l10nfile.
-
-Sat Jun 1 02:23:03 1996 Ulrich Drepper <drepper@cygnus.com>
-
- * l10nflist.c (__argz_next): Add definition.
-
- * dcgettext.c [!HAVE_ALLOCA]: Add code for handling missing alloca
- code. Use new l10nfile handling.
-
- * localealias.c [!HAVE_ALLOCA]: Add code for handling missing
- alloca code.
-
- * l10nflist.c: Initial revision.
-
-Tue Apr 2 18:51:18 1996 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (all-gettext): New goal. Same as all-yes.
-
-Thu Mar 28 23:01:22 1996 Karl Eichwalder <ke@ke.central.de>
-
- * Makefile.in (gettextsrcdir): Define using @datadir@.
-
-Tue Mar 26 12:39:14 1996 Ulrich Drepper <drepper@myware>
-
- * finddomain.c: Include <ctype.h>. Reported by Roland McGrath.
-
-Sat Mar 23 02:00:35 1996 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (stpcpy): Rename to stpcpy__ to prevent clashing
- with external declaration.
-
-Sat Mar 2 00:47:09 1996 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (all-no): Rename from all_no.
-
-Sat Feb 17 00:25:59 1996 Ulrich Drepper <drepper@myware>
-
- * gettextP.h [loaded_domain]: Array `successor' must now contain up
- to 63 elements (because of codeset name normalization).
-
- * finddomain.c: Implement codeset name normalization.
-
-Thu Feb 15 04:39:09 1996 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (all): Define to `all-@USE_NLS@'.
- (all-yes, all_no): New goals. `all-no' is noop, `all-yes'
- is former all.
-
-Mon Jan 15 21:46:01 1996 Howard Gayle <howard@hal.com>
-
- * localealias.c (alias_compare): Increment string pointers in loop
- of strcasecmp replacement.
-
-Fri Dec 29 21:16:34 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (install-src): Who commented this goal out ? :-)
-
-Fri Dec 29 15:08:16 1995 Ulrich Drepper <drepper@myware>
-
- * dcgettext.c (DCGETTEXT): Save `errno'. Failing system calls
- should not effect it because a missing catalog is no error.
- Reported by Harald K<o:>nig <koenig@tat.physik.uni-tuebingen.de>.
-
-Tue Dec 19 22:09:13 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (Makefile): Explicitly use $(SHELL) for running
- shell scripts.
-
-Fri Dec 15 17:34:59 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
-
- * Makefile.in (install-src): Only install library and header when
- we use the own implementation. Don't do it when using the
- system's gettext or catgets functions.
-
- * dcgettext.c (find_msg): Must not swap domain->hash_size here.
-
-Sat Dec 9 16:24:37 1995 Ulrich Drepper <drepper@myware>
-
- * localealias.c, libintl.inst, libgettext.h, hash-string.h,
- gettextP.h, finddomain.c, dcgettext.c, cat-compat.c:
- Use PARAMS instead of __P. Suggested by Roland McGrath.
-
-Tue Dec 5 11:39:14 1995 Larry Schwimmer <rosebud@cyclone.stanford.edu>
-
- * libgettext.h: Use `#if !defined (_LIBINTL_H)' instead of `#if
- !_LIBINTL_H' because Solaris defines _LIBINTL_H as empty.
-
-Mon Dec 4 15:42:07 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (install-src):
- Install libintl.inst instead of libintl.h.install.
-
-Sat Dec 2 22:51:38 1995 Marcus Daniels <marcus@sysc.pdx.edu>
-
- * cat-compat.c (textdomain):
- Reverse order in which files are tried you load. First
- try local file, when this failed absolute path.
-
-Wed Nov 29 02:03:53 1995 Nelson H. F. Beebe <beebe@math.utah.edu>
-
- * cat-compat.c (bindtextdomain): Add missing { }.
-
-Sun Nov 26 18:21:41 1995 Ulrich Drepper <drepper@myware>
-
- * libintl.inst: Add missing __P definition. Reported by Nelson Beebe.
-
- * Makefile.in:
- Add dummy `all' and `dvi' goals. Reported by Tom Tromey.
-
-Sat Nov 25 16:12:01 1995 Franc,ois Pinard <pinard@iro.umontreal.ca>
-
- * hash-string.h: Capitalize arguments of macros.
-
-Sat Nov 25 12:01:36 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (DISTFILES): Prevent files names longer than 13
- characters. libintl.h.glibc->libintl.glibc,
- libintl.h.install->libintl.inst. Reported by Joshua R. Poulson.
-
-Sat Nov 25 11:31:12 1995 Eric Backus <ericb@lsid.hp.com>
-
- * dcgettext.c: Fix bug in preprocessor conditionals.
-
-Sat Nov 25 02:35:27 1995 Nelson H. F. Beebe <beebe@math.utah.edu>
-
- * libgettext.h: Solaris cc does not understand
- #if !SYMBOL1 && !SYMBOL2. Sad but true.
-
-Thu Nov 23 16:22:14 1995 Ulrich Drepper <drepper@myware>
-
- * hash-string.h (hash_string):
- Fix for machine with >32 bit `unsigned long's.
-
- * dcgettext.c (DCGETTEXT):
- Fix horrible bug in loop for alternative translation.
-
-Thu Nov 23 01:45:29 1995 Ulrich Drepper <drepper@myware>
-
- * po2tbl.sed.in, linux-msg.sed, xopen-msg.sed:
- Some further simplifications in message number generation.
-
-Mon Nov 20 21:08:43 1995 Ulrich Drepper <drepper@myware>
-
- * libintl.h.glibc: Use __const instead of const in prototypes.
-
- * Makefile.in (install-src):
- Install libintl.h.install instead of libintl.h. This
- is a stripped-down version. Suggested by Peter Miller.
-
- * libintl.h.install, libintl.h.glibc: Initial revision.
-
- * localealias.c (_nl_expand_alias, read_alias_file):
- Protect prototypes in type casts by __P.
-
-Tue Nov 14 16:43:58 1995 Ulrich Drepper <drepper@myware>
-
- * hash-string.h: Correct prototype for hash_string.
-
-Sun Nov 12 12:42:30 1995 Ulrich Drepper <drepper@myware>
-
- * hash-string.h (hash_string): Add prototype.
-
- * gettextP.h: Fix copyright.
- (SWAP): Add prototype.
-
-Wed Nov 8 22:56:33 1995 Ulrich Drepper <drepper@myware>
-
- * localealias.c (read_alias_file): Forgot sizeof.
- Avoid calling *printf function. This introduces a big overhead.
- Patch by Roland McGrath.
-
-Tue Nov 7 14:21:08 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c, cat-compat.c: Wrong indentation in #if for stpcpy.
-
- * finddomain.c (stpcpy):
- Define substitution function local. The macro was to flaky.
-
- * cat-compat.c: Fix typo.
-
- * xopen-msg.sed, linux-msg.sed:
- While bringing message number to right place only accept digits.
-
- * linux-msg.sed, xopen-msg.sed: Now that the counter does not have
- leading 0s we don't need to remove them. Reported by Marcus
- Daniels.
-
- * Makefile.in (../po/cat-id-tbl.o): Use $(top_srdir) in
- dependency. Reported by Marcus Daniels.
-
- * cat-compat.c: (stpcpy) [!_LIBC && !HAVE_STPCPY]: Define replacement.
- Generally cleanup using #if instead of #ifndef.
-
- * Makefile.in: Correct typos in comment. By Franc,ois Pinard.
-
-Mon Nov 6 00:27:02 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (install-src): Don't install libintl.h and libintl.a
- if we use an available gettext implementation.
-
-Sun Nov 5 22:02:08 1995 Ulrich Drepper <drepper@myware>
-
- * libgettext.h: Fix typo: HAVE_CATGETTS -> HAVE_CATGETS. Reported
- by Franc,ois Pinard.
-
- * libgettext.h: Use #if instead of #ifdef/#ifndef.
-
- * finddomain.c:
- Comments describing what has to be done should start with FIXME.
-
-Sun Nov 5 19:38:01 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (DISTFILES): Split. Use DISTFILES with normal meaning.
- DISTFILES.common names the files common to both dist goals.
- DISTFILES.gettext are the files only distributed in GNU gettext.
-
-Sun Nov 5 17:32:54 1995 Ulrich Drepper <drepper@myware>
-
- * dcgettext.c (DCGETTEXT): Correct searching in derived locales.
- This was necessary since a change in _nl_find_msg several weeks
- ago. I really don't know this is still not fixed.
-
-Sun Nov 5 12:43:12 1995 Ulrich Drepper <drepper@myware>
-
- * loadmsgcat.c (_nl_load_domain): Test for FILENAME == NULL. This
- might mark a special condition.
-
- * finddomain.c (make_entry_rec): Don't make illegal entry as decided.
-
- * Makefile.in (dist): Suppress error message when ln failed.
- Get files from $(srcdir) explicitly.
-
- * libgettext.h (gettext_const): Rename to gettext_noop.
-
-Fri Nov 3 07:36:50 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (make_entry_rec):
- Protect against wrong locale names by testing mask.
-
- * libgettext.h (gettext_const): Add macro definition.
- Capitalize macro arguments.
-
-Thu Nov 2 23:15:51 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (_nl_find_domain):
- Test for pointer != NULL before accessing value.
- Reported by Tom Tromey.
-
- * gettext.c (NULL):
- Define as (void*)0 instad of 0. Reported by Franc,ois Pinard.
-
-Mon Oct 30 21:28:52 1995 Ulrich Drepper <drepper@myware>
-
- * po2tbl.sed.in: Serious typo bug fixed by Jim Meyering.
-
-Sat Oct 28 23:20:47 1995 Ulrich Drepper <drepper@myware>
-
- * libgettext.h: Disable dcgettext optimization for Solaris 2.3.
-
- * localealias.c (alias_compare):
- Peter Miller reported that tolower in some systems is
- even dumber than I thought. Protect call by `isupper'.
-
-Fri Oct 27 22:22:51 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (libdir, includedir): New variables.
- (install-src): Install libintl.a and libintl.h in correct dirs.
-
-Fri Oct 27 22:07:29 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (SOURCES): Fix typo: intrl.compat.c -> intl-compat.c.
-
- * po2tbl.sed.in: Patch for buggy SEDs by Christian von Roques.
-
- * localealias.c:
- Fix typo and superflous test. Reported by Christian von Roques.
-
-Fri Oct 6 11:52:05 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (_nl_find_domain):
- Correct some remainder from the pre-CEN syntax. Now
- we don't have a constant number of successors anymore.
-
-Wed Sep 27 21:41:13 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (DISTFILES): Add libintl.h.glibc.
-
- * Makefile.in (dist-libc): Add goal for packing sources for glibc.
- (COMSRCS, COMHDRS): Splitted to separate sources shared with glibc.
-
- * loadmsgcat.c: Forget to continue #if line.
-
- * localealias.c:
- [_LIBC]: Rename strcasecmp to __strcasecmp to keep ANSI C name
- space clean.
-
- * dcgettext.c, finddomain.c: Better comment to last change.
-
- * loadmsgcat.c:
- [_LIBC]: Rename fstat, open, close, read, mmap, and munmap to
- __fstat, __open, __close, __read, __mmap, and __munmap resp
- to keep ANSI C name space clean.
-
- * finddomain.c:
- [_LIBC]: Rename stpcpy to __stpcpy to keep ANSI C name space clean.
-
- * dcgettext.c:
- [_LIBC]: Rename getced and stpcpy to __getcwd and __stpcpy resp to
- keep ANSI C name space clean.
-
- * libgettext.h:
- Include sys/types.h for those old SysV systems out there.
- Reported by Francesco Potorti`.
-
- * loadmsgcat.c (use_mmap): Define if compiled for glibc.
-
- * bindtextdom.c: Include all those standard headers
- unconditionally if _LIBC is defined.
-
- * finddomain.c: Fix 2 times defiend -> defined.
-
- * textdomain.c: Include libintl.h instead of libgettext.h when
- compiling for glibc. Include all those standard headers
- unconditionally if _LIBC is defined.
-
- * localealias.c, loadmsgcat.c: Prepare to be compiled in glibc.
-
- * gettext.c:
- Include libintl.h instead of libgettext.h when compiling for glibc.
- Get NULL from stddef.h if we compile for glibc.
-
- * finddomain.c: Include libintl.h instead of libgettext.h when
- compiling for glibc. Include all those standard headers
- unconditionally if _LIBC is defined.
-
- * dcgettext.c: Include all those standard headers unconditionally
- if _LIBC is defined.
-
- * dgettext.c: If compiled in glibc include libintl.h instead of
- libgettext.h.
- (locale.h): Don't rely on HAVE_LOCALE_H when compiling for glibc.
-
- * dcgettext.c: If compiled in glibc include libintl.h instead of
- libgettext.h.
- (getcwd): Don't rely on HAVE_GETCWD when compiling for glibc.
-
- * bindtextdom.c:
- If compiled in glibc include libintl.h instead of libgettext.h.
-
-Mon Sep 25 22:23:06 1995 Ulrich Drepper <drepper@myware>
-
- * localealias.c (_nl_expand_alias): Don't call bsearch if NMAP <= 0.
- Reported by Marcus Daniels.
-
- * cat-compat.c (bindtextdomain):
- String used in putenv must not be recycled.
- Reported by Marcus Daniels.
-
- * libgettext.h (__USE_GNU_GETTEXT):
- Additional symbol to signal that we use GNU gettext
- library.
-
- * cat-compat.c (bindtextdomain):
- Fix bug with the strange stpcpy replacement.
- Reported by Nelson Beebe.
-
-Sat Sep 23 08:23:51 1995 Ulrich Drepper <drepper@myware>
-
- * cat-compat.c: Include <string.h> for stpcpy prototype.
-
- * localealias.c (read_alias_file):
- While expand strdup code temporary variable `cp' hided
- higher level variable with same name. Rename to `tp'.
-
- * textdomain.c (textdomain):
- Avoid warning by using temporary variable in strdup code.
-
- * finddomain.c (_nl_find_domain): Remove unused variable `application'.
-
-Thu Sep 21 15:51:44 1995 Ulrich Drepper <drepper@myware>
-
- * localealias.c (alias_compare):
- Use strcasecmp() only if available. Else use
- implementation in place.
-
- * intl-compat.c:
- Wrapper functions now call *__ functions instead of __*.
-
- * libgettext.h: Declare prototypes for *__ functions instead for __*.
-
- * cat-compat.c, loadmsgcat.c:
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
- of the standard libc and so prevent libintl.a from being used
- standalone.
-
- * bindtextdom.c:
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
- of the standard libc and so prevent libintl.a from being used
- standalone.
- Rename to bindtextdomain__ if not used in GNU C Library.
-
- * dgettext.c:
- Rename function to dgettext__ if not used in GNU C Library.
-
- * gettext.c:
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
- of the standard libc and so prevent libintl.a from being used
- standalone.
- Functions now called gettext__ if not used in GNU C Library.
-
- * dcgettext.c, localealias.c, textdomain.c, finddomain.c:
- Don't use xmalloc, xstrdup, and stpcpy. These functions are not part
- of the standard libc and so prevent libintl.a from being used
- standalone.
-
-Sun Sep 17 23:14:49 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c: Correct some bugs in handling of CEN standard
- locale definitions.
-
-Thu Sep 7 01:49:28 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c: Implement CEN syntax.
-
- * gettextP.h (loaded_domain): Extend number of successors to 31.
-
-Sat Aug 19 19:25:29 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (aliaspath): Remove path to X11 locale dir.
-
- * Makefile.in: Make install-src depend on install. This helps
- gettext to install the sources and other packages can use the
- install goal.
-
-Sat Aug 19 15:19:33 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (uninstall): Remove stuff installed by install-src.
-
-Tue Aug 15 13:13:53 1995 Ulrich Drepper <drepper@myware>
-
- * VERSION.in: Initial revision.
-
- * Makefile.in (DISTFILES):
- Add VERSION file. This is not necessary for gettext, but
- for other packages using this library.
-
-Tue Aug 15 06:16:44 1995 Ulrich Drepper <drepper@myware>
-
- * gettextP.h (_nl_find_domain):
- New prototype after changing search strategy.
-
- * finddomain.c (_nl_find_domain):
- We now try only to find a specified catalog. Fall back to other
- catalogs listed in the locale list is now done in __dcgettext.
-
- * dcgettext.c (__dcgettext):
- Now we provide message fall back even to different languages.
- I.e. if a message is not available in one language all the other
- in the locale list a tried. Formerly fall back was only possible
- within one language. Implemented by moving one loop from
- _nl_find_domain to here.
-
-Mon Aug 14 23:45:50 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (gettextsrcdir):
- Directory where source of GNU gettext library are made
- available.
- (INSTALL, INSTALL_DATA): Programs used for installing sources.
- (gettext-src): New. Rule to install GNU gettext sources for use in
- gettextize shell script.
-
-Sun Aug 13 14:40:48 1995 Ulrich Drepper <drepper@myware>
-
- * loadmsgcat.c (_nl_load_domain):
- Use mmap for loading only when munmap function is
- also available.
-
- * Makefile.in (install): Depend on `all' goal.
-
-Wed Aug 9 11:04:33 1995 Ulrich Drepper <drepper@myware>
-
- * localealias.c (read_alias_file):
- Do not overwrite '\n' when terminating alias value string.
-
- * localealias.c (read_alias_file):
- Handle long lines. Ignore the rest not fitting in
- the buffer after the initial `fgets' call.
-
-Wed Aug 9 00:54:29 1995 Ulrich Drepper <drepper@myware>
-
- * gettextP.h (_nl_load_domain):
- Add prototype, replacing prototype for _nl_load_msg_cat.
-
- * finddomain.c (_nl_find_domain):
- Remove unneeded variable filename and filename_len.
- (expand_alias): Remove prototype because functions does not
- exist anymore.
-
- * localealias.c (read_alias_file):
- Change type of fname_len parameter to int.
- (xmalloc): Add prototype.
-
- * loadmsgcat.c: Better prototypes for xmalloc.
-
-Tue Aug 8 22:30:39 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (_nl_find_domain):
- Allow alias name to be constructed from the four components.
-
- * Makefile.in (aliaspath): New variable. Set to preliminary value.
- (SOURCES): Add localealias.c.
- (OBJECTS): Add localealias.o.
-
- * gettextP.h: Add prototype for _nl_expand_alias.
-
- * finddomain.c: Aliasing handled in intl/localealias.c.
-
- * localealias.c: Aliasing for locale names.
-
- * bindtextdom.c: Better prototypes for xmalloc and xstrdup.
-
-Mon Aug 7 23:47:42 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (DISTFILES): gettext.perl is now found in misc/.
-
- * cat-compat.c (bindtextdomain):
- Correct implementation. dirname parameter was not used.
- Reported by Marcus Daniels.
-
- * gettextP.h (loaded_domain):
- New fields `successor' and `decided' for oo, lazy
- message handling implementation.
-
- * dcgettext.c:
- Adopt for oo, lazy message handliing.
- Now we can inherit translations from less specific locales.
- (find_msg): New function.
-
- * loadmsgcat.c, finddomain.c:
- Complete rewrite. Implement oo, lazy message handling :-).
- We now have an additional environment variable `LANGUAGE' with
- a higher priority than LC_ALL for the LC_MESSAGE locale.
- Here we can set a colon separated list of specifications each
- of the form `language[_territory[.codeset]][@modifier]'.
-
-Sat Aug 5 09:55:42 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (unistd.h):
- Include to get _PC_PATH_MAX defined on system having it.
-
-Fri Aug 4 22:42:00 1995 Ulrich Drepper <drepper@myware>
-
- * finddomain.c (stpcpy): Include prototype.
-
- * Makefile.in (dist): Remove `copying instead' message.
-
-Wed Aug 2 18:52:03 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (ID, TAGS): Do not use $^.
-
-Tue Aug 1 20:07:11 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (TAGS, ID): Use $^ as command argument.
- (TAGS): Give etags -o option t write to current directory,
- not $(srcdir).
- (ID): Use $(srcdir) instead os $(top_srcdir)/src.
- (distclean): Remove ID.
-
-Sun Jul 30 11:51:46 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (gnulocaledir):
- New variable, always using share/ for data directory.
- (DEFS): Add GNULOCALEDIR, used in finddomain.c.
-
- * finddomain.c (_nl_default_dirname):
- Set to GNULOCALEDIR, because it always has to point
- to the directory where GNU gettext Library writes it to.
-
- * intl-compat.c (textdomain, bindtextdomain):
- Undefine macros before function definition.
-
-Sat Jul 22 01:10:02 1995 Ulrich Drepper <drepper@myware>
-
- * libgettext.h (_LIBINTL_H):
- Protect definition in case where this file is included as
- libgettext.h on Solaris machines. Add comment about this.
-
-Wed Jul 19 02:36:42 1995 Ulrich Drepper <drepper@myware>
-
- * intl-compat.c (textdomain): Correct typo.
-
-Wed Jul 19 01:51:35 1995 Ulrich Drepper <drepper@myware>
-
- * dcgettext.c (dcgettext): Function now called __dcgettext.
-
- * dgettext.c (dgettext): Now called __dgettext and calls
- __dcgettext.
-
- * gettext.c (gettext):
- Function now called __gettext and calls __dgettext.
-
- * textdomain.c (textdomain): Function now called __textdomain.
-
- * bindtextdom.c (bindtextdomain): Function now called
- __bindtextdomain.
-
- * intl-compat.c: Initial revision.
-
- * Makefile.in (SOURCES): Add intl-compat.c.
- (OBJECTS): We always compile the GNU gettext library functions.
- OBJECTS contains all objects but cat-compat.o, ../po/cat-if-tbl.o,
- and intl-compat.o.
- (GETTOBJS): Contains now only intl-compat.o.
-
- * libgettext.h:
- Re-include protection matches dualistic character of libgettext.h.
- For all functions in GNU gettext library define __ counter part.
-
- * finddomain.c (strchr): Define as index if not found in C library.
- (_nl_find_domain): For relative paths paste / in between.
-
-Tue Jul 18 16:37:45 1995 Ulrich Drepper <drepper@myware>
-
- * loadmsgcat.c, finddomain.c: Add inclusion of sys/types.h.
-
- * xopen-msg.sed: Fix bug with `msgstr ""' lines.
- A little bit better comments.
-
-Tue Jul 18 01:18:27 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in:
- po-mode.el, makelinks, combine-sh are now found in ../misc.
-
- * po-mode.el, makelinks, combine-sh, elisp-comp:
- Moved to ../misc/.
-
- * libgettext.h, gettextP.h, gettext.h: Uniform test for __STDC__.
-
-Sun Jul 16 22:33:02 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (INSTALL, INSTALL_DATA): New variables.
- (install-data, uninstall): Install/uninstall .elc file.
-
- * po-mode.el (Installation comment):
- Add .pox as possible extension of .po files.
-
-Sun Jul 16 13:23:27 1995 Ulrich Drepper <drepper@myware>
-
- * elisp-comp: Complete new version by Franc,ois: This does not
- fail when not compiling in the source directory.
-
-Sun Jul 16 00:12:17 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (../po/cat-id-tbl.o):
- Use $(MAKE) instead of make for recursive make.
-
- * Makefile.in (.el.elc): Use $(SHELL) instead of /bin/sh.
- (install-exec): Add missing dummy goal.
- (install-data, uninstall): @ in multi-line shell command at
- beginning, not in front of echo. Reported by Eric Backus.
-
-Sat Jul 15 00:21:28 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (DISTFILES):
- Rename libgettext.perl to gettext.perl to fit in 14 chars
- file systems.
-
- * gettext.perl:
- Rename to gettext.perl to fit in 14 chars file systems.
-
-Thu Jul 13 23:17:20 1995 Ulrich Drepper <drepper@myware>
-
- * cat-compat.c: If !STDC_HEADERS try to include malloc.h.
-
-Thu Jul 13 20:55:02 1995 Ulrich Drepper <drepper@myware>
-
- * po2tbl.sed.in: Pretty printing.
-
- * linux-msg.sed, xopen-msg.sed:
- Correct bugs with handling substitute flags in branches.
-
- * hash-string.h (hash_string):
- Old K&R compilers don't under stand `unsigned char'.
-
- * gettext.h (nls_uint32):
- Some old K&R compilers (eg HP) don't understand `unsigned int'.
-
- * cat-compat.c (msg_to_cat_id): De-ANSI-fy prototypes.
-
-Thu Jul 13 01:34:33 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (ELCFILES): New variable.
- (DISTFILES): Add elisp-comp.
- Add implicit rule for .el -> .elc compilation.
- (install-data): install $ELCFILES
- (clean): renamed po-to-tbl and po-to-msg to po2tbl and po2msg resp.
-
- * elisp-comp: Initial revision
-
-Wed Jul 12 16:14:52 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in:
- cat-id-tbl.c is now found in po/. This enables us to use an identical
- intl/ directory in all packages.
-
- * dcgettext.c (dcgettext): hashing does not work for table size <= 2.
-
- * textdomain.c: fix typo (#if def -> #if defined)
-
-Tue Jul 11 18:44:43 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in (stamp-cat-id): use top_srcdir to address source files
- (DISTFILES,distclean): move tupdate.perl to src/
-
- * po-to-tbl.sed.in:
- add additional jump to clear change flag to recognize multiline strings
-
-Tue Jul 11 01:32:50 1995 Ulrich Drepper <drepper@myware>
-
- * textdomain.c: Protect inclusion of stdlib.h and string.h.
-
- * loadmsgcat.c: Protect inclusion of stdlib.h.
-
- * libgettext.h: Protect inclusion of locale.h.
- Allow use in C++ programs.
- Define NULL is not happened already.
-
- * Makefile.in (DISTFILES): ship po-to-tbl.sed.in instead of
- po-to-tbl.sed.
- (distclean): remove po-to-tbl.sed and tupdate.perl.
-
- * tupdate.perl.in: Substitute Perl path even in exec line.
- Don't include entries without translation from old .po file.
-
-Tue Jul 4 00:41:51 1995 Ulrich Drepper <drepper@myware>
-
- * tupdate.perl.in: use "Updated: " in msgid "".
-
- * cat-compat.c: Fix typo (LOCALDIR -> LOCALEDIR).
- Define getenv if !__STDC__.
-
- * bindtextdom.c: Protect stdlib.h and string.h inclusion.
- Define free if !__STDC__.
-
- * finddomain.c: Change DEF_MSG_DOM_DIR to LOCALEDIR.
- Define free if !__STDC__.
-
- * cat-compat.c: Change DEF_MSG_DOM_DIR to LOCALEDIR.
-
-Mon Jul 3 23:56:30 1995 Ulrich Drepper <drepper@myware>
-
- * Makefile.in: Use LOCALEDIR instead of DEF_MSG_DOM_DIR.
- Remove unneeded $(srcdir) from Makefile.in dependency.
-
- * makelinks: Add copyright and short description.
-
- * po-mode.el: Last version for 0.7.
-
- * tupdate.perl.in: Fix die message.
-
- * dcgettext.c: Protect include of string.h.
-
- * gettext.c: Protect include of stdlib.h and further tries to get NULL.
-
- * finddomain.c: Some corrections in includes.
-
- * Makefile.in (INCLUDES): Prune list correct path to Makefile.in.
-
- * po-to-tbl.sed: Adopt for new .po file format.
-
- * linux-msg.sed, xopen-msg.sed: Adopt for new .po file format.
-
-Sun Jul 2 23:55:03 1995 Ulrich Drepper <drepper@myware>
-
- * tupdate.perl.in: Complete rewrite for new .po file format.
-
-Sun Jul 2 02:06:50 1995 Ulrich Drepper <drepper@myware>
-
- * First official release. This directory contains all the code
- needed to internationalize own packages. It provides functions
- which allow to use the X/Open catgets function with an interface
- like the Uniforum gettext function. For system which does not
- have neither of those a complete implementation is provided.
diff --git a/intl/Makefile.in b/intl/Makefile.in
@@ -1,19 +1,20 @@
# Makefile for directory with message catalog handling in GNU NLS Utilities.
-# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+# Copyright (C) 1995-1998, 2000, 2001 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)
+# 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
+# by the Free Software Foundation; either version 2, 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.
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Library 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
PACKAGE = @PACKAGE@
VERSION = @VERSION@
@@ -28,75 +29,106 @@ VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
transform = @program_transform_name@
-libdir = $(exec_prefix)/lib
-includedir = $(prefix)/include
-datadir = $(prefix)/@DATADIRNAME@
+libdir = @libdir@
+includedir = @includedir@
+datadir = @datadir@
localedir = $(datadir)/locale
-gnulocaledir = $(prefix)/share/locale
-gettextsrcdir = @datadir@/gettext/intl
-aliaspath = $(localedir):.
+gettextsrcdir = $(datadir)/gettext/intl
+aliaspath = $(localedir)
subdir = intl
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
MKINSTALLDIRS = @MKINSTALLDIRS@
+mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
-l = @l@
+l = @INTL_LIBTOOL_SUFFIX_PREFIX@
AR = ar
CC = @CC@
LIBTOOL = @LIBTOOL@
RANLIB = @RANLIB@
+YACC = @INTLBISON@ -y -d
+YFLAGS = --name-prefix=__gettext
-DEFS = -DLOCALEDIR=\"$(localedir)\" -DGNULOCALEDIR=\"$(gnulocaledir)\" \
--DLOCALE_ALIAS_PATH=\"$(aliaspath)\" @DEFS@
+DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
+-DLIBDIR=\"$(libdir)\" @DEFS@
CPPFLAGS = @CPPFLAGS@
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
-HEADERS = $(COMHDRS) libgettext.h loadinfo.h
+HEADERS = $(COMHDRS) libgnuintl.h libgettext.h loadinfo.h
COMHDRS = gettext.h gettextP.h hash-string.h
-SOURCES = $(COMSRCS) intl-compat.c cat-compat.c
+SOURCES = $(COMSRCS) intl-compat.c
COMSRCS = bindtextdom.c dcgettext.c dgettext.c gettext.c \
finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c \
-explodename.c
+explodename.c dcigettext.c dcngettext.c dngettext.c ngettext.c plural.y \
+localcharset.c
OBJECTS = @INTLOBJS@ bindtextdom.$lo dcgettext.$lo dgettext.$lo gettext.$lo \
finddomain.$lo loadmsgcat.$lo localealias.$lo textdomain.$lo l10nflist.$lo \
-explodename.$lo
-CATOBJS = cat-compat.$lo ../po/cat-id-tbl.$lo
+explodename.$lo dcigettext.$lo dcngettext.$lo dngettext.$lo ngettext.$lo \
+plural.$lo localcharset.$lo
GETTOBJS = intl-compat.$lo
-DISTFILES.common = ChangeLog Makefile.in linux-msg.sed po2tbl.sed.in \
-xopen-msg.sed $(HEADERS) $(SOURCES)
+DISTFILES.common = Makefile.in \
+config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES)
+DISTFILES.generated = plural.c
DISTFILES.normal = VERSION
-DISTFILES.gettext = libintl.glibc intlh.inst.in
+DISTFILES.gettext = COPYING.LIB-2 COPYING.LIB-2.1 libintl.glibc
+DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c
+
+# Libtool's library version information for libintl.
+# Before making a gettext release, the gettext maintainer must change this
+# according to the libtool documentation, section "Library interface versions".
+# Maintainers of other packages that include the intl directory must *not*
+# change these values.
+LTV_CURRENT=1
+LTV_REVISION=1
+LTV_AGE=0
.SUFFIXES:
-.SUFFIXES: .c .o .lo
+.SUFFIXES: .c .y .o .lo .sin .sed
.c.o:
$(COMPILE) $<
.c.lo:
$(LIBTOOL) --mode=compile $(COMPILE) $<
-INCLUDES = -I.. -I. -I$(top_srcdir)/intl -I$(top_srcdir)/lib
+.y.c:
+ $(YACC) $(YFLAGS) --output $@ $<
+ rm -f $*.h
-all: all-@USE_INCLUDED_LIBINTL@
+.sin.sed:
+ sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $< > t-$@
+ mv t-$@ $@
+
+INCLUDES = -I.. -I. -I$(top_srcdir)/intl
-all-yes: libintl.$la intlh.inst
-all-no:
+all: all-@USE_INCLUDED_LIBINTL@
+all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed
+all-no: all-no-@BUILD_INCLUDED_LIBINTL@
+all-no-yes: libgnuintl.$la
+all-no-no:
-libintl.a: $(OBJECTS)
+libintl.a libgnuintl.a: $(OBJECTS)
rm -f $@
$(AR) cru $@ $(OBJECTS)
$(RANLIB) $@
-libintl.la: $(OBJECTS)
- $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ $(OBJECTS) \
- -version-info 1:0 -rpath $(libdir)
+libintl.la libgnuintl.la: $(OBJECTS)
+ $(LIBTOOL) --mode=link \
+ $(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \
+ $(OBJECTS) @LIBICONV@ \
+ -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
+ -rpath $(libdir) \
+ -no-undefined
-../po/cat-id-tbl.$lo: ../po/cat-id-tbl.c $(top_srcdir)/po/$(PACKAGE).pot
- cd ../po && $(MAKE) cat-id-tbl.$lo
+libintl.h: libgnuintl.h
+ cp $(srcdir)/libgnuintl.h libintl.h
+
+charset.alias: config.charset
+ $(SHELL) $(srcdir)/config.charset '@host@' > t-$@
+ mv t-$@ $@
check: all
@@ -104,36 +136,70 @@ check: all
# only use the library should use install instead.
# We must not install the libintl.h/libintl.a files if we are on a
-# system which has the gettext() function in its C library or in a
-# separate library or use the catgets interface. A special case is
-# where configure found a previously installed GNU gettext library.
+# system which has the GNU gettext() function in its C library or in a
+# separate library.
# If you want to use the one which comes with this version of the
# package, you have to use `configure --with-included-gettext'.
install: install-exec install-data
install-exec: all
if test "$(PACKAGE)" = "gettext" \
&& test '@INTLOBJS@' = '$(GETTOBJS)'; then \
- if test -r $(MKINSTALLDIRS); then \
- $(MKINSTALLDIRS) $(libdir) $(includedir); \
+ $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
+ $(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \
+ $(LIBTOOL) --mode=install \
+ $(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \
+ else \
+ : ; \
+ fi
+ if test '@USE_INCLUDED_LIBINTL@' = yes; then \
+ $(mkinstalldirs) $(DESTDIR)$(libdir); \
+ temp=$(DESTDIR)$(libdir)/t-charset.alias; \
+ dest=$(DESTDIR)$(libdir)/charset.alias; \
+ if test -f $(DESTDIR)$(libdir)/charset.alias; then \
+ orig=$(DESTDIR)$(libdir)/charset.alias; \
+ sed -f ref-add.sed $$orig > $$temp; \
+ $(INSTALL_DATA) $$temp $$dest; \
+ rm -f $$temp; \
else \
- $(top_srcdir)/mkinstalldirs $(libdir) $(includedir); \
+ if test @GLIBC21@ = no; then \
+ orig=charset.alias; \
+ sed -f ref-add.sed $$orig > $$temp; \
+ $(INSTALL_DATA) $$temp $$dest; \
+ rm -f $$temp; \
+ fi; \
fi; \
- $(INSTALL_DATA) intlh.inst $(includedir)/libintl.h; \
- $(INSTALL_DATA) libintl.a $(libdir)/libintl.a; \
+ $(mkinstalldirs) $(DESTDIR)$(localedir); \
+ test -f $(DESTDIR)$(localedir)/locale.alias \
+ && orig=$(DESTDIR)$(localedir)/locale.alias \
+ || orig=$(srcdir)/locale.alias; \
+ temp=$(DESTDIR)$(localedir)/t-locale.alias; \
+ dest=$(DESTDIR)$(localedir)/locale.alias; \
+ sed -f ref-add.sed $$orig > $$temp; \
+ $(INSTALL_DATA) $$temp $$dest; \
+ rm -f $$temp; \
else \
: ; \
fi
install-data: all
if test "$(PACKAGE)" = "gettext"; then \
- if test -r $(MKINSTALLDIRS); then \
- $(MKINSTALLDIRS) $(gettextsrcdir); \
- else \
- $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
- fi; \
- $(INSTALL_DATA) VERSION $(gettextsrcdir)/VERSION; \
- dists="$(DISTFILES.common)"; \
+ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+ $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \
+ $(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \
+ dists="COPYING.LIB-2 COPYING.LIB-2.1 $(DISTFILES.common)"; \
for file in $$dists; do \
- $(INSTALL_DATA) $(srcdir)/$$file $(gettextsrcdir)/$$file; \
+ $(INSTALL_DATA) $(srcdir)/$$file \
+ $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ chmod a+x $(DESTDIR)$(gettextsrcdir)/config.charset; \
+ dists="$(DISTFILES.generated)"; \
+ for file in $$dists; do \
+ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
+ $(INSTALL_DATA) $$dir/$$file \
+ $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ dists="$(DISTFILES.obsolete)"; \
+ for file in $$dists; do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
done; \
else \
: ; \
@@ -143,14 +209,51 @@ install-data: all
installcheck:
uninstall:
- dists="$(DISTFILES.common)"; \
- for file in $$dists; do \
- rm -f $(gettextsrcdir)/$$file; \
- done
+ if test "$(PACKAGE)" = "gettext" \
+ && test '@INTLOBJS@' = '$(GETTOBJS)'; then \
+ rm -f $(DESTDIR)$(includedir)/libintl.h; \
+ $(LIBTOOL) --mode=uninstall \
+ rm -f $(DESTDIR)$(libdir)/libintl.$la; \
+ else \
+ : ; \
+ fi
+ if test '@USE_INCLUDED_LIBINTL@' = yes; then \
+ if test -f $(DESTDIR)$(libdir)/charset.alias; then \
+ temp=$(DESTDIR)$(libdir)/t-charset.alias; \
+ dest=$(DESTDIR)$(libdir)/charset.alias; \
+ sed -f ref-del.sed $$dest > $$temp; \
+ if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
+ rm -f $$dest; \
+ else \
+ $(INSTALL_DATA) $$temp $$dest; \
+ fi; \
+ rm -f $$temp; \
+ fi; \
+ if test -f $(DESTDIR)$(localedir)/locale.alias; then \
+ temp=$(DESTDIR)$(localedir)/t-locale.alias; \
+ dest=$(DESTDIR)$(localedir)/locale.alias; \
+ sed -f ref-del.sed $$dest > $$temp; \
+ if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
+ rm -f $$dest; \
+ else \
+ $(INSTALL_DATA) $$temp $$dest; \
+ fi; \
+ rm -f $$temp; \
+ fi; \
+ else \
+ : ; \
+ fi
+ if test "$(PACKAGE)" = "gettext"; then \
+ for file in VERSION ChangeLog COPYING.LIB-2 COPYING.LIB-2.1 $(DISTFILES.common) $(DISTFILES.generated); do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
info dvi:
-$(OBJECTS): ../config.h libgettext.h
+$(OBJECTS): ../config.h libgnuintl.h
bindtextdom.$lo finddomain.$lo loadmsgcat.$lo: gettextP.h gettext.h loadinfo.h
dcgettext.$lo: gettextP.h gettext.h hash-string.h loadinfo.h
@@ -166,12 +269,19 @@ ID: $(HEADERS) $(SOURCES)
mostlyclean:
- rm -f *.a *.o *.lo core core.*
+ rm -f *.a *.la *.o *.lo core core.*
+ rm -f libintl.h charset.alias ref-add.sed ref-del.sed
+ rm -f -r .libs _libs
clean: mostlyclean
distclean: clean
- rm -f Makefile ID TAGS po2msg.sed po2tbl.sed libintl.h
+ rm -f Makefile ID TAGS
+ if test "$(PACKAGE)" = gettext; then \
+ rm -f ChangeLog.inst $(DISTFILES.normal); \
+ else \
+ : ; \
+ fi
maintainer-clean: distclean
@echo "This command is intended for maintainers to use;"
@@ -181,34 +291,23 @@ maintainer-clean: distclean
# GNU gettext needs not contain the file `VERSION' but contains some
# other files which should not be distributed in other packages.
distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
-dist distdir: Makefile $(DISTFILES)
+dist distdir: Makefile
if test "$(PACKAGE)" = gettext; then \
additional="$(DISTFILES.gettext)"; \
else \
additional="$(DISTFILES.normal)"; \
fi; \
- for file in $(DISTFILES.common) $$additional; do \
- ln $(srcdir)/$$file $(distdir) 2> /dev/null \
- || cp -p $(srcdir)/$$file $(distdir); \
+ $(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \
+ for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \
+ if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
+ ln $$dir/$$file $(distdir) 2> /dev/null \
+ || cp -p $$dir/$$file $(distdir); \
done
-dist-libc:
- tar zcvf intl-glibc.tar.gz $(COMSRCS) $(COMHDRS) libintl.h.glibc
-
Makefile: Makefile.in ../config.status
cd .. \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-# The dependency for intlh.inst is different in gettext and all other
-# packages. Because we cannot you GNU make features we have to solve
-# the problem while rewriting Makefile.in.
-@GT_YES@intlh.inst: intlh.inst.in ../config.status
-@GT_YES@ cd .. \
-@GT_YES@ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \
-@GT_YES@ $(SHELL) ./config.status
-@GT_NO@.PHONY: intlh.inst
-@GT_NO@intlh.inst:
-
# Tell versions [3.59,3.63) of GNU make not to export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/intl/VERSION b/intl/VERSION
@@ -1 +1 @@
-GNU gettext library from gettext-0.10.35
+GNU gettext library from gettext-0.10.40
diff --git a/intl/bindtextdom.c b/intl/bindtextdom.c
@@ -1,50 +1,58 @@
/* Implementation of the bindtextdomain(3) function
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1995-1998, 2000, 2001 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)
+ 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
+ by the Free Software Foundation; either version 2, 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.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#else
-# ifdef HAVE_MALLOC_H
-# include <malloc.h>
-# else
-void free ();
-# endif
-#endif
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
-#if defined HAVE_STRING_H || defined _LIBC
-# include <string.h>
+#ifdef _LIBC
+# include <libintl.h>
#else
-# include <strings.h>
-# ifndef memcpy
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
-# endif
+# include "libgnuintl.h"
#endif
+#include "gettextP.h"
#ifdef _LIBC
-# include <libintl.h>
+/* We have to handle multi-threaded applications. */
+# include <bits/libc-lock.h>
#else
-# include "libgettext.h"
+/* Provide dummy implementation if this is outside glibc. */
+# define __libc_rwlock_define(CLASS, NAME)
+# define __libc_rwlock_wrlock(NAME)
+# define __libc_rwlock_unlock(NAME)
+#endif
+
+/* The internal variables in the standalone libintl.a must have different
+ names than the internal variables in GNU libc, otherwise programs
+ using libintl.a cannot be linked statically. */
+#if !defined _LIBC
+# define _nl_default_dirname _nl_default_dirname__
+# define _nl_domain_bindings _nl_domain_bindings__
+#endif
+
+/* Some compilers, like SunOS4 cc, don't have offsetof in <stddef.h>. */
+#ifndef offsetof
+# define offsetof(type,ident) ((size_t)&(((type*)0)->ident))
#endif
-#include "gettext.h"
-#include "gettextP.h"
/* @@ end of prolog @@ */
@@ -54,6 +62,9 @@ extern const char _nl_default_dirname[];
/* List with bindings of specific domains. */
extern struct binding *_nl_domain_bindings;
+/* Lock variable to protect the global data in the gettext implementation. */
+__libc_rwlock_define (extern, _nl_state_lock)
+
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
@@ -61,25 +72,48 @@ extern struct binding *_nl_domain_bindings;
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define BINDTEXTDOMAIN __bindtextdomain
+# define BIND_TEXTDOMAIN_CODESET __bind_textdomain_codeset
# ifndef strdup
# define strdup(str) __strdup (str)
# endif
#else
# define BINDTEXTDOMAIN bindtextdomain__
+# define BIND_TEXTDOMAIN_CODESET bind_textdomain_codeset__
#endif
-/* Specify that the DOMAINNAME message catalog will be found
- in DIRNAME rather than in the system locale data base. */
-char *
-BINDTEXTDOMAIN (domainname, dirname)
+/* Prototypes for local functions. */
+static void set_binding_values PARAMS ((const char *domainname,
+ const char **dirnamep,
+ const char **codesetp));
+
+/* Specifies the directory name *DIRNAMEP and the output codeset *CODESETP
+ to be used for the DOMAINNAME message catalog.
+ If *DIRNAMEP or *CODESETP is NULL, the corresponding attribute is not
+ modified, only the current value is returned.
+ If DIRNAMEP or CODESETP is NULL, the corresponding attribute is neither
+ modified nor returned. */
+static void
+set_binding_values (domainname, dirnamep, codesetp)
const char *domainname;
- const char *dirname;
+ const char **dirnamep;
+ const char **codesetp;
{
struct binding *binding;
+ int modified;
/* Some sanity checks. */
if (domainname == NULL || domainname[0] == '\0')
- return NULL;
+ {
+ if (dirnamep)
+ *dirnamep = NULL;
+ if (codesetp)
+ *codesetp = NULL;
+ return;
+ }
+
+ __libc_rwlock_wrlock (_nl_state_lock);
+
+ modified = 0;
for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
{
@@ -95,83 +129,173 @@ BINDTEXTDOMAIN (domainname, dirname)
}
}
- if (dirname == NULL)
- /* The current binding has be to returned. */
- return binding == NULL ? (char *) _nl_default_dirname : binding->dirname;
-
if (binding != NULL)
{
- /* The domain is already bound. If the new value and the old
- one are equal we simply do nothing. Otherwise replace the
- old binding. */
- if (strcmp (dirname, binding->dirname) != 0)
+ if (dirnamep)
{
- char *new_dirname;
+ const char *dirname = *dirnamep;
- if (strcmp (dirname, _nl_default_dirname) == 0)
- new_dirname = (char *) _nl_default_dirname;
+ if (dirname == NULL)
+ /* The current binding has be to returned. */
+ *dirnamep = binding->dirname;
else
{
+ /* The domain is already bound. If the new value and the old
+ one are equal we simply do nothing. Otherwise replace the
+ old binding. */
+ char *result = binding->dirname;
+ if (strcmp (dirname, result) != 0)
+ {
+ if (strcmp (dirname, _nl_default_dirname) == 0)
+ result = (char *) _nl_default_dirname;
+ else
+ {
#if defined _LIBC || defined HAVE_STRDUP
- new_dirname = strdup (dirname);
- if (new_dirname == NULL)
- return NULL;
+ result = strdup (dirname);
#else
- size_t len = strlen (dirname) + 1;
- new_dirname = (char *) malloc (len);
- if (new_dirname == NULL)
- return NULL;
-
- memcpy (new_dirname, dirname, len);
+ size_t len = strlen (dirname) + 1;
+ result = (char *) malloc (len);
+ if (__builtin_expect (result != NULL, 1))
+ memcpy (result, dirname, len);
#endif
+ }
+
+ if (__builtin_expect (result != NULL, 1))
+ {
+ if (binding->dirname != _nl_default_dirname)
+ free (binding->dirname);
+
+ binding->dirname = result;
+ modified = 1;
+ }
+ }
+ *dirnamep = result;
}
+ }
- if (binding->dirname != _nl_default_dirname)
- free (binding->dirname);
+ if (codesetp)
+ {
+ const char *codeset = *codesetp;
- binding->dirname = new_dirname;
+ if (codeset == NULL)
+ /* The current binding has be to returned. */
+ *codesetp = binding->codeset;
+ else
+ {
+ /* The domain is already bound. If the new value and the old
+ one are equal we simply do nothing. Otherwise replace the
+ old binding. */
+ char *result = binding->codeset;
+ if (result == NULL || strcmp (codeset, result) != 0)
+ {
+#if defined _LIBC || defined HAVE_STRDUP
+ result = strdup (codeset);
+#else
+ size_t len = strlen (codeset) + 1;
+ result = (char *) malloc (len);
+ if (__builtin_expect (result != NULL, 1))
+ memcpy (result, codeset, len);
+#endif
+
+ if (__builtin_expect (result != NULL, 1))
+ {
+ if (binding->codeset != NULL)
+ free (binding->codeset);
+
+ binding->codeset = result;
+ binding->codeset_cntr++;
+ modified = 1;
+ }
+ }
+ *codesetp = result;
+ }
}
}
+ else if ((dirnamep == NULL || *dirnamep == NULL)
+ && (codesetp == NULL || *codesetp == NULL))
+ {
+ /* Simply return the default values. */
+ if (dirnamep)
+ *dirnamep = _nl_default_dirname;
+ if (codesetp)
+ *codesetp = NULL;
+ }
else
{
/* We have to create a new binding. */
-#if !defined _LIBC && !defined HAVE_STRDUP
- size_t len;
-#endif
+ size_t len = strlen (domainname) + 1;
struct binding *new_binding =
- (struct binding *) malloc (sizeof (*new_binding));
+ (struct binding *) malloc (offsetof (struct binding, domainname) + len);
+
+ if (__builtin_expect (new_binding == NULL, 0))
+ goto failed;
- if (new_binding == NULL)
- return NULL;
+ memcpy (new_binding->domainname, domainname, len);
+
+ if (dirnamep)
+ {
+ const char *dirname = *dirnamep;
+ if (dirname == NULL)
+ /* The default value. */
+ dirname = _nl_default_dirname;
+ else
+ {
+ if (strcmp (dirname, _nl_default_dirname) == 0)
+ dirname = _nl_default_dirname;
+ else
+ {
+ char *result;
#if defined _LIBC || defined HAVE_STRDUP
- new_binding->domainname = strdup (domainname);
- if (new_binding->domainname == NULL)
- return NULL;
+ result = strdup (dirname);
+ if (__builtin_expect (result == NULL, 0))
+ goto failed_dirname;
#else
- len = strlen (domainname) + 1;
- new_binding->domainname = (char *) malloc (len);
- if (new_binding->domainname == NULL)
- return NULL;
- memcpy (new_binding->domainname, domainname, len);
+ size_t len = strlen (dirname) + 1;
+ result = (char *) malloc (len);
+ if (__builtin_expect (result == NULL, 0))
+ goto failed_dirname;
+ memcpy (result, dirname, len);
#endif
-
- if (strcmp (dirname, _nl_default_dirname) == 0)
- new_binding->dirname = (char *) _nl_default_dirname;
+ dirname = result;
+ }
+ }
+ *dirnamep = dirname;
+ new_binding->dirname = (char *) dirname;
+ }
else
+ /* The default value. */
+ new_binding->dirname = (char *) _nl_default_dirname;
+
+ new_binding->codeset_cntr = 0;
+
+ if (codesetp)
{
+ const char *codeset = *codesetp;
+
+ if (codeset != NULL)
+ {
+ char *result;
+
#if defined _LIBC || defined HAVE_STRDUP
- new_binding->dirname = strdup (dirname);
- if (new_binding->dirname == NULL)
- return NULL;
+ result = strdup (codeset);
+ if (__builtin_expect (result == NULL, 0))
+ goto failed_codeset;
#else
- len = strlen (dirname) + 1;
- new_binding->dirname = (char *) malloc (len);
- if (new_binding->dirname == NULL)
- return NULL;
- memcpy (new_binding->dirname, dirname, len);
+ size_t len = strlen (codeset) + 1;
+ result = (char *) malloc (len);
+ if (__builtin_expect (result == NULL, 0))
+ goto failed_codeset;
+ memcpy (result, codeset, len);
#endif
+ codeset = result;
+ new_binding->codeset_cntr++;
+ }
+ *codesetp = codeset;
+ new_binding->codeset = (char *) codeset;
}
+ else
+ new_binding->codeset = NULL;
/* Now enqueue it. */
if (_nl_domain_bindings == NULL
@@ -191,13 +315,55 @@ BINDTEXTDOMAIN (domainname, dirname)
binding->next = new_binding;
}
- binding = new_binding;
+ modified = 1;
+
+ /* Here we deal with memory allocation failures. */
+ if (0)
+ {
+ failed_codeset:
+ if (new_binding->dirname != _nl_default_dirname)
+ free (new_binding->dirname);
+ failed_dirname:
+ free (new_binding);
+ failed:
+ if (dirnamep)
+ *dirnamep = NULL;
+ if (codesetp)
+ *codesetp = NULL;
+ }
}
- return binding->dirname;
+ /* If we modified any binding, we flush the caches. */
+ if (modified)
+ ++_nl_msg_cat_cntr;
+
+ __libc_rwlock_unlock (_nl_state_lock);
+}
+
+/* Specify that the DOMAINNAME message catalog will be found
+ in DIRNAME rather than in the system locale data base. */
+char *
+BINDTEXTDOMAIN (domainname, dirname)
+ const char *domainname;
+ const char *dirname;
+{
+ set_binding_values (domainname, &dirname, NULL);
+ return (char *) dirname;
+}
+
+/* Specify the character encoding in which the messages from the
+ DOMAINNAME message catalog will be returned. */
+char *
+BIND_TEXTDOMAIN_CODESET (domainname, codeset)
+ const char *domainname;
+ const char *codeset;
+{
+ set_binding_values (domainname, NULL, &codeset);
+ return (char *) codeset;
}
#ifdef _LIBC
-/* Alias for function name in GNU C Library. */
+/* Aliases for function names in GNU C Library. */
weak_alias (__bindtextdomain, bindtextdomain);
+weak_alias (__bind_textdomain_codeset, bind_textdomain_codeset);
#endif
diff --git a/intl/cat-compat.c b/intl/cat-compat.c
@@ -1,262 +0,0 @@
-/* Compatibility code for gettext-using-catgets interface.
- Copyright (C) 1995, 1997 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)
- 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <string.h>
-#else
-char *getenv ();
-# ifdef HAVE_MALLOC_H
-# include <malloc.h>
-# endif
-#endif
-
-#ifdef HAVE_NL_TYPES_H
-# include <nl_types.h>
-#endif
-
-#include "libgettext.h"
-
-/* @@ end of prolog @@ */
-
-/* XPG3 defines the result of `setlocale (category, NULL)' as:
- ``Directs `setlocale()' to query `category' and return the current
- setting of `local'.''
- However it does not specify the exact format. And even worse: POSIX
- defines this not at all. So we can use this feature only on selected
- system (e.g. those using GNU C Library). */
-#ifdef _LIBC
-# define HAVE_LOCALE_NULL
-#endif
-
-/* The catalog descriptor. */
-static nl_catd catalog = (nl_catd) -1;
-
-/* Name of the default catalog. */
-static const char default_catalog_name[] = "messages";
-
-/* Name of currently used catalog. */
-static const char *catalog_name = default_catalog_name;
-
-/* Get ID for given string. If not found return -1. */
-static int msg_to_cat_id PARAMS ((const char *msg));
-
-/* Substitution for systems lacking this function in their C library. */
-#if !_LIBC && !HAVE_STPCPY
-static char *stpcpy PARAMS ((char *dest, const char *src));
-#endif
-
-
-/* Set currently used domain/catalog. */
-char *
-textdomain (domainname)
- const char *domainname;
-{
- nl_catd new_catalog;
- char *new_name;
- size_t new_name_len;
- char *lang;
-
-#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES \
- && defined HAVE_LOCALE_NULL
- lang = setlocale (LC_MESSAGES, NULL);
-#else
- lang = getenv ("LC_ALL");
- if (lang == NULL || lang[0] == '\0')
- {
- lang = getenv ("LC_MESSAGES");
- if (lang == NULL || lang[0] == '\0')
- lang = getenv ("LANG");
- }
-#endif
- if (lang == NULL || lang[0] == '\0')
- lang = "C";
-
- /* See whether name of currently used domain is asked. */
- if (domainname == NULL)
- return (char *) catalog_name;
-
- if (domainname[0] == '\0')
- domainname = default_catalog_name;
-
- /* Compute length of added path element. */
- new_name_len = sizeof (LOCALEDIR) - 1 + 1 + strlen (lang)
- + sizeof ("/LC_MESSAGES/") - 1 + sizeof (PACKAGE) - 1
- + sizeof (".cat");
-
- new_name = (char *) malloc (new_name_len);
- if (new_name == NULL)
- return NULL;
-
- strcpy (new_name, PACKAGE);
- new_catalog = catopen (new_name, 0);
-
- if (new_catalog == (nl_catd) -1)
- {
- /* NLSPATH search didn't work, try absolute path */
- sprintf (new_name, "%s/%s/LC_MESSAGES/%s.cat", LOCALEDIR, lang,
- PACKAGE);
- new_catalog = catopen (new_name, 0);
-
- if (new_catalog == (nl_catd) -1)
- {
- free (new_name);
- return (char *) catalog_name;
- }
- }
-
- /* Close old catalog. */
- if (catalog != (nl_catd) -1)
- catclose (catalog);
- if (catalog_name != default_catalog_name)
- free ((char *) catalog_name);
-
- catalog = new_catalog;
- catalog_name = new_name;
-
- return (char *) catalog_name;
-}
-
-char *
-bindtextdomain (domainname, dirname)
- const char *domainname;
- const char *dirname;
-{
-#if HAVE_SETENV || HAVE_PUTENV
- char *old_val, *new_val, *cp;
- size_t new_val_len;
-
- /* This does not make much sense here but to be compatible do it. */
- if (domainname == NULL)
- return NULL;
-
- /* Compute length of added path element. If we use setenv we don't need
- the first byts for NLSPATH=, but why complicate the code for this
- peanuts. */
- new_val_len = sizeof ("NLSPATH=") - 1 + strlen (dirname)
- + sizeof ("/%L/LC_MESSAGES/%N.cat");
-
- old_val = getenv ("NLSPATH");
- if (old_val == NULL || old_val[0] == '\0')
- {
- old_val = NULL;
- new_val_len += 1 + sizeof (LOCALEDIR) - 1
- + sizeof ("/%L/LC_MESSAGES/%N.cat");
- }
- else
- new_val_len += strlen (old_val);
-
- new_val = (char *) malloc (new_val_len);
- if (new_val == NULL)
- return NULL;
-
-# if HAVE_SETENV
- cp = new_val;
-# else
- cp = stpcpy (new_val, "NLSPATH=");
-# endif
-
- cp = stpcpy (cp, dirname);
- cp = stpcpy (cp, "/%L/LC_MESSAGES/%N.cat:");
-
- if (old_val == NULL)
- {
-# if __STDC__
- stpcpy (cp, LOCALEDIR "/%L/LC_MESSAGES/%N.cat");
-# else
-
- cp = stpcpy (cp, LOCALEDIR);
- stpcpy (cp, "/%L/LC_MESSAGES/%N.cat");
-# endif
- }
- else
- stpcpy (cp, old_val);
-
-# if HAVE_SETENV
- setenv ("NLSPATH", new_val, 1);
- free (new_val);
-# else
- putenv (new_val);
- /* Do *not* free the environment entry we just entered. It is used
- from now on. */
-# endif
-
-#endif
-
- return (char *) domainname;
-}
-
-#undef gettext
-char *
-gettext (msg)
- const char *msg;
-{
- int msgid;
-
- if (msg == NULL || catalog == (nl_catd) -1)
- return (char *) msg;
-
- /* Get the message from the catalog. We always use set number 1.
- The message ID is computed by the function `msg_to_cat_id'
- which works on the table generated by `po-to-tbl'. */
- msgid = msg_to_cat_id (msg);
- if (msgid == -1)
- return (char *) msg;
-
- return catgets (catalog, 1, msgid, (char *) msg);
-}
-
-/* Look through the table `_msg_tbl' which has `_msg_tbl_length' entries
- for the one equal to msg. If it is found return the ID. In case when
- the string is not found return -1. */
-static int
-msg_to_cat_id (msg)
- const char *msg;
-{
- int cnt;
-
- for (cnt = 0; cnt < _msg_tbl_length; ++cnt)
- if (strcmp (msg, _msg_tbl[cnt]._msg) == 0)
- return _msg_tbl[cnt]._msg_number;
-
- return -1;
-}
-
-
-/* @@ begin of epilog @@ */
-
-/* We don't want libintl.a to depend on any other library. So we
- avoid the non-standard function stpcpy. In GNU C Library this
- function is available, though. Also allow the symbol HAVE_STPCPY
- to be defined. */
-#if !_LIBC && !HAVE_STPCPY
-static char *
-stpcpy (dest, src)
- char *dest;
- const char *src;
-{
- while ((*dest++ = *src++) != '\0')
- /* Do nothing. */ ;
- return dest - 1;
-}
-#endif
diff --git a/intl/config.charset b/intl/config.charset
@@ -0,0 +1,438 @@
+#! /bin/sh
+# Output a system dependent table of character encoding aliases.
+#
+# Copyright (C) 2000-2001 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
+# by the Free Software Foundation; either version 2, 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
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+#
+# The table consists of lines of the form
+# ALIAS CANONICAL
+#
+# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)".
+# ALIAS is compared in a case sensitive way.
+#
+# CANONICAL is the GNU canonical name for this character encoding.
+# It must be an encoding supported by libiconv. Support by GNU libc is
+# also desirable. CANONICAL is case insensitive. Usually an upper case
+# MIME charset name is preferred.
+# The current list of GNU canonical charset names is as follows.
+#
+# name used by which systems a MIME name?
+# ASCII, ANSI_X3.4-1968 glibc solaris freebsd
+# ISO-8859-1 glibc aix hpux irix osf solaris freebsd yes
+# ISO-8859-2 glibc aix hpux irix osf solaris freebsd yes
+# ISO-8859-3 glibc yes
+# ISO-8859-4 osf solaris freebsd yes
+# ISO-8859-5 glibc aix hpux irix osf solaris freebsd yes
+# ISO-8859-6 glibc aix hpux solaris yes
+# ISO-8859-7 glibc aix hpux irix osf solaris yes
+# ISO-8859-8 glibc aix hpux osf solaris yes
+# ISO-8859-9 glibc aix hpux irix osf solaris yes
+# ISO-8859-13 glibc
+# ISO-8859-15 glibc aix osf solaris freebsd
+# KOI8-R glibc solaris freebsd yes
+# KOI8-U glibc freebsd yes
+# CP437 dos
+# CP775 dos
+# CP850 aix osf dos
+# CP852 dos
+# CP855 dos
+# CP856 aix
+# CP857 dos
+# CP861 dos
+# CP862 dos
+# CP864 dos
+# CP865 dos
+# CP866 freebsd dos
+# CP869 dos
+# CP874 win32 dos
+# CP922 aix
+# CP932 aix win32 dos
+# CP943 aix
+# CP949 osf win32 dos
+# CP950 win32 dos
+# CP1046 aix
+# CP1124 aix
+# CP1129 aix
+# CP1250 win32
+# CP1251 glibc win32
+# CP1252 aix win32
+# CP1253 win32
+# CP1254 win32
+# CP1255 win32
+# CP1256 win32
+# CP1257 win32
+# GB2312 glibc aix hpux irix solaris freebsd yes
+# EUC-JP glibc aix hpux irix osf solaris freebsd yes
+# EUC-KR glibc aix hpux irix osf solaris freebsd yes
+# EUC-TW glibc aix hpux irix osf solaris
+# BIG5 glibc aix hpux osf solaris freebsd yes
+# BIG5-HKSCS glibc
+# GBK aix osf win32 dos
+# GB18030 glibc
+# SHIFT_JIS hpux osf solaris freebsd yes
+# JOHAB glibc win32
+# TIS-620 glibc aix hpux osf solaris
+# VISCII glibc yes
+# HP-ROMAN8 hpux
+# HP-ARABIC8 hpux
+# HP-GREEK8 hpux
+# HP-HEBREW8 hpux
+# HP-TURKISH8 hpux
+# HP-KANA8 hpux
+# DEC-KANJI osf
+# DEC-HANYU osf
+# UTF-8 glibc aix hpux osf solaris yes
+#
+# Note: Names which are not marked as being a MIME name should not be used in
+# Internet protocols for information interchange (mail, news, etc.).
+#
+# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications
+# must understand both names and treat them as equivalent.
+#
+# The first argument passed to this file is the canonical host specification,
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+
+host="$1"
+os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'`
+echo "# This file contains a table of character encoding aliases,"
+echo "# suitable for operating system '${os}'."
+echo "# It was automatically generated from config.charset."
+# List of references, updated during installation:
+echo "# Packages using this file: "
+case "$os" in
+ linux* | *-gnu*)
+ # With glibc-2.1 or newer, we don't need any canonicalization,
+ # because glibc has iconv and both glibc and libiconv support all
+ # GNU canonical names directly. Therefore, the Makefile does not
+ # need to install the alias file at all.
+ # The following applies only to glibc-2.0.x and older libcs.
+ echo "ISO_646.IRV:1983 ASCII"
+ ;;
+ aix*)
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-6 ISO-8859-6"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-8 ISO-8859-8"
+ echo "ISO8859-9 ISO-8859-9"
+ echo "ISO8859-15 ISO-8859-15"
+ echo "IBM-850 CP850"
+ echo "IBM-856 CP856"
+ echo "IBM-921 ISO-8859-13"
+ echo "IBM-922 CP922"
+ echo "IBM-932 CP932"
+ echo "IBM-943 CP943"
+ echo "IBM-1046 CP1046"
+ echo "IBM-1124 CP1124"
+ echo "IBM-1129 CP1129"
+ echo "IBM-1252 CP1252"
+ echo "IBM-eucCN GB2312"
+ echo "IBM-eucJP EUC-JP"
+ echo "IBM-eucKR EUC-KR"
+ echo "IBM-eucTW EUC-TW"
+ echo "big5 BIG5"
+ echo "GBK GBK"
+ echo "TIS-620 TIS-620"
+ echo "UTF-8 UTF-8"
+ ;;
+ hpux*)
+ echo "iso88591 ISO-8859-1"
+ echo "iso88592 ISO-8859-2"
+ echo "iso88595 ISO-8859-5"
+ echo "iso88596 ISO-8859-6"
+ echo "iso88597 ISO-8859-7"
+ echo "iso88598 ISO-8859-8"
+ echo "iso88599 ISO-8859-9"
+ echo "iso885915 ISO-8859-15"
+ echo "roman8 HP-ROMAN8"
+ echo "arabic8 HP-ARABIC8"
+ echo "greek8 HP-GREEK8"
+ echo "hebrew8 HP-HEBREW8"
+ echo "turkish8 HP-TURKISH8"
+ echo "kana8 HP-KANA8"
+ echo "tis620 TIS-620"
+ echo "big5 BIG5"
+ echo "eucJP EUC-JP"
+ echo "eucKR EUC-KR"
+ echo "eucTW EUC-TW"
+ echo "hp15CN GB2312"
+ #echo "ccdc ?" # what is this?
+ echo "SJIS SHIFT_JIS"
+ echo "utf8 UTF-8"
+ ;;
+ irix*)
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-9 ISO-8859-9"
+ echo "eucCN GB2312"
+ echo "eucJP EUC-JP"
+ echo "eucKR EUC-KR"
+ echo "eucTW EUC-TW"
+ ;;
+ osf*)
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-4 ISO-8859-4"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-8 ISO-8859-8"
+ echo "ISO8859-9 ISO-8859-9"
+ echo "ISO8859-15 ISO-8859-15"
+ echo "cp850 CP850"
+ echo "big5 BIG5"
+ echo "dechanyu DEC-HANYU"
+ echo "dechanzi GB2312"
+ echo "deckanji DEC-KANJI"
+ echo "deckorean EUC-KR"
+ echo "eucJP EUC-JP"
+ echo "eucKR EUC-KR"
+ echo "eucTW EUC-TW"
+ echo "GBK GBK"
+ echo "KSC5601 CP949"
+ echo "sdeckanji EUC-JP"
+ echo "SJIS SHIFT_JIS"
+ echo "TACTIS TIS-620"
+ echo "UTF-8 UTF-8"
+ ;;
+ solaris*)
+ echo "646 ASCII"
+ echo "ISO8859-1 ISO-8859-1"
+ echo "ISO8859-2 ISO-8859-2"
+ echo "ISO8859-4 ISO-8859-4"
+ echo "ISO8859-5 ISO-8859-5"
+ echo "ISO8859-6 ISO-8859-6"
+ echo "ISO8859-7 ISO-8859-7"
+ echo "ISO8859-8 ISO-8859-8"
+ echo "ISO8859-9 ISO-8859-9"
+ echo "ISO8859-15 ISO-8859-15"
+ echo "koi8-r KOI8-R"
+ echo "BIG5 BIG5"
+ echo "gb2312 GB2312"
+ echo "cns11643 EUC-TW"
+ echo "5601 EUC-KR"
+ echo "eucJP EUC-JP"
+ echo "PCK SHIFT_JIS"
+ echo "TIS620.2533 TIS-620"
+ #echo "sun_eu_greek ?" # what is this?
+ echo "UTF-8 UTF-8"
+ ;;
+ freebsd*)
+ # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
+ # localcharset.c falls back to using the full locale name
+ # from the environment variables.
+ echo "C ASCII"
+ echo "US-ASCII ASCII"
+ for l in la_LN lt_LN; do
+ echo "$l.ASCII ASCII"
+ done
+ for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \
+ fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \
+ lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do
+ echo "$l.ISO_8859-1 ISO-8859-1"
+ echo "$l.DIS_8859-15 ISO-8859-15"
+ done
+ for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do
+ echo "$l.ISO_8859-2 ISO-8859-2"
+ done
+ for l in la_LN lt_LT; do
+ echo "$l.ISO_8859-4 ISO-8859-4"
+ done
+ for l in ru_RU ru_SU; do
+ echo "$l.KOI8-R KOI8-R"
+ echo "$l.ISO_8859-5 ISO-8859-5"
+ echo "$l.CP866 CP866"
+ done
+ echo "uk_UA.KOI8-U KOI8-U"
+ echo "zh_TW.BIG5 BIG5"
+ echo "zh_TW.Big5 BIG5"
+ echo "zh_CN.EUC GB2312"
+ echo "ja_JP.EUC EUC-JP"
+ echo "ja_JP.SJIS SHIFT_JIS"
+ echo "ja_JP.Shift_JIS SHIFT_JIS"
+ echo "ko_KR.EUC EUC-KR"
+ ;;
+ beos*)
+ # BeOS has a single locale, and it has UTF-8 encoding.
+ echo "* UTF-8"
+ ;;
+ msdosdjgpp*)
+ # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore
+ # localcharset.c falls back to using the full locale name
+ # from the environment variables.
+ echo "#"
+ echo "# The encodings given here may not all be correct."
+ echo "# If you find that the encoding given for your language and"
+ echo "# country is not the one your DOS machine actually uses, just"
+ echo "# correct it in this file, and send a mail to"
+ echo "# Juan Manuel Guerrero <st001906@hrz1.hrz.tu-darmstadt.de>"
+ echo "# and Bruno Haible <haible@clisp.cons.org>."
+ echo "#"
+ echo "C ASCII"
+ # ISO-8859-1 languages
+ echo "ca CP850"
+ echo "ca_ES CP850"
+ echo "da CP865" # not CP850 ??
+ echo "da_DK CP865" # not CP850 ??
+ echo "de CP850"
+ echo "de_AT CP850"
+ echo "de_CH CP850"
+ echo "de_DE CP850"
+ echo "en CP850"
+ echo "en_AU CP850" # not CP437 ??
+ echo "en_CA CP850"
+ echo "en_GB CP850"
+ echo "en_NZ CP437"
+ echo "en_US CP437"
+ echo "en_ZA CP850" # not CP437 ??
+ echo "es CP850"
+ echo "es_AR CP850"
+ echo "es_BO CP850"
+ echo "es_CL CP850"
+ echo "es_CO CP850"
+ echo "es_CR CP850"
+ echo "es_CU CP850"
+ echo "es_DO CP850"
+ echo "es_EC CP850"
+ echo "es_ES CP850"
+ echo "es_GT CP850"
+ echo "es_HN CP850"
+ echo "es_MX CP850"
+ echo "es_NI CP850"
+ echo "es_PA CP850"
+ echo "es_PY CP850"
+ echo "es_PE CP850"
+ echo "es_SV CP850"
+ echo "es_UY CP850"
+ echo "es_VE CP850"
+ echo "et CP850"
+ echo "et_EE CP850"
+ echo "eu CP850"
+ echo "eu_ES CP850"
+ echo "fi CP850"
+ echo "fi_FI CP850"
+ echo "fr CP850"
+ echo "fr_BE CP850"
+ echo "fr_CA CP850"
+ echo "fr_CH CP850"
+ echo "fr_FR CP850"
+ echo "ga CP850"
+ echo "ga_IE CP850"
+ echo "gd CP850"
+ echo "gd_GB CP850"
+ echo "gl CP850"
+ echo "gl_ES CP850"
+ echo "id CP850" # not CP437 ??
+ echo "id_ID CP850" # not CP437 ??
+ echo "is CP861" # not CP850 ??
+ echo "is_IS CP861" # not CP850 ??
+ echo "it CP850"
+ echo "it_CH CP850"
+ echo "it_IT CP850"
+ echo "lt CP775"
+ echo "lt_LT CP775"
+ echo "lv CP775"
+ echo "lv_LV CP775"
+ echo "nb CP865" # not CP850 ??
+ echo "nb_NO CP865" # not CP850 ??
+ echo "nl CP850"
+ echo "nl_BE CP850"
+ echo "nl_NL CP850"
+ echo "nn CP865" # not CP850 ??
+ echo "nn_NO CP865" # not CP850 ??
+ echo "no CP865" # not CP850 ??
+ echo "no_NO CP865" # not CP850 ??
+ echo "pt CP850"
+ echo "pt_BR CP850"
+ echo "pt_PT CP850"
+ echo "sv CP850"
+ echo "sv_SE CP850"
+ # ISO-8859-2 languages
+ echo "cs CP852"
+ echo "cs_CZ CP852"
+ echo "hr CP852"
+ echo "hr_HR CP852"
+ echo "hu CP852"
+ echo "hu_HU CP852"
+ echo "pl CP852"
+ echo "pl_PL CP852"
+ echo "ro CP852"
+ echo "ro_RO CP852"
+ echo "sk CP852"
+ echo "sk_SK CP852"
+ echo "sl CP852"
+ echo "sl_SI CP852"
+ echo "sq CP852"
+ echo "sq_AL CP852"
+ echo "sr CP852" # CP852 or CP866 or CP855 ??
+ echo "sr_YU CP852" # CP852 or CP866 or CP855 ??
+ # ISO-8859-3 languages
+ echo "mt CP850"
+ echo "mt_MT CP850"
+ # ISO-8859-5 languages
+ echo "be CP866"
+ echo "be_BE CP866"
+ echo "bg CP866" # not CP855 ??
+ echo "bg_BG CP866" # not CP855 ??
+ echo "mk CP866" # not CP855 ??
+ echo "mk_MK CP866" # not CP855 ??
+ echo "ru KOI8-R" # not CP866 ??
+ echo "ru_RU KOI8-R" # not CP866 ??
+ # ISO-8859-6 languages
+ echo "ar CP864"
+ echo "ar_AE CP864"
+ echo "ar_DZ CP864"
+ echo "ar_EG CP864"
+ echo "ar_IQ CP864"
+ echo "ar_IR CP864"
+ echo "ar_JO CP864"
+ echo "ar_KW CP864"
+ echo "ar_MA CP864"
+ echo "ar_OM CP864"
+ echo "ar_QA CP864"
+ echo "ar_SA CP864"
+ echo "ar_SY CP864"
+ # ISO-8859-7 languages
+ echo "el CP869"
+ echo "el_GR CP869"
+ # ISO-8859-8 languages
+ echo "he CP862"
+ echo "he_IL CP862"
+ # ISO-8859-9 languages
+ echo "tr CP857"
+ echo "tr_TR CP857"
+ # Japanese
+ echo "ja CP932"
+ echo "ja_JP CP932"
+ # Chinese
+ echo "zh_CN GBK"
+ echo "zh_TW CP950" # not CP938 ??
+ # Korean
+ echo "kr CP949" # not CP934 ??
+ echo "kr_KR CP949" # not CP934 ??
+ # Thai
+ echo "th CP874"
+ echo "th_TH CP874"
+ # Other
+ echo "eo CP850"
+ echo "eo_EO CP850"
+ ;;
+esac
diff --git a/intl/dcgettext.c b/intl/dcgettext.c
@@ -1,238 +1,44 @@
/* Implementation of the dcgettext(3) function.
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1995-1999, 2000, 2001 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)
+ 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
+ by the Free Software Foundation; either version 2, 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.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include <sys/types.h>
-
-#if defined __GNUC__ && !defined C_ALLOCA
-# define alloca __builtin_alloca
-# define HAVE_ALLOCA 1
-#else
-# if (defined HAVE_ALLOCA_H || defined _LIBC) && !defined C_ALLOCA
-# include <alloca.h>
-# else
-# ifdef _AIX
- #pragma alloca
-# else
-# ifndef alloca
-char *alloca ();
-# endif
-# endif
-# endif
-#endif
-
-#include <errno.h>
-#ifndef errno
-extern int errno;
-#endif
-#ifndef __set_errno
-# define __set_errno(val) errno = (val)
-#endif
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#else
-char *getenv ();
-# ifdef HAVE_MALLOC_H
-# include <malloc.h>
-# else
-void free ();
-# endif
-#endif
-
-#if defined HAVE_STRING_H || defined _LIBC
-# ifndef _GNU_SOURCE
-# define _GNU_SOURCE 1
-# endif
-# include <string.h>
-#else
-# include <strings.h>
-#endif
-#if !HAVE_STRCHR && !defined _LIBC
-# ifndef strchr
-# define strchr index
-# endif
-#endif
-
-#if defined HAVE_UNISTD_H || defined _LIBC
-# include <unistd.h>
-#endif
-
-#include "gettext.h"
#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
-# include "libgettext.h"
+# include "libgnuintl.h"
#endif
-#include "hash-string.h"
/* @@ end of prolog @@ */
-#ifdef _LIBC
-/* Rename the non ANSI C functions. This is required by the standard
- because some ANSI C functions will require linking with this object
- file and the name space must not be polluted. */
-# define getcwd __getcwd
-# ifndef stpcpy
-# define stpcpy __stpcpy
-# endif
-#else
-# if !defined HAVE_GETCWD
-char *getwd ();
-# define getcwd(buf, max) getwd (buf)
-# else
-char *getcwd ();
-# endif
-# ifndef HAVE_STPCPY
-static char *stpcpy PARAMS ((char *dest, const char *src));
-# endif
-#endif
-
-/* Amount to increase buffer size by in each try. */
-#define PATH_INCR 32
-
-/* The following is from pathmax.h. */
-/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define
- PATH_MAX but might cause redefinition warnings when sys/param.h is
- later included (as on MORE/BSD 4.3). */
-#if defined(_POSIX_VERSION) || (defined(HAVE_LIMITS_H) && !defined(__GNUC__))
-# include <limits.h>
-#endif
-
-#ifndef _POSIX_PATH_MAX
-# define _POSIX_PATH_MAX 255
-#endif
-
-#if !defined(PATH_MAX) && defined(_PC_PATH_MAX)
-# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX))
-#endif
-
-/* Don't include sys/param.h if it already has been. */
-#if defined(HAVE_SYS_PARAM_H) && !defined(PATH_MAX) && !defined(MAXPATHLEN)
-# include <sys/param.h>
-#endif
-
-#if !defined(PATH_MAX) && defined(MAXPATHLEN)
-# define PATH_MAX MAXPATHLEN
-#endif
-
-#ifndef PATH_MAX
-# define PATH_MAX _POSIX_PATH_MAX
-#endif
-
-/* XPG3 defines the result of `setlocale (category, NULL)' as:
- ``Directs `setlocale()' to query `category' and return the current
- setting of `local'.''
- However it does not specify the exact format. And even worse: POSIX
- defines this not at all. So we can use this feature only on selected
- system (e.g. those using GNU C Library). */
-#ifdef _LIBC
-# define HAVE_LOCALE_NULL
-#endif
-
-/* Name of the default domain used for gettext(3) prior any call to
- textdomain(3). The default value for this is "messages". */
-const char _nl_default_default_domain[] = "messages";
-
-/* Value used as the default domain for gettext(3). */
-const char *_nl_current_default_domain = _nl_default_default_domain;
-
-/* Contains the default location of the message catalogs. */
-const char _nl_default_dirname[] = GNULOCALEDIR;
-
-/* List with bindings of specific domains created by bindtextdomain()
- calls. */
-struct binding *_nl_domain_bindings;
-
-/* Prototypes for local functions. */
-static char *find_msg PARAMS ((struct loaded_l10nfile *domain_file,
- const char *msgid)) internal_function;
-static const char *category_to_name PARAMS ((int category)) internal_function;
-static const char *guess_category_value PARAMS ((int category,
- const char *categoryname))
- internal_function;
-
-
-/* For those loosing systems which don't have `alloca' we have to add
- some additional code emulating it. */
-#ifdef HAVE_ALLOCA
-/* Nothing has to be done. */
-# define ADD_BLOCK(list, address) /* nothing */
-# define FREE_BLOCKS(list) /* nothing */
-#else
-struct block_list
-{
- void *address;
- struct block_list *next;
-};
-# define ADD_BLOCK(list, addr) \
- do { \
- struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
- /* If we cannot get a free block we cannot add the new element to \
- the list. */ \
- if (newp != NULL) { \
- newp->address = (addr); \
- newp->next = (list); \
- (list) = newp; \
- } \
- } while (0)
-# define FREE_BLOCKS(list) \
- do { \
- while (list != NULL) { \
- struct block_list *old = list; \
- list = list->next; \
- free (old); \
- } \
- } while (0)
-# undef alloca
-# define alloca(size) (malloc (size))
-#endif /* have alloca */
-
-
/* Names for the libintl functions are a problem. They must not clash
with existing names and they should follow ANSI C. But this source
code is also used in GNU C Library where the names have a __
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define DCGETTEXT __dcgettext
+# define DCIGETTEXT __dcigettext
#else
# define DCGETTEXT dcgettext__
-#endif
-
-/* Checking whether the binaries runs SUID must be done and glibc provides
- easier methods therefore we make a difference here. */
-#ifdef _LIBC
-# define ENABLE_SECURE __libc_enable_secure
-# define DETERMINE_SECURE
-#else
-static int enable_secure;
-# define ENABLE_SECURE (enable_secure == 1)
-# define DETERMINE_SECURE \
- if (enable_secure == 0) \
- { \
- if (getuid () != geteuid () || getgid () != getegid ()) \
- enable_secure = 1; \
- else \
- enable_secure = -1; \
- }
+# define DCIGETTEXT dcigettext__
#endif
/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
@@ -243,413 +49,10 @@ DCGETTEXT (domainname, msgid, category)
const char *msgid;
int category;
{
-#ifndef HAVE_ALLOCA
- struct block_list *block_list = NULL;
-#endif
- struct loaded_l10nfile *domain;
- struct binding *binding;
- const char *categoryname;
- const char *categoryvalue;
- char *dirname, *xdomainname;
- char *single_locale;
- char *retval;
- int saved_errno = errno;
-
- /* If no real MSGID is given return NULL. */
- if (msgid == NULL)
- return NULL;
-
- /* See whether this is a SUID binary or not. */
- DETERMINE_SECURE;
-
- /* If DOMAINNAME is NULL, we are interested in the default domain. If
- CATEGORY is not LC_MESSAGES this might not make much sense but the
- definition left this undefined. */
- if (domainname == NULL)
- domainname = _nl_current_default_domain;
-
- /* First find matching binding. */
- for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
- {
- int compare = strcmp (domainname, binding->domainname);
- if (compare == 0)
- /* We found it! */
- break;
- if (compare < 0)
- {
- /* It is not in the list. */
- binding = NULL;
- break;
- }
- }
-
- if (binding == NULL)
- dirname = (char *) _nl_default_dirname;
- else if (binding->dirname[0] == '/')
- dirname = binding->dirname;
- else
- {
- /* We have a relative path. Make it absolute now. */
- size_t dirname_len = strlen (binding->dirname) + 1;
- size_t path_max;
- char *ret;
-
- path_max = (unsigned int) PATH_MAX;
- path_max += 2; /* The getcwd docs say to do this. */
-
- dirname = (char *) alloca (path_max + dirname_len);
- ADD_BLOCK (block_list, dirname);
-
- __set_errno (0);
- while ((ret = getcwd (dirname, path_max)) == NULL && errno == ERANGE)
- {
- path_max += PATH_INCR;
- dirname = (char *) alloca (path_max + dirname_len);
- ADD_BLOCK (block_list, dirname);
- __set_errno (0);
- }
-
- if (ret == NULL)
- {
- /* We cannot get the current working directory. Don't signal an
- error but simply return the default string. */
- FREE_BLOCKS (block_list);
- __set_errno (saved_errno);
- return (char *) msgid;
- }
-
- stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname);
- }
-
- /* Now determine the symbolic name of CATEGORY and its value. */
- categoryname = category_to_name (category);
- categoryvalue = guess_category_value (category, categoryname);
-
- xdomainname = (char *) alloca (strlen (categoryname)
- + strlen (domainname) + 5);
- ADD_BLOCK (block_list, xdomainname);
-
- stpcpy (stpcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"),
- domainname),
- ".mo");
-
- /* Creating working area. */
- single_locale = (char *) alloca (strlen (categoryvalue) + 1);
- ADD_BLOCK (block_list, single_locale);
-
-
- /* Search for the given string. This is a loop because we perhaps
- got an ordered list of languages to consider for the translation. */
- while (1)
- {
- /* Make CATEGORYVALUE point to the next element of the list. */
- while (categoryvalue[0] != '\0' && categoryvalue[0] == ':')
- ++categoryvalue;
- if (categoryvalue[0] == '\0')
- {
- /* The whole contents of CATEGORYVALUE has been searched but
- no valid entry has been found. We solve this situation
- by implicitly appending a "C" entry, i.e. no translation
- will take place. */
- single_locale[0] = 'C';
- single_locale[1] = '\0';
- }
- else
- {
- char *cp = single_locale;
- while (categoryvalue[0] != '\0' && categoryvalue[0] != ':')
- *cp++ = *categoryvalue++;
- *cp = '\0';
-
- /* When this is a SUID binary we must not allow accessing files
- outside the dedicated directories. */
- if (ENABLE_SECURE
- && (memchr (single_locale, '/',
- _nl_find_language (single_locale) - single_locale)
- != NULL))
- /* Ingore this entry. */
- continue;
- }
-
- /* If the current locale value is C (or POSIX) we don't load a
- domain. Return the MSGID. */
- if (strcmp (single_locale, "C") == 0
- || strcmp (single_locale, "POSIX") == 0)
- {
- FREE_BLOCKS (block_list);
- __set_errno (saved_errno);
- return (char *) msgid;
- }
-
-
- /* Find structure describing the message catalog matching the
- DOMAINNAME and CATEGORY. */
- domain = _nl_find_domain (dirname, single_locale, xdomainname);
-
- if (domain != NULL)
- {
- retval = find_msg (domain, msgid);
-
- if (retval == NULL)
- {
- int cnt;
-
- for (cnt = 0; domain->successor[cnt] != NULL; ++cnt)
- {
- retval = find_msg (domain->successor[cnt], msgid);
-
- if (retval != NULL)
- break;
- }
- }
-
- if (retval != NULL)
- {
- FREE_BLOCKS (block_list);
- __set_errno (saved_errno);
- return retval;
- }
- }
- }
- /* NOTREACHED */
+ return DCIGETTEXT (domainname, msgid, NULL, 0, 0, category);
}
#ifdef _LIBC
/* Alias for function name in GNU C Library. */
weak_alias (__dcgettext, dcgettext);
#endif
-
-
-static char *
-internal_function
-find_msg (domain_file, msgid)
- struct loaded_l10nfile *domain_file;
- const char *msgid;
-{
- size_t act = 0;
- size_t top, bottom;
- struct loaded_domain *domain;
-
- if (domain_file->decided == 0)
- _nl_load_domain (domain_file);
-
- if (domain_file->data == NULL)
- return NULL;
-
- domain = (struct loaded_domain *) domain_file->data;
-
- /* Locate the MSGID and its translation. */
- if (domain->hash_size > 2 && domain->hash_tab != NULL)
- {
- /* Use the hashing table. */
- nls_uint32 len = strlen (msgid);
- nls_uint32 hash_val = hash_string (msgid);
- nls_uint32 idx = hash_val % domain->hash_size;
- nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));
- nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]);
-
- if (nstr == 0)
- /* Hash table entry is empty. */
- return NULL;
-
- if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len
- && strcmp (msgid,
- domain->data + W (domain->must_swap,
- domain->orig_tab[nstr - 1].offset)) == 0)
- return (char *) domain->data + W (domain->must_swap,
- domain->trans_tab[nstr - 1].offset);
-
- while (1)
- {
- if (idx >= domain->hash_size - incr)
- idx -= domain->hash_size - incr;
- else
- idx += incr;
-
- nstr = W (domain->must_swap, domain->hash_tab[idx]);
- if (nstr == 0)
- /* Hash table entry is empty. */
- return NULL;
-
- if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) == len
- && strcmp (msgid,
- domain->data + W (domain->must_swap,
- domain->orig_tab[nstr - 1].offset))
- == 0)
- return (char *) domain->data
- + W (domain->must_swap, domain->trans_tab[nstr - 1].offset);
- }
- /* NOTREACHED */
- }
-
- /* Now we try the default method: binary search in the sorted
- array of messages. */
- bottom = 0;
- top = domain->nstrings;
- while (bottom < top)
- {
- int cmp_val;
-
- act = (bottom + top) / 2;
- cmp_val = strcmp (msgid, domain->data
- + W (domain->must_swap,
- domain->orig_tab[act].offset));
- if (cmp_val < 0)
- top = act;
- else if (cmp_val > 0)
- bottom = act + 1;
- else
- break;
- }
-
- /* If an translation is found return this. */
- return bottom >= top ? NULL : (char *) domain->data
- + W (domain->must_swap,
- domain->trans_tab[act].offset);
-}
-
-
-/* Return string representation of locale CATEGORY. */
-static const char *
-internal_function
-category_to_name (category)
- int category;
-{
- const char *retval;
-
- switch (category)
- {
-#ifdef LC_COLLATE
- case LC_COLLATE:
- retval = "LC_COLLATE";
- break;
-#endif
-#ifdef LC_CTYPE
- case LC_CTYPE:
- retval = "LC_CTYPE";
- break;
-#endif
-#ifdef LC_MONETARY
- case LC_MONETARY:
- retval = "LC_MONETARY";
- break;
-#endif
-#ifdef LC_NUMERIC
- case LC_NUMERIC:
- retval = "LC_NUMERIC";
- break;
-#endif
-#ifdef LC_TIME
- case LC_TIME:
- retval = "LC_TIME";
- break;
-#endif
-#ifdef LC_MESSAGES
- case LC_MESSAGES:
- retval = "LC_MESSAGES";
- break;
-#endif
-#ifdef LC_RESPONSE
- case LC_RESPONSE:
- retval = "LC_RESPONSE";
- break;
-#endif
-#ifdef LC_ALL
- case LC_ALL:
- /* This might not make sense but is perhaps better than any other
- value. */
- retval = "LC_ALL";
- break;
-#endif
- default:
- /* If you have a better idea for a default value let me know. */
- retval = "LC_XXX";
- }
-
- return retval;
-}
-
-/* Guess value of current locale from value of the environment variables. */
-static const char *
-internal_function
-guess_category_value (category, categoryname)
- int category;
- const char *categoryname;
-{
- const char *retval;
-
- /* The highest priority value is the `LANGUAGE' environment
- variable. This is a GNU extension. */
- retval = getenv ("LANGUAGE");
- if (retval != NULL && retval[0] != '\0')
- return retval;
-
- /* `LANGUAGE' is not set. So we have to proceed with the POSIX
- methods of looking to `LC_ALL', `LC_xxx', and `LANG'. On some
- systems this can be done by the `setlocale' function itself. */
-#if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
- return setlocale (category, NULL);
-#else
- /* Setting of LC_ALL overwrites all other. */
- retval = getenv ("LC_ALL");
- if (retval != NULL && retval[0] != '\0')
- return retval;
-
- /* Next comes the name of the desired category. */
- retval = getenv (categoryname);
- if (retval != NULL && retval[0] != '\0')
- return retval;
-
- /* Last possibility is the LANG environment variable. */
- retval = getenv ("LANG");
- if (retval != NULL && retval[0] != '\0')
- return retval;
-
- /* We use C as the default domain. POSIX says this is implementation
- defined. */
- return "C";
-#endif
-}
-
-/* @@ begin of epilog @@ */
-
-/* We don't want libintl.a to depend on any other library. So we
- avoid the non-standard function stpcpy. In GNU C Library this
- function is available, though. Also allow the symbol HAVE_STPCPY
- to be defined. */
-#if !_LIBC && !HAVE_STPCPY
-static char *
-stpcpy (dest, src)
- char *dest;
- const char *src;
-{
- while ((*dest++ = *src++) != '\0')
- /* Do nothing. */ ;
- return dest - 1;
-}
-#endif
-
-
-#ifdef _LIBC
-/* If we want to free all resources we have to do some work at
- program's end. */
-static void __attribute__ ((unused))
-free_mem (void)
-{
- struct binding *runp;
-
- for (runp = _nl_domain_bindings; runp != NULL; runp = runp->next)
- {
- free (runp->domainname);
- if (runp->dirname != _nl_default_dirname)
- /* Yes, this is a pointer comparison. */
- free (runp->dirname);
- }
-
- if (_nl_current_default_domain != _nl_default_default_domain)
- /* Yes, again a pointer comparison. */
- free ((char *) _nl_current_default_domain);
-}
-
-text_set_element (__libc_subfreeres, free_mem);
-#endif
diff --git a/intl/dcigettext.c b/intl/dcigettext.c
@@ -0,0 +1,1259 @@
+/* Implementation of the internal dcigettext function.
+ Copyright (C) 1995-1999, 2000, 2001 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
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* Tell glibc's <string.h> to provide a prototype for mempcpy().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <sys/types.h>
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+# define HAVE_ALLOCA 1
+#else
+# if defined HAVE_ALLOCA_H || defined _LIBC
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca
+char *alloca ();
+# endif
+# endif
+# endif
+#endif
+
+#include <errno.h>
+#ifndef errno
+extern int errno;
+#endif
+#ifndef __set_errno
+# define __set_errno(val) errno = (val)
+#endif
+
+#include <stddef.h>
+#include <stdlib.h>
+
+#include <string.h>
+#if !HAVE_STRCHR && !defined _LIBC
+# ifndef strchr
+# define strchr index
+# endif
+#endif
+
+#if defined HAVE_UNISTD_H || defined _LIBC
+# include <unistd.h>
+#endif
+
+#include <locale.h>
+
+#if defined HAVE_SYS_PARAM_H || defined _LIBC
+# include <sys/param.h>
+#endif
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+#include "hash-string.h"
+
+/* Thread safetyness. */
+#ifdef _LIBC
+# include <bits/libc-lock.h>
+#else
+/* Provide dummy implementation if this is outside glibc. */
+# define __libc_lock_define_initialized(CLASS, NAME)
+# define __libc_lock_lock(NAME)
+# define __libc_lock_unlock(NAME)
+# define __libc_rwlock_define_initialized(CLASS, NAME)
+# define __libc_rwlock_rdlock(NAME)
+# define __libc_rwlock_unlock(NAME)
+#endif
+
+/* Alignment of types. */
+#if defined __GNUC__ && __GNUC__ >= 2
+# define alignof(TYPE) __alignof__ (TYPE)
+#else
+# define alignof(TYPE) \
+ ((int) &((struct { char dummy1; TYPE dummy2; } *) 0)->dummy2)
+#endif
+
+/* The internal variables in the standalone libintl.a must have different
+ names than the internal variables in GNU libc, otherwise programs
+ using libintl.a cannot be linked statically. */
+#if !defined _LIBC
+# define _nl_default_default_domain _nl_default_default_domain__
+# define _nl_current_default_domain _nl_current_default_domain__
+# define _nl_default_dirname _nl_default_dirname__
+# define _nl_domain_bindings _nl_domain_bindings__
+#endif
+
+/* Some compilers, like SunOS4 cc, don't have offsetof in <stddef.h>. */
+#ifndef offsetof
+# define offsetof(type,ident) ((size_t)&(((type*)0)->ident))
+#endif
+
+/* @@ end of prolog @@ */
+
+#ifdef _LIBC
+/* Rename the non ANSI C functions. This is required by the standard
+ because some ANSI C functions will require linking with this object
+ file and the name space must not be polluted. */
+# define getcwd __getcwd
+# ifndef stpcpy
+# define stpcpy __stpcpy
+# endif
+# define tfind __tfind
+#else
+# if !defined HAVE_GETCWD
+char *getwd ();
+# define getcwd(buf, max) getwd (buf)
+# else
+char *getcwd ();
+# endif
+# ifndef HAVE_STPCPY
+static char *stpcpy PARAMS ((char *dest, const char *src));
+# endif
+# ifndef HAVE_MEMPCPY
+static void *mempcpy PARAMS ((void *dest, const void *src, size_t n));
+# endif
+#endif
+
+/* Amount to increase buffer size by in each try. */
+#define PATH_INCR 32
+
+/* The following is from pathmax.h. */
+/* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define
+ PATH_MAX but might cause redefinition warnings when sys/param.h is
+ later included (as on MORE/BSD 4.3). */
+#if defined _POSIX_VERSION || (defined HAVE_LIMITS_H && !defined __GNUC__)
+# include <limits.h>
+#endif
+
+#ifndef _POSIX_PATH_MAX
+# define _POSIX_PATH_MAX 255
+#endif
+
+#if !defined PATH_MAX && defined _PC_PATH_MAX
+# define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX))
+#endif
+
+/* Don't include sys/param.h if it already has been. */
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+
+#ifndef PATH_MAX
+# define PATH_MAX _POSIX_PATH_MAX
+#endif
+
+/* Pathname support.
+ ISSLASH(C) tests whether C is a directory separator character.
+ IS_ABSOLUTE_PATH(P) tests whether P is an absolute path. If it is not,
+ it may be concatenated to a directory pathname.
+ IS_PATH_WITH_DIR(P) tests whether P contains a directory specification.
+ */
+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
+ /* Win32, OS/2, DOS */
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+# define HAS_DEVICE(P) \
+ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
+ && (P)[1] == ':')
+# define IS_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P))
+# define IS_PATH_WITH_DIR(P) \
+ (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P))
+#else
+ /* Unix */
+# define ISSLASH(C) ((C) == '/')
+# define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0])
+# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL)
+#endif
+
+/* XPG3 defines the result of `setlocale (category, NULL)' as:
+ ``Directs `setlocale()' to query `category' and return the current
+ setting of `local'.''
+ However it does not specify the exact format. Neither do SUSV2 and
+ ISO C 99. So we can use this feature only on selected systems (e.g.
+ those using GNU C Library). */
+#if defined _LIBC || (defined __GNU_LIBRARY__ && __GNU_LIBRARY__ >= 2)
+# define HAVE_LOCALE_NULL
+#endif
+
+/* This is the type used for the search tree where known translations
+ are stored. */
+struct known_translation_t
+{
+ /* Domain in which to search. */
+ char *domainname;
+
+ /* The category. */
+ int category;
+
+ /* State of the catalog counter at the point the string was found. */
+ int counter;
+
+ /* Catalog where the string was found. */
+ struct loaded_l10nfile *domain;
+
+ /* And finally the translation. */
+ const char *translation;
+ size_t translation_length;
+
+ /* Pointer to the string in question. */
+ char msgid[ZERO];
+};
+
+/* Root of the search tree with known translations. We can use this
+ only if the system provides the `tsearch' function family. */
+#if defined HAVE_TSEARCH || defined _LIBC
+# include <search.h>
+
+static void *root;
+
+# ifdef _LIBC
+# define tsearch __tsearch
+# endif
+
+/* Function to compare two entries in the table of known translations. */
+static int transcmp PARAMS ((const void *p1, const void *p2));
+static int
+transcmp (p1, p2)
+ const void *p1;
+ const void *p2;
+{
+ const struct known_translation_t *s1;
+ const struct known_translation_t *s2;
+ int result;
+
+ s1 = (const struct known_translation_t *) p1;
+ s2 = (const struct known_translation_t *) p2;
+
+ result = strcmp (s1->msgid, s2->msgid);
+ if (result == 0)
+ {
+ result = strcmp (s1->domainname, s2->domainname);
+ if (result == 0)
+ /* We compare the category last (though this is the cheapest
+ operation) since it is hopefully always the same (namely
+ LC_MESSAGES). */
+ result = s1->category - s2->category;
+ }
+
+ return result;
+}
+#endif
+
+/* Name of the default domain used for gettext(3) prior any call to
+ textdomain(3). The default value for this is "messages". */
+const char _nl_default_default_domain[] = "messages";
+
+/* Value used as the default domain for gettext(3). */
+const char *_nl_current_default_domain = _nl_default_default_domain;
+
+/* Contains the default location of the message catalogs. */
+const char _nl_default_dirname[] = LOCALEDIR;
+
+/* List with bindings of specific domains created by bindtextdomain()
+ calls. */
+struct binding *_nl_domain_bindings;
+
+/* Prototypes for local functions. */
+static char *plural_lookup PARAMS ((struct loaded_l10nfile *domain,
+ unsigned long int n,
+ const char *translation,
+ size_t translation_len))
+ internal_function;
+static unsigned long int plural_eval PARAMS ((struct expression *pexp,
+ unsigned long int n))
+ internal_function;
+static const char *category_to_name PARAMS ((int category)) internal_function;
+static const char *guess_category_value PARAMS ((int category,
+ const char *categoryname))
+ internal_function;
+
+
+/* For those loosing systems which don't have `alloca' we have to add
+ some additional code emulating it. */
+#ifdef HAVE_ALLOCA
+/* Nothing has to be done. */
+# define ADD_BLOCK(list, address) /* nothing */
+# define FREE_BLOCKS(list) /* nothing */
+#else
+struct block_list
+{
+ void *address;
+ struct block_list *next;
+};
+# define ADD_BLOCK(list, addr) \
+ do { \
+ struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
+ /* If we cannot get a free block we cannot add the new element to \
+ the list. */ \
+ if (newp != NULL) { \
+ newp->address = (addr); \
+ newp->next = (list); \
+ (list) = newp; \
+ } \
+ } while (0)
+# define FREE_BLOCKS(list) \
+ do { \
+ while (list != NULL) { \
+ struct block_list *old = list; \
+ list = list->next; \
+ free (old); \
+ } \
+ } while (0)
+# undef alloca
+# define alloca(size) (malloc (size))
+#endif /* have alloca */
+
+
+#ifdef _LIBC
+/* List of blocks allocated for translations. */
+typedef struct transmem_list
+{
+ struct transmem_list *next;
+ char data[ZERO];
+} transmem_block_t;
+static struct transmem_list *transmem_list;
+#else
+typedef unsigned char transmem_block_t;
+#endif
+
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DCIGETTEXT __dcigettext
+#else
+# define DCIGETTEXT dcigettext__
+#endif
+
+/* Lock variable to protect the global data in the gettext implementation. */
+#ifdef _LIBC
+__libc_rwlock_define_initialized (, _nl_state_lock)
+#endif
+
+/* Checking whether the binaries runs SUID must be done and glibc provides
+ easier methods therefore we make a difference here. */
+#ifdef _LIBC
+# define ENABLE_SECURE __libc_enable_secure
+# define DETERMINE_SECURE
+#else
+# ifndef HAVE_GETUID
+# define getuid() 0
+# endif
+# ifndef HAVE_GETGID
+# define getgid() 0
+# endif
+# ifndef HAVE_GETEUID
+# define geteuid() getuid()
+# endif
+# ifndef HAVE_GETEGID
+# define getegid() getgid()
+# endif
+static int enable_secure;
+# define ENABLE_SECURE (enable_secure == 1)
+# define DETERMINE_SECURE \
+ if (enable_secure == 0) \
+ { \
+ if (getuid () != geteuid () || getgid () != getegid ()) \
+ enable_secure = 1; \
+ else \
+ enable_secure = -1; \
+ }
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current
+ CATEGORY locale and, if PLURAL is nonzero, search over string
+ depending on the plural form determined by N. */
+char *
+DCIGETTEXT (domainname, msgid1, msgid2, plural, n, category)
+ const char *domainname;
+ const char *msgid1;
+ const char *msgid2;
+ int plural;
+ unsigned long int n;
+ int category;
+{
+#ifndef HAVE_ALLOCA
+ struct block_list *block_list = NULL;
+#endif
+ struct loaded_l10nfile *domain;
+ struct binding *binding;
+ const char *categoryname;
+ const char *categoryvalue;
+ char *dirname, *xdomainname;
+ char *single_locale;
+ char *retval;
+ size_t retlen;
+ int saved_errno;
+#if defined HAVE_TSEARCH || defined _LIBC
+ struct known_translation_t *search;
+ struct known_translation_t **foundp = NULL;
+ size_t msgid_len;
+#endif
+ size_t domainname_len;
+
+ /* If no real MSGID is given return NULL. */
+ if (msgid1 == NULL)
+ return NULL;
+
+ __libc_rwlock_rdlock (_nl_state_lock);
+
+ /* If DOMAINNAME is NULL, we are interested in the default domain. If
+ CATEGORY is not LC_MESSAGES this might not make much sense but the
+ definition left this undefined. */
+ if (domainname == NULL)
+ domainname = _nl_current_default_domain;
+
+#if defined HAVE_TSEARCH || defined _LIBC
+ msgid_len = strlen (msgid1) + 1;
+
+ /* Try to find the translation among those which we found at
+ some time. */
+ search = (struct known_translation_t *)
+ alloca (offsetof (struct known_translation_t, msgid) + msgid_len);
+ memcpy (search->msgid, msgid1, msgid_len);
+ search->domainname = (char *) domainname;
+ search->category = category;
+
+ foundp = (struct known_translation_t **) tfind (search, &root, transcmp);
+ if (foundp != NULL && (*foundp)->counter == _nl_msg_cat_cntr)
+ {
+ /* Now deal with plural. */
+ if (plural)
+ retval = plural_lookup ((*foundp)->domain, n, (*foundp)->translation,
+ (*foundp)->translation_length);
+ else
+ retval = (char *) (*foundp)->translation;
+
+ __libc_rwlock_unlock (_nl_state_lock);
+ return retval;
+ }
+#endif
+
+ /* Preserve the `errno' value. */
+ saved_errno = errno;
+
+ /* See whether this is a SUID binary or not. */
+ DETERMINE_SECURE;
+
+ /* First find matching binding. */
+ for (binding = _nl_domain_bindings; binding != NULL; binding = binding->next)
+ {
+ int compare = strcmp (domainname, binding->domainname);
+ if (compare == 0)
+ /* We found it! */
+ break;
+ if (compare < 0)
+ {
+ /* It is not in the list. */
+ binding = NULL;
+ break;
+ }
+ }
+
+ if (binding == NULL)
+ dirname = (char *) _nl_default_dirname;
+ else if (IS_ABSOLUTE_PATH (binding->dirname))
+ dirname = binding->dirname;
+ else
+ {
+ /* We have a relative path. Make it absolute now. */
+ size_t dirname_len = strlen (binding->dirname) + 1;
+ size_t path_max;
+ char *ret;
+
+ path_max = (unsigned int) PATH_MAX;
+ path_max += 2; /* The getcwd docs say to do this. */
+
+ for (;;)
+ {
+ dirname = (char *) alloca (path_max + dirname_len);
+ ADD_BLOCK (block_list, dirname);
+
+ __set_errno (0);
+ ret = getcwd (dirname, path_max);
+ if (ret != NULL || errno != ERANGE)
+ break;
+
+ path_max += path_max / 2;
+ path_max += PATH_INCR;
+ }
+
+ if (ret == NULL)
+ {
+ /* We cannot get the current working directory. Don't signal an
+ error but simply return the default string. */
+ FREE_BLOCKS (block_list);
+ __libc_rwlock_unlock (_nl_state_lock);
+ __set_errno (saved_errno);
+ return (plural == 0
+ ? (char *) msgid1
+ /* Use the Germanic plural rule. */
+ : n == 1 ? (char *) msgid1 : (char *) msgid2);
+ }
+
+ stpcpy (stpcpy (strchr (dirname, '\0'), "/"), binding->dirname);
+ }
+
+ /* Now determine the symbolic name of CATEGORY and its value. */
+ categoryname = category_to_name (category);
+ categoryvalue = guess_category_value (category, categoryname);
+
+ domainname_len = strlen (domainname);
+ xdomainname = (char *) alloca (strlen (categoryname)
+ + domainname_len + 5);
+ ADD_BLOCK (block_list, xdomainname);
+
+ stpcpy (mempcpy (stpcpy (stpcpy (xdomainname, categoryname), "/"),
+ domainname, domainname_len),
+ ".mo");
+
+ /* Creating working area. */
+ single_locale = (char *) alloca (strlen (categoryvalue) + 1);
+ ADD_BLOCK (block_list, single_locale);
+
+
+ /* Search for the given string. This is a loop because we perhaps
+ got an ordered list of languages to consider for the translation. */
+ while (1)
+ {
+ /* Make CATEGORYVALUE point to the next element of the list. */
+ while (categoryvalue[0] != '\0' && categoryvalue[0] == ':')
+ ++categoryvalue;
+ if (categoryvalue[0] == '\0')
+ {
+ /* The whole contents of CATEGORYVALUE has been searched but
+ no valid entry has been found. We solve this situation
+ by implicitly appending a "C" entry, i.e. no translation
+ will take place. */
+ single_locale[0] = 'C';
+ single_locale[1] = '\0';
+ }
+ else
+ {
+ char *cp = single_locale;
+ while (categoryvalue[0] != '\0' && categoryvalue[0] != ':')
+ *cp++ = *categoryvalue++;
+ *cp = '\0';
+
+ /* When this is a SUID binary we must not allow accessing files
+ outside the dedicated directories. */
+ if (ENABLE_SECURE && IS_PATH_WITH_DIR (single_locale))
+ /* Ingore this entry. */
+ continue;
+ }
+
+ /* If the current locale value is C (or POSIX) we don't load a
+ domain. Return the MSGID. */
+ if (strcmp (single_locale, "C") == 0
+ || strcmp (single_locale, "POSIX") == 0)
+ {
+ FREE_BLOCKS (block_list);
+ __libc_rwlock_unlock (_nl_state_lock);
+ __set_errno (saved_errno);
+ return (plural == 0
+ ? (char *) msgid1
+ /* Use the Germanic plural rule. */
+ : n == 1 ? (char *) msgid1 : (char *) msgid2);
+ }
+
+
+ /* Find structure describing the message catalog matching the
+ DOMAINNAME and CATEGORY. */
+ domain = _nl_find_domain (dirname, single_locale, xdomainname, binding);
+
+ if (domain != NULL)
+ {
+ retval = _nl_find_msg (domain, binding, msgid1, &retlen);
+
+ if (retval == NULL)
+ {
+ int cnt;
+
+ for (cnt = 0; domain->successor[cnt] != NULL; ++cnt)
+ {
+ retval = _nl_find_msg (domain->successor[cnt], binding,
+ msgid1, &retlen);
+
+ if (retval != NULL)
+ {
+ domain = domain->successor[cnt];
+ break;
+ }
+ }
+ }
+
+ if (retval != NULL)
+ {
+ /* Found the translation of MSGID1 in domain DOMAIN:
+ starting at RETVAL, RETLEN bytes. */
+ FREE_BLOCKS (block_list);
+ __set_errno (saved_errno);
+#if defined HAVE_TSEARCH || defined _LIBC
+ if (foundp == NULL)
+ {
+ /* Create a new entry and add it to the search tree. */
+ struct known_translation_t *newp;
+
+ newp = (struct known_translation_t *)
+ malloc (offsetof (struct known_translation_t, msgid)
+ + msgid_len + domainname_len + 1);
+ if (newp != NULL)
+ {
+ newp->domainname =
+ mempcpy (newp->msgid, msgid1, msgid_len);
+ memcpy (newp->domainname, domainname, domainname_len + 1);
+ newp->category = category;
+ newp->counter = _nl_msg_cat_cntr;
+ newp->domain = domain;
+ newp->translation = retval;
+ newp->translation_length = retlen;
+
+ /* Insert the entry in the search tree. */
+ foundp = (struct known_translation_t **)
+ tsearch (newp, &root, transcmp);
+ if (foundp == NULL
+ || __builtin_expect (*foundp != newp, 0))
+ /* The insert failed. */
+ free (newp);
+ }
+ }
+ else
+ {
+ /* We can update the existing entry. */
+ (*foundp)->counter = _nl_msg_cat_cntr;
+ (*foundp)->domain = domain;
+ (*foundp)->translation = retval;
+ (*foundp)->translation_length = retlen;
+ }
+#endif
+ /* Now deal with plural. */
+ if (plural)
+ retval = plural_lookup (domain, n, retval, retlen);
+
+ __libc_rwlock_unlock (_nl_state_lock);
+ return retval;
+ }
+ }
+ }
+ /* NOTREACHED */
+}
+
+
+char *
+internal_function
+_nl_find_msg (domain_file, domainbinding, msgid, lengthp)
+ struct loaded_l10nfile *domain_file;
+ struct binding *domainbinding;
+ const char *msgid;
+ size_t *lengthp;
+{
+ struct loaded_domain *domain;
+ size_t act;
+ char *result;
+ size_t resultlen;
+
+ if (domain_file->decided == 0)
+ _nl_load_domain (domain_file, domainbinding);
+
+ if (domain_file->data == NULL)
+ return NULL;
+
+ domain = (struct loaded_domain *) domain_file->data;
+
+ /* Locate the MSGID and its translation. */
+ if (domain->hash_size > 2 && domain->hash_tab != NULL)
+ {
+ /* Use the hashing table. */
+ nls_uint32 len = strlen (msgid);
+ nls_uint32 hash_val = hash_string (msgid);
+ nls_uint32 idx = hash_val % domain->hash_size;
+ nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));
+
+ while (1)
+ {
+ nls_uint32 nstr = W (domain->must_swap, domain->hash_tab[idx]);
+
+ if (nstr == 0)
+ /* Hash table entry is empty. */
+ return NULL;
+
+ /* Compare msgid with the original string at index nstr-1.
+ We compare the lengths with >=, not ==, because plural entries
+ are represented by strings with an embedded NUL. */
+ if (W (domain->must_swap, domain->orig_tab[nstr - 1].length) >= len
+ && (strcmp (msgid,
+ domain->data + W (domain->must_swap,
+ domain->orig_tab[nstr - 1].offset))
+ == 0))
+ {
+ act = nstr - 1;
+ goto found;
+ }
+
+ if (idx >= domain->hash_size - incr)
+ idx -= domain->hash_size - incr;
+ else
+ idx += incr;
+ }
+ /* NOTREACHED */
+ }
+ else
+ {
+ /* Try the default method: binary search in the sorted array of
+ messages. */
+ size_t top, bottom;
+
+ bottom = 0;
+ top = domain->nstrings;
+ while (bottom < top)
+ {
+ int cmp_val;
+
+ act = (bottom + top) / 2;
+ cmp_val = strcmp (msgid, (domain->data
+ + W (domain->must_swap,
+ domain->orig_tab[act].offset)));
+ if (cmp_val < 0)
+ top = act;
+ else if (cmp_val > 0)
+ bottom = act + 1;
+ else
+ goto found;
+ }
+ /* No translation was found. */
+ return NULL;
+ }
+
+ found:
+ /* The translation was found at index ACT. If we have to convert the
+ string to use a different character set, this is the time. */
+ result = ((char *) domain->data
+ + W (domain->must_swap, domain->trans_tab[act].offset));
+ resultlen = W (domain->must_swap, domain->trans_tab[act].length) + 1;
+
+#if defined _LIBC || HAVE_ICONV
+ if (domain->codeset_cntr
+ != (domainbinding != NULL ? domainbinding->codeset_cntr : 0))
+ {
+ /* The domain's codeset has changed through bind_textdomain_codeset()
+ since the message catalog was initialized or last accessed. We
+ have to reinitialize the converter. */
+ _nl_free_domain_conv (domain);
+ _nl_init_domain_conv (domain_file, domain, domainbinding);
+ }
+
+ if (
+# ifdef _LIBC
+ domain->conv != (__gconv_t) -1
+# else
+# if HAVE_ICONV
+ domain->conv != (iconv_t) -1
+# endif
+# endif
+ )
+ {
+ /* We are supposed to do a conversion. First allocate an
+ appropriate table with the same structure as the table
+ of translations in the file, where we can put the pointers
+ to the converted strings in.
+ There is a slight complication with plural entries. They
+ are represented by consecutive NUL terminated strings. We
+ handle this case by converting RESULTLEN bytes, including
+ NULs. */
+
+ if (domain->conv_tab == NULL
+ && ((domain->conv_tab = (char **) calloc (domain->nstrings,
+ sizeof (char *)))
+ == NULL))
+ /* Mark that we didn't succeed allocating a table. */
+ domain->conv_tab = (char **) -1;
+
+ if (__builtin_expect (domain->conv_tab == (char **) -1, 0))
+ /* Nothing we can do, no more memory. */
+ goto converted;
+
+ if (domain->conv_tab[act] == NULL)
+ {
+ /* We haven't used this string so far, so it is not
+ translated yet. Do this now. */
+ /* We use a bit more efficient memory handling.
+ We allocate always larger blocks which get used over
+ time. This is faster than many small allocations. */
+ __libc_lock_define_initialized (static, lock)
+# define INITIAL_BLOCK_SIZE 4080
+ static unsigned char *freemem;
+ static size_t freemem_size;
+
+ const unsigned char *inbuf;
+ unsigned char *outbuf;
+ int malloc_count;
+# ifndef _LIBC
+ transmem_block_t *transmem_list = NULL;
+# endif
+
+ __libc_lock_lock (lock);
+
+ inbuf = (const unsigned char *) result;
+ outbuf = freemem + sizeof (size_t);
+
+ malloc_count = 0;
+ while (1)
+ {
+ transmem_block_t *newmem;
+# ifdef _LIBC
+ size_t non_reversible;
+ int res;
+
+ if (freemem_size < sizeof (size_t))
+ goto resize_freemem;
+
+ res = __gconv (domain->conv,
+ &inbuf, inbuf + resultlen,
+ &outbuf,
+ outbuf + freemem_size - sizeof (size_t),
+ &non_reversible);
+
+ if (res == __GCONV_OK || res == __GCONV_EMPTY_INPUT)
+ break;
+
+ if (res != __GCONV_FULL_OUTPUT)
+ {
+ __libc_lock_unlock (lock);
+ goto converted;
+ }
+
+ inbuf = result;
+# else
+# if HAVE_ICONV
+ const char *inptr = (const char *) inbuf;
+ size_t inleft = resultlen;
+ char *outptr = (char *) outbuf;
+ size_t outleft;
+
+ if (freemem_size < sizeof (size_t))
+ goto resize_freemem;
+
+ outleft = freemem_size - sizeof (size_t);
+ if (iconv (domain->conv,
+ (ICONV_CONST char **) &inptr, &inleft,
+ &outptr, &outleft)
+ != (size_t) (-1))
+ {
+ outbuf = (unsigned char *) outptr;
+ break;
+ }
+ if (errno != E2BIG)
+ {
+ __libc_lock_unlock (lock);
+ goto converted;
+ }
+# endif
+# endif
+
+ resize_freemem:
+ /* We must allocate a new buffer or resize the old one. */
+ if (malloc_count > 0)
+ {
+ ++malloc_count;
+ freemem_size = malloc_count * INITIAL_BLOCK_SIZE;
+ newmem = (transmem_block_t *) realloc (transmem_list,
+ freemem_size);
+# ifdef _LIBC
+ if (newmem != NULL)
+ transmem_list = transmem_list->next;
+ else
+ {
+ struct transmem_list *old = transmem_list;
+
+ transmem_list = transmem_list->next;
+ free (old);
+ }
+# endif
+ }
+ else
+ {
+ malloc_count = 1;
+ freemem_size = INITIAL_BLOCK_SIZE;
+ newmem = (transmem_block_t *) malloc (freemem_size);
+ }
+ if (__builtin_expect (newmem == NULL, 0))
+ {
+ freemem = NULL;
+ freemem_size = 0;
+ __libc_lock_unlock (lock);
+ goto converted;
+ }
+
+# ifdef _LIBC
+ /* Add the block to the list of blocks we have to free
+ at some point. */
+ newmem->next = transmem_list;
+ transmem_list = newmem;
+
+ freemem = newmem->data;
+ freemem_size -= offsetof (struct transmem_list, data);
+# else
+ transmem_list = newmem;
+ freemem = newmem;
+# endif
+
+ outbuf = freemem + sizeof (size_t);
+ }
+
+ /* We have now in our buffer a converted string. Put this
+ into the table of conversions. */
+ *(size_t *) freemem = outbuf - freemem - sizeof (size_t);
+ domain->conv_tab[act] = (char *) freemem;
+ /* Shrink freemem, but keep it aligned. */
+ freemem_size -= outbuf - freemem;
+ freemem = outbuf;
+ freemem += freemem_size & (alignof (size_t) - 1);
+ freemem_size = freemem_size & ~ (alignof (size_t) - 1);
+
+ __libc_lock_unlock (lock);
+ }
+
+ /* Now domain->conv_tab[act] contains the translation of all
+ the plural variants. */
+ result = domain->conv_tab[act] + sizeof (size_t);
+ resultlen = *(size_t *) domain->conv_tab[act];
+ }
+
+ converted:
+ /* The result string is converted. */
+
+#endif /* _LIBC || HAVE_ICONV */
+
+ *lengthp = resultlen;
+ return result;
+}
+
+
+/* Look up a plural variant. */
+static char *
+internal_function
+plural_lookup (domain, n, translation, translation_len)
+ struct loaded_l10nfile *domain;
+ unsigned long int n;
+ const char *translation;
+ size_t translation_len;
+{
+ struct loaded_domain *domaindata = (struct loaded_domain *) domain->data;
+ unsigned long int index;
+ const char *p;
+
+ index = plural_eval (domaindata->plural, n);
+ if (index >= domaindata->nplurals)
+ /* This should never happen. It means the plural expression and the
+ given maximum value do not match. */
+ index = 0;
+
+ /* Skip INDEX strings at TRANSLATION. */
+ p = translation;
+ while (index-- > 0)
+ {
+#ifdef _LIBC
+ p = __rawmemchr (p, '\0');
+#else
+ p = strchr (p, '\0');
+#endif
+ /* And skip over the NUL byte. */
+ p++;
+
+ if (p >= translation + translation_len)
+ /* This should never happen. It means the plural expression
+ evaluated to a value larger than the number of variants
+ available for MSGID1. */
+ return (char *) translation;
+ }
+ return (char *) p;
+}
+
+
+/* Function to evaluate the plural expression and return an index value. */
+static unsigned long int
+internal_function
+plural_eval (pexp, n)
+ struct expression *pexp;
+ unsigned long int n;
+{
+ switch (pexp->nargs)
+ {
+ case 0:
+ switch (pexp->operation)
+ {
+ case var:
+ return n;
+ case num:
+ return pexp->val.num;
+ default:
+ break;
+ }
+ /* NOTREACHED */
+ break;
+ case 1:
+ {
+ /* pexp->operation must be lnot. */
+ unsigned long int arg = plural_eval (pexp->val.args[0], n);
+ return ! arg;
+ }
+ case 2:
+ {
+ unsigned long int leftarg = plural_eval (pexp->val.args[0], n);
+ if (pexp->operation == lor)
+ return leftarg || plural_eval (pexp->val.args[1], n);
+ else if (pexp->operation == land)
+ return leftarg && plural_eval (pexp->val.args[1], n);
+ else
+ {
+ unsigned long int rightarg = plural_eval (pexp->val.args[1], n);
+
+ switch (pexp->operation)
+ {
+ case mult:
+ return leftarg * rightarg;
+ case divide:
+ return leftarg / rightarg;
+ case module:
+ return leftarg % rightarg;
+ case plus:
+ return leftarg + rightarg;
+ case minus:
+ return leftarg - rightarg;
+ case less_than:
+ return leftarg < rightarg;
+ case greater_than:
+ return leftarg > rightarg;
+ case less_or_equal:
+ return leftarg <= rightarg;
+ case greater_or_equal:
+ return leftarg >= rightarg;
+ case equal:
+ return leftarg == rightarg;
+ case not_equal:
+ return leftarg != rightarg;
+ default:
+ break;
+ }
+ }
+ /* NOTREACHED */
+ break;
+ }
+ case 3:
+ {
+ /* pexp->operation must be qmop. */
+ unsigned long int boolarg = plural_eval (pexp->val.args[0], n);
+ return plural_eval (pexp->val.args[boolarg ? 1 : 2], n);
+ }
+ }
+ /* NOTREACHED */
+ return 0;
+}
+
+
+/* Return string representation of locale CATEGORY. */
+static const char *
+internal_function
+category_to_name (category)
+ int category;
+{
+ const char *retval;
+
+ switch (category)
+ {
+#ifdef LC_COLLATE
+ case LC_COLLATE:
+ retval = "LC_COLLATE";
+ break;
+#endif
+#ifdef LC_CTYPE
+ case LC_CTYPE:
+ retval = "LC_CTYPE";
+ break;
+#endif
+#ifdef LC_MONETARY
+ case LC_MONETARY:
+ retval = "LC_MONETARY";
+ break;
+#endif
+#ifdef LC_NUMERIC
+ case LC_NUMERIC:
+ retval = "LC_NUMERIC";
+ break;
+#endif
+#ifdef LC_TIME
+ case LC_TIME:
+ retval = "LC_TIME";
+ break;
+#endif
+#ifdef LC_MESSAGES
+ case LC_MESSAGES:
+ retval = "LC_MESSAGES";
+ break;
+#endif
+#ifdef LC_RESPONSE
+ case LC_RESPONSE:
+ retval = "LC_RESPONSE";
+ break;
+#endif
+#ifdef LC_ALL
+ case LC_ALL:
+ /* This might not make sense but is perhaps better than any other
+ value. */
+ retval = "LC_ALL";
+ break;
+#endif
+ default:
+ /* If you have a better idea for a default value let me know. */
+ retval = "LC_XXX";
+ }
+
+ return retval;
+}
+
+/* Guess value of current locale from value of the environment variables. */
+static const char *
+internal_function
+guess_category_value (category, categoryname)
+ int category;
+ const char *categoryname;
+{
+ const char *language;
+ const char *retval;
+
+ /* The highest priority value is the `LANGUAGE' environment
+ variable. But we don't use the value if the currently selected
+ locale is the C locale. This is a GNU extension. */
+ language = getenv ("LANGUAGE");
+ if (language != NULL && language[0] == '\0')
+ language = NULL;
+
+ /* We have to proceed with the POSIX methods of looking to `LC_ALL',
+ `LC_xxx', and `LANG'. On some systems this can be done by the
+ `setlocale' function itself. */
+#if defined _LIBC || (defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL)
+ retval = setlocale (category, NULL);
+#else
+ /* Setting of LC_ALL overwrites all other. */
+ retval = getenv ("LC_ALL");
+ if (retval == NULL || retval[0] == '\0')
+ {
+ /* Next comes the name of the desired category. */
+ retval = getenv (categoryname);
+ if (retval == NULL || retval[0] == '\0')
+ {
+ /* Last possibility is the LANG environment variable. */
+ retval = getenv ("LANG");
+ if (retval == NULL || retval[0] == '\0')
+ /* We use C as the default domain. POSIX says this is
+ implementation defined. */
+ return "C";
+ }
+ }
+#endif
+
+ return language != NULL && strcmp (retval, "C") != 0 ? language : retval;
+}
+
+/* @@ begin of epilog @@ */
+
+/* We don't want libintl.a to depend on any other library. So we
+ avoid the non-standard function stpcpy. In GNU C Library this
+ function is available, though. Also allow the symbol HAVE_STPCPY
+ to be defined. */
+#if !_LIBC && !HAVE_STPCPY
+static char *
+stpcpy (dest, src)
+ char *dest;
+ const char *src;
+{
+ while ((*dest++ = *src++) != '\0')
+ /* Do nothing. */ ;
+ return dest - 1;
+}
+#endif
+
+#if !_LIBC && !HAVE_MEMPCPY
+static void *
+mempcpy (dest, src, n)
+ void *dest;
+ const void *src;
+ size_t n;
+{
+ return (void *) ((char *) memcpy (dest, src, n) + n);
+}
+#endif
+
+
+#ifdef _LIBC
+/* If we want to free all resources we have to do some work at
+ program's end. */
+static void __attribute__ ((unused))
+free_mem (void)
+{
+ void *old;
+
+ while (_nl_domain_bindings != NULL)
+ {
+ struct binding *oldp = _nl_domain_bindings;
+ _nl_domain_bindings = _nl_domain_bindings->next;
+ if (oldp->dirname != _nl_default_dirname)
+ /* Yes, this is a pointer comparison. */
+ free (oldp->dirname);
+ free (oldp->codeset);
+ free (oldp);
+ }
+
+ if (_nl_current_default_domain != _nl_default_default_domain)
+ /* Yes, again a pointer comparison. */
+ free ((char *) _nl_current_default_domain);
+
+ /* Remove the search tree with the known translations. */
+ __tdestroy (root, free);
+ root = NULL;
+
+ while (transmem_list != NULL)
+ {
+ old = transmem_list;
+ transmem_list = transmem_list->next;
+ free (old);
+ }
+}
+
+text_set_element (__libc_subfreeres, free_mem);
+#endif
diff --git a/intl/dcngettext.c b/intl/dcngettext.c
@@ -0,0 +1,60 @@
+/* Implementation of the dcngettext(3) function.
+ Copyright (C) 1995-1999, 2000, 2001 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
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DCNGETTEXT __dcngettext
+# define DCIGETTEXT __dcigettext
+#else
+# define DCNGETTEXT dcngettext__
+# define DCIGETTEXT dcigettext__
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+ locale. */
+char *
+DCNGETTEXT (domainname, msgid1, msgid2, n, category)
+ const char *domainname;
+ const char *msgid1;
+ const char *msgid2;
+ unsigned long int n;
+ int category;
+{
+ return DCIGETTEXT (domainname, msgid1, msgid2, 1, n, category);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__dcngettext, dcngettext);
+#endif
diff --git a/intl/dgettext.c b/intl/dgettext.c
@@ -1,32 +1,32 @@
-/* Implementation of the dgettext(3) function
- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Implementation of the dgettext(3) function.
+ Copyright (C) 1995-1997, 2000, 2001 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)
+ 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
+ by the Free Software Foundation; either version 2, 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.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#if defined HAVE_LOCALE_H || defined _LIBC
-# include <locale.h>
-#endif
+#include <locale.h>
+#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
-# include "libgettext.h"
+# include "libgnuintl.h"
#endif
/* @@ end of prolog @@ */
diff --git a/intl/dngettext.c b/intl/dngettext.c
@@ -0,0 +1,61 @@
+/* Implementation of the dngettext(3) function.
+ Copyright (C) 1995-1997, 2000, 2001 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
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <locale.h>
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define DNGETTEXT __dngettext
+# define DCNGETTEXT __dcngettext
+#else
+# define DNGETTEXT dngettext__
+# define DCNGETTEXT dcngettext__
+#endif
+
+/* Look up MSGID in the DOMAINNAME message catalog of the current
+ LC_MESSAGES locale and skip message according to the plural form. */
+char *
+DNGETTEXT (domainname, msgid1, msgid2, n)
+ const char *domainname;
+ const char *msgid1;
+ const char *msgid2;
+ unsigned long int n;
+{
+ return DCNGETTEXT (domainname, msgid1, msgid2, n, LC_MESSAGES);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__dngettext, dngettext);
+#endif
diff --git a/intl/explodename.c b/intl/explodename.c
@@ -1,33 +1,27 @@
-/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1998, 2000, 2001 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
- 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)
+ 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
+ by the Free Software Foundation; either version 2, 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.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#endif
-
-#if defined HAVE_STRING_H || defined _LIBC
-# include <string.h>
-#else
-# include <strings.h>
-#endif
+#include <stdlib.h>
+#include <string.h>
#include <sys/types.h>
#include "loadinfo.h"
diff --git a/intl/finddomain.c b/intl/finddomain.c
@@ -1,64 +1,40 @@
/* Handle list of needed message catalogs
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+ Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@gnu.org>, 1995.
- 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)
+ 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
+ by the Free Software Foundation; either version 2, 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.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include <ctype.h>
-#include <errno.h>
#include <stdio.h>
#include <sys/types.h>
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#else
-# ifdef HAVE_MALLOC_H
-# include <malloc.h>
-# else
-void free ();
-# endif
-#endif
-
-#if defined HAVE_STRING_H || defined _LIBC
-# include <string.h>
-#else
-# include <strings.h>
-# ifndef memcpy
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
-# endif
-#endif
-#if !HAVE_STRCHR && !defined _LIBC
-# ifndef strchr
-# define strchr index
-# endif
-#endif
+#include <stdlib.h>
+#include <string.h>
#if defined HAVE_UNISTD_H || defined _LIBC
# include <unistd.h>
#endif
-#include "gettext.h"
#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
-# include "libgettext.h"
+# include "libgnuintl.h"
#endif
/* @@ end of prolog @@ */
@@ -71,10 +47,11 @@ static struct loaded_l10nfile *_nl_loaded_domains;
established bindings. */
struct loaded_l10nfile *
internal_function
-_nl_find_domain (dirname, locale, domainname)
+_nl_find_domain (dirname, locale, domainname, domainbinding)
const char *dirname;
char *locale;
const char *domainname;
+ struct binding *domainbinding;
{
struct loaded_l10nfile *retval;
const char *language;
@@ -120,7 +97,7 @@ _nl_find_domain (dirname, locale, domainname)
int cnt;
if (retval->decided == 0)
- _nl_load_domain (retval);
+ _nl_load_domain (retval, domainbinding);
if (retval->data != NULL)
return retval;
@@ -128,7 +105,7 @@ _nl_find_domain (dirname, locale, domainname)
for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
{
if (retval->successor[cnt]->decided == 0)
- _nl_load_domain (retval->successor[cnt]);
+ _nl_load_domain (retval->successor[cnt], domainbinding);
if (retval->successor[cnt]->data != NULL)
break;
@@ -175,14 +152,14 @@ _nl_find_domain (dirname, locale, domainname)
return NULL;
if (retval->decided == 0)
- _nl_load_domain (retval);
+ _nl_load_domain (retval, domainbinding);
if (retval->data == NULL)
{
int cnt;
for (cnt = 0; retval->successor[cnt] != NULL; ++cnt)
{
if (retval->successor[cnt]->decided == 0)
- _nl_load_domain (retval->successor[cnt]);
+ _nl_load_domain (retval->successor[cnt], domainbinding);
if (retval->successor[cnt]->data != NULL)
break;
}
@@ -192,6 +169,10 @@ _nl_find_domain (dirname, locale, domainname)
if (alias_value != NULL)
free (locale);
+ /* The space for normalized_codeset is dynamically allocated. Free it. */
+ if (mask & XPG_NORM_CODESET)
+ free ((void *) normalized_codeset);
+
return retval;
}
@@ -208,6 +189,7 @@ free_mem (void)
if (runp->data != NULL)
_nl_unload_domain ((struct loaded_domain *) runp->data);
runp = runp->next;
+ free ((char *) here->filename);
free (here);
}
}
diff --git a/intl/gettext.c b/intl/gettext.c
@@ -1,19 +1,20 @@
/* Implementation of gettext(3) function.
- Copyright (C) 1995, 1997 Free Software Foundation, Inc.
+ Copyright (C) 1995, 1997, 2000, 2001 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)
+ 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
+ by the Free Software Foundation; either version 2, 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.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -23,21 +24,14 @@
# define __need_NULL
# include <stddef.h>
#else
-# ifdef STDC_HEADERS
-# include <stdlib.h> /* Just for NULL. */
-# else
-# ifdef HAVE_STRING_H
-# include <string.h>
-# else
-# define NULL ((void *) 0)
-# endif
-# endif
+# include <stdlib.h> /* Just for NULL. */
#endif
+#include "gettextP.h"
#ifdef _LIBC
# include <libintl.h>
#else
-# include "libgettext.h"
+# include "libgnuintl.h"
#endif
/* @@ end of prolog @@ */
@@ -48,10 +42,10 @@
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define GETTEXT __gettext
-# define DGETTEXT __dgettext
+# define DCGETTEXT __dcgettext
#else
# define GETTEXT gettext__
-# define DGETTEXT dgettext__
+# define DCGETTEXT dcgettext__
#endif
/* Look up MSGID in the current default message catalog for the current
@@ -61,7 +55,7 @@ char *
GETTEXT (msgid)
const char *msgid;
{
- return DGETTEXT (NULL, msgid);
+ return DCGETTEXT (NULL, msgid, LC_MESSAGES);
}
#ifdef _LIBC
diff --git a/intl/gettext.h b/intl/gettext.h
@@ -1,26 +1,24 @@
-/* Internal header for GNU gettext internationalization functions.
- Copyright (C) 1995, 1997 Free Software Foundation, Inc.
+/* Description of GNU message catalog format: general file layout.
+ Copyright (C) 1995, 1997, 2000, 2001 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)
+ 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
+ by the Free Software Foundation; either version 2, 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.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
#ifndef _GETTEXT_H
#define _GETTEXT_H 1
-#include <stdio.h>
-
#if HAVE_LIMITS_H || _LIBC
# include <limits.h>
#endif
@@ -37,9 +35,8 @@
/* The following contortions are an attempt to use the C preprocessor
to determine an unsigned integral type that is 32 bits wide. An
alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
- doing that would require that the configure script compile and *run*
- the resulting executable. Locally running cross-compiled executables
- is usually not possible. */
+ as of version autoconf-2.13, the AC_CHECK_SIZEOF macro doesn't work
+ when cross-compiling. */
#if __STDC__
# define UINT_MAX_32_BITS 4294967295U
diff --git a/intl/gettextP.h b/intl/gettextP.h
@@ -1,26 +1,39 @@
-/* Header describing internals of gettext library
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+/* Header describing internals of libintl library.
+ Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@cygnus.com>, 1995.
- 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)
+ 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
+ by the Free Software Foundation; either version 2, 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.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
#ifndef _GETTEXTP_H
#define _GETTEXTP_H
+#include <stddef.h> /* Get size_t. */
+
+#ifdef _LIBC
+# include "../iconv/gconv_int.h"
+#else
+# if HAVE_ICONV
+# include <iconv.h>
+# endif
+#endif
+
#include "loadinfo.h"
+#include "gettext.h" /* Get nls_uint32. */
+
/* @@ end of prolog @@ */
#ifndef PARAMS
@@ -35,6 +48,12 @@
# define internal_function
#endif
+/* Tell the compiler when a conditional or integer expression is
+ almost always true or almost always false. */
+#ifndef HAVE_BUILTIN_EXPECT
+# define __builtin_expect(expr, val) (expr)
+#endif
+
#ifndef W
# define W(flag, data) ((flag) ? SWAP (data) : (data))
#endif
@@ -44,8 +63,6 @@
# include <byteswap.h>
# define SWAP(i) bswap_32 (i)
#else
-static nls_uint32 SWAP PARAMS ((nls_uint32 i));
-
static inline nls_uint32
SWAP (i)
nls_uint32 i;
@@ -55,6 +72,52 @@ SWAP (i)
#endif
+/* This is the representation of the expressions to determine the
+ plural form. */
+struct expression
+{
+ int nargs; /* Number of arguments. */
+ enum operator
+ {
+ /* Without arguments: */
+ var, /* The variable "n". */
+ num, /* Decimal number. */
+ /* Unary operators: */
+ lnot, /* Logical NOT. */
+ /* Binary operators: */
+ mult, /* Multiplication. */
+ divide, /* Division. */
+ module, /* Module operation. */
+ plus, /* Addition. */
+ minus, /* Subtraction. */
+ less_than, /* Comparison. */
+ greater_than, /* Comparison. */
+ less_or_equal, /* Comparison. */
+ greater_or_equal, /* Comparison. */
+ equal, /* Comparision for equality. */
+ not_equal, /* Comparision for inequality. */
+ land, /* Logical AND. */
+ lor, /* Logical OR. */
+ /* Ternary operators: */
+ qmop /* Question mark operator. */
+ } operation;
+ union
+ {
+ unsigned long int num; /* Number value for `num'. */
+ struct expression *args[3]; /* Up to three arguments. */
+ } val;
+};
+
+/* This is the data structure to pass information to the parser and get
+ the result in a thread-safe way. */
+struct parse_args
+{
+ const char *cp;
+ struct expression *res;
+};
+
+
+/* The representation of an opened message catalog. */
struct loaded_domain
{
const char *data;
@@ -66,23 +129,123 @@ struct loaded_domain
struct string_desc *trans_tab;
nls_uint32 hash_size;
nls_uint32 *hash_tab;
+ int codeset_cntr;
+#ifdef _LIBC
+ __gconv_t conv;
+#else
+# if HAVE_ICONV
+ iconv_t conv;
+# endif
+#endif
+ char **conv_tab;
+
+ struct expression *plural;
+ unsigned long int nplurals;
};
+/* We want to allocate a string at the end of the struct. But ISO C
+ doesn't allow zero sized arrays. */
+#ifdef __GNUC__
+# define ZERO 0
+#else
+# define ZERO 1
+#endif
+
+/* A set of settings bound to a message domain. Used to store settings
+ from bindtextdomain() and bind_textdomain_codeset(). */
struct binding
{
struct binding *next;
- char *domainname;
char *dirname;
+ int codeset_cntr; /* Incremented each time codeset changes. */
+ char *codeset;
+ char domainname[ZERO];
};
+/* A counter which is incremented each time some previous translations
+ become invalid.
+ This variable is part of the external ABI of the GNU libintl. */
+extern int _nl_msg_cat_cntr;
+
struct loaded_l10nfile *_nl_find_domain PARAMS ((const char *__dirname,
char *__locale,
- const char *__domainname))
+ const char *__domainname,
+ struct binding *__domainbinding))
internal_function;
-void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain))
+void _nl_load_domain PARAMS ((struct loaded_l10nfile *__domain,
+ struct binding *__domainbinding))
internal_function;
void _nl_unload_domain PARAMS ((struct loaded_domain *__domain))
internal_function;
+const char *_nl_init_domain_conv PARAMS ((struct loaded_l10nfile *__domain_file,
+ struct loaded_domain *__domain,
+ struct binding *__domainbinding))
+ internal_function;
+void _nl_free_domain_conv PARAMS ((struct loaded_domain *__domain))
+ internal_function;
+
+char *_nl_find_msg PARAMS ((struct loaded_l10nfile *domain_file,
+ struct binding *domainbinding,
+ const char *msgid, size_t *lengthp))
+ internal_function;
+
+#ifdef _LIBC
+extern char *__gettext PARAMS ((const char *__msgid));
+extern char *__dgettext PARAMS ((const char *__domainname,
+ const char *__msgid));
+extern char *__dcgettext PARAMS ((const char *__domainname,
+ const char *__msgid, int __category));
+extern char *__ngettext PARAMS ((const char *__msgid1, const char *__msgid2,
+ unsigned long int __n));
+extern char *__dngettext PARAMS ((const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ unsigned long int n));
+extern char *__dcngettext PARAMS ((const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ unsigned long int __n, int __category));
+extern char *__dcigettext PARAMS ((const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ int __plural, unsigned long int __n,
+ int __category));
+extern char *__textdomain PARAMS ((const char *__domainname));
+extern char *__bindtextdomain PARAMS ((const char *__domainname,
+ const char *__dirname));
+extern char *__bind_textdomain_codeset PARAMS ((const char *__domainname,
+ const char *__codeset));
+#else
+extern char *gettext__ PARAMS ((const char *__msgid));
+extern char *dgettext__ PARAMS ((const char *__domainname,
+ const char *__msgid));
+extern char *dcgettext__ PARAMS ((const char *__domainname,
+ const char *__msgid, int __category));
+extern char *ngettext__ PARAMS ((const char *__msgid1, const char *__msgid2,
+ unsigned long int __n));
+extern char *dngettext__ PARAMS ((const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ unsigned long int __n));
+extern char *dcngettext__ PARAMS ((const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ unsigned long int __n, int __category));
+extern char *dcigettext__ PARAMS ((const char *__domainname,
+ const char *__msgid1, const char *__msgid2,
+ int __plural, unsigned long int __n,
+ int __category));
+extern char *textdomain__ PARAMS ((const char *__domainname));
+extern char *bindtextdomain__ PARAMS ((const char *__domainname,
+ const char *__dirname));
+extern char *bind_textdomain_codeset__ PARAMS ((const char *__domainname,
+ const char *__codeset));
+#endif
+
+#ifdef _LIBC
+extern void __gettext_free_exp PARAMS ((struct expression *exp))
+ internal_function;
+extern int __gettextparse PARAMS ((void *arg));
+#else
+extern void gettext_free_exp__ PARAMS ((struct expression *exp))
+ internal_function;
+extern int gettextparse__ PARAMS ((void *arg));
+#endif
/* @@ begin of epilog @@ */
diff --git a/intl/hash-string.h b/intl/hash-string.h
@@ -1,20 +1,20 @@
-/* Implements a string hashing function.
- Copyright (C) 1995, 1997 Free Software Foundation, Inc.
+/* Description of GNU message catalog format: string hashing function.
+ Copyright (C) 1995, 1997, 1998, 2000, 2001 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)
+ 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
+ by the Free Software Foundation; either version 2, 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.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
You should have received a copy of the GNU Library General Public
- License along with the GNU C Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
/* @@ end of prolog @@ */
diff --git a/intl/intl-compat.c b/intl/intl-compat.c
@@ -1,43 +1,99 @@
/* intl-compat.c - Stub functions to call gettext functions from GNU gettext
Library.
- Copyright (C) 1995 Software Foundation, Inc.
+ Copyright (C) 1995, 2000, 2001 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)
-any later version.
+ 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
+ by the Free Software Foundation; either version 2, 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 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
+ Library 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#include "libgettext.h"
+#include "libgnuintl.h"
+#include "gettextP.h"
/* @@ end of prolog @@ */
+/* This file redirects the gettext functions (without prefix or suffix) to
+ those defined in the included GNU gettext library (with "__" suffix).
+ It is compiled into libintl when the included GNU gettext library is
+ configured --with-included-gettext.
+
+ This redirection works also in the case that the system C library or
+ the system libintl library contain gettext/textdomain/... functions.
+ If it didn't, we would need to add preprocessor level redirections to
+ libgnuintl.h of the following form:
+
+# define gettext gettext__
+# define dgettext dgettext__
+# define dcgettext dcgettext__
+# define ngettext ngettext__
+# define dngettext dngettext__
+# define dcngettext dcngettext__
+# define textdomain textdomain__
+# define bindtextdomain bindtextdomain__
+# define bind_textdomain_codeset bind_textdomain_codeset__
+
+ How does this redirection work? There are two cases.
+ A. When libintl.a is linked into an executable, it works because
+ functions defined in the executable always override functions in
+ the shared libraries.
+ B. When libintl.so is used, it works because
+ 1. those systems defining gettext/textdomain/... in the C library
+ (namely, Solaris 2.4 and newer, and GNU libc 2.0 and newer) are
+ ELF systems and define these symbols as weak, thus explicitly
+ letting other shared libraries override it.
+ 2. those systems defining gettext/textdomain/... in a standalone
+ libintl.so library (namely, Solaris 2.3 and newer) have this
+ shared library in /usr/lib, and the linker will search /usr/lib
+ *after* the directory where the GNU gettext library is installed.
+
+ A third case, namely when libintl.a is linked into a shared library
+ whose name is not libintl.so, is not supported. In this case, on
+ Solaris, when -lintl precedes the linker option for the shared library
+ containing GNU gettext, the system's gettext would indeed override
+ the GNU gettext. Anyone doing this kind of stuff must be clever enough
+ to 1. compile libintl.a with -fPIC, 2. remove -lintl from his linker
+ command line. */
+
#undef gettext
#undef dgettext
#undef dcgettext
+#undef ngettext
+#undef dngettext
+#undef dcngettext
#undef textdomain
#undef bindtextdomain
+#undef bind_textdomain_codeset
char *
-bindtextdomain (domainname, dirname)
+gettext (msgid)
+ const char *msgid;
+{
+ return gettext__ (msgid);
+}
+
+
+char *
+dgettext (domainname, msgid)
const char *domainname;
- const char *dirname;
+ const char *msgid;
{
- return bindtextdomain__ (domainname, dirname);
+ return dgettext__ (domainname, msgid);
}
@@ -52,19 +108,35 @@ dcgettext (domainname, msgid, category)
char *
-dgettext (domainname, msgid)
+ngettext (msgid1, msgid2, n)
+ const char *msgid1;
+ const char *msgid2;
+ unsigned long int n;
+{
+ return ngettext__ (msgid1, msgid2, n);
+}
+
+
+char *
+dngettext (domainname, msgid1, msgid2, n)
const char *domainname;
- const char *msgid;
+ const char *msgid1;
+ const char *msgid2;
+ unsigned long int n;
{
- return dgettext__ (domainname, msgid);
+ return dngettext__ (domainname, msgid1, msgid2, n);
}
char *
-gettext (msgid)
- const char *msgid;
+dcngettext (domainname, msgid1, msgid2, n, category)
+ const char *domainname;
+ const char *msgid1;
+ const char *msgid2;
+ unsigned long int n;
+ int category;
{
- return gettext__ (msgid);
+ return dcngettext__ (domainname, msgid1, msgid2, n, category);
}
@@ -74,3 +146,21 @@ textdomain (domainname)
{
return textdomain__ (domainname);
}
+
+
+char *
+bindtextdomain (domainname, dirname)
+ const char *domainname;
+ const char *dirname;
+{
+ return bindtextdomain__ (domainname, dirname);
+}
+
+
+char *
+bind_textdomain_codeset (domainname, codeset)
+ const char *domainname;
+ const char *codeset;
+{
+ return bind_textdomain_codeset__ (domainname, codeset);
+}
diff --git a/intl/l10nflist.c b/intl/l10nflist.c
@@ -1,37 +1,33 @@
-/* Handle list of needed message catalogs
- Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999, 2000, 2001 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
- 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)
+ 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
+ by the Free Software Foundation; either version 2, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* Tell glibc's <string.h> to provide a prototype for stpcpy().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-
-#if defined HAVE_STRING_H || defined _LIBC
-# ifndef _GNU_SOURCE
-# define _GNU_SOURCE 1
-# endif
-# include <string.h>
-#else
-# include <strings.h>
-# ifndef memcpy
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
-# endif
-#endif
+#include <string.h>
#if !HAVE_STRCHR && !defined _LIBC
# ifndef strchr
# define strchr index
@@ -43,10 +39,7 @@
#endif
#include <ctype.h>
#include <sys/types.h>
-
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#endif
+#include <stdlib.h>
#include "loadinfo.h"
@@ -224,7 +217,7 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
/* Construct file name. */
memcpy (abs_filename, dirlist, dirlist_len);
- __argz_stringify (abs_filename, dirlist_len, ':');
+ __argz_stringify (abs_filename, dirlist_len, PATH_SEPARATOR);
cp = abs_filename + (dirlist_len - 1);
*cp++ = '/';
cp = stpcpy (cp, language);
@@ -349,7 +342,8 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
/* Normalize codeset name. There is no standard for the codeset
names. Normalization allows the user to use any of the common
- names. */
+ names. The return value is dynamically allocated and has to be
+ freed by the caller. */
const char *
_nl_normalize_codeset (codeset, name_len)
const char *codeset;
diff --git a/intl/libgettext.h b/intl/libgettext.h
@@ -1,182 +1,49 @@
-/* Message catalogs for internationalization.
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Convenience header for conditional use of GNU <libintl.h>.
+ Copyright (C) 1995-1998, 2000, 2001 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)
+ 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
+ by the Free Software Foundation; either version 2, 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.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
-/* Because on some systems (e.g. Solaris) we sometimes have to include
- the systems libintl.h as well as this file we have more complex
- include protection above. But the systems header might perhaps also
- define _LIBINTL_H and therefore we have to protect the definition here. */
-
-#if !defined _LIBINTL_H || !defined _LIBGETTEXT_H
-#ifndef _LIBINTL_H
-# define _LIBINTL_H 1
-#endif
-#define _LIBGETTEXT_H 1
-
-/* We define an additional symbol to signal that we use the GNU
- implementation of gettext. */
-#define __USE_GNU_GETTEXT 1
-
-#include <sys/types.h>
-
-#if HAVE_LOCALE_H
-# include <locale.h>
-#endif
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* @@ end of prolog @@ */
-
-#ifndef PARAMS
-# if __STDC__ || defined __cplusplus
-# define PARAMS(args) args
-# else
-# define PARAMS(args) ()
-# endif
-#endif
-
-#ifndef NULL
-# if !defined __cplusplus || defined __GNUC__
-# define NULL ((void *) 0)
-# else
-# define NULL (0)
-# endif
-#endif
-
-#if !HAVE_LC_MESSAGES
-/* This value determines the behaviour of the gettext() and dgettext()
- function. But some system does not have this defined. Define it
- to a default value. */
-# define LC_MESSAGES (-1)
-#endif
-
-
-/* Declarations for gettext-using-catgets interface. Derived from
- Jim Meyering's libintl.h. */
-struct _msg_ent
-{
- const char *_msg;
- int _msg_number;
-};
-
-
-#if HAVE_CATGETS
-/* These two variables are defined in the automatically by po-to-tbl.sed
- generated file `cat-id-tbl.c'. */
-extern const struct _msg_ent _msg_tbl[];
-extern int _msg_tbl_length;
-#endif
-
-
-/* For automatical extraction of messages sometimes no real
- translation is needed. Instead the string itself is the result. */
-#define gettext_noop(Str) (Str)
-
-/* Look up MSGID in the current default message catalog for the current
- LC_MESSAGES locale. If not found, returns MSGID itself (the default
- text). */
-extern char *gettext PARAMS ((const char *__msgid));
-extern char *gettext__ PARAMS ((const char *__msgid));
-
-/* Look up MSGID in the DOMAINNAME message catalog for the current
- LC_MESSAGES locale. */
-extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid));
-extern char *dgettext__ PARAMS ((const char *__domainname,
- const char *__msgid));
-
-/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
- locale. */
-extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid,
- int __category));
-extern char *dcgettext__ PARAMS ((const char *__domainname,
- const char *__msgid, int __category));
-
-
-/* Set the current default message catalog to DOMAINNAME.
- If DOMAINNAME is null, return the current default.
- If DOMAINNAME is "", reset to the default of "messages". */
-extern char *textdomain PARAMS ((const char *__domainname));
-extern char *textdomain__ PARAMS ((const char *__domainname));
-
-/* Specify that the DOMAINNAME message catalog will be found
- in DIRNAME rather than in the system locale data base. */
-extern char *bindtextdomain PARAMS ((const char *__domainname,
- const char *__dirname));
-extern char *bindtextdomain__ PARAMS ((const char *__domainname,
- const char *__dirname));
+#ifndef _LIBGETTEXT_H
+#define _LIBGETTEXT_H 1
+/* NLS can be disabled through the configure --disable-nls option. */
#if ENABLE_NLS
-/* Solaris 2.3 has the gettext function but dcgettext is missing.
- So we omit this optimization for Solaris 2.3. BTW, Solaris 2.4
- has dcgettext. */
-# if !HAVE_CATGETS && (!HAVE_GETTEXT || HAVE_DCGETTEXT)
-
-# define gettext(Msgid) \
- dgettext (NULL, Msgid)
-
-# define dgettext(Domainname, Msgid) \
- dcgettext (Domainname, Msgid, LC_MESSAGES)
-
-# if defined __GNUC__ && __GNUC__ == 2 && __GNUC_MINOR__ >= 7
-/* This global variable is defined in loadmsgcat.c. We need a sign,
- whether a new catalog was loaded, which can be associated with all
- translations. */
-extern int _nl_msg_cat_cntr;
-
-# define dcgettext(Domainname, Msgid, Category) \
- (__extension__ \
- ({ \
- char *__result; \
- if (__builtin_constant_p (Msgid)) \
- { \
- static char *__translation__; \
- static int __catalog_counter__; \
- if (! __translation__ || __catalog_counter__ != _nl_msg_cat_cntr) \
- { \
- __translation__ = \
- dcgettext__ (Domainname, Msgid, Category); \
- __catalog_counter__ = _nl_msg_cat_cntr; \
- } \
- __result = __translation__; \
- } \
- else \
- __result = dcgettext__ (Domainname, Msgid, Category); \
- __result; \
- }))
-# endif
-# endif
+/* Get declarations of GNU message catalog functions. */
+# include <libintl.h>
#else
# define gettext(Msgid) (Msgid)
# define dgettext(Domainname, Msgid) (Msgid)
# define dcgettext(Domainname, Msgid, Category) (Msgid)
-# define textdomain(Domainname) ((char *) Domainname)
-# define bindtextdomain(Domainname, Dirname) ((char *) Dirname)
+# define ngettext(Msgid1, Msgid2, N) \
+ ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2))
+# define dngettext(Domainname, Msgid1, Msgid2, N) \
+ ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2))
+# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \
+ ((N) == 1 ? (char *) (Msgid1) : (char *) (Msgid2))
+# define textdomain(Domainname) ((char *) (Domainname))
+# define bindtextdomain(Domainname, Dirname) ((char *) (Dirname))
+# define bind_textdomain_codeset(Domainname, Codeset) ((char *) (Codeset))
#endif
-/* @@ begin of epilog @@ */
-
-#ifdef __cplusplus
-}
-#endif
+/* For automatical extraction of messages sometimes no real
+ translation is needed. Instead the string itself is the result. */
+#define gettext_noop(Str) (Str)
-#endif
+#endif /* _LIBGETTEXT_H */
diff --git a/intl/libgnuintl.h b/intl/libgnuintl.h
@@ -0,0 +1,128 @@
+/* Message catalogs for internationalization.
+ Copyright (C) 1995-1997, 2000, 2001 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
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifndef _LIBINTL_H
+#define _LIBINTL_H 1
+
+#include <locale.h>
+
+/* The LC_MESSAGES locale category is the category used by the functions
+ gettext() and dgettext(). It is specified in POSIX, but not in ANSI C.
+ On systems that don't define it, use an arbitrary value instead.
+ On Solaris, <locale.h> defines __LOCALE_H then includes <libintl.h> (i.e.
+ this file!) and then only defines LC_MESSAGES. To avoid a redefinition
+ warning, don't define LC_MESSAGES in this case. */
+#if !defined LC_MESSAGES && !defined __LOCALE_H
+# define LC_MESSAGES 1729
+#endif
+
+/* We define an additional symbol to signal that we use the GNU
+ implementation of gettext. */
+#define __USE_GNU_GETTEXT 1
+
+/* Resolve a platform specific conflict on DJGPP. GNU gettext takes
+ precedence over _conio_gettext. */
+#ifdef __DJGPP__
+# undef gettext
+# define gettext gettext
+#endif
+
+#ifndef PARAMS
+# if __STDC__ || defined __cplusplus
+# define PARAMS(args) args
+# else
+# define PARAMS(args) ()
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Look up MSGID in the current default message catalog for the current
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default
+ text). */
+extern char *gettext PARAMS ((const char *__msgid));
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current
+ LC_MESSAGES locale. */
+extern char *dgettext PARAMS ((const char *__domainname, const char *__msgid));
+
+/* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
+ locale. */
+extern char *dcgettext PARAMS ((const char *__domainname, const char *__msgid,
+ int __category));
+
+
+/* Similar to `gettext' but select the plural form corresponding to the
+ number N. */
+extern char *ngettext PARAMS ((const char *__msgid1, const char *__msgid2,
+ unsigned long int __n));
+
+/* Similar to `dgettext' but select the plural form corresponding to the
+ number N. */
+extern char *dngettext PARAMS ((const char *__domainname, const char *__msgid1,
+ const char *__msgid2, unsigned long int __n));
+
+/* Similar to `dcgettext' but select the plural form corresponding to the
+ number N. */
+extern char *dcngettext PARAMS ((const char *__domainname, const char *__msgid1,
+ const char *__msgid2, unsigned long int __n,
+ int __category));
+
+
+/* Set the current default message catalog to DOMAINNAME.
+ If DOMAINNAME is null, return the current default.
+ If DOMAINNAME is "", reset to the default of "messages". */
+extern char *textdomain PARAMS ((const char *__domainname));
+
+/* Specify that the DOMAINNAME message catalog will be found
+ in DIRNAME rather than in the system locale data base. */
+extern char *bindtextdomain PARAMS ((const char *__domainname,
+ const char *__dirname));
+
+/* Specify the character encoding in which the messages from the
+ DOMAINNAME message catalog will be returned. */
+extern char *bind_textdomain_codeset PARAMS ((const char *__domainname,
+ const char *__codeset));
+
+
+/* Optimized version of the functions above. */
+#if defined __OPTIMIZED
+/* These are macros, but could also be inline functions. */
+
+# define gettext(msgid) \
+ dgettext (NULL, msgid)
+
+# define dgettext(domainname, msgid) \
+ dcgettext (domainname, msgid, LC_MESSAGES)
+
+# define ngettext(msgid1, msgid2, n) \
+ dngettext (NULL, msgid1, msgid2, n)
+
+# define dngettext(domainname, msgid1, msgid2, n) \
+ dcngettext (domainname, msgid1, msgid2, n, LC_MESSAGES)
+
+#endif /* Optimizing. */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* libintl.h */
diff --git a/intl/linux-msg.sed b/intl/linux-msg.sed
@@ -1,100 +0,0 @@
-# po2msg.sed - Convert Uniforum style .po file to Linux style .msg file
-# Copyright (C) 1995 Free Software Foundation, Inc.
-# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-#
-# 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)
-# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-#
-# The first directive in the .msg should be the definition of the
-# message set number. We use always set number 1.
-#
-1 {
- i\
-$set 1 # Automatically created by po2msg.sed
- h
- s/.*/0/
- x
-}
-#
-# Mitch's old catalog format does not allow comments.
-#
-# We copy the original message as a comment into the .msg file.
-#
-/^msgid/ {
- s/msgid[ ]*"//
-#
-# This does not work now with the new format.
-# /"$/! {
-# s/\\$//
-# s/$/ ... (more lines following)"/
-# }
- x
-# The following nice solution is by
-# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
- td
-# Increment a decimal number in pattern space.
-# First hide trailing `9' digits.
- :d
- s/9\(_*\)$/_\1/
- td
-# Assure at least one digit is available.
- s/^\(_*\)$/0\1/
-# Increment the last digit.
- s/8\(_*\)$/9\1/
- s/7\(_*\)$/8\1/
- s/6\(_*\)$/7\1/
- s/5\(_*\)$/6\1/
- s/4\(_*\)$/5\1/
- s/3\(_*\)$/4\1/
- s/2\(_*\)$/3\1/
- s/1\(_*\)$/2\1/
- s/0\(_*\)$/1\1/
-# Convert the hidden `9' digits to `0's.
- s/_/0/g
- x
- G
- s/\(.*\)"\n\([0-9]*\)/$ #\2 Original Message:(\1)/p
-}
-#
-# The .msg file contains, other then the .po file, only the translations
-# but each given a unique ID. Starting from 1 and incrementing by 1 for
-# each message we assign them to the messages.
-# It is important that the .po file used to generate the cat-id-tbl.c file
-# (with po-to-tbl) is the same as the one used here. (At least the order
-# of declarations must not be changed.)
-#
-/^msgstr/ {
- s/msgstr[ ]*"\(.*\)"/# \1/
-# Clear substitution flag.
- tb
-# Append the next line.
- :b
- N
-# Look whether second part is continuation line.
- s/\(.*\n\)"\(.*\)"/\1\2/
-# Yes, then branch.
- ta
- P
- D
-# Note that D includes a jump to the start!!
-# We found a continuation line. But before printing insert '\'.
- :a
- s/\(.*\)\(\n.*\)/\1\\\2/
- P
-# We cannot use D here.
- s/.*\n\(.*\)/\1/
- tb
-}
-d
diff --git a/intl/loadinfo.h b/intl/loadinfo.h
@@ -1,20 +1,24 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996-1999, 2000, 2001 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
- 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)
+ 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
+ by the Free Software Foundation; either version 2, 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.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifndef _LOADINFO_H
+#define _LOADINFO_H 1
#ifndef PARAMS
# if __STDC__
@@ -24,6 +28,25 @@
# endif
#endif
+#ifndef internal_function
+# define internal_function
+#endif
+
+/* Tell the compiler when a conditional or integer expression is
+ almost always true or almost always false. */
+#ifndef HAVE_BUILTIN_EXPECT
+# define __builtin_expect(expr, val) (expr)
+#endif
+
+/* Separator in PATH like lists of pathnames. */
+#if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__
+ /* Win32, OS/2, DOS */
+# define PATH_SEPARATOR ';'
+#else
+ /* Unix */
+# define PATH_SEPARATOR ':'
+#endif
+
/* Encoding of locale name parts. */
#define CEN_REVISION 1
#define CEN_SPONSOR 2
@@ -50,6 +73,10 @@ struct loaded_l10nfile
};
+/* Normalize codeset name. There is no standard for the codeset
+ names. Normalization allows the user to use any of the common
+ names. The return value is dynamically allocated and has to be
+ freed by the caller. */
extern const char *_nl_normalize_codeset PARAMS ((const char *codeset,
size_t name_len));
@@ -66,6 +93,8 @@ _nl_make_l10nflist PARAMS ((struct loaded_l10nfile **l10nfile_list,
extern const char *_nl_expand_alias PARAMS ((const char *name));
+/* normalized_codeset is dynamically allocated and has to be freed by
+ the caller. */
extern int _nl_explode_name PARAMS ((char *name, const char **language,
const char **modifier,
const char **territory,
@@ -76,3 +105,5 @@ extern int _nl_explode_name PARAMS ((char *name, const char **language,
const char **revision));
extern char *_nl_find_language PARAMS ((const char *name));
+
+#endif /* loadinfo.h */
diff --git a/intl/loadmsgcat.c b/intl/loadmsgcat.c
@@ -1,36 +1,67 @@
/* Load needed message catalogs.
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1995-1999, 2000, 2001 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)
+ 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
+ by the Free Software Foundation; either version 2, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* Tell glibc's <string.h> to provide a prototype for mempcpy().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
+#include <ctype.h>
+#include <errno.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+# define HAVE_ALLOCA 1
+#else
+# if defined HAVE_ALLOCA_H || defined _LIBC
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca
+char *alloca ();
+# endif
+# endif
+# endif
#endif
+#include <stdlib.h>
+#include <string.h>
+
#if defined HAVE_UNISTD_H || defined _LIBC
# include <unistd.h>
#endif
+#ifdef _LIBC
+# include <langinfo.h>
+# include <locale.h>
+#endif
+
#if (defined HAVE_MMAP && defined HAVE_MUNMAP && !defined DISALLOW_MMAP) \
|| (defined _LIBC && defined _POSIX_MAPPED_FILES)
# include <sys/mman.h>
@@ -43,6 +74,10 @@
#include "gettext.h"
#include "gettextP.h"
+#ifdef _LIBC
+# include "../locale/localeinfo.h"
+#endif
+
/* @@ end of prolog @@ */
#ifdef _LIBC
@@ -56,29 +91,275 @@
# define munmap __munmap
#endif
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define PLURAL_PARSE __gettextparse
+#else
+# define PLURAL_PARSE gettextparse__
+#endif
+
+/* For those losing systems which don't have `alloca' we have to add
+ some additional code emulating it. */
+#ifdef HAVE_ALLOCA
+# define freea(p) /* nothing */
+#else
+# define alloca(n) malloc (n)
+# define freea(p) free (p)
+#endif
+
+/* For systems that distinguish between text and binary I/O.
+ O_BINARY is usually declared in <fcntl.h>. */
+#if !defined O_BINARY && defined _O_BINARY
+ /* For MSC-compatible compilers. */
+# define O_BINARY _O_BINARY
+# define O_TEXT _O_TEXT
+#endif
+#ifdef __BEOS__
+ /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */
+# undef O_BINARY
+# undef O_TEXT
+#endif
+/* On reasonable systems, binary I/O is the default. */
+#ifndef O_BINARY
+# define O_BINARY 0
+#endif
+
/* We need a sign, whether a new catalog was loaded, which can be associated
with all translations. This is important if the translations are
cached by one of GCC's features. */
-int _nl_msg_cat_cntr = 0;
+int _nl_msg_cat_cntr;
+
+#if (defined __GNUC__ && !defined __APPLE_CC__) \
+ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
+
+/* These structs are the constant expression for the germanic plural
+ form determination. It represents the expression "n != 1". */
+static const struct expression plvar =
+{
+ .nargs = 0,
+ .operation = var,
+};
+static const struct expression plone =
+{
+ .nargs = 0,
+ .operation = num,
+ .val =
+ {
+ .num = 1
+ }
+};
+static struct expression germanic_plural =
+{
+ .nargs = 2,
+ .operation = not_equal,
+ .val =
+ {
+ .args =
+ {
+ [0] = (struct expression *) &plvar,
+ [1] = (struct expression *) &plone
+ }
+ }
+};
+
+# define INIT_GERMANIC_PLURAL()
+
+#else
+
+/* For compilers without support for ISO C 99 struct/union initializers:
+ Initialization at run-time. */
+
+static struct expression plvar;
+static struct expression plone;
+static struct expression germanic_plural;
+
+static void
+init_germanic_plural ()
+{
+ if (plone.val.num == 0)
+ {
+ plvar.nargs = 0;
+ plvar.operation = var;
+
+ plone.nargs = 0;
+ plone.operation = num;
+ plone.val.num = 1;
+
+ germanic_plural.nargs = 2;
+ germanic_plural.operation = not_equal;
+ germanic_plural.val.args[0] = &plvar;
+ germanic_plural.val.args[1] = &plone;
+ }
+}
+
+# define INIT_GERMANIC_PLURAL() init_germanic_plural ()
+
+#endif
+
+
+/* Initialize the codeset dependent parts of an opened message catalog.
+ Return the header entry. */
+const char *
+internal_function
+_nl_init_domain_conv (domain_file, domain, domainbinding)
+ struct loaded_l10nfile *domain_file;
+ struct loaded_domain *domain;
+ struct binding *domainbinding;
+{
+ /* Find out about the character set the file is encoded with.
+ This can be found (in textual form) in the entry "". If this
+ entry does not exist or if this does not contain the `charset='
+ information, we will assume the charset matches the one the
+ current locale and we don't have to perform any conversion. */
+ char *nullentry;
+ size_t nullentrylen;
+
+ /* Preinitialize fields, to avoid recursion during _nl_find_msg. */
+ domain->codeset_cntr =
+ (domainbinding != NULL ? domainbinding->codeset_cntr : 0);
+#ifdef _LIBC
+ domain->conv = (__gconv_t) -1;
+#else
+# if HAVE_ICONV
+ domain->conv = (iconv_t) -1;
+# endif
+#endif
+ domain->conv_tab = NULL;
+
+ /* Get the header entry. */
+ nullentry = _nl_find_msg (domain_file, domainbinding, "", &nullentrylen);
+
+ if (nullentry != NULL)
+ {
+#if defined _LIBC || HAVE_ICONV
+ const char *charsetstr;
+
+ charsetstr = strstr (nullentry, "charset=");
+ if (charsetstr != NULL)
+ {
+ size_t len;
+ char *charset;
+ const char *outcharset;
+
+ charsetstr += strlen ("charset=");
+ len = strcspn (charsetstr, " \t\n");
+
+ charset = (char *) alloca (len + 1);
+# if defined _LIBC || HAVE_MEMPCPY
+ *((char *) mempcpy (charset, charsetstr, len)) = '\0';
+# else
+ memcpy (charset, charsetstr, len);
+ charset[len] = '\0';
+# endif
+
+ /* The output charset should normally be determined by the
+ locale. But sometimes the locale is not used or not correctly
+ set up, so we provide a possibility for the user to override
+ this. Moreover, the value specified through
+ bind_textdomain_codeset overrides both. */
+ if (domainbinding != NULL && domainbinding->codeset != NULL)
+ outcharset = domainbinding->codeset;
+ else
+ {
+ outcharset = getenv ("OUTPUT_CHARSET");
+ if (outcharset == NULL || outcharset[0] == '\0')
+ {
+# ifdef _LIBC
+ outcharset = (*_nl_current[LC_CTYPE])->values[_NL_ITEM_INDEX (CODESET)].string;
+# else
+# if HAVE_ICONV
+ extern const char *locale_charset (void);
+ outcharset = locale_charset ();
+# endif
+# endif
+ }
+ }
+
+# ifdef _LIBC
+ /* We always want to use transliteration. */
+ outcharset = norm_add_slashes (outcharset, "TRANSLIT");
+ charset = norm_add_slashes (charset, NULL);
+ if (__gconv_open (outcharset, charset, &domain->conv,
+ GCONV_AVOID_NOCONV)
+ != __GCONV_OK)
+ domain->conv = (__gconv_t) -1;
+# else
+# if HAVE_ICONV
+ /* When using GNU libiconv, we want to use transliteration. */
+# if _LIBICONV_VERSION >= 0x0105
+ len = strlen (outcharset);
+ {
+ char *tmp = (char *) alloca (len + 10 + 1);
+ memcpy (tmp, outcharset, len);
+ memcpy (tmp + len, "//TRANSLIT", 10 + 1);
+ outcharset = tmp;
+ }
+# endif
+ domain->conv = iconv_open (outcharset, charset);
+# if _LIBICONV_VERSION >= 0x0105
+ freea (outcharset);
+# endif
+# endif
+# endif
+
+ freea (charset);
+ }
+#endif /* _LIBC || HAVE_ICONV */
+ }
+
+ return nullentry;
+}
+
+/* Frees the codeset dependent parts of an opened message catalog. */
+void
+internal_function
+_nl_free_domain_conv (domain)
+ struct loaded_domain *domain;
+{
+ if (domain->conv_tab != NULL && domain->conv_tab != (char **) -1)
+ free (domain->conv_tab);
+#ifdef _LIBC
+ if (domain->conv != (__gconv_t) -1)
+ __gconv_close (domain->conv);
+#else
+# if HAVE_ICONV
+ if (domain->conv != (iconv_t) -1)
+ iconv_close (domain->conv);
+# endif
+#endif
+}
/* Load the message catalogs specified by FILENAME. If it is no valid
message catalog do nothing. */
void
internal_function
-_nl_load_domain (domain_file)
+_nl_load_domain (domain_file, domainbinding)
struct loaded_l10nfile *domain_file;
+ struct binding *domainbinding;
{
int fd;
size_t size;
+#ifdef _LIBC
+ struct stat64 st;
+#else
struct stat st;
+#endif
struct mo_file_header *data = (struct mo_file_header *) -1;
int use_mmap = 0;
struct loaded_domain *domain;
+ const char *nullentry;
domain_file->decided = 1;
domain_file->data = NULL;
+ /* Note that it would be useless to store domainbinding in domain_file
+ because domainbinding might be == NULL now but != NULL later (after
+ a call to bind_textdomain_codeset). */
+
/* If the record does not represent a valid locale the FILENAME
might be NULL. This can happen when according to the given
specification the locale file name is different for XPG and CEN
@@ -87,14 +368,19 @@ _nl_load_domain (domain_file)
return;
/* Try to open the addressed file. */
- fd = open (domain_file->filename, O_RDONLY);
+ fd = open (domain_file->filename, O_RDONLY | O_BINARY);
if (fd == -1)
return;
/* We must know about the size of the file. */
- if (fstat (fd, &st) != 0
- || (size = (size_t) st.st_size) != st.st_size
- || size < sizeof (struct mo_file_header))
+ if (
+#ifdef _LIBC
+ __builtin_expect (fstat64 (fd, &st) != 0, 0)
+#else
+ __builtin_expect (fstat (fd, &st) != 0, 0)
+#endif
+ || __builtin_expect ((size = (size_t) st.st_size) != st.st_size, 0)
+ || __builtin_expect (size < sizeof (struct mo_file_header), 0))
{
/* Something went wrong. */
close (fd);
@@ -107,7 +393,7 @@ _nl_load_domain (domain_file)
data = (struct mo_file_header *) mmap (NULL, size, PROT_READ,
MAP_PRIVATE, fd, 0);
- if (data != (struct mo_file_header *) -1)
+ if (__builtin_expect (data != (struct mo_file_header *) -1, 1))
{
/* mmap() call was successful. */
close (fd);
@@ -131,12 +417,15 @@ _nl_load_domain (domain_file)
do
{
long int nb = (long int) read (fd, read_ptr, to_read);
- if (nb == -1)
+ if (nb <= 0)
{
+#ifdef EINTR
+ if (nb == -1 && errno == EINTR)
+ continue;
+#endif
close (fd);
return;
}
-
read_ptr += nb;
to_read -= nb;
}
@@ -147,7 +436,8 @@ _nl_load_domain (domain_file)
/* Using the magic number we can test whether it really is a message
catalog file. */
- if (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED)
+ if (__builtin_expect (data->magic != _MAGIC && data->magic != _MAGIC_SWAPPED,
+ 0))
{
/* The magic number is wrong: not a message catalog file. */
#ifdef HAVE_MMAP
@@ -159,12 +449,11 @@ _nl_load_domain (domain_file)
return;
}
- domain_file->data
- = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
- if (domain_file->data == NULL)
+ domain = (struct loaded_domain *) malloc (sizeof (struct loaded_domain));
+ if (domain == NULL)
return;
+ domain_file->data = domain;
- domain = (struct loaded_domain *) domain_file->data;
domain->data = (char *) data;
domain->use_mmap = use_mmap;
domain->mmap_size = size;
@@ -196,9 +485,62 @@ _nl_load_domain (domain_file)
return;
}
- /* Show that one domain is changed. This might make some cached
- translations invalid. */
- ++_nl_msg_cat_cntr;
+ /* Now initialize the character set converter from the character set
+ the file is encoded with (found in the header entry) to the domain's
+ specified character set or the locale's character set. */
+ nullentry = _nl_init_domain_conv (domain_file, domain, domainbinding);
+
+ /* Also look for a plural specification. */
+ if (nullentry != NULL)
+ {
+ const char *plural;
+ const char *nplurals;
+
+ plural = strstr (nullentry, "plural=");
+ nplurals = strstr (nullentry, "nplurals=");
+ if (plural == NULL || nplurals == NULL)
+ goto no_plural;
+ else
+ {
+ /* First get the number. */
+ char *endp;
+ unsigned long int n;
+ struct parse_args args;
+
+ nplurals += 9;
+ while (*nplurals != '\0' && isspace (*nplurals))
+ ++nplurals;
+#if defined HAVE_STRTOUL || defined _LIBC
+ n = strtoul (nplurals, &endp, 10);
+#else
+ for (endp = nplurals, n = 0; *endp >= '0' && *endp <= '9'; endp++)
+ n = n * 10 + (*endp - '0');
+#endif
+ domain->nplurals = n;
+ if (nplurals == endp)
+ goto no_plural;
+
+ /* Due to the restrictions bison imposes onto the interface of the
+ scanner function we have to put the input string and the result
+ passed up from the parser into the same structure which address
+ is passed down to the parser. */
+ plural += 7;
+ args.cp = plural;
+ if (PLURAL_PARSE (&args) != 0)
+ goto no_plural;
+ domain->plural = args.res;
+ }
+ }
+ else
+ {
+ /* By default we are using the Germanic form: singular form only
+ for `one', the plural form otherwise. Yes, this is also what
+ English is using since English is a Germanic language. */
+ no_plural:
+ INIT_GERMANIC_PLURAL ();
+ domain->plural = &germanic_plural;
+ domain->nplurals = 2;
+ }
}
@@ -208,11 +550,16 @@ internal_function
_nl_unload_domain (domain)
struct loaded_domain *domain;
{
-#ifdef _POSIX_MAPPED_FILES
+ if (domain->plural != &germanic_plural)
+ __gettext_free_exp (domain->plural);
+
+ _nl_free_domain_conv (domain);
+
+# ifdef _POSIX_MAPPED_FILES
if (domain->use_mmap)
munmap ((caddr_t) domain->data, domain->mmap_size);
else
-#endif /* _POSIX_MAPPED_FILES */
+# endif /* _POSIX_MAPPED_FILES */
free ((void *) domain->data);
free (domain);
diff --git a/intl/localcharset.c b/intl/localcharset.c
@@ -0,0 +1,271 @@
+/* Determine a canonical name for the current locale's character encoding.
+
+ Copyright (C) 2000-2001 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
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* Written by Bruno Haible <haible@clisp.cons.org>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#if HAVE_STDDEF_H
+# include <stddef.h>
+#endif
+
+#include <stdio.h>
+#if HAVE_STRING_H
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#if HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
+
+#if defined _WIN32 || defined __WIN32__
+# undef WIN32 /* avoid warning on mingw32 */
+# define WIN32
+#endif
+
+#ifndef WIN32
+# if HAVE_LANGINFO_CODESET
+# include <langinfo.h>
+# else
+# if HAVE_SETLOCALE
+# include <locale.h>
+# endif
+# endif
+#else /* WIN32 */
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+#endif
+
+#ifndef DIRECTORY_SEPARATOR
+# define DIRECTORY_SEPARATOR '/'
+#endif
+
+#ifndef ISSLASH
+# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR)
+#endif
+
+/* The following static variable is declared 'volatile' to avoid a
+ possible multithread problem in the function get_charset_aliases. If we
+ are running in a threaded environment, and if two threads initialize
+ 'charset_aliases' simultaneously, both will produce the same value,
+ and everything will be ok if the two assignments to 'charset_aliases'
+ are atomic. But I don't know what will happen if the two assignments mix. */
+#if __STDC__ != 1
+# define volatile /* empty */
+#endif
+/* Pointer to the contents of the charset.alias file, if it has already been
+ read, else NULL. Its format is:
+ ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */
+static const char * volatile charset_aliases;
+
+/* Return a pointer to the contents of the charset.alias file. */
+static const char *
+get_charset_aliases ()
+{
+ const char *cp;
+
+ cp = charset_aliases;
+ if (cp == NULL)
+ {
+#ifndef WIN32
+ FILE *fp;
+ const char *dir = LIBDIR;
+ const char *base = "charset.alias";
+ char *file_name;
+
+ /* Concatenate dir and base into freshly allocated file_name. */
+ {
+ size_t dir_len = strlen (dir);
+ size_t base_len = strlen (base);
+ int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1]));
+ file_name = (char *) malloc (dir_len + add_slash + base_len + 1);
+ if (file_name != NULL)
+ {
+ memcpy (file_name, dir, dir_len);
+ if (add_slash)
+ file_name[dir_len] = DIRECTORY_SEPARATOR;
+ memcpy (file_name + dir_len + add_slash, base, base_len + 1);
+ }
+ }
+
+ if (file_name == NULL || (fp = fopen (file_name, "r")) == NULL)
+ /* Out of memory or file not found, treat it as empty. */
+ cp = "";
+ else
+ {
+ /* Parse the file's contents. */
+ int c;
+ char buf1[50+1];
+ char buf2[50+1];
+ char *res_ptr = NULL;
+ size_t res_size = 0;
+ size_t l1, l2;
+
+ for (;;)
+ {
+ c = getc (fp);
+ if (c == EOF)
+ break;
+ if (c == '\n' || c == ' ' || c == '\t')
+ continue;
+ if (c == '#')
+ {
+ /* Skip comment, to end of line. */
+ do
+ c = getc (fp);
+ while (!(c == EOF || c == '\n'));
+ if (c == EOF)
+ break;
+ continue;
+ }
+ ungetc (c, fp);
+ if (fscanf(fp, "%50s %50s", buf1, buf2) < 2)
+ break;
+ l1 = strlen (buf1);
+ l2 = strlen (buf2);
+ if (res_size == 0)
+ {
+ res_size = l1 + 1 + l2 + 1;
+ res_ptr = malloc (res_size + 1);
+ }
+ else
+ {
+ res_size += l1 + 1 + l2 + 1;
+ res_ptr = realloc (res_ptr, res_size + 1);
+ }
+ if (res_ptr == NULL)
+ {
+ /* Out of memory. */
+ res_size = 0;
+ break;
+ }
+ strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1);
+ strcpy (res_ptr + res_size - (l2 + 1), buf2);
+ }
+ fclose (fp);
+ if (res_size == 0)
+ cp = "";
+ else
+ {
+ *(res_ptr + res_size) = '\0';
+ cp = res_ptr;
+ }
+ }
+
+ if (file_name != NULL)
+ free (file_name);
+
+#else /* WIN32 */
+
+ /* To avoid the troubles of installing a separate file in the same
+ directory as the DLL and of retrieving the DLL's directory at
+ runtime, simply inline the aliases here. */
+
+ cp = "CP936" "\0" "GBK" "\0"
+ "CP1361" "\0" "JOHAB" "\0";
+#endif
+
+ charset_aliases = cp;
+ }
+
+ return cp;
+}
+
+/* Determine the current locale's character encoding, and canonicalize it
+ into one of the canonical names listed in config.charset.
+ The result must not be freed; it is statically allocated.
+ If the canonical name cannot be determined, the result is a non-canonical
+ name. */
+
+#ifdef STATIC
+STATIC
+#endif
+const char *
+locale_charset ()
+{
+ const char *codeset;
+ const char *aliases;
+
+#ifndef WIN32
+
+# if HAVE_LANGINFO_CODESET
+
+ /* Most systems support nl_langinfo (CODESET) nowadays. */
+ codeset = nl_langinfo (CODESET);
+
+# else
+
+ /* On old systems which lack it, use setlocale or getenv. */
+ const char *locale = NULL;
+
+ /* But most old systems don't have a complete set of locales. Some
+ (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't
+ use setlocale here; it would return "C" when it doesn't support the
+ locale name the user has set. */
+# if HAVE_SETLOCALE && 0
+ locale = setlocale (LC_CTYPE, NULL);
+# endif
+ if (locale == NULL || locale[0] == '\0')
+ {
+ locale = getenv ("LC_ALL");
+ if (locale == NULL || locale[0] == '\0')
+ {
+ locale = getenv ("LC_CTYPE");
+ if (locale == NULL || locale[0] == '\0')
+ locale = getenv ("LANG");
+ }
+ }
+
+ /* On some old systems, one used to set locale = "iso8859_1". On others,
+ you set it to "language_COUNTRY.charset". In any case, we resolve it
+ through the charset.alias file. */
+ codeset = locale;
+
+# endif
+
+#else /* WIN32 */
+
+ static char buf[2 + 10 + 1];
+
+ /* Win32 has a function returning the locale's codepage as a number. */
+ sprintf (buf, "CP%u", GetACP ());
+ codeset = buf;
+
+#endif
+
+ if (codeset == NULL)
+ /* The canonical name cannot be determined. */
+ codeset = "";
+
+ /* Resolve alias. */
+ for (aliases = get_charset_aliases ();
+ *aliases != '\0';
+ aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1)
+ if (strcmp (codeset, aliases) == 0
+ || (aliases[0] == '*' && aliases[1] == '\0'))
+ {
+ codeset = aliases + strlen (aliases) + 1;
+ break;
+ }
+
+ return codeset;
+}
diff --git a/intl/locale.alias b/intl/locale.alias
@@ -0,0 +1,78 @@
+# Locale name alias data base.
+# Copyright (C) 1996,1997,1998,1999,2000,2001 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
+# by the Free Software Foundation; either version 2, 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
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+
+# The format of this file is the same as for the corresponding file of
+# the X Window System, which normally can be found in
+# /usr/lib/X11/locale/locale.alias
+# A single line contains two fields: an alias and a substitution value.
+# All entries are case independent.
+
+# Note: This file is far from being complete. If you have a value for
+# your own site which you think might be useful for others too, share
+# it with the rest of us. Send it using the `glibcbug' script to
+# bugs@gnu.org.
+
+# Packages using this file:
+
+bokmal no_NO.ISO-8859-1
+bokmЕl no_NO.ISO-8859-1
+catalan ca_ES.ISO-8859-1
+croatian hr_HR.ISO-8859-2
+czech cs_CZ.ISO-8859-2
+danish da_DK.ISO-8859-1
+dansk da_DK.ISO-8859-1
+deutsch de_DE.ISO-8859-1
+dutch nl_NL.ISO-8859-1
+eesti et_EE.ISO-8859-1
+estonian et_EE.ISO-8859-1
+finnish fi_FI.ISO-8859-1
+franГais fr_FR.ISO-8859-1
+french fr_FR.ISO-8859-1
+galego gl_ES.ISO-8859-1
+galician gl_ES.ISO-8859-1
+german de_DE.ISO-8859-1
+greek el_GR.ISO-8859-7
+hebrew he_IL.ISO-8859-8
+hrvatski hr_HR.ISO-8859-2
+hungarian hu_HU.ISO-8859-2
+icelandic is_IS.ISO-8859-1
+italian it_IT.ISO-8859-1
+japanese ja_JP.eucJP
+japanese.euc ja_JP.eucJP
+ja_JP ja_JP.eucJP
+ja_JP.ujis ja_JP.eucJP
+japanese.sjis ja_JP.SJIS
+korean ko_KR.eucKR
+korean.euc ko_KR.eucKR
+ko_KR ko_KR.eucKR
+lithuanian lt_LT.ISO-8859-13
+nb_NO no_NO.ISO-8859-1
+nb_NO.ISO-8859-1 no_NO.ISO-8859-1
+norwegian no_NO.ISO-8859-1
+nynorsk nn_NO.ISO-8859-1
+polish pl_PL.ISO-8859-2
+portuguese pt_PT.ISO-8859-1
+romanian ro_RO.ISO-8859-2
+russian ru_RU.ISO-8859-5
+slovak sk_SK.ISO-8859-2
+slovene sl_SI.ISO-8859-2
+slovenian sl_SI.ISO-8859-2
+spanish es_ES.ISO-8859-1
+swedish sv_SE.ISO-8859-1
+thai th_TH.TIS-620
+turkish tr_TR.ISO-8859-9
diff --git a/intl/localealias.c b/intl/localealias.c
@@ -1,20 +1,27 @@
/* Handle aliases for locale names.
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+ Copyright (C) 1995-1999, 2000, 2001 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)
+ 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
+ by the Free Software Foundation; either version 2, 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* Tell glibc's <string.h> to provide a prototype for mempcpy().
+ This must come before <config.h> because <config.h> may include
+ <features.h>, and once <features.h> has been included, it's too late. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -41,35 +48,15 @@ char *alloca ();
# endif
#endif
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#else
-char *getenv ();
-# ifdef HAVE_MALLOC_H
-# include <malloc.h>
-# else
-void free ();
-# endif
-#endif
+#include <stdlib.h>
-#if defined HAVE_STRING_H || defined _LIBC
-# ifndef _GNU_SOURCE
-# define _GNU_SOURCE 1
-# endif
-# include <string.h>
-#else
-# include <strings.h>
-# ifndef memcpy
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
-# endif
-#endif
+#include <string.h>
#if !HAVE_STRCHR && !defined _LIBC
# ifndef strchr
# define strchr index
# endif
#endif
-#include "gettext.h"
#include "gettextP.h"
/* @@ end of prolog @@ */
@@ -95,40 +82,14 @@ __libc_lock_define_initialized (static, lock);
# define internal_function
#endif
-/* For those loosing systems which don't have `alloca' we have to add
+/* For those losing systems which don't have `alloca' we have to add
some additional code emulating it. */
#ifdef HAVE_ALLOCA
-/* Nothing has to be done. */
-# define ADD_BLOCK(list, address) /* nothing */
-# define FREE_BLOCKS(list) /* nothing */
+# define freea(p) /* nothing */
#else
-struct block_list
-{
- void *address;
- struct block_list *next;
-};
-# define ADD_BLOCK(list, addr) \
- do { \
- struct block_list *newp = (struct block_list *) malloc (sizeof (*newp)); \
- /* If we cannot get a free block we cannot add the new element to \
- the list. */ \
- if (newp != NULL) { \
- newp->address = (addr); \
- newp->next = (list); \
- (list) = newp; \
- } \
- } while (0)
-# define FREE_BLOCKS(list) \
- do { \
- while (list != NULL) { \
- struct block_list *old = list; \
- list = list->next; \
- free (old); \
- } \
- } while (0)
-# undef alloca
-# define alloca(size) (malloc (size))
-#endif /* have alloca */
+# define alloca(n) malloc (n)
+# define freea(p) free (p)
+#endif
#if defined _LIBC_REENTRANT || defined HAVE_FGETS_UNLOCKED
# undef fgets
@@ -147,18 +108,18 @@ struct alias_map
};
-static char *string_space = NULL;
-static size_t string_space_act = 0;
-static size_t string_space_max = 0;
+static char *string_space;
+static size_t string_space_act;
+static size_t string_space_max;
static struct alias_map *map;
-static size_t nmap = 0;
-static size_t maxmap = 0;
+static size_t nmap;
+static size_t maxmap;
/* Prototypes for local functions. */
static size_t read_alias_file PARAMS ((const char *fname, int fname_len))
internal_function;
-static void extend_alias_table PARAMS ((void));
+static int extend_alias_table PARAMS ((void));
static int alias_compare PARAMS ((const struct alias_map *map1,
const struct alias_map *map2));
@@ -204,11 +165,12 @@ _nl_expand_alias (name)
{
const char *start;
- while (locale_alias_path[0] == ':')
+ while (locale_alias_path[0] == PATH_SEPARATOR)
++locale_alias_path;
start = locale_alias_path;
- while (locale_alias_path[0] != '\0' && locale_alias_path[0] != ':')
+ while (locale_alias_path[0] != '\0'
+ && locale_alias_path[0] != PATH_SEPARATOR)
++locale_alias_path;
if (start < locale_alias_path)
@@ -231,16 +193,12 @@ read_alias_file (fname, fname_len)
const char *fname;
int fname_len;
{
-#ifndef HAVE_ALLOCA
- struct block_list *block_list = NULL;
-#endif
FILE *fp;
char *full_fname;
size_t added;
static const char aliasfile[] = "/locale.alias";
full_fname = (char *) alloca (fname_len + sizeof aliasfile);
- ADD_BLOCK (block_list, full_fname);
#ifdef HAVE_MEMPCPY
mempcpy (mempcpy (full_fname, fname, fname_len),
aliasfile, sizeof aliasfile);
@@ -250,11 +208,9 @@ read_alias_file (fname, fname_len)
#endif
fp = fopen (full_fname, "r");
+ freea (full_fname);
if (fp == NULL)
- {
- FREE_BLOCKS (block_list);
- return 0;
- }
+ return 0;
added = 0;
while (!feof (fp))
@@ -326,7 +282,8 @@ read_alias_file (fname, fname_len)
*cp++ = '\0';
if (nmap >= maxmap)
- extend_alias_table ();
+ if (__builtin_expect (extend_alias_table (), 0))
+ return added;
alias_len = strlen (alias) + 1;
value_len = strlen (value) + 1;
@@ -339,10 +296,19 @@ read_alias_file (fname, fname_len)
? alias_len + value_len : 1024));
char *new_pool = (char *) realloc (string_space, new_size);
if (new_pool == NULL)
+ return added;
+
+ if (__builtin_expect (string_space != new_pool, 0))
{
- FREE_BLOCKS (block_list);
- return added;
+ size_t i;
+
+ for (i = 0; i < nmap; i++)
+ {
+ map[i].alias += new_pool - string_space;
+ map[i].value += new_pool - string_space;
+ }
}
+
string_space = new_pool;
string_space_max = new_size;
}
@@ -369,12 +335,11 @@ read_alias_file (fname, fname_len)
qsort (map, nmap, sizeof (struct alias_map),
(int (*) PARAMS ((const void *, const void *))) alias_compare);
- FREE_BLOCKS (block_list);
return added;
}
-static void
+static int
extend_alias_table ()
{
size_t new_size;
@@ -385,10 +350,11 @@ extend_alias_table ()
* sizeof (struct alias_map)));
if (new_map == NULL)
/* Simply don't extend: we don't have any more core. */
- return;
+ return -1;
map = new_map;
maxmap = new_size;
+ return 0;
}
diff --git a/intl/ngettext.c b/intl/ngettext.c
@@ -0,0 +1,68 @@
+/* Implementation of ngettext(3) function.
+ Copyright (C) 1995, 1997, 2000, 2001 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
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifdef _LIBC
+# define __need_NULL
+# include <stddef.h>
+#else
+# include <stdlib.h> /* Just for NULL. */
+#endif
+
+#include "gettextP.h"
+#ifdef _LIBC
+# include <libintl.h>
+#else
+# include "libgnuintl.h"
+#endif
+
+#include <locale.h>
+
+/* @@ end of prolog @@ */
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define NGETTEXT __ngettext
+# define DCNGETTEXT __dcngettext
+#else
+# define NGETTEXT ngettext__
+# define DCNGETTEXT dcngettext__
+#endif
+
+/* Look up MSGID in the current default message catalog for the current
+ LC_MESSAGES locale. If not found, returns MSGID itself (the default
+ text). */
+char *
+NGETTEXT (msgid1, msgid2, n)
+ const char *msgid1;
+ const char *msgid2;
+ unsigned long int n;
+{
+ return DCNGETTEXT (NULL, msgid1, msgid2, n, LC_MESSAGES);
+}
+
+#ifdef _LIBC
+/* Alias for function name in GNU C Library. */
+weak_alias (__ngettext, ngettext);
+#endif
diff --git a/intl/plural.c b/intl/plural.c
@@ -0,0 +1,1326 @@
+
+/* A Bison parser, made from plural.y
+ by GNU Bison version 1.28 */
+
+#define YYBISON 1 /* Identify Bison output. */
+
+#define yyparse __gettextparse
+#define yylex __gettextlex
+#define yyerror __gettexterror
+#define yylval __gettextlval
+#define yychar __gettextchar
+#define yydebug __gettextdebug
+#define yynerrs __gettextnerrs
+#define EQUOP2 257
+#define CMPOP2 258
+#define ADDOP2 259
+#define MULOP2 260
+#define NUMBER 261
+
+#line 1 "plural.y"
+
+/* Expression parsing for plural form selection.
+ Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
+
+ 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
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* The bison generated parser uses alloca. AIX 3 forces us to put this
+ declaration at the beginning of the file. The declaration in bison's
+ skeleton file comes too late. This must come before <config.h>
+ because <config.h> may include arbitrary system headers. */
+#if defined _AIX && !defined __GNUC__
+ #pragma alloca
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h>
+#include "gettextP.h"
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define FREE_EXPRESSION __gettext_free_exp
+#else
+# define FREE_EXPRESSION gettext_free_exp__
+# define __gettextparse gettextparse__
+#endif
+
+#define YYLEX_PARAM &((struct parse_args *) arg)->cp
+#define YYPARSE_PARAM arg
+
+#line 53 "plural.y"
+typedef union {
+ unsigned long int num;
+ enum operator op;
+ struct expression *exp;
+} YYSTYPE;
+#line 59 "plural.y"
+
+/* Prototypes for local functions. */
+static struct expression *new_exp PARAMS ((int nargs, enum operator op,
+ struct expression * const *args));
+static inline struct expression *new_exp_0 PARAMS ((enum operator op));
+static inline struct expression *new_exp_1 PARAMS ((enum operator op,
+ struct expression *right));
+static struct expression *new_exp_2 PARAMS ((enum operator op,
+ struct expression *left,
+ struct expression *right));
+static inline struct expression *new_exp_3 PARAMS ((enum operator op,
+ struct expression *bexp,
+ struct expression *tbranch,
+ struct expression *fbranch));
+static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
+static void yyerror PARAMS ((const char *str));
+
+/* Allocation of expressions. */
+
+static struct expression *
+new_exp (nargs, op, args)
+ int nargs;
+ enum operator op;
+ struct expression * const *args;
+{
+ int i;
+ struct expression *newp;
+
+ /* If any of the argument could not be malloc'ed, just return NULL. */
+ for (i = nargs - 1; i >= 0; i--)
+ if (args[i] == NULL)
+ goto fail;
+
+ /* Allocate a new expression. */
+ newp = (struct expression *) malloc (sizeof (*newp));
+ if (newp != NULL)
+ {
+ newp->nargs = nargs;
+ newp->operation = op;
+ for (i = nargs - 1; i >= 0; i--)
+ newp->val.args[i] = args[i];
+ return newp;
+ }
+
+ fail:
+ for (i = nargs - 1; i >= 0; i--)
+ FREE_EXPRESSION (args[i]);
+
+ return NULL;
+}
+
+static inline struct expression *
+new_exp_0 (op)
+ enum operator op;
+{
+ return new_exp (0, op, NULL);
+}
+
+static inline struct expression *
+new_exp_1 (op, right)
+ enum operator op;
+ struct expression *right;
+{
+ struct expression *args[1];
+
+ args[0] = right;
+ return new_exp (1, op, args);
+}
+
+static struct expression *
+new_exp_2 (op, left, right)
+ enum operator op;
+ struct expression *left;
+ struct expression *right;
+{
+ struct expression *args[2];
+
+ args[0] = left;
+ args[1] = right;
+ return new_exp (2, op, args);
+}
+
+static inline struct expression *
+new_exp_3 (op, bexp, tbranch, fbranch)
+ enum operator op;
+ struct expression *bexp;
+ struct expression *tbranch;
+ struct expression *fbranch;
+{
+ struct expression *args[3];
+
+ args[0] = bexp;
+ args[1] = tbranch;
+ args[2] = fbranch;
+ return new_exp (3, op, args);
+}
+
+#include <stdio.h>
+
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
+#endif
+#endif
+
+
+
+#define YYFINAL 27
+#define YYFLAG -32768
+#define YYNTBASE 16
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 261 ? yytranslate[x] : 18)
+
+static const char yytranslate[] = { 0,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 10, 2, 2, 2, 2, 5, 2, 14,
+ 15, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 12, 2, 2,
+ 2, 2, 3, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 13,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 4, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 1, 6, 7, 8, 9,
+ 11
+};
+
+#if YYDEBUG != 0
+static const short yyprhs[] = { 0,
+ 0, 2, 8, 12, 16, 20, 24, 28, 32, 35,
+ 37, 39
+};
+
+static const short yyrhs[] = { 17,
+ 0, 17, 3, 17, 12, 17, 0, 17, 4, 17,
+ 0, 17, 5, 17, 0, 17, 6, 17, 0, 17,
+ 7, 17, 0, 17, 8, 17, 0, 17, 9, 17,
+ 0, 10, 17, 0, 13, 0, 11, 0, 14, 17,
+ 15, 0
+};
+
+#endif
+
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+ 178, 186, 190, 194, 198, 202, 206, 210, 214, 218,
+ 222, 227
+};
+#endif
+
+
+#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+
+static const char * const yytname[] = { "$","error","$undefined.","'?'","'|'",
+"'&'","EQUOP2","CMPOP2","ADDOP2","MULOP2","'!'","NUMBER","':'","'n'","'('","')'",
+"start","exp", NULL
+};
+#endif
+
+static const short yyr1[] = { 0,
+ 16, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17
+};
+
+static const short yyr2[] = { 0,
+ 1, 5, 3, 3, 3, 3, 3, 3, 2, 1,
+ 1, 3
+};
+
+static const short yydefact[] = { 0,
+ 0, 11, 10, 0, 1, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 12, 0, 3, 4, 5, 6,
+ 7, 8, 0, 2, 0, 0, 0
+};
+
+static const short yydefgoto[] = { 25,
+ 5
+};
+
+static const short yypact[] = { -9,
+ -9,-32768,-32768, -9, 34,-32768, 11, -9, -9, -9,
+ -9, -9, -9, -9,-32768, 24, 39, 43, 16, 26,
+ -3,-32768, -9, 34, 21, 53,-32768
+};
+
+static const short yypgoto[] = {-32768,
+ -1
+};
+
+
+#define YYLAST 53
+
+
+static const short yytable[] = { 6,
+ 1, 2, 7, 3, 4, 14, 16, 17, 18, 19,
+ 20, 21, 22, 8, 9, 10, 11, 12, 13, 14,
+ 26, 24, 12, 13, 14, 15, 8, 9, 10, 11,
+ 12, 13, 14, 13, 14, 23, 8, 9, 10, 11,
+ 12, 13, 14, 10, 11, 12, 13, 14, 11, 12,
+ 13, 14, 27
+};
+
+static const short yycheck[] = { 1,
+ 10, 11, 4, 13, 14, 9, 8, 9, 10, 11,
+ 12, 13, 14, 3, 4, 5, 6, 7, 8, 9,
+ 0, 23, 7, 8, 9, 15, 3, 4, 5, 6,
+ 7, 8, 9, 8, 9, 12, 3, 4, 5, 6,
+ 7, 8, 9, 5, 6, 7, 8, 9, 6, 7,
+ 8, 9, 0
+};
+#define YYPURE 1
+
+/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
+#line 3 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple"
+/* This file comes from bison-1.28. */
+
+/* Skeleton output parser for bison,
+ Copyright (C) 1984, 1989, 1990 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)
+ 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., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+/* This is the parser code that is written into each bison parser
+ when the %semantic_parser declaration is not specified in the grammar.
+ It was written by Richard Stallman by simplifying the hairy parser
+ used when %semantic_parser is specified. */
+
+#ifndef YYSTACK_USE_ALLOCA
+#ifdef alloca
+#define YYSTACK_USE_ALLOCA
+#else /* alloca not defined */
+#ifdef __GNUC__
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#else /* not GNU C. */
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+#define YYSTACK_USE_ALLOCA
+#include <alloca.h>
+#else /* not sparc */
+/* We think this test detects Watcom and Microsoft C. */
+/* This used to test MSDOS, but that is a bad idea
+ since that symbol is in the user namespace. */
+#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
+#if 0 /* No need for malloc.h, which pollutes the namespace;
+ instead, just don't use alloca. */
+#include <malloc.h>
+#endif
+#else /* not MSDOS, or __TURBOC__ */
+#if defined(_AIX)
+/* I don't know what this was needed for, but it pollutes the namespace.
+ So I turned it off. rms, 2 May 1997. */
+/* #include <malloc.h> */
+ #pragma alloca
+#define YYSTACK_USE_ALLOCA
+#else /* not MSDOS, or __TURBOC__, or _AIX */
+#if 0
+#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
+ and on HPUX 10. Eventually we can turn this on. */
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#endif /* __hpux */
+#endif
+#endif /* not _AIX */
+#endif /* not MSDOS, or __TURBOC__ */
+#endif /* not sparc */
+#endif /* not GNU C */
+#endif /* alloca not defined */
+#endif /* YYSTACK_USE_ALLOCA not defined */
+
+#ifdef YYSTACK_USE_ALLOCA
+#define YYSTACK_ALLOC alloca
+#else
+#define YYSTACK_ALLOC malloc
+#endif
+
+/* Note: there must be only one dollar sign in this file.
+ It is replaced by the list of actions, each action
+ as one case of the switch. */
+
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+#define YYEMPTY -2
+#define YYEOF 0
+#define YYACCEPT goto yyacceptlab
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrlab1
+/* Like YYERROR except do call yyerror.
+ This remains here temporarily to ease the
+ transition to the new meaning of YYERROR, for GCC.
+ Once GCC version 2 has supplanted version 1, this can go. */
+#define YYFAIL goto yyerrlab
+#define YYRECOVERING() (!!yyerrstatus)
+#define YYBACKUP(token, value) \
+do \
+ if (yychar == YYEMPTY && yylen == 1) \
+ { yychar = (token), yylval = (value); \
+ yychar1 = YYTRANSLATE (yychar); \
+ YYPOPSTACK; \
+ goto yybackup; \
+ } \
+ else \
+ { yyerror ("syntax error: cannot back up"); YYERROR; } \
+while (0)
+
+#define YYTERROR 1
+#define YYERRCODE 256
+
+#ifndef YYPURE
+#define YYLEX yylex()
+#endif
+
+#ifdef YYPURE
+#ifdef YYLSP_NEEDED
+#ifdef YYLEX_PARAM
+#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
+#else
+#define YYLEX yylex(&yylval, &yylloc)
+#endif
+#else /* not YYLSP_NEEDED */
+#ifdef YYLEX_PARAM
+#define YYLEX yylex(&yylval, YYLEX_PARAM)
+#else
+#define YYLEX yylex(&yylval)
+#endif
+#endif /* not YYLSP_NEEDED */
+#endif
+
+/* If nonreentrant, generate the variables here */
+
+#ifndef YYPURE
+
+int yychar; /* the lookahead symbol */
+YYSTYPE yylval; /* the semantic value of the */
+ /* lookahead symbol */
+
+#ifdef YYLSP_NEEDED
+YYLTYPE yylloc; /* location data for the lookahead */
+ /* symbol */
+#endif
+
+int yynerrs; /* number of parse errors so far */
+#endif /* not YYPURE */
+
+#if YYDEBUG != 0
+int yydebug; /* nonzero means print parse trace */
+/* Since this is uninitialized, it does not stop multiple parsers
+ from coexisting. */
+#endif
+
+/* YYINITDEPTH indicates the initial size of the parser's stacks */
+
+#ifndef YYINITDEPTH
+#define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH is the maximum size the stacks can grow to
+ (effective only if the built-in stack extension method is used). */
+
+#if YYMAXDEPTH == 0
+#undef YYMAXDEPTH
+#endif
+
+#ifndef YYMAXDEPTH
+#define YYMAXDEPTH 10000
+#endif
+
+/* Define __yy_memcpy. Note that the size argument
+ should be passed with type unsigned int, because that is what the non-GCC
+ definitions require. With GCC, __builtin_memcpy takes an arg
+ of type size_t, but it can handle unsigned int. */
+
+#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
+#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
+#else /* not GNU C or C++ */
+#ifndef __cplusplus
+
+/* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
+static void
+__yy_memcpy (to, from, count)
+ char *to;
+ char *from;
+ unsigned int count;
+{
+ register char *f = from;
+ register char *t = to;
+ register int i = count;
+
+ while (i-- > 0)
+ *t++ = *f++;
+}
+
+#else /* __cplusplus */
+
+/* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
+static void
+__yy_memcpy (char *to, char *from, unsigned int count)
+{
+ register char *t = to;
+ register char *f = from;
+ register int i = count;
+
+ while (i-- > 0)
+ *t++ = *f++;
+}
+
+#endif
+#endif
+
+#line 217 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple"
+
+/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+ into yyparse. The argument should have type void *.
+ It should actually point to an object.
+ Grammar actions can access the variable by casting it
+ to the proper pointer type. */
+
+#ifdef YYPARSE_PARAM
+#ifdef __cplusplus
+#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL
+#else /* not __cplusplus */
+#define YYPARSE_PARAM_ARG YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+#endif /* not __cplusplus */
+#else /* not YYPARSE_PARAM */
+#define YYPARSE_PARAM_ARG
+#define YYPARSE_PARAM_DECL
+#endif /* not YYPARSE_PARAM */
+
+/* Prevent warning if -Wstrict-prototypes. */
+#ifdef __GNUC__
+#ifdef YYPARSE_PARAM
+int yyparse (void *);
+#else
+int yyparse (void);
+#endif
+#endif
+
+int
+yyparse(YYPARSE_PARAM_ARG)
+ YYPARSE_PARAM_DECL
+{
+ register int yystate;
+ register int yyn;
+ register short *yyssp;
+ register YYSTYPE *yyvsp;
+ int yyerrstatus; /* number of tokens to shift before error messages enabled */
+ int yychar1 = 0; /* lookahead token as an internal (translated) token number */
+
+ short yyssa[YYINITDEPTH]; /* the state stack */
+ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
+
+ short *yyss = yyssa; /* refer to the stacks thru separate pointers */
+ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
+
+#ifdef YYLSP_NEEDED
+ YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
+ YYLTYPE *yyls = yylsa;
+ YYLTYPE *yylsp;
+
+#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
+#else
+#define YYPOPSTACK (yyvsp--, yyssp--)
+#endif
+
+ int yystacksize = YYINITDEPTH;
+ int yyfree_stacks = 0;
+
+#ifdef YYPURE
+ int yychar;
+ YYSTYPE yylval;
+ int yynerrs;
+#ifdef YYLSP_NEEDED
+ YYLTYPE yylloc;
+#endif
+#endif
+
+ YYSTYPE yyval; /* the variable used to return */
+ /* semantic values from the action */
+ /* routines */
+
+ int yylen;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Starting parse\n");
+#endif
+
+ yystate = 0;
+ yyerrstatus = 0;
+ yynerrs = 0;
+ yychar = YYEMPTY; /* Cause a token to be read. */
+
+ /* Initialize stack pointers.
+ Waste one element of value and location stack
+ so that they stay on the same level as the state stack.
+ The wasted elements are never initialized. */
+
+ yyssp = yyss - 1;
+ yyvsp = yyvs;
+#ifdef YYLSP_NEEDED
+ yylsp = yyls;
+#endif
+
+/* Push a new state, which is found in yystate . */
+/* In all cases, when you get here, the value and location stacks
+ have just been pushed. so pushing a state here evens the stacks. */
+yynewstate:
+
+ *++yyssp = yystate;
+
+ if (yyssp >= yyss + yystacksize - 1)
+ {
+ /* Give user a chance to reallocate the stack */
+ /* Use copies of these so that the &'s don't force the real ones into memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ short *yyss1 = yyss;
+#ifdef YYLSP_NEEDED
+ YYLTYPE *yyls1 = yyls;
+#endif
+
+ /* Get the current used size of the three stacks, in elements. */
+ int size = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+ /* Each stack pointer address is followed by the size of
+ the data in use in that stack, in bytes. */
+#ifdef YYLSP_NEEDED
+ /* This used to be a conditional around just the two extra args,
+ but that might be undefined if yyoverflow is a macro. */
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yyls1, size * sizeof (*yylsp),
+ &yystacksize);
+#else
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yystacksize);
+#endif
+
+ yyss = yyss1; yyvs = yyvs1;
+#ifdef YYLSP_NEEDED
+ yyls = yyls1;
+#endif
+#else /* no yyoverflow */
+ /* Extend the stack our own way. */
+ if (yystacksize >= YYMAXDEPTH)
+ {
+ yyerror("parser stack overflow");
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+#ifdef YYLSP_NEEDED
+ free (yyls);
+#endif
+ }
+ return 2;
+ }
+ yystacksize *= 2;
+ if (yystacksize > YYMAXDEPTH)
+ yystacksize = YYMAXDEPTH;
+#ifndef YYSTACK_USE_ALLOCA
+ yyfree_stacks = 1;
+#endif
+ yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
+ __yy_memcpy ((char *)yyss, (char *)yyss1,
+ size * (unsigned int) sizeof (*yyssp));
+ yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
+ __yy_memcpy ((char *)yyvs, (char *)yyvs1,
+ size * (unsigned int) sizeof (*yyvsp));
+#ifdef YYLSP_NEEDED
+ yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
+ __yy_memcpy ((char *)yyls, (char *)yyls1,
+ size * (unsigned int) sizeof (*yylsp));
+#endif
+#endif /* no yyoverflow */
+
+ yyssp = yyss + size - 1;
+ yyvsp = yyvs + size - 1;
+#ifdef YYLSP_NEEDED
+ yylsp = yyls + size - 1;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+#endif
+
+ if (yyssp >= yyss + yystacksize - 1)
+ YYABORT;
+ }
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Entering state %d\n", yystate);
+#endif
+
+ goto yybackup;
+ yybackup:
+
+/* Do appropriate processing given the current state. */
+/* Read a lookahead token if we need one and don't already have one. */
+/* yyresume: */
+
+ /* First try to decide what to do without reference to lookahead token. */
+
+ yyn = yypact[yystate];
+ if (yyn == YYFLAG)
+ goto yydefault;
+
+ /* Not known => get a lookahead token if don't already have one. */
+
+ /* yychar is either YYEMPTY or YYEOF
+ or a valid token in external form. */
+
+ if (yychar == YYEMPTY)
+ {
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Reading a token: ");
+#endif
+ yychar = YYLEX;
+ }
+
+ /* Convert token to internal form (in yychar1) for indexing tables with */
+
+ if (yychar <= 0) /* This means end of input. */
+ {
+ yychar1 = 0;
+ yychar = YYEOF; /* Don't call YYLEX any more */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Now at end of input.\n");
+#endif
+ }
+ else
+ {
+ yychar1 = YYTRANSLATE(yychar);
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+ /* Give the individual parser a way to print the precise meaning
+ of a token, for further debugging info. */
+#ifdef YYPRINT
+ YYPRINT (stderr, yychar, yylval);
+#endif
+ fprintf (stderr, ")\n");
+ }
+#endif
+ }
+
+ yyn += yychar1;
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+ goto yydefault;
+
+ yyn = yytable[yyn];
+
+ /* yyn is what to do for this token type in this state.
+ Negative => reduce, -yyn is rule number.
+ Positive => shift, yyn is new state.
+ New state is final state => don't bother to shift,
+ just return success.
+ 0, or most negative number => error. */
+
+ if (yyn < 0)
+ {
+ if (yyn == YYFLAG)
+ goto yyerrlab;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+ else if (yyn == 0)
+ goto yyerrlab;
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+ /* Shift the lookahead token. */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+#endif
+
+ /* Discard the token being shifted unless it is eof. */
+ if (yychar != YYEOF)
+ yychar = YYEMPTY;
+
+ *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+#endif
+
+ /* count tokens shifted since error; after three, turn off error status. */
+ if (yyerrstatus) yyerrstatus--;
+
+ yystate = yyn;
+ goto yynewstate;
+
+/* Do the default action for the current state. */
+yydefault:
+
+ yyn = yydefact[yystate];
+ if (yyn == 0)
+ goto yyerrlab;
+
+/* Do a reduction. yyn is the number of a rule to reduce with. */
+yyreduce:
+ yylen = yyr2[yyn];
+ if (yylen > 0)
+ yyval = yyvsp[1-yylen]; /* implement default value of the action */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ int i;
+
+ fprintf (stderr, "Reducing via rule %d (line %d), ",
+ yyn, yyrline[yyn]);
+
+ /* Print the symbols being reduced, and their result. */
+ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+ fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+ fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+ }
+#endif
+
+
+ switch (yyn) {
+
+case 1:
+#line 179 "plural.y"
+{
+ if (yyvsp[0].exp == NULL)
+ YYABORT;
+ ((struct parse_args *) arg)->res = yyvsp[0].exp;
+ ;
+ break;}
+case 2:
+#line 187 "plural.y"
+{
+ yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 3:
+#line 191 "plural.y"
+{
+ yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 4:
+#line 195 "plural.y"
+{
+ yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 5:
+#line 199 "plural.y"
+{
+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 6:
+#line 203 "plural.y"
+{
+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 7:
+#line 207 "plural.y"
+{
+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 8:
+#line 211 "plural.y"
+{
+ yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
+ ;
+ break;}
+case 9:
+#line 215 "plural.y"
+{
+ yyval.exp = new_exp_1 (lnot, yyvsp[0].exp);
+ ;
+ break;}
+case 10:
+#line 219 "plural.y"
+{
+ yyval.exp = new_exp_0 (var);
+ ;
+ break;}
+case 11:
+#line 223 "plural.y"
+{
+ if ((yyval.exp = new_exp_0 (num)) != NULL)
+ yyval.exp->val.num = yyvsp[0].num;
+ ;
+ break;}
+case 12:
+#line 228 "plural.y"
+{
+ yyval.exp = yyvsp[-1].exp;
+ ;
+ break;}
+}
+ /* the action file gets copied in in place of this dollarsign */
+#line 543 "/home/haible/gnu/arch/linuxlibc6/share/bison.simple"
+
+ yyvsp -= yylen;
+ yyssp -= yylen;
+#ifdef YYLSP_NEEDED
+ yylsp -= yylen;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ short *ssp1 = yyss - 1;
+ fprintf (stderr, "state stack now");
+ while (ssp1 != yyssp)
+ fprintf (stderr, " %d", *++ssp1);
+ fprintf (stderr, "\n");
+ }
+#endif
+
+ *++yyvsp = yyval;
+
+#ifdef YYLSP_NEEDED
+ yylsp++;
+ if (yylen == 0)
+ {
+ yylsp->first_line = yylloc.first_line;
+ yylsp->first_column = yylloc.first_column;
+ yylsp->last_line = (yylsp-1)->last_line;
+ yylsp->last_column = (yylsp-1)->last_column;
+ yylsp->text = 0;
+ }
+ else
+ {
+ yylsp->last_line = (yylsp+yylen-1)->last_line;
+ yylsp->last_column = (yylsp+yylen-1)->last_column;
+ }
+#endif
+
+ /* Now "shift" the result of the reduction.
+ Determine what state that goes to,
+ based on the state we popped back to
+ and the rule number reduced by. */
+
+ yyn = yyr1[yyn];
+
+ yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+ if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
+ else
+ yystate = yydefgoto[yyn - YYNTBASE];
+
+ goto yynewstate;
+
+yyerrlab: /* here on detecting error */
+
+ if (! yyerrstatus)
+ /* If not already recovering from an error, report this error. */
+ {
+ ++yynerrs;
+
+#ifdef YYERROR_VERBOSE
+ yyn = yypact[yystate];
+
+ if (yyn > YYFLAG && yyn < YYLAST)
+ {
+ int size = 0;
+ char *msg;
+ int x, count;
+
+ count = 0;
+ /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
+ size += strlen(yytname[x]) + 15, count++;
+ msg = (char *) malloc(size + 15);
+ if (msg != 0)
+ {
+ strcpy(msg, "parse error");
+
+ if (count < 5)
+ {
+ count = 0;
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
+ {
+ strcat(msg, count == 0 ? ", expecting `" : " or `");
+ strcat(msg, yytname[x]);
+ strcat(msg, "'");
+ count++;
+ }
+ }
+ yyerror(msg);
+ free(msg);
+ }
+ else
+ yyerror ("parse error; also virtual memory exceeded");
+ }
+ else
+#endif /* YYERROR_VERBOSE */
+ yyerror("parse error");
+ }
+
+ goto yyerrlab1;
+yyerrlab1: /* here on error raised explicitly by an action */
+
+ if (yyerrstatus == 3)
+ {
+ /* if just tried and failed to reuse lookahead token after an error, discard it. */
+
+ /* return failure if at end of input */
+ if (yychar == YYEOF)
+ YYABORT;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+#endif
+
+ yychar = YYEMPTY;
+ }
+
+ /* Else will try to reuse lookahead token
+ after shifting the error token. */
+
+ yyerrstatus = 3; /* Each real token shifted decrements this */
+
+ goto yyerrhandle;
+
+yyerrdefault: /* current state does not do anything special for the error token. */
+
+#if 0
+ /* This is wrong; only states that explicitly want error tokens
+ should shift them. */
+ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
+ if (yyn) goto yydefault;
+#endif
+
+yyerrpop: /* pop the current state because it cannot handle the error token */
+
+ if (yyssp == yyss) YYABORT;
+ yyvsp--;
+ yystate = *--yyssp;
+#ifdef YYLSP_NEEDED
+ yylsp--;
+#endif
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ short *ssp1 = yyss - 1;
+ fprintf (stderr, "Error: state stack now");
+ while (ssp1 != yyssp)
+ fprintf (stderr, " %d", *++ssp1);
+ fprintf (stderr, "\n");
+ }
+#endif
+
+yyerrhandle:
+
+ yyn = yypact[yystate];
+ if (yyn == YYFLAG)
+ goto yyerrdefault;
+
+ yyn += YYTERROR;
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+ goto yyerrdefault;
+
+ yyn = yytable[yyn];
+ if (yyn < 0)
+ {
+ if (yyn == YYFLAG)
+ goto yyerrpop;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+ else if (yyn == 0)
+ goto yyerrpop;
+
+ if (yyn == YYFINAL)
+ YYACCEPT;
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Shifting error token, ");
+#endif
+
+ *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+#endif
+
+ yystate = yyn;
+ goto yynewstate;
+
+ yyacceptlab:
+ /* YYACCEPT comes here. */
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+#ifdef YYLSP_NEEDED
+ free (yyls);
+#endif
+ }
+ return 0;
+
+ yyabortlab:
+ /* YYABORT comes here. */
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+#ifdef YYLSP_NEEDED
+ free (yyls);
+#endif
+ }
+ return 1;
+}
+#line 233 "plural.y"
+
+
+void
+internal_function
+FREE_EXPRESSION (exp)
+ struct expression *exp;
+{
+ if (exp == NULL)
+ return;
+
+ /* Handle the recursive case. */
+ switch (exp->nargs)
+ {
+ case 3:
+ FREE_EXPRESSION (exp->val.args[2]);
+ /* FALLTHROUGH */
+ case 2:
+ FREE_EXPRESSION (exp->val.args[1]);
+ /* FALLTHROUGH */
+ case 1:
+ FREE_EXPRESSION (exp->val.args[0]);
+ /* FALLTHROUGH */
+ default:
+ break;
+ }
+
+ free (exp);
+}
+
+
+static int
+yylex (lval, pexp)
+ YYSTYPE *lval;
+ const char **pexp;
+{
+ const char *exp = *pexp;
+ int result;
+
+ while (1)
+ {
+ if (exp[0] == '\0')
+ {
+ *pexp = exp;
+ return YYEOF;
+ }
+
+ if (exp[0] != ' ' && exp[0] != '\t')
+ break;
+
+ ++exp;
+ }
+
+ result = *exp++;
+ switch (result)
+ {
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ {
+ unsigned long int n = result - '0';
+ while (exp[0] >= '0' && exp[0] <= '9')
+ {
+ n *= 10;
+ n += exp[0] - '0';
+ ++exp;
+ }
+ lval->num = n;
+ result = NUMBER;
+ }
+ break;
+
+ case '=':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = equal;
+ result = EQUOP2;
+ }
+ else
+ result = YYERRCODE;
+ break;
+
+ case '!':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = not_equal;
+ result = EQUOP2;
+ }
+ break;
+
+ case '&':
+ case '|':
+ if (exp[0] == result)
+ ++exp;
+ else
+ result = YYERRCODE;
+ break;
+
+ case '<':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = less_or_equal;
+ }
+ else
+ lval->op = less_than;
+ result = CMPOP2;
+ break;
+
+ case '>':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = greater_or_equal;
+ }
+ else
+ lval->op = greater_than;
+ result = CMPOP2;
+ break;
+
+ case '*':
+ lval->op = mult;
+ result = MULOP2;
+ break;
+
+ case '/':
+ lval->op = divide;
+ result = MULOP2;
+ break;
+
+ case '%':
+ lval->op = module;
+ result = MULOP2;
+ break;
+
+ case '+':
+ lval->op = plus;
+ result = ADDOP2;
+ break;
+
+ case '-':
+ lval->op = minus;
+ result = ADDOP2;
+ break;
+
+ case 'n':
+ case '?':
+ case ':':
+ case '(':
+ case ')':
+ /* Nothing, just return the character. */
+ break;
+
+ case ';':
+ case '\n':
+ case '\0':
+ /* Be safe and let the user call this function again. */
+ --exp;
+ result = YYEOF;
+ break;
+
+ default:
+ result = YYERRCODE;
+#if YYDEBUG != 0
+ --exp;
+#endif
+ break;
+ }
+
+ *pexp = exp;
+
+ return result;
+}
+
+
+static void
+yyerror (str)
+ const char *str;
+{
+ /* Do nothing. We don't print error messages here. */
+}
diff --git a/intl/plural.y b/intl/plural.y
@@ -0,0 +1,413 @@
+%{
+/* Expression parsing for plural form selection.
+ Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
+
+ 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
+ by the Free Software Foundation; either version 2, 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
+
+/* The bison generated parser uses alloca. AIX 3 forces us to put this
+ declaration at the beginning of the file. The declaration in bison's
+ skeleton file comes too late. This must come before <config.h>
+ because <config.h> may include arbitrary system headers. */
+#if defined _AIX && !defined __GNUC__
+ #pragma alloca
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdlib.h>
+#include "gettextP.h"
+
+/* Names for the libintl functions are a problem. They must not clash
+ with existing names and they should follow ANSI C. But this source
+ code is also used in GNU C Library where the names have a __
+ prefix. So we have to make a difference here. */
+#ifdef _LIBC
+# define FREE_EXPRESSION __gettext_free_exp
+#else
+# define FREE_EXPRESSION gettext_free_exp__
+# define __gettextparse gettextparse__
+#endif
+
+#define YYLEX_PARAM &((struct parse_args *) arg)->cp
+#define YYPARSE_PARAM arg
+%}
+%pure_parser
+%expect 10
+
+%union {
+ unsigned long int num;
+ enum operator op;
+ struct expression *exp;
+}
+
+%{
+/* Prototypes for local functions. */
+static struct expression *new_exp PARAMS ((int nargs, enum operator op,
+ struct expression * const *args));
+static inline struct expression *new_exp_0 PARAMS ((enum operator op));
+static inline struct expression *new_exp_1 PARAMS ((enum operator op,
+ struct expression *right));
+static struct expression *new_exp_2 PARAMS ((enum operator op,
+ struct expression *left,
+ struct expression *right));
+static inline struct expression *new_exp_3 PARAMS ((enum operator op,
+ struct expression *bexp,
+ struct expression *tbranch,
+ struct expression *fbranch));
+static int yylex PARAMS ((YYSTYPE *lval, const char **pexp));
+static void yyerror PARAMS ((const char *str));
+
+/* Allocation of expressions. */
+
+static struct expression *
+new_exp (nargs, op, args)
+ int nargs;
+ enum operator op;
+ struct expression * const *args;
+{
+ int i;
+ struct expression *newp;
+
+ /* If any of the argument could not be malloc'ed, just return NULL. */
+ for (i = nargs - 1; i >= 0; i--)
+ if (args[i] == NULL)
+ goto fail;
+
+ /* Allocate a new expression. */
+ newp = (struct expression *) malloc (sizeof (*newp));
+ if (newp != NULL)
+ {
+ newp->nargs = nargs;
+ newp->operation = op;
+ for (i = nargs - 1; i >= 0; i--)
+ newp->val.args[i] = args[i];
+ return newp;
+ }
+
+ fail:
+ for (i = nargs - 1; i >= 0; i--)
+ FREE_EXPRESSION (args[i]);
+
+ return NULL;
+}
+
+static inline struct expression *
+new_exp_0 (op)
+ enum operator op;
+{
+ return new_exp (0, op, NULL);
+}
+
+static inline struct expression *
+new_exp_1 (op, right)
+ enum operator op;
+ struct expression *right;
+{
+ struct expression *args[1];
+
+ args[0] = right;
+ return new_exp (1, op, args);
+}
+
+static struct expression *
+new_exp_2 (op, left, right)
+ enum operator op;
+ struct expression *left;
+ struct expression *right;
+{
+ struct expression *args[2];
+
+ args[0] = left;
+ args[1] = right;
+ return new_exp (2, op, args);
+}
+
+static inline struct expression *
+new_exp_3 (op, bexp, tbranch, fbranch)
+ enum operator op;
+ struct expression *bexp;
+ struct expression *tbranch;
+ struct expression *fbranch;
+{
+ struct expression *args[3];
+
+ args[0] = bexp;
+ args[1] = tbranch;
+ args[2] = fbranch;
+ return new_exp (3, op, args);
+}
+
+%}
+
+/* This declares that all operators have the same associativity and the
+ precedence order as in C. See [Harbison, Steele: C, A Reference Manual].
+ There is no unary minus and no bitwise operators.
+ Operators with the same syntactic behaviour have been merged into a single
+ token, to save space in the array generated by bison. */
+%right '?' /* ? */
+%left '|' /* || */
+%left '&' /* && */
+%left EQUOP2 /* == != */
+%left CMPOP2 /* < > <= >= */
+%left ADDOP2 /* + - */
+%left MULOP2 /* * / % */
+%right '!' /* ! */
+
+%token <op> EQUOP2 CMPOP2 ADDOP2 MULOP2
+%token <num> NUMBER
+%type <exp> exp
+
+%%
+
+start: exp
+ {
+ if ($1 == NULL)
+ YYABORT;
+ ((struct parse_args *) arg)->res = $1;
+ }
+ ;
+
+exp: exp '?' exp ':' exp
+ {
+ $$ = new_exp_3 (qmop, $1, $3, $5);
+ }
+ | exp '|' exp
+ {
+ $$ = new_exp_2 (lor, $1, $3);
+ }
+ | exp '&' exp
+ {
+ $$ = new_exp_2 (land, $1, $3);
+ }
+ | exp EQUOP2 exp
+ {
+ $$ = new_exp_2 ($2, $1, $3);
+ }
+ | exp CMPOP2 exp
+ {
+ $$ = new_exp_2 ($2, $1, $3);
+ }
+ | exp ADDOP2 exp
+ {
+ $$ = new_exp_2 ($2, $1, $3);
+ }
+ | exp MULOP2 exp
+ {
+ $$ = new_exp_2 ($2, $1, $3);
+ }
+ | '!' exp
+ {
+ $$ = new_exp_1 (lnot, $2);
+ }
+ | 'n'
+ {
+ $$ = new_exp_0 (var);
+ }
+ | NUMBER
+ {
+ if (($$ = new_exp_0 (num)) != NULL)
+ $$->val.num = $1;
+ }
+ | '(' exp ')'
+ {
+ $$ = $2;
+ }
+ ;
+
+%%
+
+void
+internal_function
+FREE_EXPRESSION (exp)
+ struct expression *exp;
+{
+ if (exp == NULL)
+ return;
+
+ /* Handle the recursive case. */
+ switch (exp->nargs)
+ {
+ case 3:
+ FREE_EXPRESSION (exp->val.args[2]);
+ /* FALLTHROUGH */
+ case 2:
+ FREE_EXPRESSION (exp->val.args[1]);
+ /* FALLTHROUGH */
+ case 1:
+ FREE_EXPRESSION (exp->val.args[0]);
+ /* FALLTHROUGH */
+ default:
+ break;
+ }
+
+ free (exp);
+}
+
+
+static int
+yylex (lval, pexp)
+ YYSTYPE *lval;
+ const char **pexp;
+{
+ const char *exp = *pexp;
+ int result;
+
+ while (1)
+ {
+ if (exp[0] == '\0')
+ {
+ *pexp = exp;
+ return YYEOF;
+ }
+
+ if (exp[0] != ' ' && exp[0] != '\t')
+ break;
+
+ ++exp;
+ }
+
+ result = *exp++;
+ switch (result)
+ {
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ {
+ unsigned long int n = result - '0';
+ while (exp[0] >= '0' && exp[0] <= '9')
+ {
+ n *= 10;
+ n += exp[0] - '0';
+ ++exp;
+ }
+ lval->num = n;
+ result = NUMBER;
+ }
+ break;
+
+ case '=':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = equal;
+ result = EQUOP2;
+ }
+ else
+ result = YYERRCODE;
+ break;
+
+ case '!':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = not_equal;
+ result = EQUOP2;
+ }
+ break;
+
+ case '&':
+ case '|':
+ if (exp[0] == result)
+ ++exp;
+ else
+ result = YYERRCODE;
+ break;
+
+ case '<':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = less_or_equal;
+ }
+ else
+ lval->op = less_than;
+ result = CMPOP2;
+ break;
+
+ case '>':
+ if (exp[0] == '=')
+ {
+ ++exp;
+ lval->op = greater_or_equal;
+ }
+ else
+ lval->op = greater_than;
+ result = CMPOP2;
+ break;
+
+ case '*':
+ lval->op = mult;
+ result = MULOP2;
+ break;
+
+ case '/':
+ lval->op = divide;
+ result = MULOP2;
+ break;
+
+ case '%':
+ lval->op = module;
+ result = MULOP2;
+ break;
+
+ case '+':
+ lval->op = plus;
+ result = ADDOP2;
+ break;
+
+ case '-':
+ lval->op = minus;
+ result = ADDOP2;
+ break;
+
+ case 'n':
+ case '?':
+ case ':':
+ case '(':
+ case ')':
+ /* Nothing, just return the character. */
+ break;
+
+ case ';':
+ case '\n':
+ case '\0':
+ /* Be safe and let the user call this function again. */
+ --exp;
+ result = YYEOF;
+ break;
+
+ default:
+ result = YYERRCODE;
+#if YYDEBUG != 0
+ --exp;
+#endif
+ break;
+ }
+
+ *pexp = exp;
+
+ return result;
+}
+
+
+static void
+yyerror (str)
+ const char *str;
+{
+ /* Do nothing. We don't print error messages here. */
+}
diff --git a/intl/po2tbl.sed.in b/intl/po2tbl.sed.in
@@ -1,102 +0,0 @@
-# po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets
-# Copyright (C) 1995 Free Software Foundation, Inc.
-# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-#
-# 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)
-# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-1 {
- i\
-/* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot. */\
-\
-#if HAVE_CONFIG_H\
-# include <config.h>\
-#endif\
-\
-#include "libgettext.h"\
-\
-const struct _msg_ent _msg_tbl[] = {
- h
- s/.*/0/
- x
-}
-#
-# Write msgid entries in C array form.
-#
-/^msgid/ {
- s/msgid[ ]*\(".*"\)/ {\1/
- tb
-# Append the next line
- :b
- N
-# Look whether second part is continuation line.
- s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/
-# Yes, then branch.
- ta
-# Because we assume that the input file correctly formed the line
-# just read cannot be again be a msgid line. So it's safe to ignore
-# it.
- s/\(.*\)\n.*/\1/
- bc
-# We found a continuation line. But before printing insert '\'.
- :a
- s/\(.*\)\(\n.*\)/\1\\\2/
- P
-# We cannot use D here.
- s/.*\n\(.*\)/\1/
-# Some buggy seds do not clear the `successful substitution since last ``t'''
-# flag on `N', so we do a `t' here to clear it.
- tb
-# Not reached
- :c
- x
-# The following nice solution is by
-# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
- td
-# Increment a decimal number in pattern space.
-# First hide trailing `9' digits.
- :d
- s/9\(_*\)$/_\1/
- td
-# Assure at least one digit is available.
- s/^\(_*\)$/0\1/
-# Increment the last digit.
- s/8\(_*\)$/9\1/
- s/7\(_*\)$/8\1/
- s/6\(_*\)$/7\1/
- s/5\(_*\)$/6\1/
- s/4\(_*\)$/5\1/
- s/3\(_*\)$/4\1/
- s/2\(_*\)$/3\1/
- s/1\(_*\)$/2\1/
- s/0\(_*\)$/1\1/
-# Convert the hidden `9' digits to `0's.
- s/_/0/g
- x
- G
- s/\(.*\)\n\([0-9]*\)/\1, \2},/
- s/\(.*\)"$/\1/
- p
-}
-#
-# Last line.
-#
-$ {
- i\
-};\
-
- g
- s/0*\(.*\)/int _msg_tbl_length = \1;/p
-}
-d
diff --git a/intl/ref-add.sin b/intl/ref-add.sin
@@ -0,0 +1,31 @@
+# Add this package to a list of references stored in a text file.
+#
+# Copyright (C) 2000 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
+# by the Free Software Foundation; either version 2, 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
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+#
+# Written by Bruno Haible <haible@clisp.cons.org>.
+#
+/^# Packages using this file: / {
+ s/# Packages using this file://
+ ta
+ :a
+ s/ @PACKAGE@ / @PACKAGE@ /
+ tb
+ s/ $/ @PACKAGE@ /
+ :b
+ s/^/# Packages using this file:/
+}
diff --git a/intl/ref-del.sin b/intl/ref-del.sin
@@ -0,0 +1,26 @@
+# Remove this package from a list of references stored in a text file.
+#
+# Copyright (C) 2000 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
+# by the Free Software Foundation; either version 2, 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
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+# USA.
+#
+# Written by Bruno Haible <haible@clisp.cons.org>.
+#
+/^# Packages using this file: / {
+ s/# Packages using this file://
+ s/ @PACKAGE@ / /
+ s/^/# Packages using this file:/
+}
diff --git a/intl/textdomain.c b/intl/textdomain.c
@@ -1,42 +1,51 @@
/* Implementation of the textdomain(3) function.
- Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
- Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
+ Copyright (C) 1995-1998, 2000, 2001 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)
+ 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
+ by the Free Software Foundation; either version 2, 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.
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU Library General Public
+ License along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
-#if defined STDC_HEADERS || defined _LIBC
-# include <stdlib.h>
-#endif
+#include <stdlib.h>
+#include <string.h>
-#if defined STDC_HEADERS || defined HAVE_STRING_H || defined _LIBC
-# include <string.h>
+#ifdef _LIBC
+# include <libintl.h>
#else
-# include <strings.h>
-# ifndef memcpy
-# define memcpy(Dst, Src, Num) bcopy (Src, Dst, Num)
-# endif
+# include "libgnuintl.h"
#endif
+#include "gettextP.h"
#ifdef _LIBC
-# include <libintl.h>
+/* We have to handle multi-threaded applications. */
+# include <bits/libc-lock.h>
#else
-# include "libgettext.h"
+/* Provide dummy implementation if this is outside glibc. */
+# define __libc_rwlock_define(CLASS, NAME)
+# define __libc_rwlock_wrlock(NAME)
+# define __libc_rwlock_unlock(NAME)
+#endif
+
+/* The internal variables in the standalone libintl.a must have different
+ names than the internal variables in GNU libc, otherwise programs
+ using libintl.a cannot be linked statically. */
+#if !defined _LIBC
+# define _nl_default_default_domain _nl_default_default_domain__
+# define _nl_current_default_domain _nl_current_default_domain__
#endif
/* @@ end of prolog @@ */
@@ -61,6 +70,9 @@ extern const char *_nl_current_default_domain;
# define TEXTDOMAIN textdomain__
#endif
+/* Lock variable to protect the global data in the gettext implementation. */
+__libc_rwlock_define (extern, _nl_state_lock)
+
/* Set the current default message catalog to DOMAINNAME.
If DOMAINNAME is null, return the current default.
If DOMAINNAME is "", reset to the default of "messages". */
@@ -68,38 +80,60 @@ char *
TEXTDOMAIN (domainname)
const char *domainname;
{
- char *old;
+ char *new_domain;
+ char *old_domain;
/* A NULL pointer requests the current setting. */
if (domainname == NULL)
return (char *) _nl_current_default_domain;
- old = (char *) _nl_current_default_domain;
+ __libc_rwlock_wrlock (_nl_state_lock);
+
+ old_domain = (char *) _nl_current_default_domain;
/* If domain name is the null string set to default domain "messages". */
if (domainname[0] == '\0'
|| strcmp (domainname, _nl_default_default_domain) == 0)
- _nl_current_default_domain = _nl_default_default_domain;
+ {
+ _nl_current_default_domain = _nl_default_default_domain;
+ new_domain = (char *) _nl_current_default_domain;
+ }
+ else if (strcmp (domainname, old_domain) == 0)
+ /* This can happen and people will use it to signal that some
+ environment variable changed. */
+ new_domain = old_domain;
else
{
/* If the following malloc fails `_nl_current_default_domain'
will be NULL. This value will be returned and so signals we
are out of core. */
#if defined _LIBC || defined HAVE_STRDUP
- _nl_current_default_domain = strdup (domainname);
+ new_domain = strdup (domainname);
#else
size_t len = strlen (domainname) + 1;
- char *cp = (char *) malloc (len);
- if (cp != NULL)
- memcpy (cp, domainname, len);
- _nl_current_default_domain = cp;
+ new_domain = (char *) malloc (len);
+ if (new_domain != NULL)
+ memcpy (new_domain, domainname, len);
#endif
+
+ if (new_domain != NULL)
+ _nl_current_default_domain = new_domain;
+ }
+
+ /* We use this possibility to signal a change of the loaded catalogs
+ since this is most likely the case and there is no other easy we
+ to do it. Do it only when the call was successful. */
+ if (new_domain != NULL)
+ {
+ ++_nl_msg_cat_cntr;
+
+ if (old_domain != new_domain && old_domain != _nl_default_default_domain)
+ free (old_domain);
}
- if (old != _nl_default_default_domain)
- free (old);
+ __libc_rwlock_unlock (_nl_state_lock);
- return (char *) _nl_current_default_domain;
+ return new_domain;
}
#ifdef _LIBC
diff --git a/intl/xopen-msg.sed b/intl/xopen-msg.sed
@@ -1,104 +0,0 @@
-# po2msg.sed - Convert Uniforum style .po file to X/Open style .msg file
-# Copyright (C) 1995 Free Software Foundation, Inc.
-# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
-#
-# 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)
-# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-#
-# The first directive in the .msg should be the definition of the
-# message set number. We use always set number 1.
-#
-1 {
- i\
-$set 1 # Automatically created by po2msg.sed
- h
- s/.*/0/
- x
-}
-#
-# We copy all comments into the .msg file. Perhaps they can help.
-#
-/^#/ s/^#[ ]*/$ /p
-#
-# We copy the original message as a comment into the .msg file.
-#
-/^msgid/ {
-# Does not work now
-# /"$/! {
-# s/\\$//
-# s/$/ ... (more lines following)"/
-# }
- s/^msgid[ ]*"\(.*\)"$/$ Original Message: \1/
- p
-}
-#
-# The .msg file contains, other then the .po file, only the translations
-# but each given a unique ID. Starting from 1 and incrementing by 1 for
-# each message we assign them to the messages.
-# It is important that the .po file used to generate the cat-id-tbl.c file
-# (with po-to-tbl) is the same as the one used here. (At least the order
-# of declarations must not be changed.)
-#
-/^msgstr/ {
- s/msgstr[ ]*"\(.*\)"/\1/
- x
-# The following nice solution is by
-# Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
- td
-# Increment a decimal number in pattern space.
-# First hide trailing `9' digits.
- :d
- s/9\(_*\)$/_\1/
- td
-# Assure at least one digit is available.
- s/^\(_*\)$/0\1/
-# Increment the last digit.
- s/8\(_*\)$/9\1/
- s/7\(_*\)$/8\1/
- s/6\(_*\)$/7\1/
- s/5\(_*\)$/6\1/
- s/4\(_*\)$/5\1/
- s/3\(_*\)$/4\1/
- s/2\(_*\)$/3\1/
- s/1\(_*\)$/2\1/
- s/0\(_*\)$/1\1/
-# Convert the hidden `9' digits to `0's.
- s/_/0/g
- x
-# Bring the line in the format `<number> <message>'
- G
- s/^[^\n]*$/& /
- s/\(.*\)\n\([0-9]*\)/\2 \1/
-# Clear flag from last substitution.
- tb
-# Append the next line.
- :b
- N
-# Look whether second part is a continuation line.
- s/\(.*\n\)"\(.*\)"/\1\2/
-# Yes, then branch.
- ta
- P
- D
-# Note that `D' includes a jump to the start!!
-# We found a continuation line. But before printing insert '\'.
- :a
- s/\(.*\)\(\n.*\)/\1\\\2/
- P
-# We cannot use the sed command `D' here
- s/.*\n\(.*\)/\1/
- tb
-}
-d
diff --git a/m4/codeset.m4 b/m4/codeset.m4
@@ -0,0 +1,17 @@
+#serial AM1
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_LANGINFO_CODESET],
+[
+ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
+ [AC_TRY_LINK([#include <langinfo.h>],
+ [char* cs = nl_langinfo(CODESET);],
+ am_cv_langinfo_codeset=yes,
+ am_cv_langinfo_codeset=no)
+ ])
+ if test $am_cv_langinfo_codeset = yes; then
+ AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
+ [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
+ fi
+])
diff --git a/m4/gettext.m4 b/m4/gettext.m4
@@ -2,15 +2,45 @@
# Ulrich Drepper <drepper@cygnus.com>, 1995.
#
# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU Public License
-# but which still want to provide support for the GNU gettext functionality.
-# Please note that the actual code is *not* freely available.
-
-# serial 108
-
-AC_PREREQ(2.13) dnl Minimum Autoconf version required.
-
-AC_DEFUN(NANO_AM_WITH_NLS,
+# be used in projects which are not available under the GNU General Public
+# License or the GNU Library General Public License but which still want
+# to provide support for the GNU gettext functionality.
+# Please note that the actual code of the GNU gettext library is covered
+# by the GNU Library General Public License, and the rest of the GNU
+# gettext package package is covered by the GNU General Public License.
+# They are *not* in the public domain.
+
+# serial 10
+
+dnl Usage: AM_WITH_NLS([TOOLSYMBOL], [NEEDSYMBOL], [LIBDIR]).
+dnl If TOOLSYMBOL is specified and is 'use-libtool', then a libtool library
+dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
+dnl depending on --{enable,disable}-{shared,static} and on the presence of
+dnl AM-DISABLE-SHARED). Otherwise, a static library
+dnl $(top_builddir)/intl/libintl.a will be created.
+dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
+dnl implementations (in libc or libintl) without the ngettext() function
+dnl will be ignored.
+dnl LIBDIR is used to find the intl libraries. If empty,
+dnl the value `$(top_builddir)/intl/' is used.
+dnl
+dnl The result of the configuration is one of three cases:
+dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
+dnl and used.
+dnl Catalog format: GNU --> install in $(datadir)
+dnl Catalog extension: .mo after installation, .gmo in source tree
+dnl 2) GNU gettext has been found in the system's C library.
+dnl Catalog format: GNU --> install in $(datadir)
+dnl Catalog extension: .mo after installation, .gmo in source tree
+dnl 3) No internationalization, always use English msgid.
+dnl Catalog format: none
+dnl Catalog extension: none
+dnl The use of .gmo is historical (it was needed to avoid overwriting the
+dnl GNU format catalogs when building on a platform with an X/Open gettext),
+dnl but we keep it in order not to force irrelevant filename changes on the
+dnl maintainers.
+dnl
+AC_DEFUN([AM_WITH_NLS],
[AC_MSG_CHECKING([whether NLS is requested])
dnl Default is enabled NLS
AC_ARG_ENABLE(nls,
@@ -19,23 +49,15 @@ AC_DEFUN(NANO_AM_WITH_NLS,
AC_MSG_RESULT($USE_NLS)
AC_SUBST(USE_NLS)
+ BUILD_INCLUDED_LIBINTL=no
USE_INCLUDED_LIBINTL=no
-
- AC_ARG_WITH(locale-dir,
- [ --with-locale-dir=DIR specify locale directory],
- LOCALE_DIR=$withval)
- test -z "$LOCALE_DIR" && LOCALE_DIR='$(datadir)/locale'
- AC_SUBST(LOCALE_DIR)
-
- AC_ARG_WITH(gnu-locale-dir,
- [ --with-gnu-locale-dir=DIR specify GNU locale directory],
- GNU_LOCALE_DIR=$withval)
- test -z "$GNU_LOCALE_DIR" && GNU_LOCALE_DIR='$(prefix)/share/locale'
- AC_SUBST(GNU_LOCALE_DIR)
+ INTLLIBS=
dnl If we use NLS figure out what method
if test "$USE_NLS" = "yes"; then
- AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if NLS is requested.])
+ AC_DEFINE(ENABLE_NLS, 1,
+ [Define to 1 if translation of program messages to the user's native language
+ is requested.])
AC_MSG_CHECKING([whether included gettext is requested])
AC_ARG_WITH(included-gettext,
[ --with-included-gettext use the GNU gettext library included here],
@@ -46,83 +68,74 @@ AC_DEFUN(NANO_AM_WITH_NLS,
nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
dnl User does not insist on using GNU NLS library. Figure out what
- dnl to use. If gettext or catgets are available (in this order) we
- dnl use this. Else we have to fall back to GNU NLS library.
- dnl catgets is only used if permitted by option --with-catgets.
- nls_cv_header_intl=
- nls_cv_header_libgt=
+ dnl to use. If GNU gettext is available we use this. Else we have
+ dnl to fall back to GNU NLS library.
CATOBJEXT=NONE
- AC_CHECK_HEADER(libintl.h,
- [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
- [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
- gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
+ dnl Add a version number to the cache macros.
+ define(gt_cv_func_gnugettext_libc, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libc])
+ define(gt_cv_func_gnugettext_libintl, [gt_cv_func_gnugettext]ifelse([$2], need-ngettext, 2, 1)[_libintl])
- if test "$gt_cv_func_gettext_libc" != "yes"; then
- AC_CHECK_LIB(intl, bindtextdomain,
- [AC_CHECK_LIB(intl, gettext)])
+ AC_CHECK_HEADER(libintl.h,
+ [AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
+ [AC_TRY_LINK([#include <libintl.h>
+extern int _nl_msg_cat_cntr;],
+ [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
+ gt_cv_func_gnugettext_libc=yes,
+ gt_cv_func_gnugettext_libc=no)])
+
+ if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+ AC_CACHE_CHECK([for GNU gettext in libintl],
+ gt_cv_func_gnugettext_libintl,
+ [gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -lintl $LIBICONV"
+ AC_TRY_LINK([#include <libintl.h>
+extern int _nl_msg_cat_cntr;],
+ [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
+ gt_cv_func_gnugettext_libintl=yes,
+ gt_cv_func_gnugettext_libintl=no)
+ LIBS="$gt_save_LIBS"])
fi
- if test "$gt_cv_func_gettext_libc" = "yes" \
- || test "$ac_cv_lib_intl_gettext" = "yes"; then
- AC_DEFINE(HAVE_GETTEXT, 1,
- [Define to 1 if you have gettext and don't want to use GNU gettext.])
- NANO_AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
- if test "$MSGFMT" != "no"; then
- AC_CHECK_FUNCS(dcgettext)
- AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
- NANO_AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
- AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
- return _nl_msg_cat_cntr],
- [CATOBJEXT=.gmo
- DATADIRNAME=share],
- [CATOBJEXT=.mo
- DATADIRNAME=lib])
- INSTOBJEXT=.mo
- fi
- fi
+ dnl If an already present or preinstalled GNU gettext() is found,
+ 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" \
+ && test "$PACKAGE" != gettext; }; then
+ AC_DEFINE(HAVE_GETTEXT, 1,
+ [Define if the GNU gettext() function is already present or preinstalled.])
+
+ if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
+ dnl If iconv() is in a separate libiconv library, then anyone
+ dnl linking with libintl{.a,.so} also needs to link with
+ dnl libiconv.
+ INTLLIBS="-lintl $LIBICONV"
+ fi
+
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS $INTLLIBS"
+ AC_CHECK_FUNCS(dcgettext)
+ LIBS="$gt_save_LIBS"
+
+ dnl Search for GNU msgfmt in the PATH.
+ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
+ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+
+ dnl Search for GNU xgettext in the PATH.
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
+
+ CATOBJEXT=.gmo
+ fi
])
if test "$CATOBJEXT" = "NONE"; then
- AC_MSG_CHECKING([whether catgets can be used])
- AC_ARG_WITH(catgets,
- [ --with-catgets use catgets functions if available],
- nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
- AC_MSG_RESULT($nls_cv_use_catgets)
-
- if test "$nls_cv_use_catgets" = "yes"; then
- dnl No gettext in C library. Try catgets next.
- AC_CHECK_LIB(i, main)
- AC_CHECK_FUNC(catgets,
- [AC_DEFINE(HAVE_CATGETS, 1,
- [Define as 1 if you have catgets and don't want to use GNU gettext.])
- INTLOBJS="\$(CATOBJS)"
- AC_PATH_PROG(GENCAT, gencat, no)dnl
- if test "$GENCAT" != "no"; then
- AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
- if test "$GMSGFMT" = "no"; then
- NANO_AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
- fi
- NANO_AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
- USE_INCLUDED_LIBINTL=yes
- CATOBJEXT=.cat
- INSTOBJEXT=.cat
- DATADIRNAME=lib
- INTLDEPS='$(top_builddir)/intl/libintl.a'
- INTLLIBS=$INTLDEPS
- LIBS=`echo $LIBS | sed -e 's/-lintl//'`
- nls_cv_header_intl=intl/libintl.h
- nls_cv_header_libgt=intl/libgettext.h
- fi])
- fi
- fi
-
- if test "$CATOBJEXT" = "NONE"; then
- dnl Neither gettext nor catgets in included in the C library.
+ dnl GNU gettext is not found in the C library.
dnl Fall back on GNU gettext library.
nls_cv_use_gnu_gettext=yes
fi
@@ -131,28 +144,39 @@ AC_DEFUN(NANO_AM_WITH_NLS,
if test "$nls_cv_use_gnu_gettext" = "yes"; then
dnl Mark actions used to generate GNU NLS library.
INTLOBJS="\$(GETTOBJS)"
- NANO_AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
+ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
- NANO_AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
AC_SUBST(MSGFMT)
+ BUILD_INCLUDED_LIBINTL=yes
USE_INCLUDED_LIBINTL=yes
CATOBJEXT=.gmo
- INSTOBJEXT=.mo
- DATADIRNAME=share
- INTLDEPS='$(top_builddir)/intl/libintl.a'
- INTLLIBS=$INTLDEPS
- LIBS=`echo $LIBS | sed -e 's/-lintl//'`
- nls_cv_header_intl=intl/libintl.h
- nls_cv_header_libgt=intl/libgettext.h
+ INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV"
+ LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
fi
+ 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; then
+ : ;
+ else
+ AC_MSG_RESULT(
+ [found msgfmt 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 /dev/null 2> /dev/null; then
+ if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then
: ;
else
AC_MSG_RESULT(
@@ -161,29 +185,76 @@ AC_DEFUN(NANO_AM_WITH_NLS,
fi
fi
- # We need to process the po/ directory.
+ dnl We need to process the po/ directory.
POSUB=po
- else
- DATADIRNAME=share
- nls_cv_header_intl=intl/libintl.h
- nls_cv_header_libgt=intl/libgettext.h
fi
- if test -z "$nls_cv_header_intl"; then
- # Clean out junk possibly left behind by a previous configuration.
- rm -f intl/libintl.h
- fi
- AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
AC_OUTPUT_COMMANDS(
- [case "$CONFIG_FILES" in *po/Makefile.in*)
- sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
- esac])
-
-
- # If this is used in GNU gettext we have to set USE_NLS to `yes'
- # because some of the sources are only built for this goal.
+ [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
+ 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"
+ sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES"
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+ sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+ fi
+ ;;
+ esac
+ done])
+
+
+ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
+ dnl to 'yes' because some of the testsuite requires it.
if test "$PACKAGE" = gettext; then
- USE_NLS=yes
- USE_INCLUDED_LIBINTL=yes
+ BUILD_INCLUDED_LIBINTL=yes
+ 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 These rules are solely for the distribution goal. While doing this
@@ -195,22 +266,38 @@ AC_DEFUN(NANO_AM_WITH_NLS,
done
dnl Make all variables we use known to autoconf.
+ AC_SUBST(BUILD_INCLUDED_LIBINTL)
AC_SUBST(USE_INCLUDED_LIBINTL)
AC_SUBST(CATALOGS)
AC_SUBST(CATOBJEXT)
- AC_SUBST(DATADIRNAME)
AC_SUBST(GMOFILES)
- AC_SUBST(INSTOBJEXT)
- AC_SUBST(INTLDEPS)
AC_SUBST(INTLLIBS)
AC_SUBST(INTLOBJS)
AC_SUBST(POFILES)
AC_SUBST(POSUB)
+
+ dnl For backward compatibility. Some configure.ins may be using this.
+ nls_cv_header_intl=
+ nls_cv_header_libgt=
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ DATADIRNAME=share
+ AC_SUBST(DATADIRNAME)
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INSTOBJEXT=.mo
+ AC_SUBST(INSTOBJEXT)
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ GENCAT=gencat
+ AC_SUBST(GENCAT)
])
-AC_DEFUN(NANO_AM_GNU_GETTEXT,
+dnl Usage: Just like AM_WITH_NLS, which see.
+AC_DEFUN([AM_GNU_GETTEXT],
[AC_REQUIRE([AC_PROG_MAKE_SET])dnl
AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
AC_REQUIRE([AC_PROG_RANLIB])dnl
AC_REQUIRE([AC_ISC_POSIX])dnl
AC_REQUIRE([AC_HEADER_STDC])dnl
@@ -220,21 +307,18 @@ AC_DEFUN(NANO_AM_GNU_GETTEXT,
AC_REQUIRE([AC_TYPE_SIZE_T])dnl
AC_REQUIRE([AC_FUNC_ALLOCA])dnl
AC_REQUIRE([AC_FUNC_MMAP])dnl
+ AC_REQUIRE([jm_GLIBC21])dnl
- AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
-unistd.h sys/param.h])
- AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
-strdup __argz_count __argz_stringify __argz_next])
-
- if test "${ac_cv_func_stpcpy+set}" != "set"; then
- AC_CHECK_FUNCS(stpcpy)
- fi
- if test "${ac_cv_func_stpcpy}" = "yes"; then
- AC_DEFINE(HAVE_STPCPY, 1, [Define to 1 if you have the stpcpy function.])
- fi
+ 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([feof_unlocked fgets_unlocked getcwd getegid geteuid \
+getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \
+strdup strtoul tsearch __argz_count __argz_stringify __argz_next])
- NANO_AM_LC_MESSAGES
- NANO_AM_WITH_NLS
+ AM_ICONV
+ AM_LANGINFO_CODESET
+ AM_LC_MESSAGES
+ AM_WITH_NLS([$1],[$2],[$3])
if test "x$CATOBJEXT" != "x"; then
if test "x$ALL_LINGUAS" = "x"; then
@@ -242,10 +326,21 @@ strdup __argz_count __argz_stringify __argz_next])
else
AC_MSG_CHECKING(for catalogs to be installed)
NEW_LINGUAS=
- for lang in ${LINGUAS=$ALL_LINGUAS}; do
- case "$ALL_LINGUAS" in
- *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
- esac
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ for desiredlang in ${LINGUAS-$ALL_LINGUAS}; 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
+ NEW_LINGUAS="$NEW_LINGUAS $presentlang"
+ fi
done
LINGUAS=$NEW_LINGUAS
AC_MSG_RESULT($LINGUAS)
@@ -257,47 +352,8 @@ strdup __argz_count __argz_stringify __argz_next])
fi
fi
- dnl The reference to <locale.h> in the installed <libintl.h> file
- dnl must be resolved because we cannot expect the users of this
- dnl to define HAVE_LOCALE_H.
- if test $ac_cv_header_locale_h = yes; then
- INCLUDE_LOCALE_H="#include <locale.h>"
- else
- INCLUDE_LOCALE_H="\
-/* The system does not provide the header <locale.h>. Take care yourself. */"
- fi
- AC_SUBST(INCLUDE_LOCALE_H)
-
- dnl Determine which catalog format we have (if any is needed)
- dnl For now we know about two different formats:
- dnl Linux libc-5 and the normal X/Open format
- test -d intl || mkdir intl
- if test "$CATOBJEXT" = ".cat"; then
- AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
-
- dnl Transform the SED scripts while copying because some dumb SEDs
- dnl cannot handle comments.
- sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
- fi
- dnl po2tbl.sed is always needed.
- sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
- $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
-
- dnl In the intl/Makefile.in we have a special dependency which makes
- dnl only sense for gettext. We comment this out for non-gettext
- dnl packages.
- if test "$PACKAGE" = "gettext"; then
- GT_NO="#NO#"
- GT_YES=
- else
- GT_NO=
- GT_YES="#YES#"
- fi
- AC_SUBST(GT_NO)
- AC_SUBST(GT_YES)
-
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 find the mkinstalldirs script in another subdir but $(top_srcdir).
dnl Try to locate is.
MKINSTALLDIRS=
if test -n "$ac_aux_dir"; then
@@ -308,22 +364,7 @@ strdup __argz_count __argz_stringify __argz_next])
fi
AC_SUBST(MKINSTALLDIRS)
- dnl *** For now the libtool support in intl/Makefile is not for real.
- l=
- AC_SUBST(l)
-
- dnl Generate list of files to be processed by xgettext which will
- dnl be included in po/Makefile.
- test -d po || mkdir po
- case "$srcdir" in
- .)
- posrcprefix="../" ;;
- /* | [[A-Za-z]]:*)
- posrcprefix="$srcdir/" ;;
- *)
- posrcprefix="../$srcdir/" ;;
- esac
- rm -f po/POTFILES
- sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
- < $srcdir/po/POTFILES.in > po/POTFILES
+ dnl Enable libtool support if the surrounding package wishes it.
+ INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], [])
+ AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
])
diff --git a/m4/glibc21.m4 b/m4/glibc21.m4
@@ -0,0 +1,26 @@
+#serial 2
+
+# Test for the GNU C Library, version 2.1 or newer.
+# From Bruno Haible.
+
+AC_DEFUN([jm_GLIBC21],
+ [
+ AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
+ ac_cv_gnu_library_2_1,
+ [AC_EGREP_CPP([Lucky GNU user],
+ [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+ Lucky GNU user
+ #endif
+#endif
+ ],
+ ac_cv_gnu_library_2_1=yes,
+ ac_cv_gnu_library_2_1=no)
+ ]
+ )
+ AC_SUBST(GLIBC21)
+ GLIBC21="$ac_cv_gnu_library_2_1"
+ ]
+)
diff --git a/m4/iconv.m4 b/m4/iconv.m4
@@ -0,0 +1,69 @@
+#serial AM2
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_ICONV],
+[
+ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
+ dnl those with the standalone portable GNU libiconv installed).
+
+ AC_ARG_WITH([libiconv-prefix],
+[ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
+ for dir in `echo "$withval" | tr : ' '`; do
+ if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
+ if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
+ done
+ ])
+
+ AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ am_cv_func_iconv=yes)
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS -liconv"
+ AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes)
+ LIBS="$am_save_LIBS"
+ fi
+ ])
+ if test "$am_cv_func_iconv" = yes; then
+ AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
+ AC_MSG_CHECKING([for iconv declaration])
+ AC_CACHE_VAL(am_cv_proto_iconv, [
+ AC_TRY_COMPILE([
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
+ am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
+ am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+ AC_MSG_RESULT([$]{ac_t:-
+ }[$]am_cv_proto_iconv)
+ AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
+ [Define as const if the declaration of iconv() needs const.])
+ fi
+ LIBICONV=
+ if test "$am_cv_lib_iconv" = yes; then
+ LIBICONV="-liconv"
+ fi
+ AC_SUBST(LIBICONV)
+])
diff --git a/m4/isc-posix.m4 b/m4/isc-posix.m4
@@ -0,0 +1,17 @@
+#serial 1
+# This test replaces the one in autoconf.
+# Currently this macro should have the same name as the autoconf macro
+# because gettext's gettext.m4 (distributed in the automake package)
+# still uses it. Otherwise, the use in gettext.m4 makes autoheader
+# give these diagnostics:
+# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
+# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
+
+undefine([AC_ISC_POSIX])
+
+AC_DEFUN([AC_ISC_POSIX],
+ [
+ dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
+ AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
+ ]
+)
diff --git a/m4/lcmessage.m4 b/m4/lcmessage.m4
@@ -2,21 +2,23 @@
# Ulrich Drepper <drepper@cygnus.com>, 1995.
#
# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU Public License
-# but which still want to provide support for the GNU gettext functionality.
-# Please note that the actual code is *not* freely available.
+# be used in projects which are not available under the GNU General Public
+# License or the GNU Library General Public License but which still want
+# to provide support for the GNU gettext functionality.
+# Please note that the actual code of the GNU gettext library is covered
+# by the GNU Library General Public License, and the rest of the GNU
+# gettext package package is covered by the GNU General Public License.
+# They are *not* in the public domain.
# serial 2
-AC_PREREQ(2.13) dnl Minimum Autoconf version required.
-
-AC_DEFUN(NANO_AM_LC_MESSAGES,
+AC_DEFUN([AM_LC_MESSAGES],
[if test $ac_cv_header_locale_h = yes; then
AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
[AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
if test $am_cv_val_LC_MESSAGES = yes; then
AC_DEFINE(HAVE_LC_MESSAGES, 1,
- [Define if your locale.h file contains LC_MESSAGES.])
+ [Define if your <locale.h> file defines LC_MESSAGES.])
fi
fi])
diff --git a/m4/progtest.m4 b/m4/progtest.m4
@@ -2,15 +2,19 @@
# Ulrich Drepper <drepper@cygnus.com>, 1996.
#
# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU Public License
-# but which still want to provide support for the GNU gettext functionality.
-# Please note that the actual code is *not* freely available.
+# be used in projects which are not available under the GNU General Public
+# License or the GNU Library General Public License but which still want
+# to provide support for the GNU gettext functionality.
+# Please note that the actual code of the GNU gettext library is covered
+# by the GNU Library General Public License, and the rest of the GNU
+# gettext package package is covered by the GNU General Public License.
+# They are *not* in the public domain.
-# serial 1
+# serial 2
dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
-AC_DEFUN(NANO_AM_PATH_PROG_WITH_TEST,
+AC_DEFUN([AM_PATH_PROG_WITH_TEST],
[# Extract the first word of "$2", so it can be a program name with args.
set dummy $2; ac_word=[$]2
AC_MSG_CHECKING([for $ac_word])
@@ -38,7 +42,7 @@ ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
;;
esac])dnl
$1="$ac_cv_path_$1"
-if test -n "[$]$1"; then
+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
AC_MSG_RESULT([$]$1)
else
AC_MSG_RESULT(no)
diff --git a/po/ChangeLog b/po/ChangeLog
@@ -1,3 +1,23 @@
+2002-01-19 gettextize <bug-gnu-utils@gnu.org>
+
+ * Makefile.in.in: Upgrade to gettext-0.10.40.
+
+2002-01-19 gettextize <bug-gnu-utils@gnu.org>
+
+ * Makefile.in.in: Upgrade to gettext-0.10.40.
+
+2002-01-19 gettextize <bug-gnu-utils@gnu.org>
+
+ * Makefile.in.in: Upgrade to gettext-0.10.40.
+ * cat-id-tbl.c: Remove file.
+ * stamp-cat-id: Remove file.
+
+2002-01-19 gettextize <bug-gnu-utils@gnu.org>
+
+ * Makefile.in.in: Upgrade to gettext-0.10.40.
+ * cat-id-tbl.c: Remove file.
+ * stamp-cat-id: Remove file.
+
2002-01-19 Jordi Mallach <jordi@sindominio.net>
* ca.po: Updated.
diff --git a/po/ca.po b/po/ca.po
@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: nano 1.1.5-CVS\n"
-"POT-Creation-Date: 2002-01-19 00:16+0100\n"
+"POT-Creation-Date: 2002-01-19 13:10-0500\n"
"PO-Revision-Date: 2002-01-19 00:17+0100\n"
"Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
@@ -522,7 +522,7 @@ msgid "Find Other Bracket"
msgstr "Trobar Clau Corresponent"
#: global.c:451 global.c:484 global.c:517 global.c:529 global.c:554
-#: global.c:568 global.c:579 global.c:605 winio.c:1308
+#: global.c:568 global.c:579 global.c:605 winio.c:1413
msgid "Cancel"
msgstr "Cancel╥lar"
@@ -1201,7 +1201,7 @@ msgstr ""
"\n"
"Polsa una tecla per carregar nano\n"
-#: rcfile.c:165
+#: rcfile.c:180
#, c-format
msgid ""
"color %s not understood.\n"
@@ -1214,15 +1214,15 @@ msgstr ""
"\"white\", \"yellow\", \"cyan\", \"magenta\" i \n"
"\"black\", amb el prefixe opcional \"bright\".\n"
-#: rcfile.c:190
+#: rcfile.c:204
msgid "Missing color name"
msgstr "Nom del color inexistent"
-#: rcfile.c:223
-msgid "regex length must be > 0"
-msgstr "la llargЮria del regex ha de ser > 0"
+#: rcfile.c:234 rcfile.c:288
+msgid "regex strings must begin and end with a \" character\n"
+msgstr ""
-#: rcfile.c:289
+#: rcfile.c:280
msgid ""
"\n"
"\t\"start=\" requires a corresponding \"end=\""
@@ -1230,50 +1230,50 @@ msgstr ""
"\n"
"\t\"start=\" requereix el seu \"end=\" corresponent"
-#: rcfile.c:328
+#: rcfile.c:330
msgid "parse_rcfile: Read a comment\n"
msgstr "parse_rcfile: Llegit un comentari\n"
-#: rcfile.c:349
+#: rcfile.c:351
#, c-format
msgid "command %s not understood"
msgstr "comandament %s no reconegut"
-#: rcfile.c:361
+#: rcfile.c:363
#, c-format
msgid "parse_rcfile: Parsing option %s\n"
msgstr "parse_rcfile: Parsejant opciС %s\n"
-#: rcfile.c:379
+#: rcfile.c:381
#, c-format
msgid "option %s requires an argument"
msgstr "la opciС %s requereix un argument"
-#: rcfile.c:390
+#: rcfile.c:392
#, c-format
msgid "requested fill size %d too small"
msgstr "tamany de plenat %d massa petit"
-#: rcfile.c:398
+#: rcfile.c:402
#, c-format
msgid "requested tab size %d too small"
msgstr "tamany de tabulador %d massa petit"
-#: rcfile.c:411
+#: rcfile.c:417
#, c-format
msgid "set flag %d!\n"
msgstr "establir marca %d!\n"
-#: rcfile.c:416
+#: rcfile.c:423
#, c-format
msgid "unset flag %d!\n"
msgstr "llevar marca %d!\n"
-#: rcfile.c:425
+#: rcfile.c:433
msgid "Errors found in .nanorc file"
msgstr "Errors trobats en fitxer .nanorc"
-#: rcfile.c:433
+#: rcfile.c:441
#, c-format
msgid "Unable to open ~/.nanorc file, %s"
msgstr "No sh'a pogut obrir fitxer ~/.nanorc, %s"
@@ -1385,29 +1385,29 @@ msgstr "nano: realloc: mem
msgid "actual_x_from_start for xplus=%d returned %d\n"
msgstr "actual_x_from_start per a xplus=%d ha retornat %d\n"
-#: winio.c:295 winio.c:466
+#: winio.c:294 winio.c:464
#, c-format
msgid "Aha! '%c' (%d)\n"
msgstr "Aha! '%c' (%d)\n"
-#: winio.c:498
+#: winio.c:496
#, c-format
msgid "input '%c' (%d)\n"
msgstr "entrada '%c' (%d)\n"
-#: winio.c:546
+#: winio.c:544
msgid "New Buffer"
msgstr "Nou Buffer"
-#: winio.c:550
+#: winio.c:548
msgid " File: ..."
msgstr "Fitxer: ..."
-#: winio.c:552
+#: winio.c:550
msgid " DIR: ..."
msgstr " DIR: ..."
-#: winio.c:556
+#: winio.c:555
msgid "File: "
msgstr "Fitxer: "
@@ -1419,17 +1419,17 @@ msgstr " DIR: "
msgid "Modified"
msgstr "Modificat"
-#: winio.c:1167
+#: winio.c:1272
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr "Mogut a (%d, %d) a buffer d'ediciС\n"
-#: winio.c:1178
+#: winio.c:1283
#, c-format
msgid "current->data = \"%s\"\n"
msgstr "current->data = \"%s\"\n"
-#: winio.c:1252
+#: winio.c:1357
#, c-format
msgid "I got \"%s\"\n"
msgstr "He aconseguit \"%s\"\n"
@@ -1437,84 +1437,87 @@ msgstr "He aconseguit \"%s\"\n"
#. Yes, no and all are strings of any length. Each string consists of
#. all characters accepted as a valid character for that value.
#. The first value will be the one displayed in the shortcuts.
-#: winio.c:1281
+#: winio.c:1386
msgid "Yy"
msgstr "Ss"
-#: winio.c:1282
+#: winio.c:1387
msgid "Nn"
msgstr "Nn"
-#: winio.c:1283
+#: winio.c:1388
msgid "Aa"
msgstr "Tt"
-#: winio.c:1297
+#: winio.c:1402
msgid "Yes"
msgstr "SМ"
-#: winio.c:1301
+#: winio.c:1406
msgid "All"
msgstr "Totes"
-#: winio.c:1306
+#: winio.c:1411
msgid "No"
msgstr "No"
-#: winio.c:1513
+#: winio.c:1617
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
-#: winio.c:1521
+#: winio.c:1626
#, c-format
msgid "line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"
msgstr "lМnia %d de %d (%.0f%%), carЮcter %ld de %ld (%.0f%%)"
-#: winio.c:1686
+#: winio.c:1790
msgid "Dumping file buffer to stderr...\n"
msgstr "Abocant buffer de fitxer a stderr...\n"
-#: winio.c:1688
+#: winio.c:1792
msgid "Dumping cutbuffer to stderr...\n"
msgstr "Abocant el cutbuffer a stderr...\n"
-#: winio.c:1690
+#: winio.c:1794
msgid "Dumping a buffer to stderr...\n"
msgstr "Abocant un buffer a stderr...\n"
-#: winio.c:1765
+#: winio.c:1870
msgid "The nano text editor"
msgstr "L'editor de textos GNU nano"
-#: winio.c:1766
+#: winio.c:1871
msgid "version "
msgstr "versiС "
-#: winio.c:1767
+#: winio.c:1872
msgid "Brought to you by:"
msgstr "Per cortesia de:"
-#: winio.c:1768
+#: winio.c:1873
msgid "Special thanks to:"
msgstr "AgraОments especials per a:"
-#: winio.c:1769
+#: winio.c:1874
msgid "The Free Software Foundation"
msgstr "La FundaciС per al Software Lliure (FSF)"
-#: winio.c:1770
+#: winio.c:1876
msgid "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurses"
msgstr "Pavel Curtis, Zeyd Ben-Halim i Eric S. Raymond per ncurses"
-#: winio.c:1771
+#: winio.c:1877
msgid "and anyone else we forgot..."
msgstr "i per qualsevol dels qui ens hem oblidat esmentar..."
-#: winio.c:1772
+#: winio.c:1878
msgid "Thank you for using nano!\n"
msgstr "GrЮcies per fer servir nano!\n"
+#~ msgid "regex length must be > 0"
+#~ msgstr "la llargЮria del regex ha de ser > 0"
+
#~ msgid "Write"
#~ msgstr "desar"
diff --git a/po/cs.po b/po/cs.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: nano 1.0.0\n"
-"POT-Creation-Date: 2002-01-05 14:33-0500\n"
+"POT-Creation-Date: 2002-01-19 13:10-0500\n"
"Last-Translator: VАclav Haisman <V.Haisman@sh.cvut.cz>\n"
"Language-Team: Czech <cs@li.org>\n"
"MIME-Version: 1.0\n"
@@ -85,7 +85,7 @@ msgstr "jm
msgid "Can't insert file from outside of %s"
msgstr ""
-#: files.c:440 files.c:1106 files.c:1467 nano.c:1806
+#: files.c:440 files.c:1106 files.c:1467 nano.c:1813
msgid "Cancelled"
msgstr "Zru╧eno"
@@ -415,7 +415,7 @@ msgid "Find other bracket"
msgstr ""
#: global.c:306 global.c:448 global.c:481 global.c:514 global.c:527
-#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:602
+#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:603
msgid "Get Help"
msgstr "NАpovЛda"
@@ -536,7 +536,7 @@ msgid "Find Other Bracket"
msgstr ""
#: global.c:451 global.c:484 global.c:517 global.c:529 global.c:554
-#: global.c:568 global.c:579 global.c:604 winio.c:1307
+#: global.c:568 global.c:579 global.c:605 winio.c:1413
msgid "Cancel"
msgstr "Storno"
@@ -620,9 +620,9 @@ msgid ""
"commonly used shortcuts in the editor.\n"
"\n"
" The notation for shortcuts is as follows: Control-key sequences are notated "
-"with a caret (^) symbol and are entered with the Control (Ctrl) key. "
-"Escape-key sequences are notated with the Meta (M) symbol and can be entered "
-"using either the Esc, Alt or Meta key depending on your keyboard setup. The "
+"with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-"
+"key sequences are notated with the Meta (M) symbol and can be entered using "
+"either the Esc, Alt or Meta key depending on your keyboard setup. The "
"following keystrokes are available in the main editor window. Optional keys "
"are shown in parentheses:\n"
"\n"
@@ -785,9 +785,7 @@ msgid " -F \t\tEnable multiple file buffers\n"
msgstr ""
#: nano.c:498
-msgid ""
-" -K\t\tUse alternate keypad routines\n"
-"\n"
+msgid " -K\t\tUse alternate keypad routines\n"
msgstr ""
#: nano.c:500
@@ -893,93 +891,93 @@ msgstr ""
"\n"
" SkompilovanИ volby:"
-#: nano.c:640
+#: nano.c:638
msgid "Mark Set"
msgstr "ZnaХka Nastavena"
-#: nano.c:645
+#: nano.c:643
msgid "Mark UNset"
msgstr "ZnaХka OdNastavena"
-#: nano.c:1267
+#: nano.c:1264
#, c-format
msgid "check_wrap called with inptr->data=\"%s\"\n"
msgstr "check_wrap zavolАno s inptr->data=\"%s\"\n"
-#: nano.c:1319
+#: nano.c:1316
#, c-format
msgid "current->data now = \"%s\"\n"
msgstr "current->data nynМ = \"%s\"\n"
-#: nano.c:1371
+#: nano.c:1368
#, c-format
msgid "After, data = \"%s\"\n"
msgstr "PotИ, data = \"%s\"\n"
-#: nano.c:1480
+#: nano.c:1484
msgid "Edit a replacement"
msgstr "Edituj nАhradu"
-#: nano.c:1717
+#: nano.c:1724
#, c-format
msgid "Could not create a temporary filename: %s"
msgstr "Nemohu vytvoЬit doХasnЩ soubor: %s"
-#: nano.c:1723
+#: nano.c:1730
msgid "Spell checking failed: unable to write temp file!"
msgstr "Kontrola pravopisu selhala: nemohu zapisovat do doХasnИho souboru!"
-#: nano.c:1743
+#: nano.c:1750
msgid "Finished checking spelling"
msgstr "Kontrola pravopisu dokonХena"
-#: nano.c:1745
+#: nano.c:1752
msgid "Spell checking failed"
msgstr "Kontrola pravopisu selhala"
-#: nano.c:1774
+#: nano.c:1781
msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
msgstr "Ulo╬ zmЛnЛnЩ buffer (ODPOVлом \"Ne\" ZTRATмTE ZMлNY) ? "
-#: nano.c:1921
+#: nano.c:1928
msgid "Received SIGHUP"
msgstr "PЬijat signАl SIGHUP"
-#: nano.c:1988
+#: nano.c:1998
msgid "Cannot resize top win"
msgstr "Nemohu zmЛnit velikost vrchnМho okna"
-#: nano.c:1990
+#: nano.c:2000
msgid "Cannot move top win"
msgstr "Nemohu pЬesunout vrchnМ okno"
-#: nano.c:1992
+#: nano.c:2002
msgid "Cannot resize edit win"
msgstr "Nemohu zmЛnit velikost editovacМho okna"
-#: nano.c:1994
+#: nano.c:2004
msgid "Cannot move edit win"
msgstr "Nemohu pЬesunout editovacМ okno"
-#: nano.c:1996
+#: nano.c:2006
msgid "Cannot resize bottom win"
msgstr "Nemohu zmЛnit velikost spodnМho okna"
-#: nano.c:1998
+#: nano.c:2008
msgid "Cannot move bottom win"
msgstr "Nemohu pЬesunout spodnМ okno"
-#: nano.c:2337
+#: nano.c:2347
msgid "Can now UnJustify!"
msgstr "MЫ╬e nynМ OdZarovnat!"
-#: nano.c:2403
+#: nano.c:2413
msgid ""
"Search Command Help Text\n"
"\n"
-" Enter the words or characters you would like to search for, then hit enter. "
-" If there is a match for the text you entered, the screen will be updated to "
-"the location of the nearest match for the search string.\n"
+" Enter the words or characters you would like to search for, then hit "
+"enter. If there is a match for the text you entered, the screen will be "
+"updated to the location of the nearest match for the search string.\n"
"\n"
" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or "
"using a nanorc file, the previous search string will be shown in brackets "
@@ -991,7 +989,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2417
+#: nano.c:2427
msgid ""
"Goto Line Help Text\n"
"\n"
@@ -1003,7 +1001,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2424
+#: nano.c:2434
msgid ""
"Insert File Help Text\n"
"\n"
@@ -1019,7 +1017,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2435
+#: nano.c:2445
msgid ""
"Write File Help Text\n"
"\n"
@@ -1035,21 +1033,21 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2447
+#: nano.c:2457
msgid ""
"File Browser Help Text\n"
"\n"
" The file browser is used to visually browse the directory structure to "
-"select a file for reading or writing. You may use the arrow keys or Page "
-"Up/Down to browse through the files, and S or Enter to choose the selected "
-"file or enter the selected directory. To move up one level, select the "
-"directory called \"..\" at the top of the file list.\n"
+"select a file for reading or writing. You may use the arrow keys or Page Up/"
+"Down to browse through the files, and S or Enter to choose the selected file "
+"or enter the selected directory. To move up one level, select the directory "
+"called \"..\" at the top of the file list.\n"
"\n"
" The following functions keys are available in the file browser:\n"
"\n"
msgstr ""
-#: nano.c:2458
+#: nano.c:2468
msgid ""
"Browser Goto Directory Help Text\n"
"\n"
@@ -1061,7 +1059,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2466
+#: nano.c:2476
msgid ""
"Spell Check Help Text\n"
"\n"
@@ -1074,112 +1072,140 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2550
+#: nano.c:2560
#, c-format
msgid "%s enable/disable"
msgstr "%s povol/zaka╬"
-#: nano.c:2569
+#: nano.c:2579
msgid "enabled"
msgstr "povoleno"
-#: nano.c:2570
+#: nano.c:2580
msgid "disabled"
msgstr "zakАzАno"
-#: nano.c:2634
+#: nano.c:2644
msgid "NumLock glitch detected. Keypad will malfunction with NumLock off"
msgstr ""
"Zji╧tЛna porucha NumLocku. NumerickА klАvesnice nebude fungovat s vypnutЩm "
"NumLockem"
-#: nano.c:2931
+#: nano.c:2941
msgid "Main: set up windows\n"
msgstr "Main: nastav okna\n"
-#: nano.c:2948
+#: nano.c:2958
msgid "Main: bottom win\n"
msgstr "Main: spodnМ okno\n"
-#: nano.c:2954
+#: nano.c:2964
msgid "Main: open file\n"
msgstr "Main: otevЬi soubor\n"
-#: nano.c:3013
+#: nano.c:3023
#, fuzzy, c-format
msgid "I got Alt-O-%c! (%d)\n"
msgstr "MАm Alt-O-%c! (%d)\n"
-#: nano.c:3047
+#: nano.c:3057
#, fuzzy, c-format
msgid "I got Alt-[-1-%c! (%d)\n"
msgstr "MАm Alt-[-1-%c! (%d)\n"
-#: nano.c:3077
+#: nano.c:3087
#, fuzzy, c-format
msgid "I got Alt-[-2-%c! (%d)\n"
msgstr "MАm Alt-[-2-%c! (%d)\n"
-#: nano.c:3146
+#: nano.c:3156
#, c-format
msgid "I got Alt-[-%c! (%d)\n"
msgstr "MАm Alt-[-%c! (%d)\n"
-#: nano.c:3183
+#: nano.c:3194
#, c-format
msgid "I got Alt-%c! (%d)\n"
msgstr "MАm Alt-%c! (%d)\n"
-#: rcfile.c:85
+#: rcfile.c:86
+#, c-format
+msgid "Error in %s on line %d: "
+msgstr ""
+
+#: rcfile.c:90
msgid ""
"\n"
"Press return to continue starting nano\n"
msgstr ""
-#: rcfile.c:282
+#: rcfile.c:180
+#, c-format
+msgid ""
+"color %s not understood.\n"
+"Valid colors are \"green\", \"red\", \"blue\", \n"
+"\"white\", \"yellow\", \"cyan\", \"magenta\" and \n"
+"\"black\", with the optional prefix \"bright\".\n"
+msgstr ""
+
+#: rcfile.c:204
+msgid "Missing color name"
+msgstr ""
+
+#: rcfile.c:234 rcfile.c:288
+msgid "regex strings must begin and end with a \" character\n"
+msgstr ""
+
+#: rcfile.c:280
+msgid ""
+"\n"
+"\t\"start=\" requires a corresponding \"end=\""
+msgstr ""
+
+#: rcfile.c:330
msgid "parse_rcfile: Read a comment\n"
msgstr ""
-#: rcfile.c:303
+#: rcfile.c:351
#, c-format
-msgid "Error in %s on line %d: command %s not understood"
+msgid "command %s not understood"
msgstr ""
-#: rcfile.c:316
+#: rcfile.c:363
#, c-format
msgid "parse_rcfile: Parsing option %s\n"
msgstr ""
-#: rcfile.c:334
+#: rcfile.c:381
#, c-format
-msgid "Error in %s on line %d: option %s requires an argument"
+msgid "option %s requires an argument"
msgstr ""
-#: rcfile.c:345
+#: rcfile.c:392
#, c-format
-msgid "Error in %s on line %d: requested fill size %d too small"
+msgid "requested fill size %d too small"
msgstr ""
-#: rcfile.c:354
+#: rcfile.c:402
#, c-format
-msgid "Error in %s on line %d: requested tab size %d too small"
+msgid "requested tab size %d too small"
msgstr ""
-#: rcfile.c:368
+#: rcfile.c:417
#, c-format
msgid "set flag %d!\n"
msgstr ""
-#: rcfile.c:373
+#: rcfile.c:423
#, c-format
msgid "unset flag %d!\n"
msgstr ""
-#: rcfile.c:382
+#: rcfile.c:433
msgid "Errors found in .nanorc file"
msgstr ""
-#: rcfile.c:391
+#: rcfile.c:441
#, c-format
msgid "Unable to open ~/.nanorc file, %s"
msgstr ""
@@ -1213,7 +1239,7 @@ msgstr "Zp
msgid " (to replace)"
msgstr " (k zАmЛnЛ)"
-#: search.c:151 search.c:424
+#: search.c:151 search.c:438
msgid "Search Cancelled"
msgstr "HledАnМ Zru╧eno"
@@ -1222,59 +1248,59 @@ msgstr "Hled
msgid "\"%s...\" not found"
msgstr "\"%s...\" nenalezen"
-#: search.c:278 search.c:340
+#: search.c:292 search.c:354
msgid "Search Wrapped"
msgstr "HledАnМ Zalomeno"
-#: search.c:446
+#: search.c:460
#, fuzzy, c-format
msgid "Replaced %d occurrences"
msgstr "ZamЛnЛno %d vЩskytЫ"
-#: search.c:448
+#: search.c:462
#, fuzzy
msgid "Replaced 1 occurrence"
msgstr "ZamЛnЛn 1 vЩskyt"
-#: search.c:586 search.c:698 search.c:714
+#: search.c:600 search.c:699 search.c:715
msgid "Replace Cancelled"
msgstr "ZАmЛna Zru╧ena"
-#: search.c:636
+#: search.c:637
msgid "Replace this instance?"
msgstr "ZamЛnit tuto instanci?"
-#: search.c:648
+#: search.c:649
msgid "Replace failed: unknown subexpression!"
msgstr "ZАmЛna selhala: neznАmЩ podvЩraz!"
-#: search.c:739
+#: search.c:740
#, c-format
msgid "Replace with [%s]"
msgstr "ZamЛn s [%s]"
-#: search.c:743 search.c:747
+#: search.c:744 search.c:748
msgid "Replace with"
msgstr "ZamЛn s"
-#: search.c:781
+#: search.c:782
msgid "Enter line number"
msgstr "Zadej ХМslo ЬАdky"
-#: search.c:783
+#: search.c:784
msgid "Aborted"
msgstr "PЬeru╧eno"
-#: search.c:792
+#: search.c:793
msgid "Come on, be reasonable"
msgstr "Notak, buО rozumnЩ."
-#: search.c:854
+#: search.c:855
msgid "Not a bracket"
msgstr ""
#. didn't find either left or right bracket
-#: search.c:899
+#: search.c:900
msgid "No matching bracket"
msgstr ""
@@ -1297,30 +1323,30 @@ msgstr "nano: malloc: nedostatek pam
msgid "actual_x_from_start for xplus=%d returned %d\n"
msgstr "actual_x_from_start pro xplus=%d vrАtilo %d\n"
-#: winio.c:295 winio.c:466
+#: winio.c:294 winio.c:464
#, fuzzy, c-format
msgid "Aha! '%c' (%d)\n"
msgstr "vstup '%c' (%d)\n"
-#: winio.c:498
+#: winio.c:496
#, c-format
msgid "input '%c' (%d)\n"
msgstr "vstup '%c' (%d)\n"
-#: winio.c:546
+#: winio.c:544
msgid "New Buffer"
msgstr "NovЩ Buffer"
-#: winio.c:550
+#: winio.c:548
msgid " File: ..."
msgstr " Soubor: ..."
-#: winio.c:552
+#: winio.c:550
#, fuzzy
msgid " DIR: ..."
msgstr " AdresАЬ: ..."
-#: winio.c:556
+#: winio.c:555
#, fuzzy
msgid "File: "
msgstr " Soubor: ..."
@@ -1334,17 +1360,17 @@ msgstr " Adres
msgid "Modified"
msgstr "ZmЛnЛn"
-#: winio.c:1166
+#: winio.c:1272
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr "PЬesunut na (%d, %d) v editovacМm bufferu\n"
-#: winio.c:1177
+#: winio.c:1283
#, c-format
msgid "current->data = \"%s\"\n"
msgstr "current->data = \"%s\"\n"
-#: winio.c:1251
+#: winio.c:1357
#, c-format
msgid "I got \"%s\"\n"
msgstr "MАm \"%s\"\n"
@@ -1352,80 +1378,81 @@ msgstr "M
#. Yes, no and all are strings of any length. Each string consists of
#. all characters accepted as a valid character for that value.
#. The first value will be the one displayed in the shortcuts.
-#: winio.c:1280
+#: winio.c:1386
msgid "Yy"
msgstr "Aa"
-#: winio.c:1281
+#: winio.c:1387
msgid "Nn"
msgstr "Nn"
-#: winio.c:1282
+#: winio.c:1388
msgid "Aa"
msgstr "Vv"
-#: winio.c:1296
+#: winio.c:1402
msgid "Yes"
msgstr "Ano"
-#: winio.c:1300
+#: winio.c:1406
msgid "All"
msgstr "V╧e"
-#: winio.c:1305
+#: winio.c:1411
msgid "No"
msgstr "Ne"
-#: winio.c:1512
+#: winio.c:1617
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
-#: winio.c:1520
+#: winio.c:1626
+#, c-format
msgid "line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"
msgstr "ЬАdka %d z %d (%.0f%%), znak %ld z %ld (%.0f%%)"
-#: winio.c:1685
+#: winio.c:1790
msgid "Dumping file buffer to stderr...\n"
msgstr "Vyhazuji souborovЩ buffer od stderr...\n"
-#: winio.c:1687
+#: winio.c:1792
msgid "Dumping cutbuffer to stderr...\n"
msgstr "Vyhazuji cutbuffer do stderr...\n"
-#: winio.c:1689
+#: winio.c:1794
msgid "Dumping a buffer to stderr...\n"
msgstr "Vyhazuji buffer do stderr...\n"
-#: winio.c:1764
+#: winio.c:1870
msgid "The nano text editor"
msgstr "Nano texotvЩ editor"
-#: winio.c:1765
+#: winio.c:1871
msgid "version "
msgstr "verze "
-#: winio.c:1766
+#: winio.c:1872
msgid "Brought to you by:"
msgstr "PЬinesen k VАm od:"
-#: winio.c:1767
+#: winio.c:1873
msgid "Special thanks to:"
msgstr "SpeciАlnМ dМky:"
-#: winio.c:1768
+#: winio.c:1874
msgid "The Free Software Foundation"
msgstr "The Free Software Foundation"
-#: winio.c:1769
+#: winio.c:1876
msgid "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurses"
msgstr "Pavel Curtis, Zeyd Ben-Halim a Eric S. Raymond za ncurses"
-#: winio.c:1770
+#: winio.c:1877
msgid "and anyone else we forgot..."
msgstr "a komukoliv na koho jsem zapomЛli..."
-#: winio.c:1771
+#: winio.c:1878
msgid "Thank you for using nano!\n"
msgstr "DЛkuji za u╬МvАnМ nano!\n"
diff --git a/po/da.po b/po/da.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: nano 1.1.5\n"
-"POT-Creation-Date: 2002-01-05 14:33-0500\n"
+"POT-Creation-Date: 2002-01-19 13:10-0500\n"
"PO-Revision-Date: 2002-01-17 22:27+0200\n"
"Last-Translator: Keld Simonsen <keld@dkuug.dk>\n"
"Language-Team: Danish <dansk@klid.dk>\n"
@@ -85,7 +85,7 @@ msgstr "filnavnet er %s"
msgid "Can't insert file from outside of %s"
msgstr "Kan ikke indsФtte fil fra ydersiden af %s"
-#: files.c:440 files.c:1106 files.c:1467 nano.c:1806
+#: files.c:440 files.c:1106 files.c:1467 nano.c:1813
msgid "Cancelled"
msgstr "Afbrudt"
@@ -403,7 +403,7 @@ msgstr "Find anden klamme"
# kontrollИr at den finns
#: global.c:306 global.c:448 global.c:481 global.c:514 global.c:527
-#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:602
+#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:603
msgid "Get Help"
msgstr "FЕ hjФlp"
@@ -521,7 +521,7 @@ msgid "Find Other Bracket"
msgstr "Find anden klamme"
#: global.c:451 global.c:484 global.c:517 global.c:529 global.c:554
-#: global.c:568 global.c:579 global.c:604 winio.c:1307
+#: global.c:568 global.c:579 global.c:605 winio.c:1413
msgid "Cancel"
msgstr "AnnullИr"
@@ -563,13 +563,21 @@ msgstr "G
#: nano.c:179
#, c-format
-msgid "\nBuffer written to %s\n"
-msgstr "\nBufferen skrevet til %s\n"
+msgid ""
+"\n"
+"Buffer written to %s\n"
+msgstr ""
+"\n"
+"Bufferen skrevet til %s\n"
#: nano.c:181
#, c-format
-msgid "\nNo %s written (file exists?)\n"
-msgstr "\nIngen %s skrevet (eksisterer filen?)\n"
+msgid ""
+"\n"
+"No %s written (file exists?)\n"
+msgstr ""
+"\n"
+"Ingen %s skrevet (eksisterer filen?)\n"
#: nano.c:188
msgid "Window size is too small for Nano..."
@@ -583,16 +591,38 @@ msgstr "Tasten ugyldig i VISNINGstilstand"
msgid ""
" nano help text\n"
"\n"
-" The nano editor is designed to emulate the functionality and ease-of-use of the UW Pico text editor. There are four main sections of the editor: The top line shows the program version, the current filename being edited, and whether or not the file has been modified. Next is the main editor window showing the file being edited. The status line is the third line from the bottom and shows important messages. The bottom two lines show the most commonly used shortcuts in the editor.\n"
+" The nano editor is designed to emulate the functionality and ease-of-use of "
+"the UW Pico text editor. There are four main sections of the editor: The "
+"top line shows the program version, the current filename being edited, and "
+"whether or not the file has been modified. Next is the main editor window "
+"showing the file being edited. The status line is the third line from the "
+"bottom and shows important messages. The bottom two lines show the most "
+"commonly used shortcuts in the editor.\n"
"\n"
-" The notation for shortcuts is as follows: Control-key sequences are notated with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-key sequences are notated with the Meta (M) symbol and can be entered using either the Esc, Alt or Meta key depending on your keyboard setup. The following keystrokes are available in the main editor window. Optional keys are shown in parentheses:\n"
+" The notation for shortcuts is as follows: Control-key sequences are notated "
+"with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-"
+"key sequences are notated with the Meta (M) symbol and can be entered using "
+"either the Esc, Alt or Meta key depending on your keyboard setup. The "
+"following keystrokes are available in the main editor window. Optional keys "
+"are shown in parentheses:\n"
"\n"
msgstr ""
" hjФlpetekst for nano\n"
"\n"
-" Tekstredigereren nano er skabt for at efterligne funktionaliteten og letanvendeligheden hos tekstredigereren UW Pico. Det findes fire hoveddele i redigereren: ьverste linje viser programmets versionsnummer, navnet pЕ filen som redigeres, og om filen er Фndret. Efter dette findes hovedvinduet som viser filen som redigeres. Statuslinjen er tredje linje fra underkanten og viser vigtige meddelelser. De nederste to linjer viser de almindeligste kommandoer som bruges i tekstredigereren.\n"
+" Tekstredigereren nano er skabt for at efterligne funktionaliteten og "
+"letanvendeligheden hos tekstredigereren UW Pico. Det findes fire hoveddele i "
+"redigereren: ьverste linje viser programmets versionsnummer, navnet pЕ filen "
+"som redigeres, og om filen er Фndret. Efter dette findes hovedvinduet som "
+"viser filen som redigeres. Statuslinjen er tredje linje fra underkanten og "
+"viser vigtige meddelelser. De nederste to linjer viser de almindeligste "
+"kommandoer som bruges i tekstredigereren.\n"
"\n"
-" Notationen for kommandoer er som fЬlger: Sekvenser med Kontrol-tast skrives med en cirkumfleks (^) og trykkes samtidigt med Kontrol-tasten (Ctrl). Escape-sekvenser skrives med metategnet (M) og angives enten med Esc-, Alt- eller Meta-tasten afhФngig af dine tastaturindstillinger. FЬlgende tastekombinationer er tilgФngelige i redigererens hovedvindue. Alternative taster vises inden i parentes:\n"
+" Notationen for kommandoer er som fЬlger: Sekvenser med Kontrol-tast skrives "
+"med en cirkumfleks (^) og trykkes samtidigt med Kontrol-tasten (Ctrl). "
+"Escape-sekvenser skrives med metategnet (M) og angives enten med Esc-, Alt- "
+"eller Meta-tasten afhФngig af dine tastaturindstillinger. FЬlgende "
+"tastekombinationer er tilgФngelige i redigererens hovedvindue. Alternative "
+"taster vises inden i parentes:\n"
"\n"
#: nano.c:347
@@ -604,8 +634,12 @@ msgid "delete_node(): free'd last node.\n"
msgstr "delete_node(): frigjorde sidste knude.\n"
#: nano.c:409
-msgid "Usage: nano [GNU long option] [option] +LINE <file>\n\n"
-msgstr "Brug: nano [langt GNU-flag] [flag] +LINJE <fil>\n\n"
+msgid ""
+"Usage: nano [GNU long option] [option] +LINE <file>\n"
+"\n"
+msgstr ""
+"Brug: nano [langt GNU-flag] [flag] +LINJE <fil>\n"
+"\n"
#: nano.c:410
msgid "Option\t\tLong option\t\tMeaning\n"
@@ -637,7 +671,8 @@ msgstr " -S\t\t--smooth\t\tJ
#: nano.c:438
msgid " -T [num]\t--tabsize=[num]\t\tSet width of a tab to num\n"
-msgstr " -T [tal]\t--tabsize=[tal]\t\tSФt bredden pЕ et tabulatortegn til tal\n"
+msgstr ""
+" -T [tal]\t--tabsize=[tal]\t\tSФt bredden pЕ et tabulatortegn til tal\n"
#: nano.c:441
msgid " -V \t\t--version\t\tPrint version information and exit\n"
@@ -657,7 +692,8 @@ msgstr " -i \t\t--autoindent\t\tIndryk automatisk nye linjer\n"
#: nano.c:450
msgid " -k \t\t--cut\t\t\tLet ^K cut from cursor to end of line\n"
-msgstr " -k \t\t--cut\t\t\tLad ^K klippe ud fra markЬren til slutningen pЕ linjen\n"
+msgstr ""
+" -k \t\t--cut\t\t\tLad ^K klippe ud fra markЬren til slutningen pЕ linjen\n"
#: nano.c:453
msgid " -l \t\t--nofollow\t\tDon't follow symbolic links, overwrite\n"
@@ -676,7 +712,8 @@ msgid " -p \t\t--pico\t\t\tEmulate Pico as closely as possible\n"
msgstr " -p \t\t--pico\t\t\tEfterlign Pico sЕ tФt som muligt\n"
#: nano.c:469
-msgid " -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n"
+msgid ""
+" -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n"
msgstr " -r [tegn] \t--fill=[#tegn]\t\tBryd linjer efter antal tegn\n"
#: nano.c:473
@@ -708,8 +745,12 @@ msgid " +LINE\t\t\t\t\tStart at line number LINE\n"
msgstr " +LINJE\t\t\t\t\tStart ved linjenummer LINJE\n"
#: nano.c:490
-msgid "Usage: nano [option] +LINE <file>\n\n"
-msgstr "Brug: nano [flag] +LINJE <fil>\n\n"
+msgid ""
+"Usage: nano [option] +LINE <file>\n"
+"\n"
+msgstr ""
+"Brug: nano [flag] +LINJE <fil>\n"
+"\n"
#: nano.c:491
msgid "Option\t\tMeaning\n"
@@ -724,8 +765,11 @@ msgid " -F \t\tEnable multiple file buffers\n"
msgstr " -F \t\tTillad flere fil-buffere\n"
#: nano.c:498
-msgid " -K\t\tUse alternate keypad routines\n\n"
-msgstr " -K\t\tBrug alternative tastatur-rutiner\n\n"
+#, fuzzy
+msgid " -K\t\tUse alternate keypad routines\n"
+msgstr ""
+" -K\t\tBrug alternative tastatur-rutiner\n"
+"\n"
#: nano.c:500
msgid " -M \t\tWrite file in Mac format\n"
@@ -821,317 +865,405 @@ msgid " Email: nano@nano-editor.org\tWeb: http://www.nano-editor.org"
msgstr " E-post: nano@nano-editor.org\tHjemmeside: http://www.nano-editor.org"
#: nano.c:551
-msgid "\n Compiled options:"
-msgstr "\n OversФttelsesflag:"
+msgid ""
+"\n"
+" Compiled options:"
+msgstr ""
+"\n"
+" OversФttelsesflag:"
-#: nano.c:640
+#: nano.c:638
msgid "Mark Set"
msgstr "Markering sat"
-#: nano.c:645
+#: nano.c:643
msgid "Mark UNset"
msgstr "Markering fjernet"
-#: nano.c:1267
+#: nano.c:1264
#, c-format
msgid "check_wrap called with inptr->data=\"%s\"\n"
msgstr "check_wrap kaldt med inptr->data=\"%s\"\n"
-#: nano.c:1319
+#: nano.c:1316
#, c-format
msgid "current->data now = \"%s\"\n"
msgstr "current->data nu = \"%s\"\n"
-#: nano.c:1371
+#: nano.c:1368
#, c-format
msgid "After, data = \"%s\"\n"
msgstr "Efter, data = \"%s\"\n"
-#: nano.c:1480
+#: nano.c:1484
msgid "Edit a replacement"
msgstr "RedigИr en erstatning"
-#: nano.c:1717
+#: nano.c:1724
#, c-format
msgid "Could not create a temporary filename: %s"
msgstr "Kunne ikke skabe et midlertidigt filnavn: %s"
-#: nano.c:1723
+#: nano.c:1730
msgid "Spell checking failed: unable to write temp file!"
msgstr "Stavekontrol mislykkedes: kan ikke skrive til midlertidig fil!"
-#: nano.c:1743
+#: nano.c:1750
msgid "Finished checking spelling"
msgstr "Stavekontrollen fФrdiggjordes"
-#: nano.c:1745
+#: nano.c:1752
msgid "Spell checking failed"
msgstr "Stavekontrollen mislykkedes"
-#: nano.c:1774
+#: nano.c:1781
msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
msgstr "Gem Фndret buffer (AT SVARE \"Nej\" VIL ьDELфGGE фNDRINGER)? "
-#: nano.c:1921
+#: nano.c:1928
msgid "Received SIGHUP"
msgstr "Modtog SIGHUP"
-#: nano.c:1988
+#: nano.c:1998
msgid "Cannot resize top win"
msgstr "Kan ikke Фndre stЬrrelse pЕ Ьvre vindue"
-#: nano.c:1990
+#: nano.c:2000
msgid "Cannot move top win"
msgstr "Kan ikke flytte Ьvre vindue"
-#: nano.c:1992
+#: nano.c:2002
msgid "Cannot resize edit win"
msgstr "Kan ikke Фndre stЬrrelse pЕ redigeringsvindue"
-#: nano.c:1994
+#: nano.c:2004
msgid "Cannot move edit win"
msgstr "Kan ikke flytte redigeringsvindue"
-#: nano.c:1996
+#: nano.c:2006
msgid "Cannot resize bottom win"
msgstr "Kan ikke Фndre stЬrrelse pЕ bundvinduet"
-#: nano.c:1998
+#: nano.c:2008
msgid "Cannot move bottom win"
msgstr "Kan ikke flytte bundvinduet"
-#: nano.c:2337
+#: nano.c:2347
msgid "Can now UnJustify!"
msgstr "Kan nu lave ingen ombrydning!"
-#: nano.c:2403
+#: nano.c:2413
msgid ""
"Search Command Help Text\n"
"\n"
-" Enter the words or characters you would like to search for, then hit enter. If there is a match for the text you entered, the screen will be updated to the location of the nearest match for the search string.\n"
+" Enter the words or characters you would like to search for, then hit "
+"enter. If there is a match for the text you entered, the screen will be "
+"updated to the location of the nearest match for the search string.\n"
"\n"
-" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or using a nanorc file, the previous search string will be shown in brackets after the Search: prompt. Hitting enter without entering any text will perform the previous search. Otherwise, the previous string will be placed in front of the cursor, and can be edited or deleted before hitting enter.\n"
+" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or "
+"using a nanorc file, the previous search string will be shown in brackets "
+"after the Search: prompt. Hitting enter without entering any text will "
+"perform the previous search. Otherwise, the previous string will be placed "
+"in front of the cursor, and can be edited or deleted before hitting enter.\n"
"\n"
" The following functions keys are available in Search mode:\n"
"\n"
msgstr ""
"HjФlpetekst for sЬgekommando\n"
"\n"
-" Indtast de ord eller tegn, du vil lede efter, og tryk sЕ retur. Hvis der er en trФffer for teksten du indtastede, vil skФrmen blive opdateret til stedet for den nФrmeste trФffer for sЬgestrengen.\n"
+" Indtast de ord eller tegn, du vil lede efter, og tryk sЕ retur. Hvis der er "
+"en trФffer for teksten du indtastede, vil skФrmen blive opdateret til stedet "
+"for den nФrmeste trФffer for sЬgestrengen.\n"
"\n"
-" Hvis du bruger Pico-tilstand v.hj.a. -p eller --pico-flaget eller bruger Meta-P skifteren, eller bruger en nanorc-fil, vil den foregЕende sЬgestreng blive vist i kantparanteser efter SЬg:-teksten. Hvis du taster retur uden at indtaste nogen tekst vil den foregЕende sЬgning blive udfЬrt. Ellers vil den foregЕende streng blive placeret foran markЬren, og kan redigeres eller slettes fЬr tastning af retur.\n"
+" Hvis du bruger Pico-tilstand v.hj.a. -p eller --pico-flaget eller bruger "
+"Meta-P skifteren, eller bruger en nanorc-fil, vil den foregЕende sЬgestreng "
+"blive vist i kantparanteser efter SЬg:-teksten. Hvis du taster retur uden at "
+"indtaste nogen tekst vil den foregЕende sЬgning blive udfЬrt. Ellers vil den "
+"foregЕende streng blive placeret foran markЬren, og kan redigeres eller "
+"slettes fЬr tastning af retur.\n"
"\n"
" De fЬlgende funktionstaster er tilstede i sЬge-tilstand:\n"
"\n"
-#: nano.c:2417
+#: nano.c:2427
msgid ""
"Goto Line Help Text\n"
"\n"
-" Enter the line number that you wish to go to and hit Enter. If there are fewer lines of text than the number you entered, you will be brought to the last line of the file.\n"
+" Enter the line number that you wish to go to and hit Enter. If there are "
+"fewer lines of text than the number you entered, you will be brought to the "
+"last line of the file.\n"
"\n"
" The following functions keys are available in Goto Line mode:\n"
"\n"
msgstr ""
"HjФlpetekst for gЕ-til-linje\n"
"\n"
-" Indtast linjenummeret du Ьnsker at gЕ til, og tast retur. Hvis der er fФrre linjer i teksten end det tal du indtastede, vil du blive bragt hen til den sidste linje i filen.\n"
+" Indtast linjenummeret du Ьnsker at gЕ til, og tast retur. Hvis der er fФrre "
+"linjer i teksten end det tal du indtastede, vil du blive bragt hen til den "
+"sidste linje i filen.\n"
"\n"
" De fЬlgende funktionstaster er tilstede i gЕ-til-linje-tilstand:\n"
"\n"
-#: nano.c:2424
+#: nano.c:2434
msgid ""
"Insert File Help Text\n"
"\n"
-" Type in the name of a file to be inserted into the current file buffer at the current cursor location.\n"
+" Type in the name of a file to be inserted into the current file buffer at "
+"the current cursor location.\n"
"\n"
-" If you have compiled nano with multiple file buffer support, and enable multiple buffers with the -F or --multibuffer command line flags, the Meta-F toggle or using a nanorc file, inserting a file will cause it to be loaded into a separate buffer (use Meta-< and > to switch between file buffers).\n"
+" If you have compiled nano with multiple file buffer support, and enable "
+"multiple buffers with the -F or --multibuffer command line flags, the Meta-F "
+"toggle or using a nanorc file, inserting a file will cause it to be loaded "
+"into a separate buffer (use Meta-< and > to switch between file buffers).\n"
"\n"
" The following function keys are available in Insert File mode:\n"
"\n"
msgstr ""
"HjФlpetekst for indsФt fil\n"
"\n"
-" Indtast navnet pЕ en fil, der skal indsФttes i den nuvФrende filbuffer pЕ den aktuelle markЬrposition.\n"
+" Indtast navnet pЕ en fil, der skal indsФttes i den nuvФrende filbuffer pЕ "
+"den aktuelle markЬrposition.\n"
"\n"
-" Hvis du har oversat nano med understЬttelse for flere filbuffere, og aktiveret flere filbuffere med -F eller --multibuffer kommandolinjeflag eller Meta-F-skifteren eller brugt en nanorc-fil, vil indsФtning af en fil fЕ den til at blive indlФst i en separat buffer (brug Ctrl-< og > til at skifte mellem filbuffere).\n"
+" Hvis du har oversat nano med understЬttelse for flere filbuffere, og "
+"aktiveret flere filbuffere med -F eller --multibuffer kommandolinjeflag "
+"eller Meta-F-skifteren eller brugt en nanorc-fil, vil indsФtning af en fil "
+"fЕ den til at blive indlФst i en separat buffer (brug Ctrl-< og > til at "
+"skifte mellem filbuffere).\n"
"\n"
" De fЬlgende funktionstaster er tilstede i IndsФt fil-tilstand:\n"
"\n"
-#: nano.c:2435
+#: nano.c:2445
msgid ""
"Write File Help Text\n"
"\n"
-" Type the name that you wish to save the current file as and hit enter to save the file.\n"
+" Type the name that you wish to save the current file as and hit enter to "
+"save the file.\n"
"\n"
-" If you are using the marker code with Ctrl-^ and have selected text, you will be prompted to save only the selected portion to a separate file. To reduce the chance of overwriting the current file with just a portion of it, the current filename is not the default in this mode.\n"
+" If you are using the marker code with Ctrl-^ and have selected text, you "
+"will be prompted to save only the selected portion to a separate file. To "
+"reduce the chance of overwriting the current file with just a portion of it, "
+"the current filename is not the default in this mode.\n"
"\n"
" The following function keys are available in Write File mode:\n"
"\n"
msgstr ""
"HjФlpetekst for skriv fil\n"
"\n"
-" Indtast navnet som du Ьnsker at gemme den nuvФrende fil som, og tryk retur for at gemme filen.\n"
+" Indtast navnet som du Ьnsker at gemme den nuvФrende fil som, og tryk retur "
+"for at gemme filen.\n"
"\n"
-" Hvis du bruger markeringskoden med Ctrl-^ og har udvalgt tekst, vil du blive spurgt om du vil gemme kun den udvalgte del til en separat fil. For at begrФnse risikoen for overskrivning af den aktuelle fil med kun en del af den er det nuvФrende filnavn ikke forvalgt i denne tilstand.\n"
+" Hvis du bruger markeringskoden med Ctrl-^ og har udvalgt tekst, vil du "
+"blive spurgt om du vil gemme kun den udvalgte del til en separat fil. For at "
+"begrФnse risikoen for overskrivning af den aktuelle fil med kun en del af "
+"den er det nuvФrende filnavn ikke forvalgt i denne tilstand.\n"
"\n"
" De fЬlgende funktionstaster er tilstede i Skriv fil-tilstand:\n"
"\n"
-#: nano.c:2447
+#: nano.c:2457
msgid ""
"File Browser Help Text\n"
"\n"
-" The file browser is used to visually browse the directory structure to select a file for reading or writing. You may use the arrow keys or Page Up/Down to browse through the files, and S or Enter to choose the selected file or enter the selected directory. To move up one level, select the directory called \"..\" at the top of the file list.\n"
+" The file browser is used to visually browse the directory structure to "
+"select a file for reading or writing. You may use the arrow keys or Page Up/"
+"Down to browse through the files, and S or Enter to choose the selected file "
+"or enter the selected directory. To move up one level, select the directory "
+"called \"..\" at the top of the file list.\n"
"\n"
" The following functions keys are available in the file browser:\n"
"\n"
msgstr ""
"HjФlpetekst for filskimmer\n"
"\n"
-" Filskimmeren bruges til at gennemse katalogstrukturen for at udvФlge en fil til lФsning eller skrivning. Du kan bruge piletasterne eller Page Up/Down til at skimme gennem filerne, og S eller retur for at vФlge den udvalgte fil, eller indtaste det udvalgte katalog. For at gЕ et niveau op udvФlges kataloget kaldet '..' i toppen af fillisten.\n"
+" Filskimmeren bruges til at gennemse katalogstrukturen for at udvФlge en fil "
+"til lФsning eller skrivning. Du kan bruge piletasterne eller Page Up/Down "
+"til at skimme gennem filerne, og S eller retur for at vФlge den udvalgte "
+"fil, eller indtaste det udvalgte katalog. For at gЕ et niveau op udvФlges "
+"kataloget kaldet '..' i toppen af fillisten.\n"
"\n"
" De fЬlgende funktionstaster er tilstede i filskimmeren:\n"
"\n"
-#: nano.c:2458
+#: nano.c:2468
msgid ""
"Browser Goto Directory Help Text\n"
"\n"
" Enter the name of the directory you would like to browse to.\n"
"\n"
-" If tab completion has not been disabled, you can use the TAB key to (attempt to) automatically complete the directory name. The following function keys are available in Browser GotoDir mode:\n"
+" If tab completion has not been disabled, you can use the TAB key to "
+"(attempt to) automatically complete the directory name. The following "
+"function keys are available in Browser GotoDir mode:\n"
"\n"
msgstr ""
"HjФlpetekst for skimmer gЕ til katalog\n"
"\n"
" Indtast navnet pЕ det katalog, som du vil gennemse.\n"
"\n"
-" Hvis tab-fФrdiggЬrelse ikke er deaktiveret kan du bruge Tab-tasten til at (forsЬge at) automatisk fФrdiggЬre katalognavnet.\n"
+" Hvis tab-fФrdiggЬrelse ikke er deaktiveret kan du bruge Tab-tasten til at "
+"(forsЬge at) automatisk fФrdiggЬre katalognavnet.\n"
"\n"
-" De fЬlgende funktionstaster er tilstede i skimmeren gЕ til katalog-tilstand:\n"
+" De fЬlgende funktionstaster er tilstede i skimmeren gЕ til katalog-"
+"tilstand:\n"
"\n"
-#: nano.c:2466
+#: nano.c:2476
msgid ""
"Spell Check Help Text\n"
"\n"
-" The spell checker checks the spelling of all text in the current file. When an unknown word is encountered, it is highlighted and a replacement can be edited. It will then prompt to replace every instance of the given misspelled word in the current file.\n"
+" The spell checker checks the spelling of all text in the current file. "
+"When an unknown word is encountered, it is highlighted and a replacement can "
+"be edited. It will then prompt to replace every instance of the given "
+"misspelled word in the current file.\n"
"\n"
" The following other functions are available in Spell Check mode:\n"
"\n"
msgstr ""
"HjФlpetekst for stavekontrol\n"
"\n"
-" Stavekontrollen kontrollerer stavningen af al teksten i den nuvФrende fil. NЕr et ukendt ord findes, fremhФves det og en erstatning kan redigeres. Den vil sЕ spЬrge for at erstatte alle tilfФlde af det givne fejlstavede ord i den nuvФrende fil.\n"
+" Stavekontrollen kontrollerer stavningen af al teksten i den nuvФrende fil. "
+"NЕr et ukendt ord findes, fremhФves det og en erstatning kan redigeres. Den "
+"vil sЕ spЬrge for at erstatte alle tilfФlde af det givne fejlstavede ord i "
+"den nuvФrende fil.\n"
"\n"
" De fЬlgende andre funktioner er tilstede i stavekontrol-tilstand:\n"
"\n"
-#: nano.c:2550
+#: nano.c:2560
#, c-format
msgid "%s enable/disable"
msgstr "%s aktivИr/deaktivИr"
-#: nano.c:2569
+#: nano.c:2579
msgid "enabled"
msgstr "aktiveret"
-#: nano.c:2570
+#: nano.c:2580
msgid "disabled"
msgstr "deaktiveret"
-#: nano.c:2634
+#: nano.c:2644
msgid "NumLock glitch detected. Keypad will malfunction with NumLock off"
msgstr "NumLock-problem opdaget. Tasterne vil ikke fungere uden NumLock"
-#: nano.c:2931
+#: nano.c:2941
msgid "Main: set up windows\n"
msgstr "Main: konfigurИr vindue\n"
-#: nano.c:2948
+#: nano.c:2958
msgid "Main: bottom win\n"
msgstr "Main: bundvindue\n"
-#: nano.c:2954
+#: nano.c:2964
msgid "Main: open file\n"
msgstr "Main: Еbn fil\n"
-#: nano.c:3013
+#: nano.c:3023
#, c-format
msgid "I got Alt-O-%c! (%d)\n"
msgstr "Jeg modtog Alt-O-%c! (%d)\n"
-#: nano.c:3047
+#: nano.c:3057
#, c-format
msgid "I got Alt-[-1-%c! (%d)\n"
msgstr "Jeg modtog Alt-[-1-%c! (%d)\n"
-#: nano.c:3077
+#: nano.c:3087
#, c-format
msgid "I got Alt-[-2-%c! (%d)\n"
msgstr "Jeg modtog Alt-[-2-%c! (%d)\n"
-#: nano.c:3146
+#: nano.c:3156
#, c-format
msgid "I got Alt-[-%c! (%d)\n"
msgstr "Jeg modtog Alt-[-%c! (%d)\n"
-#: nano.c:3183
+#: nano.c:3194
#, c-format
msgid "I got Alt-%c! (%d)\n"
msgstr "Jeg modtog Alt-%c! (%d)\n"
-#: rcfile.c:85
-msgid "\nPress return to continue starting nano\n"
-msgstr "\nTryk retur for at fortsФtte opstart af nano\n"
+#: rcfile.c:86
+#, fuzzy, c-format
+msgid "Error in %s on line %d: "
+msgstr "fejl i %s pЕ linje %d: kommando %s ikke forstЕet"
+
+#: rcfile.c:90
+msgid ""
+"\n"
+"Press return to continue starting nano\n"
+msgstr ""
+"\n"
+"Tryk retur for at fortsФtte opstart af nano\n"
+
+#: rcfile.c:180
+#, c-format
+msgid ""
+"color %s not understood.\n"
+"Valid colors are \"green\", \"red\", \"blue\", \n"
+"\"white\", \"yellow\", \"cyan\", \"magenta\" and \n"
+"\"black\", with the optional prefix \"bright\".\n"
+msgstr ""
+
+#: rcfile.c:204
+msgid "Missing color name"
+msgstr ""
+
+#: rcfile.c:234 rcfile.c:288
+msgid "regex strings must begin and end with a \" character\n"
+msgstr ""
-#: rcfile.c:282
+#: rcfile.c:280
+msgid ""
+"\n"
+"\t\"start=\" requires a corresponding \"end=\""
+msgstr ""
+
+#: rcfile.c:330
msgid "parse_rcfile: Read a comment\n"
msgstr "parse_rcfile: LФs en kommentar\n"
-#: rcfile.c:303
-#, c-format
-msgid "Error in %s on line %d: command %s not understood"
+#: rcfile.c:351
+#, fuzzy, c-format
+msgid "command %s not understood"
msgstr "fejl i %s pЕ linje %d: kommando %s ikke forstЕet"
-#: rcfile.c:316
+#: rcfile.c:363
#, c-format
msgid "parse_rcfile: Parsing option %s\n"
msgstr "parse_rcfile: Fortolker valgmulighed %s\n"
-#: rcfile.c:334
-#, c-format
-msgid "Error in %s on line %d: option %s requires an argument"
+#: rcfile.c:381
+#, fuzzy, c-format
+msgid "option %s requires an argument"
msgstr "fejl i %s pЕ linje %d: valgmulighed %s krФver et argument"
-#: rcfile.c:345
-#, c-format
-msgid "Error in %s on line %d: requested fill size %d too small"
+#: rcfile.c:392
+#, fuzzy, c-format
+msgid "requested fill size %d too small"
msgstr "Fejl i %s pЕ linje %d: Ьnsket fyld-stЬrrelse %d for lille"
-#: rcfile.c:354
-#, c-format
-msgid "Error in %s on line %d: requested tab size %d too small"
+#: rcfile.c:402
+#, fuzzy, c-format
+msgid "requested tab size %d too small"
msgstr "Fejl i %s pЕ linje %d: Ьnsket tab-stЬrrelse %d for lille"
-#: rcfile.c:368
+#: rcfile.c:417
#, c-format
msgid "set flag %d!\n"
msgstr "sФt flag %d!\n"
-#: rcfile.c:373
+#: rcfile.c:423
#, c-format
msgid "unset flag %d!\n"
msgstr "fjern flag %d!\n"
-#: rcfile.c:382
+#: rcfile.c:433
msgid "Errors found in .nanorc file"
msgstr "Fejl fundet i .nanorc-fil"
-#: rcfile.c:391
+#: rcfile.c:441
#, c-format
msgid "Unable to open ~/.nanorc file, %s"
msgstr "Kunne ikke Еbne ~/.nanorc fil, %s"
@@ -1162,7 +1294,7 @@ msgstr " [Bagud]"
msgid " (to replace)"
msgstr " (at erstatte)"
-#: search.c:151 search.c:424
+#: search.c:151 search.c:438
msgid "Search Cancelled"
msgstr "SЬgningen annulleret"
@@ -1171,58 +1303,58 @@ msgstr "S
msgid "\"%s...\" not found"
msgstr "\"%s...\" kunne ikke findes"
-#: search.c:278 search.c:340
+#: search.c:292 search.c:354
msgid "Search Wrapped"
msgstr "SЬgningen genstartet fra begyndelsen"
-#: search.c:446
+#: search.c:460
#, c-format
msgid "Replaced %d occurrences"
msgstr "Erstattede %d forekomster"
-#: search.c:448
+#: search.c:462
msgid "Replaced 1 occurrence"
msgstr "Erstattede 1 forekomst"
-#: search.c:586 search.c:698 search.c:714
+#: search.c:600 search.c:699 search.c:715
msgid "Replace Cancelled"
msgstr "Erstatning afbrudt"
-#: search.c:636
+#: search.c:637
msgid "Replace this instance?"
msgstr "Erstat denne forekomst?"
-#: search.c:648
+#: search.c:649
msgid "Replace failed: unknown subexpression!"
msgstr "Erstatning mislykkedes: ukendt deludtryk!"
-#: search.c:739
+#: search.c:740
#, c-format
msgid "Replace with [%s]"
msgstr "Erstat med [%s]"
-#: search.c:743 search.c:747
+#: search.c:744 search.c:748
msgid "Replace with"
msgstr "Erstat med"
-#: search.c:781
+#: search.c:782
msgid "Enter line number"
msgstr "Angiv linjenummer"
-#: search.c:783
+#: search.c:784
msgid "Aborted"
msgstr "Afbrudt"
-#: search.c:792
+#: search.c:793
msgid "Come on, be reasonable"
msgstr "Ja ja, vФr nu rimelig"
-#: search.c:854
+#: search.c:855
msgid "Not a bracket"
msgstr "Ikke en klamme"
#. didn't find either left or right bracket
-#: search.c:899
+#: search.c:900
msgid "No matching bracket"
msgstr "Ingen tilsvarende klamme"
@@ -1244,30 +1376,30 @@ msgid "actual_x_from_start for xplus=%d returned %d\n"
msgstr "actual_x_from_start for xplus=%d returnerede %d\n"
# OsФker.
-#: winio.c:295 winio.c:466
+#: winio.c:294 winio.c:464
#, c-format
msgid "Aha! '%c' (%d)\n"
msgstr "Aha! '%c' (%d)\n"
# OsФker.
-#: winio.c:498
+#: winio.c:496
#, c-format
msgid "input '%c' (%d)\n"
msgstr "inddata \"%c\" (%d)\n"
-#: winio.c:546
+#: winio.c:544
msgid "New Buffer"
msgstr "Ny buffer"
-#: winio.c:550
+#: winio.c:548
msgid " File: ..."
msgstr " Fil:..."
-#: winio.c:552
+#: winio.c:550
msgid " DIR: ..."
msgstr " KAT:..."
-#: winio.c:556
+#: winio.c:555
msgid "File: "
msgstr "Fil: "
@@ -1279,17 +1411,17 @@ msgstr " KAT:"
msgid "Modified"
msgstr "фndret"
-#: winio.c:1166
+#: winio.c:1272
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr "Gik til (%d, %d) i redigeringsbufferen\n"
-#: winio.c:1177
+#: winio.c:1283
#, c-format
msgid "current->data = \"%s\"\n"
msgstr "current->data = \"%s\"\n"
-#: winio.c:1251
+#: winio.c:1357
#, c-format
msgid "I got \"%s\"\n"
msgstr "Jeg modtog \"%s\"\n"
@@ -1297,80 +1429,81 @@ msgstr "Jeg modtog \"%s\"\n"
#. Yes, no and all are strings of any length. Each string consists of
#. all characters accepted as a valid character for that value.
#. The first value will be the one displayed in the shortcuts.
-#: winio.c:1280
+#: winio.c:1386
msgid "Yy"
msgstr "JjYy"
-#: winio.c:1281
+#: winio.c:1387
msgid "Nn"
msgstr "Nn"
-#: winio.c:1282
+#: winio.c:1388
msgid "Aa"
msgstr "Aa"
-#: winio.c:1296
+#: winio.c:1402
msgid "Yes"
msgstr "Ja"
-#: winio.c:1300
+#: winio.c:1406
msgid "All"
msgstr "Alle"
-#: winio.c:1305
+#: winio.c:1411
msgid "No"
msgstr "Nej"
-#: winio.c:1512
+#: winio.c:1617
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
-#: winio.c:1520
+#: winio.c:1626
+#, c-format
msgid "line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"
msgstr "linje %d af %d (%.0f%%), tegn %ld af %ld (%.0f%%)"
-#: winio.c:1685
+#: winio.c:1790
msgid "Dumping file buffer to stderr...\n"
msgstr "Dumper filbufferen til standard fejl...\n"
-#: winio.c:1687
+#: winio.c:1792
msgid "Dumping cutbuffer to stderr...\n"
msgstr "Dumper udklipsbufferen til standard fejl...\n"
-#: winio.c:1689
+#: winio.c:1794
msgid "Dumping a buffer to stderr...\n"
msgstr "Dumper en buffer til standard fejl...\n"
-#: winio.c:1764
+#: winio.c:1870
msgid "The nano text editor"
msgstr "Tekstredigereren nano"
-#: winio.c:1765
+#: winio.c:1871
msgid "version "
msgstr "version "
-#: winio.c:1766
+#: winio.c:1872
msgid "Brought to you by:"
msgstr "PrФsenteres af:"
-#: winio.c:1767
+#: winio.c:1873
msgid "Special thanks to:"
msgstr "SФrlig tak til:"
-#: winio.c:1768
+#: winio.c:1874
msgid "The Free Software Foundation"
msgstr "Free Software Foundation"
-#: winio.c:1769
+#: winio.c:1876
msgid "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurses"
msgstr "Pavel Curtis, Zeyd Ben-Halim og Eric S. Raymond for ncurses"
-#: winio.c:1770
+#: winio.c:1877
msgid "and anyone else we forgot..."
msgstr "og alle andre som vi har glemt..."
-#: winio.c:1771
+#: winio.c:1878
msgid "Thank you for using nano!\n"
msgstr "Tak for at du bruger nano!\n"
diff --git a/po/de.po b/po/de.po
@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: nano 1.1.5\n"
-"POT-Creation-Date: 2002-01-05 14:33-0500\n"
+"POT-Creation-Date: 2002-01-19 13:10-0500\n"
"PO-Revision-Date: 2002-01-07 13:32:00+0100\n"
"Last-Translator: Michael Piefel <piefel@informatik.hu-berlin.de>\n"
"Language-Team: German <de@li.org>\n"
@@ -87,7 +87,7 @@ msgstr "Dateiname ist %s"
msgid "Can't insert file from outside of %s"
msgstr "Kann Datei von auъerhalb %s nicht einfЭgen"
-#: files.c:440 files.c:1106 files.c:1467 nano.c:1806
+#: files.c:440 files.c:1106 files.c:1467 nano.c:1813
msgid "Cancelled"
msgstr "Abgebrochen"
@@ -377,7 +377,8 @@ msgstr "Zeilenumbruch an der Cursorposition einf
#: global.c:294
msgid "Make the current search or replace case (in)sensitive"
-msgstr "Groъ- und Kleinschreibung bei Suche oder Erstzen (nicht) berЭcksichtigen"
+msgstr ""
+"Groъ- und Kleinschreibung bei Suche oder Erstzen (nicht) berЭcksichtigen"
#: global.c:295
msgid "Go to file browser"
@@ -404,7 +405,7 @@ msgid "Find other bracket"
msgstr "Andere Klammer finden"
#: global.c:306 global.c:448 global.c:481 global.c:514 global.c:527
-#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:602
+#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:603
msgid "Get Help"
msgstr "Hilfe"
@@ -522,7 +523,7 @@ msgid "Find Other Bracket"
msgstr "Andere Klammer finden"
#: global.c:451 global.c:484 global.c:517 global.c:529 global.c:554
-#: global.c:568 global.c:579 global.c:604 winio.c:1307
+#: global.c:568 global.c:579 global.c:605 winio.c:1413
msgid "Cancel"
msgstr "Abbrechen"
@@ -564,13 +565,21 @@ msgstr "Zu Zeile"
#: nano.c:179
#, c-format
-msgid "\nBuffer written to %s\n"
-msgstr "\nPuffer in %s geschrieben\n"
+msgid ""
+"\n"
+"Buffer written to %s\n"
+msgstr ""
+"\n"
+"Puffer in %s geschrieben\n"
#: nano.c:181
#, c-format
-msgid "\nNo %s written (file exists?)\n"
-msgstr "\n%s nicht geschrieben (Datei existiert?)\n"
+msgid ""
+"\n"
+"No %s written (file exists?)\n"
+msgstr ""
+"\n"
+"%s nicht geschrieben (Datei existiert?)\n"
#: nano.c:188
msgid "Window size is too small for Nano..."
@@ -584,16 +593,37 @@ msgstr "Unzul
msgid ""
" nano help text\n"
"\n"
-" The nano editor is designed to emulate the functionality and ease-of-use of the UW Pico text editor. There are four main sections of the editor: The top line shows the program version, the current filename being edited, and whether or not the file has been modified. Next is the main editor window showing the file being edited. The status line is the third line from the bottom and shows important messages. The bottom two lines show the most commonly used shortcuts in the editor.\n"
+" The nano editor is designed to emulate the functionality and ease-of-use of "
+"the UW Pico text editor. There are four main sections of the editor: The "
+"top line shows the program version, the current filename being edited, and "
+"whether or not the file has been modified. Next is the main editor window "
+"showing the file being edited. The status line is the third line from the "
+"bottom and shows important messages. The bottom two lines show the most "
+"commonly used shortcuts in the editor.\n"
"\n"
-" The notation for shortcuts is as follows: Control-key sequences are notated with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-key sequences are notated with the Meta (M) symbol and can be entered using either the Esc, Alt or Meta key depending on your keyboard setup. The following keystrokes are available in the main editor window. Optional keys are shown in parentheses:\n"
+" The notation for shortcuts is as follows: Control-key sequences are notated "
+"with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-"
+"key sequences are notated with the Meta (M) symbol and can be entered using "
+"either the Esc, Alt or Meta key depending on your keyboard setup. The "
+"following keystrokes are available in the main editor window. Optional keys "
+"are shown in parentheses:\n"
"\n"
msgstr ""
" nano Hilfe\n"
"\n"
-" Nano wurde konzipiert, die FunktionalitДt und die Benutzerfreundlichkeit des UW-Pico-Texteditors zu imitieren. Es gibt vier Hauptbereiche: Die Titelzeile zeigt die Version des Programms, den Namen der momentan editierten Datei und ob die Datei verДndert wurde oder nicht. Das Hauptfenster enthДlt die geЖffnete Datei. Die Statuszeile (die dritte Zeile von unten) zeigt wichtige Meldungen. Die untersten zwei Zeilen listen die meistgebrauchten Tastenkombinationen von nano auf.\n"
+" Nano wurde konzipiert, die FunktionalitДt und die Benutzerfreundlichkeit "
+"des UW-Pico-Texteditors zu imitieren. Es gibt vier Hauptbereiche: Die "
+"Titelzeile zeigt die Version des Programms, den Namen der momentan "
+"editierten Datei und ob die Datei verДndert wurde oder nicht. Das "
+"Hauptfenster enthДlt die geЖffnete Datei. Die Statuszeile (die dritte Zeile "
+"von unten) zeigt wichtige Meldungen. Die untersten zwei Zeilen listen die "
+"meistgebrauchten Tastenkombinationen von nano auf.\n"
"\n"
-" Tastenkombinationen werden wie folgt abgekЭrzt: Kombinationen mit der Strg-Taste werden mit einem ^ ausgedrЭckt. Escape-Sequenzen werden mit dem Meta-Symbol (M) angegeben und kЖnnen je nach Tastatureinstellung mit Esc, Alt oder Meta eingegeben werden. Die folgenden Tasten(kombinationen) sind im Hauptfenster verfЭgbar. Optionale Tasten sind eingeklammert:\n"
+" Tastenkombinationen werden wie folgt abgekЭrzt: Kombinationen mit der Strg-"
+"Taste werden mit einem ^ ausgedrЭckt. Escape-Sequenzen werden mit dem Meta-"
+"Symbol (M) angegeben und kЖnnen je nach Tastatureinstellung mit Esc, Alt "
+"oder Meta eingegeben werden. Die folgenden Tasten(kombinationen) sind im "
+"Hauptfenster verfЭgbar. Optionale Tasten sind eingeklammert:\n"
"\n"
#: nano.c:347
@@ -605,8 +635,12 @@ msgid "delete_node(): free'd last node.\n"
msgstr "delete_node(): letzter Knoten freigegeben.\n"
#: nano.c:409
-msgid "Usage: nano [GNU long option] [option] +LINE <file>\n\n"
-msgstr "Aufruf: nano [lange GNU Option] [Option] +ZEILE <Datei>\n\n"
+msgid ""
+"Usage: nano [GNU long option] [option] +LINE <file>\n"
+"\n"
+msgstr ""
+"Aufruf: nano [lange GNU Option] [Option] +ZEILE <Datei>\n"
+"\n"
#: nano.c:410
msgid "Option\t\tLong option\t\tMeaning\n"
@@ -638,7 +672,8 @@ msgstr " -S\t\t--smooth\t\tSanftes Rollen\n"
#: nano.c:438
msgid " -T [num]\t--tabsize=[num]\t\tSet width of a tab to num\n"
-msgstr " -T [Anzahl]\t--tabsize=[Anzahl]\t\tTabulator-GrЖъe auf Anzahl setzen\n"
+msgstr ""
+" -T [Anzahl]\t--tabsize=[Anzahl]\t\tTabulator-GrЖъe auf Anzahl setzen\n"
#: nano.c:441
msgid " -V \t\t--version\t\tPrint version information and exit\n"
@@ -662,7 +697,9 @@ msgstr " -k \t\t--cut\t\t\t^K schneidet vom Cursor bis zum Zeilenende aus\n"
#: nano.c:453
msgid " -l \t\t--nofollow\t\tDon't follow symbolic links, overwrite\n"
-msgstr " -l \t\t--nofollow\t\tSymbolischen Links nicht folgen, sondern эberschreiben\n"
+msgstr ""
+" -l \t\t--nofollow\t\tSymbolischen Links nicht folgen, sondern "
+"эberschreiben\n"
#: nano.c:456
msgid " -m \t\t--mouse\t\t\tEnable mouse\n"
@@ -677,12 +714,16 @@ msgid " -p \t\t--pico\t\t\tEmulate Pico as closely as possible\n"
msgstr " -p \t\t--pico\t\t\tPico so genau wie mЖglich imitieren\n"
#: nano.c:469
-msgid " -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n"
-msgstr " -r [#Spalten] \t--fill=[#Spalten]\tSpalten auffЭllen (Zeilenumbruch bei) #Spalten\n"
+msgid ""
+" -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n"
+msgstr ""
+" -r [#Spalten] \t--fill=[#Spalten]\tSpalten auffЭllen (Zeilenumbruch bei) "
+"#Spalten\n"
#: nano.c:473
msgid " -s [prog] \t--speller=[prog]\tEnable alternate speller\n"
-msgstr " -s [Programm] \t--speller=[Programm]\tAlternative RechtschreibprЭfung\n"
+msgstr ""
+" -s [Programm] \t--speller=[Programm]\tAlternative RechtschreibprЭfung\n"
#: nano.c:476
msgid " -t \t\t--tempfile\t\tAuto save on exit, don't prompt\n"
@@ -690,7 +731,8 @@ msgstr " -t \t\t--tempfile\t\tBeim Beenden ohne R
#: nano.c:478
msgid " -v \t\t--view\t\t\tView (read only) mode\n"
-msgstr " -v \t\t--view\t\t\tNur zum Lesen Жffnen (keine VerДnderungen mЖglich)\n"
+msgstr ""
+" -v \t\t--view\t\t\tNur zum Lesen Жffnen (keine VerДnderungen mЖglich)\n"
#: nano.c:481
msgid " -w \t\t--nowrap\t\tDon't wrap long lines\n"
@@ -702,15 +744,20 @@ msgstr " -x \t\t--nohelp\t\tHilfe-Fenster nicht anzeigen\n"
#: nano.c:486
msgid " -z \t\t--suspend\t\tEnable suspend\n"
-msgstr " -z \t\t--suspend\t\tSuspend (anhalten und zurЭck zur Shell) aktivieren\n"
+msgstr ""
+" -z \t\t--suspend\t\tSuspend (anhalten und zurЭck zur Shell) aktivieren\n"
#: nano.c:488
msgid " +LINE\t\t\t\t\tStart at line number LINE\n"
msgstr " +ZEILE\t\t\t\t\tBei Zeile ZEILE beginnen\n"
#: nano.c:490
-msgid "Usage: nano [option] +LINE <file>\n\n"
-msgstr "Aufruf: nano [Option] +ZEILE <Datei>\n\n"
+msgid ""
+"Usage: nano [option] +LINE <file>\n"
+"\n"
+msgstr ""
+"Aufruf: nano [Option] +ZEILE <Datei>\n"
+"\n"
#: nano.c:491
msgid "Option\t\tMeaning\n"
@@ -725,7 +772,8 @@ msgid " -F \t\tEnable multiple file buffers\n"
msgstr " -F \t\tBenutzung mehrerer Dateipuffer aktivieren\n"
#: nano.c:498
-msgid " -K\t\tUse alternate keypad routines\n\n"
+#, fuzzy
+msgid " -K\t\tUse alternate keypad routines\n"
msgstr " -K\t\tAlternative Routinen fЭr Nummernblock benutzen\n"
#: nano.c:500
@@ -822,315 +870,414 @@ msgid " Email: nano@nano-editor.org\tWeb: http://www.nano-editor.org"
msgstr " Email: nano@nano-editor.org\tWWW: http://www.nano-editor.org"
#: nano.c:551
-msgid "\n Compiled options:"
-msgstr "\n Kompilierte Optionen:"
+msgid ""
+"\n"
+" Compiled options:"
+msgstr ""
+"\n"
+" Kompilierte Optionen:"
-#: nano.c:640
+#: nano.c:638
msgid "Mark Set"
msgstr "Markierung gesetzt"
-#: nano.c:645
+#: nano.c:643
msgid "Mark UNset"
msgstr "Markierung gelЖscht"
-#: nano.c:1267
+#: nano.c:1264
#, c-format
msgid "check_wrap called with inptr->data=\"%s\"\n"
msgstr "check_wrap aufgerufen mit inptr->data=╩%s╚\n"
-#: nano.c:1319
+#: nano.c:1316
#, c-format
msgid "current->data now = \"%s\"\n"
msgstr "current->data jetzt = ╩%s╚\n"
-#: nano.c:1371
+#: nano.c:1368
#, c-format
msgid "After, data = \"%s\"\n"
msgstr "Nachher, data = ╩%s╚\n"
-#: nano.c:1480
+#: nano.c:1484
msgid "Edit a replacement"
msgstr "Ersetzung editieren"
-#: nano.c:1717
+#: nano.c:1724
#, c-format
msgid "Could not create a temporary filename: %s"
msgstr "Konnte keine temporДre Datei erzeugen: %s"
-#: nano.c:1723
+#: nano.c:1730
msgid "Spell checking failed: unable to write temp file!"
-msgstr "RechtschreibprЭfung fehlgeschlagen: konnte nicht in temporДre Datei schreiben"
+msgstr ""
+"RechtschreibprЭfung fehlgeschlagen: konnte nicht in temporДre Datei schreiben"
-#: nano.c:1743
+#: nano.c:1750
msgid "Finished checking spelling"
msgstr "RechtschreibprЭfung abgeschlossen"
-#: nano.c:1745
+#: nano.c:1752
msgid "Spell checking failed"
msgstr "RechtschreibprЭfung fehlgeschlagen"
-#: nano.c:1774
+#: nano.c:1781
msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
msgstr "VerДnderten Puffer speichern (╩Nein╚ VERWIRFT DIE дNDERUNGEN) ? "
-#: nano.c:1921
+#: nano.c:1928
msgid "Received SIGHUP"
msgstr "SIGHUP empfangen"
-#: nano.c:1988
+#: nano.c:1998
msgid "Cannot resize top win"
msgstr "Kann die GrЖъe des oberen Fensters nicht verДndern"
-#: nano.c:1990
+#: nano.c:2000
msgid "Cannot move top win"
msgstr "Kann oberes Fenster nicht verschieben"
-#: nano.c:1992
+#: nano.c:2002
msgid "Cannot resize edit win"
msgstr "Kann GrЖъe des Bearbeitungsfensters nicht verДndern"
-#: nano.c:1994
+#: nano.c:2004
msgid "Cannot move edit win"
msgstr "Kann Bearbeitungsfenster nicht verschieben"
-#: nano.c:1996
+#: nano.c:2006
msgid "Cannot resize bottom win"
msgstr "Kann GrЖъe des unteren Fensters nicht verДndern"
-#: nano.c:1998
+#: nano.c:2008
msgid "Cannot move bottom win"
msgstr "Kann unteres Fenster nicht verschieben"
-#: nano.c:2337
+#: nano.c:2347
msgid "Can now UnJustify!"
msgstr "Kann Absatzausrichtung nicht rЭckgДngig machen"
-#: nano.c:2403
+#: nano.c:2413
msgid ""
"Search Command Help Text\n"
"\n"
-" Enter the words or characters you would like to search for, then hit enter. If there is a match for the text you entered, the screen will be updated to the location of the nearest match for the search string.\n"
+" Enter the words or characters you would like to search for, then hit "
+"enter. If there is a match for the text you entered, the screen will be "
+"updated to the location of the nearest match for the search string.\n"
"\n"
-" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or using a nanorc file, the previous search string will be shown in brackets after the Search: prompt. Hitting enter without entering any text will perform the previous search. Otherwise, the previous string will be placed in front of the cursor, and can be edited or deleted before hitting enter.\n"
+" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or "
+"using a nanorc file, the previous search string will be shown in brackets "
+"after the Search: prompt. Hitting enter without entering any text will "
+"perform the previous search. Otherwise, the previous string will be placed "
+"in front of the cursor, and can be edited or deleted before hitting enter.\n"
"\n"
" The following functions keys are available in Search mode:\n"
"\n"
msgstr ""
"Hilfetext fЭr das Suchkommando\n"
"\n"
-" Geben Sie die WЖrter oder Buchstaben ein, nach denen Sie suchen mЖchten, und drЭcken Sie die Eingabetaste. Wenn eine эbereinstimmung fЭr den eingegebenen Text gefunden wird, dann wird die Anzeige zur nДchsten Fundstelle bewegt.\n"
+" Geben Sie die WЖrter oder Buchstaben ein, nach denen Sie suchen mЖchten, "
+"und drЭcken Sie die Eingabetaste. Wenn eine эbereinstimmung fЭr den "
+"eingegebenen Text gefunden wird, dann wird die Anzeige zur nДchsten "
+"Fundstelle bewegt.\n"
"\n"
-" Bei Benutzung des Pico-Modus durch die Kommandozeilenoptionen -p oder --pico, durch den Meta-P-Umschalter oder mittels einer nanorc-Datei, wird die vorhergehende Suchzeichenkette in Klammer nach der Such-Aufforderung angezeigt. DrЭcken der Eingabetaste ohne Eingabe irgenwelchen Textes fЭhrt die vorhergehende Suche durch. Anderenfalls wird die vorhergehende Zeichenkette vor dem Cursor angezeigt und kann vor dem Suchen bearbeitet oder gelЖscht werden.\n"
+" Bei Benutzung des Pico-Modus durch die Kommandozeilenoptionen -p oder --"
+"pico, durch den Meta-P-Umschalter oder mittels einer nanorc-Datei, wird die "
+"vorhergehende Suchzeichenkette in Klammer nach der Such-Aufforderung "
+"angezeigt. DrЭcken der Eingabetaste ohne Eingabe irgenwelchen Textes fЭhrt "
+"die vorhergehende Suche durch. Anderenfalls wird die vorhergehende "
+"Zeichenkette vor dem Cursor angezeigt und kann vor dem Suchen bearbeitet "
+"oder gelЖscht werden.\n"
"\n"
" Die folgenden Funktionstasten sind im Suchmodus verfЭgbar:\n"
"\n"
-#: nano.c:2417
+#: nano.c:2427
msgid ""
"Goto Line Help Text\n"
"\n"
-" Enter the line number that you wish to go to and hit Enter. If there are fewer lines of text than the number you entered, you will be brought to the last line of the file.\n"
+" Enter the line number that you wish to go to and hit Enter. If there are "
+"fewer lines of text than the number you entered, you will be brought to the "
+"last line of the file.\n"
"\n"
" The following functions keys are available in Goto Line mode:\n"
"\n"
msgstr ""
"Hilfetext fЭr ╩Zu Zeile╚\n"
"\n"
-" Geben Sie die Nummer der gewЭnschten Zeile ein und drЭcken Sie die Eingabetaste. Gibt es weniger Zeilen im Text, so springt nano zur letzten Zeile der Datei.\n"
+" Geben Sie die Nummer der gewЭnschten Zeile ein und drЭcken Sie die "
+"Eingabetaste. Gibt es weniger Zeilen im Text, so springt nano zur letzten "
+"Zeile der Datei.\n"
"\n"
" Die folgenden Funktionstasten sind im Zu-Zeile-Modus verfЭgbar:\n"
"\n"
-#: nano.c:2424
+#: nano.c:2434
msgid ""
"Insert File Help Text\n"
"\n"
-" Type in the name of a file to be inserted into the current file buffer at the current cursor location.\n"
+" Type in the name of a file to be inserted into the current file buffer at "
+"the current cursor location.\n"
"\n"
-" If you have compiled nano with multiple file buffer support, and enable multiple buffers with the -F or --multibuffer command line flags, the Meta-F toggle or using a nanorc file, inserting a file will cause it to be loaded into a separate buffer (use Meta-< and > to switch between file buffers).\n"
+" If you have compiled nano with multiple file buffer support, and enable "
+"multiple buffers with the -F or --multibuffer command line flags, the Meta-F "
+"toggle or using a nanorc file, inserting a file will cause it to be loaded "
+"into a separate buffer (use Meta-< and > to switch between file buffers).\n"
"\n"
" The following function keys are available in Insert File mode:\n"
"\n"
msgstr ""
"Hilfetext fЭr ╩Datei einfЭgen╚\n"
"\n"
-" Geben Sie den Namen einer Datei ein, die an der momentanen Cursorposition in den momentanen Dateipuffer eingefЭgt werden soll.\n"
+" Geben Sie den Namen einer Datei ein, die an der momentanen Cursorposition "
+"in den momentanen Dateipuffer eingefЭgt werden soll.\n"
"\n"
-" Wenn Sie nano mit UnterstЭtzung fЭr mehrere Dateipuffer compiliert haben und diese Funktion mit den Kommandozeilenoptionen -F oder --multibuffer, mit der Tastenkombination Meta-F oder mittels einer nanorc-Datei eingeschaltet haben, so wird die EinfЭgeoperation die Datei in einen separaten Puffer laden. (Benutzen Sie Strg-< und >, um zwischen den Dateipuffern umzuschalten.)\n"
+" Wenn Sie nano mit UnterstЭtzung fЭr mehrere Dateipuffer compiliert haben "
+"und diese Funktion mit den Kommandozeilenoptionen -F oder --multibuffer, mit "
+"der Tastenkombination Meta-F oder mittels einer nanorc-Datei eingeschaltet "
+"haben, so wird die EinfЭgeoperation die Datei in einen separaten Puffer "
+"laden. (Benutzen Sie Strg-< und >, um zwischen den Dateipuffern "
+"umzuschalten.)\n"
"\n"
" Die folgenden Funktionstasten sind im Datei-EinfЭgen-Modus verfЭgbar:\n"
"\n"
-#: nano.c:2435
+#: nano.c:2445
msgid ""
"Write File Help Text\n"
"\n"
-" Type the name that you wish to save the current file as and hit enter to save the file.\n"
+" Type the name that you wish to save the current file as and hit enter to "
+"save the file.\n"
"\n"
-" If you are using the marker code with Ctrl-^ and have selected text, you will be prompted to save only the selected portion to a separate file. To reduce the chance of overwriting the current file with just a portion of it, the current filename is not the default in this mode.\n"
+" If you are using the marker code with Ctrl-^ and have selected text, you "
+"will be prompted to save only the selected portion to a separate file. To "
+"reduce the chance of overwriting the current file with just a portion of it, "
+"the current filename is not the default in this mode.\n"
"\n"
" The following function keys are available in Write File mode:\n"
"\n"
msgstr ""
"Hilfetext fЭr ╩Datei schreiben╚\n"
"\n"
-" Geben Sie den Namen ein, unter dem Sie die momentane Datei speichern wollen und drЭcken Sie die Eingabetaste.\n"
+" Geben Sie den Namen ein, unter dem Sie die momentane Datei speichern wollen "
+"und drЭcken Sie die Eingabetaste.\n"
"\n"
-" Wenn Sie eine Markierung mit Strg-^ benutzen und markierten Text haben, so werden Sie gefragt, ob Sie nur den ausgewДhlten Teil des Textes in eine separate Datei schreiben wollen. Um die Gefahr, eine Datei mit einem Teil von ihr zu Эberschreiben, zu minimieren, ist der aktuelle Dateiname in diesem Modus nicht die Vorgabe.\n"
+" Wenn Sie eine Markierung mit Strg-^ benutzen und markierten Text haben, so "
+"werden Sie gefragt, ob Sie nur den ausgewДhlten Teil des Textes in eine "
+"separate Datei schreiben wollen. Um die Gefahr, eine Datei mit einem Teil "
+"von ihr zu Эberschreiben, zu minimieren, ist der aktuelle Dateiname in "
+"diesem Modus nicht die Vorgabe.\n"
"\n"
" Die folgenden Funktionstasten sind im Datei-Schreiben-Modus verfЭgbar:\n"
"\n"
-#: nano.c:2447
+#: nano.c:2457
msgid ""
"File Browser Help Text\n"
"\n"
-" The file browser is used to visually browse the directory structure to select a file for reading or writing. You may use the arrow keys or Page Up/Down to browse through the files, and S or Enter to choose the selected file or enter the selected directory. To move up one level, select the directory called \"..\" at the top of the file list.\n"
+" The file browser is used to visually browse the directory structure to "
+"select a file for reading or writing. You may use the arrow keys or Page Up/"
+"Down to browse through the files, and S or Enter to choose the selected file "
+"or enter the selected directory. To move up one level, select the directory "
+"called \"..\" at the top of the file list.\n"
"\n"
" The following functions keys are available in the file browser:\n"
"\n"
msgstr ""
"Hilfetext fЭr den DateiwДhler\n"
"\n"
-" Mit dem DateiwДhler kann die Verzeichnisstruktur visuell durchsucht werden, um eine Datei fЭr Lese- und Schreiboperationen auszuwДhlen. Sie kЖnnen die Pfeiltasten oder Bild-Auf/Ab benutzen, um durch die Dateien zu blДttern, und S oder die Eingabe, um die markierte Datei bzw. das markierte Verzeichnis auszuwДhlen. Um sich eine Ebene aufwДrts zu bewegen, wДhlen Sie das Verzeichnis namens ╩..╚ ganz oben in der Dateiliste.\n"
+" Mit dem DateiwДhler kann die Verzeichnisstruktur visuell durchsucht werden, "
+"um eine Datei fЭr Lese- und Schreiboperationen auszuwДhlen. Sie kЖnnen die "
+"Pfeiltasten oder Bild-Auf/Ab benutzen, um durch die Dateien zu blДttern, und "
+"S oder die Eingabe, um die markierte Datei bzw. das markierte Verzeichnis "
+"auszuwДhlen. Um sich eine Ebene aufwДrts zu bewegen, wДhlen Sie das "
+"Verzeichnis namens ╩..╚ ganz oben in der Dateiliste.\n"
"\n"
" Die folgenden Funktionstasten sind im DateiwДhler verfЭgbar:\n"
"\n"
-#: nano.c:2458
+#: nano.c:2468
msgid ""
"Browser Goto Directory Help Text\n"
"\n"
" Enter the name of the directory you would like to browse to.\n"
"\n"
-" If tab completion has not been disabled, you can use the TAB key to (attempt to) automatically complete the directory name. The following function keys are available in Browser GotoDir mode:\n"
+" If tab completion has not been disabled, you can use the TAB key to "
+"(attempt to) automatically complete the directory name. The following "
+"function keys are available in Browser GotoDir mode:\n"
"\n"
msgstr ""
"Hilfetext fЭr den Gehe-zu-Verzeichnis im DateiwДhler\n"
"\n"
" Geben Sie den Namen des Verzeichnisses ein, das Sie durchsuchen wollen.\n"
"\n"
-" Wenn Tabulator-VervollstДndigung nicht abgeschaltet worden ist, so kЖnnen Sie die Tabulator-Taste benutzen, um (zu versuchen) den Verzeichnisnamen automatisch vervollstДndigen zu lassen. Die folgenden Funktionstasten sind im Gehe-zu-Verzeichnis-Modus des DateiwДhlers verfЭgbar:\n"
+" Wenn Tabulator-VervollstДndigung nicht abgeschaltet worden ist, so kЖnnen "
+"Sie die Tabulator-Taste benutzen, um (zu versuchen) den Verzeichnisnamen "
+"automatisch vervollstДndigen zu lassen. Die folgenden Funktionstasten sind "
+"im Gehe-zu-Verzeichnis-Modus des DateiwДhlers verfЭgbar:\n"
"\n"
-#: nano.c:2466
+#: nano.c:2476
msgid ""
"Spell Check Help Text\n"
"\n"
-" The spell checker checks the spelling of all text in the current file. When an unknown word is encountered, it is highlighted and a replacement can be edited. It will then prompt to replace every instance of the given misspelled word in the current file.\n"
+" The spell checker checks the spelling of all text in the current file. "
+"When an unknown word is encountered, it is highlighted and a replacement can "
+"be edited. It will then prompt to replace every instance of the given "
+"misspelled word in the current file.\n"
"\n"
" The following other functions are available in Spell Check mode:\n"
"\n"
msgstr ""
"Hilfetext fЭr die RechtschreibprЭfung\n"
"\n"
-" Die RechtschreibprЭfung ЭberprЭft die Rechtschreibung des gesamten Texts der aktuellen Datei. Wenn ein unbekanntes Wort gefunden wird, wird es hervorgehoben und eine Ersetzung kann bearbeitet werden. Sie werden dann gefragt, ob Sie die vorgenommene Ersetzung in der ganzen Datei vornehmen lassen wollen.\n"
+" Die RechtschreibprЭfung ЭberprЭft die Rechtschreibung des gesamten Texts "
+"der aktuellen Datei. Wenn ein unbekanntes Wort gefunden wird, wird es "
+"hervorgehoben und eine Ersetzung kann bearbeitet werden. Sie werden dann "
+"gefragt, ob Sie die vorgenommene Ersetzung in der ganzen Datei vornehmen "
+"lassen wollen.\n"
"\n"
-" Die folgenden weitern Funktionstasten sind in der RechtschreibprЭfung verfЭgbar:\n"
+" Die folgenden weitern Funktionstasten sind in der RechtschreibprЭfung "
+"verfЭgbar:\n"
"\n"
-#: nano.c:2550
+#: nano.c:2560
#, c-format
msgid "%s enable/disable"
msgstr "%s aktivieren/deaktivieren"
-#: nano.c:2569
+#: nano.c:2579
msgid "enabled"
msgstr "aktiviert"
-#: nano.c:2570
+#: nano.c:2580
msgid "disabled"
msgstr "deaktiviert"
-#: nano.c:2634
+#: nano.c:2644
msgid "NumLock glitch detected. Keypad will malfunction with NumLock off"
-msgstr "NumLock-Problem entdeckt. Tastenblock funktioniert nicht, wenn NumLock ausgeschaltet ist"
+msgstr ""
+"NumLock-Problem entdeckt. Tastenblock funktioniert nicht, wenn NumLock "
+"ausgeschaltet ist"
-#: nano.c:2931
+#: nano.c:2941
msgid "Main: set up windows\n"
msgstr "Hauptprogramm: Fenster konfigurieren\n"
-#: nano.c:2948
+#: nano.c:2958
msgid "Main: bottom win\n"
msgstr "Hauptprogramm: unteres Fenster\n"
-#: nano.c:2954
+#: nano.c:2964
msgid "Main: open file\n"
msgstr "Hauptprogramm: Datei Жffnen\n"
-#: nano.c:3013
+#: nano.c:3023
#, c-format
msgid "I got Alt-O-%c! (%d)\n"
msgstr "Erhielt Alt-0-%c! (%d)\n"
-#: nano.c:3047
+#: nano.c:3057
#, c-format
msgid "I got Alt-[-1-%c! (%d)\n"
msgstr "Erhielt Alt-[-1-%c! (%d)\n"
-#: nano.c:3077
+#: nano.c:3087
#, c-format
msgid "I got Alt-[-2-%c! (%d)\n"
msgstr "Erhielt Alt-[-2-%c! (%d)\n"
-#: nano.c:3146
+#: nano.c:3156
#, c-format
msgid "I got Alt-[-%c! (%d)\n"
msgstr "Erhielt Alt-[-%c! (%d)\n"
-#: nano.c:3183
+#: nano.c:3194
#, c-format
msgid "I got Alt-%c! (%d)\n"
msgstr "Erhielt Alt-%c! (%d)\n"
-#: rcfile.c:85
-msgid "\nPress return to continue starting nano\n"
-msgstr "\nDrЭcken Sie die Eingabetaste um mit dem Starten von nano fortzufahren\n"
+#: rcfile.c:86
+#, fuzzy, c-format
+msgid "Error in %s on line %d: "
+msgstr "Fehler in %s in Zeile %d: Kommando %s nicht verstanden"
+
+#: rcfile.c:90
+msgid ""
+"\n"
+"Press return to continue starting nano\n"
+msgstr ""
+"\n"
+"DrЭcken Sie die Eingabetaste um mit dem Starten von nano fortzufahren\n"
+
+#: rcfile.c:180
+#, c-format
+msgid ""
+"color %s not understood.\n"
+"Valid colors are \"green\", \"red\", \"blue\", \n"
+"\"white\", \"yellow\", \"cyan\", \"magenta\" and \n"
+"\"black\", with the optional prefix \"bright\".\n"
+msgstr ""
+
+#: rcfile.c:204
+msgid "Missing color name"
+msgstr ""
+
+#: rcfile.c:234 rcfile.c:288
+msgid "regex strings must begin and end with a \" character\n"
+msgstr ""
+
+#: rcfile.c:280
+msgid ""
+"\n"
+"\t\"start=\" requires a corresponding \"end=\""
+msgstr ""
-#: rcfile.c:282
+#: rcfile.c:330
msgid "parse_rcfile: Read a comment\n"
msgstr "parse_rcfile: Kommentar lesen\n"
-#: rcfile.c:303
-#, c-format
-msgid "Error in %s on line %d: command %s not understood"
+#: rcfile.c:351
+#, fuzzy, c-format
+msgid "command %s not understood"
msgstr "Fehler in %s in Zeile %d: Kommando %s nicht verstanden"
-#: rcfile.c:316
+#: rcfile.c:363
#, c-format
msgid "parse_rcfile: Parsing option %s\n"
msgstr "parse_rcfile: Option %s lesen\n"
-#: rcfile.c:334
-#, c-format
-msgid "Error in %s on line %d: option %s requires an argument"
+#: rcfile.c:381
+#, fuzzy, c-format
+msgid "option %s requires an argument"
msgstr "Fehler in %s in Zeile %d: Option %s erfordert ein Argument"
-#: rcfile.c:345
-#, c-format
-msgid "Error in %s on line %d: requested fill size %d too small"
+#: rcfile.c:392
+#, fuzzy, c-format
+msgid "requested fill size %d too small"
msgstr "Fehler in %s in Zeile %d: Angeforderte FЭllgrЖъe %d zu klein"
-#: rcfile.c:354
-#, c-format
-msgid "Error in %s on line %d: requested tab size %d too small"
+#: rcfile.c:402
+#, fuzzy, c-format
+msgid "requested tab size %d too small"
msgstr "Fehler in %s in Zeile %d: Angeforderte Tab-GrЖъe %d zu klein"
-#: rcfile.c:368
+#: rcfile.c:417
#, c-format
msgid "set flag %d!\n"
msgstr "setze Flag %d!\n"
-#: rcfile.c:373
+#: rcfile.c:423
#, c-format
msgid "unset flag %d!\n"
msgstr "lЖsche Flag %d!\n"
-#: rcfile.c:382
+#: rcfile.c:433
msgid "Errors found in .nanorc file"
msgstr "Fehler in .nanorc-Datei gefunden"
-#: rcfile.c:391
+#: rcfile.c:441
#, c-format
msgid "Unable to open ~/.nanorc file, %s"
msgstr "Kann Datei ~/.nanorc nicht Жffnen, %s"
@@ -1161,7 +1308,7 @@ msgstr " [R
msgid " (to replace)"
msgstr " (zu ersetzen)"
-#: search.c:151 search.c:424
+#: search.c:151 search.c:438
msgid "Search Cancelled"
msgstr "Suche abgebrochen"
@@ -1170,58 +1317,58 @@ msgstr "Suche abgebrochen"
msgid "\"%s...\" not found"
msgstr "╩%s...╚ nicht gefunden"
-#: search.c:278 search.c:340
+#: search.c:292 search.c:354
msgid "Search Wrapped"
msgstr "Suche umgebrochen"
-#: search.c:446
+#: search.c:460
#, c-format
msgid "Replaced %d occurrences"
msgstr "%d Ersetzungen vorgenommen"
-#: search.c:448
+#: search.c:462
msgid "Replaced 1 occurrence"
msgstr "1 Ersetzung vorgenommen"
-#: search.c:586 search.c:698 search.c:714
+#: search.c:600 search.c:699 search.c:715
msgid "Replace Cancelled"
msgstr "Ersetzung abgebrochen"
-#: search.c:636
+#: search.c:637
msgid "Replace this instance?"
msgstr "Fundstelle ersetzen?"
-#: search.c:648
+#: search.c:649
msgid "Replace failed: unknown subexpression!"
msgstr "Ersetzung gescheitert: unbekannter Unterausdruck"
-#: search.c:739
+#: search.c:740
#, c-format
msgid "Replace with [%s]"
msgstr "Ersetzen mit [%s]"
-#: search.c:743 search.c:747
+#: search.c:744 search.c:748
msgid "Replace with"
msgstr "Ersetzen mit"
-#: search.c:781
+#: search.c:782
msgid "Enter line number"
msgstr "Zeilennummer eingeben"
-#: search.c:783
+#: search.c:784
msgid "Aborted"
msgstr "Abgebrochen"
-#: search.c:792
+#: search.c:793
msgid "Come on, be reasonable"
msgstr "Komm schon, sei vernЭnftig"
-#: search.c:854
+#: search.c:855
msgid "Not a bracket"
msgstr "Keine Klammer"
#. didn't find either left or right bracket
-#: search.c:899
+#: search.c:900
msgid "No matching bracket"
msgstr "Keine passende Klammer"
@@ -1242,29 +1389,29 @@ msgstr "nano: realloc: Kein Speicher verf
msgid "actual_x_from_start for xplus=%d returned %d\n"
msgstr "actual_x_from_start fЭr xplus=%d gab %d zurЭck\n"
-#: winio.c:295 winio.c:466
+#: winio.c:294 winio.c:464
#, c-format
msgid "Aha! '%c' (%d)\n"
msgstr "Aha! '%c' (%d)\n"
-#: winio.c:498
+#: winio.c:496
#, c-format
msgid "input '%c' (%d)\n"
msgstr "Eingabe '%c' (%d)\n"
-#: winio.c:546
+#: winio.c:544
msgid "New Buffer"
msgstr "Neuer Puffer"
-#: winio.c:550
+#: winio.c:548
msgid " File: ..."
msgstr " Datei: ..."
-#: winio.c:552
+#: winio.c:550
msgid " DIR: ..."
msgstr " Verzeichnis: ..."
-#: winio.c:556
+#: winio.c:555
msgid "File: "
msgstr "Datei: "
@@ -1276,17 +1423,17 @@ msgstr "Verz.: "
msgid "Modified"
msgstr "VerДndert"
-#: winio.c:1166
+#: winio.c:1272
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr "Nach (%d, %d) im Bearbeitungspuffer verschoben\n"
-#: winio.c:1177
+#: winio.c:1283
#, c-format
msgid "current->data = \"%s\"\n"
msgstr "current->data = ╩%s╚\n"
-#: winio.c:1251
+#: winio.c:1357
#, c-format
msgid "I got \"%s\"\n"
msgstr "Erhielt ╩%s╚\n"
@@ -1294,80 +1441,81 @@ msgstr "Erhielt
#. Yes, no and all are strings of any length. Each string consists of
#. all characters accepted as a valid character for that value.
#. The first value will be the one displayed in the shortcuts.
-#: winio.c:1280
+#: winio.c:1386
msgid "Yy"
msgstr "JjYy"
-#: winio.c:1281
+#: winio.c:1387
msgid "Nn"
msgstr "Nn"
-#: winio.c:1282
+#: winio.c:1388
msgid "Aa"
msgstr "Aa"
-#: winio.c:1296
+#: winio.c:1402
msgid "Yes"
msgstr "Ja"
-#: winio.c:1300
+#: winio.c:1406
msgid "All"
msgstr "Alle"
-#: winio.c:1305
+#: winio.c:1411
msgid "No"
msgstr "Nein"
-#: winio.c:1512
+#: winio.c:1617
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
-#: winio.c:1520
+#: winio.c:1626
+#, c-format
msgid "line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"
msgstr "Zeile %d von %d (%.0f%%), Zeichen %ld von %ld (%.0f%%)"
-#: winio.c:1685
+#: winio.c:1790
msgid "Dumping file buffer to stderr...\n"
msgstr "Gebe Datei Puffer nach stderr aus...\n"
-#: winio.c:1687
+#: winio.c:1792
msgid "Dumping cutbuffer to stderr...\n"
msgstr "Gebe Inhalt der Zwischenablage nach stderr aus...\n"
-#: winio.c:1689
+#: winio.c:1794
msgid "Dumping a buffer to stderr...\n"
msgstr "Gebe einen Puffer nach stderr aus...\n"
-#: winio.c:1764
+#: winio.c:1870
msgid "The nano text editor"
msgstr "Der nano-Text-Editor"
-#: winio.c:1765
+#: winio.c:1871
msgid "version "
msgstr "Version "
-#: winio.c:1766
+#: winio.c:1872
msgid "Brought to you by:"
msgstr "Entwickelt von:"
-#: winio.c:1767
+#: winio.c:1873
msgid "Special thanks to:"
msgstr "Speziellen Dank an:"
-#: winio.c:1768
+#: winio.c:1874
msgid "The Free Software Foundation"
msgstr "The Free Software Foundation"
-#: winio.c:1769
+#: winio.c:1876
msgid "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurses"
msgstr "Pavel Curtis, Zeyd Ben-Halim und Eric S. Raymond fЭr ncurses"
-#: winio.c:1770
+#: winio.c:1877
msgid "and anyone else we forgot..."
msgstr "und alle Nichtgenannten..."
-#: winio.c:1771
+#: winio.c:1878
msgid "Thank you for using nano!\n"
msgstr "Danke fЭr die Benutzung von nano!\n"
@@ -1378,7 +1526,9 @@ msgstr "Danke f
#~ msgstr "reg. Ausdruck "
#~ msgid "Case Sensitive Regexp Search%s%s"
-#~ msgstr "Suche mit Unterscheidung von Groъ- und Kleinschreibung nach regulДrem Ausdruck%s%s"
+#~ msgstr ""
+#~ "Suche mit Unterscheidung von Groъ- und Kleinschreibung nach regulДrem "
+#~ "Ausdruck%s%s"
#~ msgid "Regexp Search%s%s"
#~ msgstr "Suche nach regulДrem Ausdruck%s%s"
@@ -1410,8 +1560,20 @@ msgstr "Danke f
#~ msgid "Could not invoke \"ispell\""
#~ msgstr "Konnte ╩ispell╚ nicht aufrufen"
-#~ msgid "\n\n\n\n\nUse \"fg\" to return to nano\n"
-#~ msgstr "\n\n\n\n\nBenutzen Sie ╩fg╚ um zu nano zurЭckzukehren\n"
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "Use \"fg\" to return to nano\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "\n"
+#~ "Benutzen Sie ╩fg╚ um zu nano zurЭckzukehren\n"
#~ msgid "I got %c (%d)!\n"
#~ msgstr "Erhielt %c (%d)!\n"
diff --git a/po/es.po b/po/es.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: nano 1.1.5-CVS\n"
-"POT-Creation-Date: 2002-01-19 00:19+0100\n"
+"POT-Creation-Date: 2002-01-19 13:10-0500\n"
"PO-Revision-Date: 2002-01-19 00:31+0100\n"
"Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
"Language-Team: Spanish <es@li.org>\n"
@@ -555,7 +555,7 @@ msgid "Find Other Bracket"
msgstr "Buscar la otra llave"
#: global.c:451 global.c:484 global.c:517 global.c:529 global.c:554
-#: global.c:568 global.c:579 global.c:605 winio.c:1308
+#: global.c:568 global.c:579 global.c:605 winio.c:1413
msgid "Cancel"
msgstr "Cancelar"
@@ -804,8 +804,7 @@ msgstr " -F \t\tHabilitar m
#: nano.c:498
msgid " -K\t\tUse alternate keypad routines\n"
-msgstr ""
-" -K\t\tUsar rutinas de teclado numИrico alternativas\n"
+msgstr " -K\t\tUsar rutinas de teclado numИrico alternativas\n"
#: nano.c:500
msgid " -M \t\tWrite file in Mac format\n"
@@ -1247,7 +1246,7 @@ msgstr ""
"\n"
"Pulsa enter para iniciar nano\n"
-#: rcfile.c:165
+#: rcfile.c:180
#, c-format
msgid ""
"color %s not understood.\n"
@@ -1260,15 +1259,15 @@ msgstr ""
"\"white\", \"yellow\", \"cyan\", \"magenta\" y \n"
"\"black\", con el prefijo opcional \"bright\".\n"
-#: rcfile.c:190
+#: rcfile.c:204
msgid "Missing color name"
msgstr "Nombre del color inexistente"
-#: rcfile.c:223
-msgid "regex length must be > 0"
-msgstr "la longitud del regex ha de ser > 0"
+#: rcfile.c:234 rcfile.c:288
+msgid "regex strings must begin and end with a \" character\n"
+msgstr ""
-#: rcfile.c:289
+#: rcfile.c:280
msgid ""
"\n"
"\t\"start=\" requires a corresponding \"end=\""
@@ -1276,55 +1275,55 @@ msgstr ""
"\n"
"\t\"start=\" requiere su \"end=\" correspondiente"
-#: rcfile.c:328
+#: rcfile.c:330
msgid "parse_rcfile: Read a comment\n"
msgstr "parse_rcfile: Comentario leМdo\n"
# en la lМnea. sv
# el comando -> la orden.
-#: rcfile.c:349
+#: rcfile.c:351
#, c-format
msgid "command %s not understood"
msgstr "Error en %s en la lМnea %d: no entiendo la orden %s"
# Analizando la opciСn. sv
-#: rcfile.c:361
+#: rcfile.c:363
#, c-format
msgid "parse_rcfile: Parsing option %s\n"
msgstr "parse_rcfile: Analizando opciСn %s\n"
-#: rcfile.c:379
+#: rcfile.c:381
#, c-format
msgid "option %s requires an argument"
msgstr "la opciСn %s requiere un argumento"
-#: rcfile.c:390
+#: rcfile.c:392
#, c-format
msgid "requested fill size %d too small"
msgstr "tamaЯo de llenado %d demasiado pequeЯo"
-#: rcfile.c:398
+#: rcfile.c:402
#, c-format
msgid "requested tab size %d too small"
msgstr "tamaЯo de tabulador %d demasiado pequeЯo"
-#: rcfile.c:411
+#: rcfile.c:417
#, c-format
msgid "set flag %d!\n"
msgstr "establecer marca %d!\n"
-#: rcfile.c:416
+#: rcfile.c:423
#, c-format
msgid "unset flag %d!\n"
msgstr "quitar marca %d!\n"
# Se encontraron errores en el fichero .nanorc. sv
-#: rcfile.c:425
+#: rcfile.c:433
msgid "Errors found in .nanorc file"
msgstr "Se encontraron errores en el fichero .nanorc"
# No se puede abrir. sv
-#: rcfile.c:433
+#: rcfile.c:441
#, c-format
msgid "Unable to open ~/.nanorc file, %s"
msgstr "No se puede abrir fichero ~/.nanorc, %s"
@@ -1440,29 +1439,29 @@ msgid "actual_x_from_start for xplus=%d returned %d\n"
msgstr "actual_x_from_start para xplus=%d devolviС %d\n"
# AjА. sv
-#: winio.c:295 winio.c:466
+#: winio.c:294 winio.c:464
#, c-format
msgid "Aha! '%c' (%d)\n"
msgstr "AjА! '%c' (%d)\n"
-#: winio.c:498
+#: winio.c:496
#, c-format
msgid "input '%c' (%d)\n"
msgstr "entrada '%c' (%d)\n"
-#: winio.c:546
+#: winio.c:544
msgid "New Buffer"
msgstr "Nuevo Buffer"
-#: winio.c:550
+#: winio.c:548
msgid " File: ..."
msgstr "Fichero: ..."
-#: winio.c:552
+#: winio.c:550
msgid " DIR: ..."
msgstr " DIR: ..."
-#: winio.c:556
+#: winio.c:555
msgid "File: "
msgstr "Fichero: "
@@ -1474,17 +1473,17 @@ msgstr " DIR: "
msgid "Modified"
msgstr "Modificado"
-#: winio.c:1167
+#: winio.c:1272
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr "Moviendo a (%d, %d) en buffer de ediciСn\n"
-#: winio.c:1178
+#: winio.c:1283
#, c-format
msgid "current->data = \"%s\"\n"
msgstr "current->data = \"%s\"\n"
-#: winio.c:1252
+#: winio.c:1357
#, c-format
msgid "I got \"%s\"\n"
msgstr "PillИ \"%s\"\n"
@@ -1492,84 +1491,87 @@ msgstr "Pill
#. Yes, no and all are strings of any length. Each string consists of
#. all characters accepted as a valid character for that value.
#. The first value will be the one displayed in the shortcuts.
-#: winio.c:1281
+#: winio.c:1386
msgid "Yy"
msgstr "Ss"
-#: winio.c:1282
+#: winio.c:1387
msgid "Nn"
msgstr "Nn"
-#: winio.c:1283
+#: winio.c:1388
msgid "Aa"
msgstr "Tt"
-#: winio.c:1297
+#: winio.c:1402
msgid "Yes"
msgstr "SМ"
-#: winio.c:1301
+#: winio.c:1406
msgid "All"
msgstr "Todas"
-#: winio.c:1306
+#: winio.c:1411
msgid "No"
msgstr "No"
-#: winio.c:1513
+#: winio.c:1617
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
-#: winio.c:1521
+#: winio.c:1626
#, c-format
msgid "line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"
msgstr "lМnea %d de %d (%.0f%%), carАcter %ld de %ld (%.0f%%)"
-#: winio.c:1686
+#: winio.c:1790
msgid "Dumping file buffer to stderr...\n"
msgstr "Volcando buffer de fichero a stderr...\n"
-#: winio.c:1688
+#: winio.c:1792
msgid "Dumping cutbuffer to stderr...\n"
msgstr "Volcando el cutbuffer a stderr...\n"
-#: winio.c:1690
+#: winio.c:1794
msgid "Dumping a buffer to stderr...\n"
msgstr "Volcando un buffer a stderr...\n"
-#: winio.c:1765
+#: winio.c:1870
msgid "The nano text editor"
msgstr "El editor de textos GNU nano"
-#: winio.c:1766
+#: winio.c:1871
msgid "version "
msgstr "versiСn "
-#: winio.c:1767
+#: winio.c:1872
msgid "Brought to you by:"
msgstr "Por cortesМa de:"
-#: winio.c:1768
+#: winio.c:1873
msgid "Special thanks to:"
msgstr "Agradecimientos especiales para:"
-#: winio.c:1769
+#: winio.c:1874
msgid "The Free Software Foundation"
msgstr "La Free Software Foundation"
-#: winio.c:1770
+#: winio.c:1876
msgid "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurses"
msgstr "Pavel Curtis, Zeyd Ben-Halim y Eric S. Raymond por ncurses"
-#: winio.c:1771
+#: winio.c:1877
msgid "and anyone else we forgot..."
msgstr "y cualquiera del que nos hayamos olvidado..."
-#: winio.c:1772
+#: winio.c:1878
msgid "Thank you for using nano!\n"
msgstr "║Gracias por usar nano!\n"
+#~ msgid "regex length must be > 0"
+#~ msgstr "la longitud del regex ha de ser > 0"
+
#~ msgid "Write"
#~ msgstr "Escribir"
diff --git a/po/fi.po b/po/fi.po
@@ -9,7 +9,7 @@
msgid ""
msgstr ""
"Project-Id-Version: nano 1.1.2pre3\n"
-"POT-Creation-Date: 2002-01-05 14:33-0500\n"
+"POT-Creation-Date: 2002-01-19 13:10-0500\n"
"PO-Revision-Date: 2001-10-03 20:38+0300\n"
"Last-Translator: Pauli Virtanen <pauli.virtanen@saunalahti.fi>\n"
"Language-Team: Finnish <fi@li.org>\n"
@@ -89,7 +89,7 @@ msgstr "tiedoston nimi on %s"
msgid "Can't insert file from outside of %s"
msgstr "Ei voi lisДtД tiedostoa hakemiston %s ulkopuolelta"
-#: files.c:440 files.c:1106 files.c:1467 nano.c:1806
+#: files.c:440 files.c:1106 files.c:1467 nano.c:1813
msgid "Cancelled"
msgstr "Peruttu"
@@ -407,7 +407,7 @@ msgid "Find other bracket"
msgstr "Etsi toinen sulje"
#: global.c:306 global.c:448 global.c:481 global.c:514 global.c:527
-#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:602
+#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:603
msgid "Get Help"
msgstr "Ohjeita"
@@ -525,7 +525,7 @@ msgid "Find Other Bracket"
msgstr "Etsi toinen sulje"
#: global.c:451 global.c:484 global.c:517 global.c:529 global.c:554
-#: global.c:568 global.c:579 global.c:604 winio.c:1307
+#: global.c:568 global.c:579 global.c:605 winio.c:1413
msgid "Cancel"
msgstr "Peru"
@@ -604,9 +604,9 @@ msgid ""
"commonly used shortcuts in the editor.\n"
"\n"
" The notation for shortcuts is as follows: Control-key sequences are notated "
-"with a caret (^) symbol and are entered with the Control (Ctrl) key. "
-"Escape-key sequences are notated with the Meta (M) symbol and can be entered "
-"using either the Esc, Alt or Meta key depending on your keyboard setup. The "
+"with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-"
+"key sequences are notated with the Meta (M) symbol and can be entered using "
+"either the Esc, Alt or Meta key depending on your keyboard setup. The "
"following keystrokes are available in the main editor window. Optional keys "
"are shown in parentheses:\n"
"\n"
@@ -767,9 +767,7 @@ msgid " -F \t\tEnable multiple file buffers\n"
msgstr " -F \t\tMahdollista useiden puskureiden kДyttЖ\n"
#: nano.c:498
-msgid ""
-" -K\t\tUse alternate keypad routines\n"
-"\n"
+msgid " -K\t\tUse alternate keypad routines\n"
msgstr ""
#: nano.c:500
@@ -874,93 +872,93 @@ msgstr ""
"\n"
" Mukaan kДДnnetyt valitsimet:"
-#: nano.c:640
+#: nano.c:638
msgid "Mark Set"
msgstr "MerkintД alkoi"
-#: nano.c:645
+#: nano.c:643
msgid "Mark UNset"
msgstr "MerkintД loppui"
-#: nano.c:1267
+#: nano.c:1264
#, c-format
msgid "check_wrap called with inptr->data=\"%s\"\n"
msgstr "check_wrap -funktion parametri inptr->data=\"%s\"\n"
-#: nano.c:1319
+#: nano.c:1316
#, c-format
msgid "current->data now = \"%s\"\n"
msgstr "current->data nyt = \"%s\"\n"
-#: nano.c:1371
+#: nano.c:1368
#, c-format
msgid "After, data = \"%s\"\n"
msgstr "JДlkeenpДin, data = \"%s\"\n"
-#: nano.c:1480
+#: nano.c:1484
msgid "Edit a replacement"
msgstr "Muokkaa korvausta"
-#: nano.c:1717
+#: nano.c:1724
#, c-format
msgid "Could not create a temporary filename: %s"
msgstr "VДliaikaista tiedostonnimeД ei voitu luoda: %s"
-#: nano.c:1723
+#: nano.c:1730
msgid "Spell checking failed: unable to write temp file!"
msgstr "Oikaisuluku epДonnistui: vДliaikaistiedostoa ei voitu kirjoittaa"
-#: nano.c:1743
+#: nano.c:1750
msgid "Finished checking spelling"
msgstr "Oikoluku on valmis"
-#: nano.c:1745
+#: nano.c:1752
msgid "Spell checking failed"
msgstr "Oikaisuluku epДonnistui"
-#: nano.c:1774
+#: nano.c:1781
msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
msgstr "Tallenna muutettu teksti (Muutokset hДviДvДt, jos vastaat \"ei\") ? "
-#: nano.c:1921
+#: nano.c:1928
msgid "Received SIGHUP"
msgstr "Vastaanotettiin SIGHUP"
-#: nano.c:1988
+#: nano.c:1998
msgid "Cannot resize top win"
msgstr "YlДikkunan kokoa ei voi muuttaa"
-#: nano.c:1990
+#: nano.c:2000
msgid "Cannot move top win"
msgstr "YlДikkunaa ei voi siirtДД"
-#: nano.c:1992
+#: nano.c:2002
msgid "Cannot resize edit win"
msgstr "Muokkausikkunan kokoa ei voi muuttaa"
-#: nano.c:1994
+#: nano.c:2004
msgid "Cannot move edit win"
msgstr "Muokkausikkunaa ei voi siirtДД"
-#: nano.c:1996
+#: nano.c:2006
msgid "Cannot resize bottom win"
msgstr "Alaikkunan kokoa ei voi muuttaa"
-#: nano.c:1998
+#: nano.c:2008
msgid "Cannot move bottom win"
msgstr "Alaikkunaa ei voi siirtДД"
-#: nano.c:2337
+#: nano.c:2347
msgid "Can now UnJustify!"
msgstr "Tasaamisen voi perua nyt."
-#: nano.c:2403
+#: nano.c:2413
msgid ""
"Search Command Help Text\n"
"\n"
-" Enter the words or characters you would like to search for, then hit enter. "
-" If there is a match for the text you entered, the screen will be updated to "
-"the location of the nearest match for the search string.\n"
+" Enter the words or characters you would like to search for, then hit "
+"enter. If there is a match for the text you entered, the screen will be "
+"updated to the location of the nearest match for the search string.\n"
"\n"
" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or "
"using a nanorc file, the previous search string will be shown in brackets "
@@ -972,7 +970,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2417
+#: nano.c:2427
msgid ""
"Goto Line Help Text\n"
"\n"
@@ -984,7 +982,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2424
+#: nano.c:2434
msgid ""
"Insert File Help Text\n"
"\n"
@@ -1000,7 +998,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2435
+#: nano.c:2445
msgid ""
"Write File Help Text\n"
"\n"
@@ -1016,21 +1014,21 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2447
+#: nano.c:2457
msgid ""
"File Browser Help Text\n"
"\n"
" The file browser is used to visually browse the directory structure to "
-"select a file for reading or writing. You may use the arrow keys or Page "
-"Up/Down to browse through the files, and S or Enter to choose the selected "
-"file or enter the selected directory. To move up one level, select the "
-"directory called \"..\" at the top of the file list.\n"
+"select a file for reading or writing. You may use the arrow keys or Page Up/"
+"Down to browse through the files, and S or Enter to choose the selected file "
+"or enter the selected directory. To move up one level, select the directory "
+"called \"..\" at the top of the file list.\n"
"\n"
" The following functions keys are available in the file browser:\n"
"\n"
msgstr ""
-#: nano.c:2458
+#: nano.c:2468
msgid ""
"Browser Goto Directory Help Text\n"
"\n"
@@ -1042,7 +1040,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2466
+#: nano.c:2476
msgid ""
"Spell Check Help Text\n"
"\n"
@@ -1055,62 +1053,67 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2550
+#: nano.c:2560
#, c-format
msgid "%s enable/disable"
msgstr "%s kДytЖssД/ei kДytЖssД"
-#: nano.c:2569
+#: nano.c:2579
msgid "enabled"
msgstr "kДytЖssД"
-#: nano.c:2570
+#: nano.c:2580
msgid "disabled"
msgstr "ei kДytЖssД"
-#: nano.c:2634
+#: nano.c:2644
msgid "NumLock glitch detected. Keypad will malfunction with NumLock off"
msgstr ""
"NumLock-ongelma: NumeronДppДimistЖ toimii vДДrin, kun NumLock ei ole pДДllД."
-#: nano.c:2931
+#: nano.c:2941
msgid "Main: set up windows\n"
msgstr "PДДtila: ikkunoiden asettelu\n"
-#: nano.c:2948
+#: nano.c:2958
msgid "Main: bottom win\n"
msgstr "PДДtila: alaikkuna\n"
-#: nano.c:2954
+#: nano.c:2964
msgid "Main: open file\n"
msgstr "PДДtila: avaa tiedosto\n"
-#: nano.c:3013
+#: nano.c:3023
#, c-format
msgid "I got Alt-O-%c! (%d)\n"
msgstr "Vastaanotettu Alt-O-%c! (%d)\n"
-#: nano.c:3047
+#: nano.c:3057
#, c-format
msgid "I got Alt-[-1-%c! (%d)\n"
msgstr "Vastaanotettu Alt-[-1-%c! (%d)\n"
-#: nano.c:3077
+#: nano.c:3087
#, c-format
msgid "I got Alt-[-2-%c! (%d)\n"
msgstr "Vastaanotettu Alt-[-2-%c! (%d)\n"
-#: nano.c:3146
+#: nano.c:3156
#, c-format
msgid "I got Alt-[-%c! (%d)\n"
msgstr "Vastaanotettu Alt-[-%c! (%d)\n"
-#: nano.c:3183
+#: nano.c:3194
#, c-format
msgid "I got Alt-%c! (%d)\n"
msgstr "Vastaanotettu Alt-%c! (%d)\n"
-#: rcfile.c:85
+#: rcfile.c:86
+#, fuzzy, c-format
+msgid "Error in %s on line %d: "
+msgstr "Virhe tiedostossa %s rivillД %d: komento %s on tuntematon"
+
+#: rcfile.c:90
msgid ""
"\n"
"Press return to continue starting nano\n"
@@ -1118,51 +1121,74 @@ msgstr ""
"\n"
"Paina enteria jatkaaksesi Nanon kДynnistДmistД\n"
-#: rcfile.c:282
+#: rcfile.c:180
+#, c-format
+msgid ""
+"color %s not understood.\n"
+"Valid colors are \"green\", \"red\", \"blue\", \n"
+"\"white\", \"yellow\", \"cyan\", \"magenta\" and \n"
+"\"black\", with the optional prefix \"bright\".\n"
+msgstr ""
+
+#: rcfile.c:204
+msgid "Missing color name"
+msgstr ""
+
+#: rcfile.c:234 rcfile.c:288
+msgid "regex strings must begin and end with a \" character\n"
+msgstr ""
+
+#: rcfile.c:280
+msgid ""
+"\n"
+"\t\"start=\" requires a corresponding \"end=\""
+msgstr ""
+
+#: rcfile.c:330
msgid "parse_rcfile: Read a comment\n"
msgstr "parse_rcfile: Luki kommentin\n"
-#: rcfile.c:303
-#, c-format
-msgid "Error in %s on line %d: command %s not understood"
+#: rcfile.c:351
+#, fuzzy, c-format
+msgid "command %s not understood"
msgstr "Virhe tiedostossa %s rivillД %d: komento %s on tuntematon"
-#: rcfile.c:316
+#: rcfile.c:363
#, c-format
msgid "parse_rcfile: Parsing option %s\n"
msgstr "parse_rcfile: Tulkitsee asetusta %s\n"
-#: rcfile.c:334
-#, c-format
-msgid "Error in %s on line %d: option %s requires an argument"
+#: rcfile.c:381
+#, fuzzy, c-format
+msgid "option %s requires an argument"
msgstr "Virhe tiedostossa %s rivillД %d: asetus %s vaatii parametrin"
-#: rcfile.c:345
-#, c-format
-msgid "Error in %s on line %d: requested fill size %d too small"
+#: rcfile.c:392
+#, fuzzy, c-format
+msgid "requested fill size %d too small"
msgstr "Virhe tiedostossa %s rivillД %d: haluttu rivinpituus %d on liian pieni"
-#: rcfile.c:354
+#: rcfile.c:402
#, fuzzy, c-format
-msgid "Error in %s on line %d: requested tab size %d too small"
+msgid "requested tab size %d too small"
msgstr ""
"Virhe tiedostossa %s rivillД %d: haluttu sarkaimen koko %d on liian pieni"
-#: rcfile.c:368
+#: rcfile.c:417
#, c-format
msgid "set flag %d!\n"
msgstr "asetti lipun %d!\n"
-#: rcfile.c:373
+#: rcfile.c:423
#, c-format
msgid "unset flag %d!\n"
msgstr "poisti lipun %d!\n"
-#: rcfile.c:382
+#: rcfile.c:433
msgid "Errors found in .nanorc file"
msgstr "Tiedostossa .nanorc oli virheitД"
-#: rcfile.c:391
+#: rcfile.c:441
#, c-format
msgid "Unable to open ~/.nanorc file, %s"
msgstr "Ei voi avata tiedostoa ~/.nanorc: %s"
@@ -1193,7 +1219,7 @@ msgstr " [Taaksep
msgid " (to replace)"
msgstr " (korvattava)"
-#: search.c:151 search.c:424
+#: search.c:151 search.c:438
msgid "Search Cancelled"
msgstr "EtsintД peruttu"
@@ -1202,58 +1228,58 @@ msgstr "Etsint
msgid "\"%s...\" not found"
msgstr "\"%s...\" ei lЖytynyt"
-#: search.c:278 search.c:340
+#: search.c:292 search.c:354
msgid "Search Wrapped"
msgstr "EtsintД jatkuu"
-#: search.c:446
+#: search.c:460
#, c-format
msgid "Replaced %d occurrences"
msgstr "%d kohtaa korvautui"
-#: search.c:448
+#: search.c:462
msgid "Replaced 1 occurrence"
msgstr "1 kohta korvautui"
-#: search.c:586 search.c:698 search.c:714
+#: search.c:600 search.c:699 search.c:715
msgid "Replace Cancelled"
msgstr "Korvaus peruttu"
-#: search.c:636
+#: search.c:637
msgid "Replace this instance?"
msgstr "Korvataanko tДmД kohta?"
-#: search.c:648
+#: search.c:649
msgid "Replace failed: unknown subexpression!"
msgstr "Korvaus epДonnistui: tuntematon alilauseke!"
-#: search.c:739
+#: search.c:740
#, c-format
msgid "Replace with [%s]"
msgstr "Korvaa merkkijonolla [%s]"
-#: search.c:743 search.c:747
+#: search.c:744 search.c:748
msgid "Replace with"
msgstr "Korvaa merkkijonolla"
-#: search.c:781
+#: search.c:782
msgid "Enter line number"
msgstr "Kirjoita rivin numero"
-#: search.c:783
+#: search.c:784
msgid "Aborted"
msgstr "Keskeytetty"
-#: search.c:792
+#: search.c:793
msgid "Come on, be reasonable"
msgstr "Jotakin jДrkevДД, kiitos?"
-#: search.c:854
+#: search.c:855
msgid "Not a bracket"
msgstr "Ei ole sulje"
#. didn't find either left or right bracket
-#: search.c:899
+#: search.c:900
msgid "No matching bracket"
msgstr "Ei vastaavaa suljetta"
@@ -1274,29 +1300,29 @@ msgstr "nano: realloc: muisti loppui!"
msgid "actual_x_from_start for xplus=%d returned %d\n"
msgstr "actual_x_from_start parametrilla xplus=%d palautti %d\n"
-#: winio.c:295 winio.c:466
+#: winio.c:294 winio.c:464
#, c-format
msgid "Aha! '%c' (%d)\n"
msgstr "Ahaa! '%c' (%d)\n"
-#: winio.c:498
+#: winio.c:496
#, c-format
msgid "input '%c' (%d)\n"
msgstr "syЖte '%c' (%d)\n"
-#: winio.c:546
+#: winio.c:544
msgid "New Buffer"
msgstr "Uusi teksti"
-#: winio.c:550
+#: winio.c:548
msgid " File: ..."
msgstr " Tiedosto: ..."
-#: winio.c:552
+#: winio.c:550
msgid " DIR: ..."
msgstr " HAKEMISTO: ..."
-#: winio.c:556
+#: winio.c:555
#, fuzzy
msgid "File: "
msgstr " Tiedosto: ..."
@@ -1310,17 +1336,17 @@ msgstr " HAKEMISTO: ..."
msgid "Modified"
msgstr "Muokattu"
-#: winio.c:1166
+#: winio.c:1272
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr "Kohtaan (%d,%d) siirrytty muokkausruudussa\n"
-#: winio.c:1177
+#: winio.c:1283
#, c-format
msgid "current->data = \"%s\"\n"
msgstr "current->data = \"%s\"\n"
-#: winio.c:1251
+#: winio.c:1357
#, c-format
msgid "I got \"%s\"\n"
msgstr "Saatiin \"%s\"\n"
@@ -1328,79 +1354,80 @@ msgstr "Saatiin \"%s\"\n"
#. Yes, no and all are strings of any length. Each string consists of
#. all characters accepted as a valid character for that value.
#. The first value will be the one displayed in the shortcuts.
-#: winio.c:1280
+#: winio.c:1386
msgid "Yy"
msgstr "Kk"
-#: winio.c:1281
+#: winio.c:1387
msgid "Nn"
msgstr "Ee"
-#: winio.c:1282
+#: winio.c:1388
msgid "Aa"
msgstr "aA"
-#: winio.c:1296
+#: winio.c:1402
msgid "Yes"
msgstr "KyllД"
-#: winio.c:1300
+#: winio.c:1406
msgid "All"
msgstr "Kaikki"
-#: winio.c:1305
+#: winio.c:1411
msgid "No"
msgstr "Ei"
-#: winio.c:1512
+#: winio.c:1617
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
-#: winio.c:1520
+#: winio.c:1626
+#, c-format
msgid "line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"
msgstr "rivi %d/%d (%.0f%%), merkki %ld/%ld (%.0f%%)"
-#: winio.c:1685
+#: winio.c:1790
msgid "Dumping file buffer to stderr...\n"
msgstr "SyЖttДД tiedoston stderriin...\n"
-#: winio.c:1687
+#: winio.c:1792
msgid "Dumping cutbuffer to stderr...\n"
msgstr "SyЖttДД leiketilan stderriin...\n"
-#: winio.c:1689
+#: winio.c:1794
msgid "Dumping a buffer to stderr...\n"
msgstr "SyЖttДД tekstin stderriin...\n"
-#: winio.c:1764
+#: winio.c:1870
msgid "The nano text editor"
msgstr "Nano-editori"
-#: winio.c:1765
+#: winio.c:1871
msgid "version "
msgstr "versio "
-#: winio.c:1766
+#: winio.c:1872
msgid "Brought to you by:"
msgstr "Tehneet:"
-#: winio.c:1767
+#: winio.c:1873
msgid "Special thanks to:"
msgstr "Erikoiskiitokset:"
-#: winio.c:1768
+#: winio.c:1874
msgid "The Free Software Foundation"
msgstr "Free Software Foundation"
-#: winio.c:1769
+#: winio.c:1876
msgid "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurses"
msgstr "Pavel Curtis, Zeyd Ben-Halim ja Eric S. Raymond ncursesista"
-#: winio.c:1770
+#: winio.c:1877
msgid "and anyone else we forgot..."
msgstr "ja kaikille muille, jotka unohdimme..."
-#: winio.c:1771
+#: winio.c:1878
msgid "Thank you for using nano!\n"
msgstr "Kiitos Nanon kДyttДmisestД!\n"
diff --git a/po/fr.po b/po/fr.po
@@ -8,7 +8,7 @@
msgid ""
msgstr ""
"Project-Id-Version: nano 1.1.5\n"
-"POT-Creation-Date: 2002-01-05 14:33-0500\n"
+"POT-Creation-Date: 2002-01-19 13:10-0500\n"
"PO-Revision-Date: 2002-01-09 21:30+0100\n"
"Last-Translator: Jean-Philippe GuИrard <jean-philippe.guerard@laposte.net>\n"
"Language-Team: French <traduc@traduc.org>\n"
@@ -67,7 +67,8 @@ msgstr "Le fichier
#: files.c:314
#, c-format
msgid "File \"%s\" is a device file"
-msgstr "Le fichier ╚ %s ╩ est un fichier spИcial correspondant Ю un pИriphИrique"
+msgstr ""
+"Le fichier ╚ %s ╩ est un fichier spИcial correspondant Ю un pИriphИrique"
#: files.c:322
msgid "Reading File"
@@ -88,7 +89,7 @@ msgstr "le nom du fichier est %s"
msgid "Can't insert file from outside of %s"
msgstr "Impossible d'insИrer le fichier depuis l'extИrieur de %s"
-#: files.c:440 files.c:1106 files.c:1467 nano.c:1806
+#: files.c:440 files.c:1106 files.c:1467 nano.c:1813
msgid "Cancelled"
msgstr "AnnulИ"
@@ -407,7 +408,7 @@ msgstr "Trouver l'autre crochet"
# Les messages suivants doivent tenir sur 10 caractХres !
# Ils sont utilisИs comme entrИe des menus du bas d'Иcran.
#: global.c:306 global.c:448 global.c:481 global.c:514 global.c:527
-#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:602
+#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:603
msgid "Get Help"
msgstr "Aide"
@@ -525,7 +526,7 @@ msgid "Find Other Bracket"
msgstr "Trouver l'autre crochet"
#: global.c:451 global.c:484 global.c:517 global.c:529 global.c:554
-#: global.c:568 global.c:579 global.c:604 winio.c:1307
+#: global.c:568 global.c:579 global.c:605 winio.c:1413
msgid "Cancel"
msgstr "Annuler"
@@ -568,13 +569,21 @@ msgstr "Aller
# Fin des entrИes de menu sur 10 caractХres
#: nano.c:179
#, c-format
-msgid "\nBuffer written to %s\n"
-msgstr "\nTampon Иcrit dans %s\n"
+msgid ""
+"\n"
+"Buffer written to %s\n"
+msgstr ""
+"\n"
+"Tampon Иcrit dans %s\n"
#: nano.c:181
#, c-format
-msgid "\nNo %s written (file exists?)\n"
-msgstr "\n%s non sauvИ (fichier existant ?)\n"
+msgid ""
+"\n"
+"No %s written (file exists?)\n"
+msgstr ""
+"\n"
+"%s non sauvИ (fichier existant ?)\n"
#: nano.c:188
msgid "Window size is too small for Nano..."
@@ -588,16 +597,40 @@ msgstr "Touche ill
msgid ""
" nano help text\n"
"\n"
-" The nano editor is designed to emulate the functionality and ease-of-use of the UW Pico text editor. There are four main sections of the editor: The top line shows the program version, the current filename being edited, and whether or not the file has been modified. Next is the main editor window showing the file being edited. The status line is the third line from the bottom and shows important messages. The bottom two lines show the most commonly used shortcuts in the editor.\n"
+" The nano editor is designed to emulate the functionality and ease-of-use of "
+"the UW Pico text editor. There are four main sections of the editor: The "
+"top line shows the program version, the current filename being edited, and "
+"whether or not the file has been modified. Next is the main editor window "
+"showing the file being edited. The status line is the third line from the "
+"bottom and shows important messages. The bottom two lines show the most "
+"commonly used shortcuts in the editor.\n"
"\n"
-" The notation for shortcuts is as follows: Control-key sequences are notated with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-key sequences are notated with the Meta (M) symbol and can be entered using either the Esc, Alt or Meta key depending on your keyboard setup. The following keystrokes are available in the main editor window. Optional keys are shown in parentheses:\n"
+" The notation for shortcuts is as follows: Control-key sequences are notated "
+"with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-"
+"key sequences are notated with the Meta (M) symbol and can be entered using "
+"either the Esc, Alt or Meta key depending on your keyboard setup. The "
+"following keystrokes are available in the main editor window. Optional keys "
+"are shown in parentheses:\n"
"\n"
msgstr ""
" Message d'aide de nano\n"
"\n"
-" L'Иditeur nano est conГu pour Иmuler les fonctions et la facilitИ d'utilisation de l'Иditeur Pico de l'UW. Il y a quatre sections principales dans cet Иditeur : la ligne du haut affiche la version du programme, le fichier actuellement en cours d'Иdition, et s'il a ИtИ modifiИ ou non. Ensuite il y a la fenЙtre principale d'Иdition qui affiche le fichier en cours de modification. La ligne d'Иtat est la troisiХme en partant du bas, elle affiche les messages importants. Les deux derniХres sont consacrИes aux raccourcis les plus couramment utilisИs :\n"
+" L'Иditeur nano est conГu pour Иmuler les fonctions et la facilitИ "
+"d'utilisation de l'Иditeur Pico de l'UW. Il y a quatre sections principales "
+"dans cet Иditeur : la ligne du haut affiche la version du programme, le "
+"fichier actuellement en cours d'Иdition, et s'il a ИtИ modifiИ ou non. "
+"Ensuite il y a la fenЙtre principale d'Иdition qui affiche le fichier en "
+"cours de modification. La ligne d'Иtat est la troisiХme en partant du bas, "
+"elle affiche les messages importants. Les deux derniХres sont consacrИes aux "
+"raccourcis les plus couramment utilisИs :\n"
"\n"
-" Les raccourcis sont reprИsentИs de la faГon suivante : la touche ╚ ContrТle ╩ est notИe par l'accent circonflexe (^). Les sИquences d'Иchappement sont reprИsentИes par le symbole ╚ MИta ╩ (M) et peuvent Йtre entrИes via les touches ╚ иchap. ╩, ╚ Alt ╩ ou ╚ MИta ╩ selon la configuration de votre clavier. Les combinaisons suivantes sont disponibles dans la fenЙtre principale de l'Иditeur. Les touches optionnelles sont affichИes entre parenthХses :\n"
+" Les raccourcis sont reprИsentИs de la faГon suivante : la touche ╚ ContrТle "
+"╩ est notИe par l'accent circonflexe (^). Les sИquences d'Иchappement sont "
+"reprИsentИes par le symbole ╚ MИta ╩ (M) et peuvent Йtre entrИes via les "
+"touches ╚ иchap. ╩, ╚ Alt ╩ ou ╚ MИta ╩ selon la configuration de votre "
+"clavier. Les combinaisons suivantes sont disponibles dans la fenЙtre "
+"principale de l'Иditeur. Les touches optionnelles sont affichИes entre "
+"parenthХses :\n"
"\n"
#: nano.c:347
@@ -611,8 +644,12 @@ msgstr "delete_node(): dernier noeud lib
# Les messages d'aide utilisИs pour nano -h doivent tenir
# sur un Иcran de 80 caractХres.
#: nano.c:409
-msgid "Usage: nano [GNU long option] [option] +LINE <file>\n\n"
-msgstr "Utilisation: nano [options longues GNU] [options] +NO_LIGNE <fichier>\n\n"
+msgid ""
+"Usage: nano [GNU long option] [option] +LINE <file>\n"
+"\n"
+msgstr ""
+"Utilisation: nano [options longues GNU] [options] +NO_LIGNE <fichier>\n"
+"\n"
#: nano.c:410
msgid "Option\t\tLong option\t\tMeaning\n"
@@ -683,8 +720,10 @@ msgid " -p \t\t--pico\t\t\tEmulate Pico as closely as possible\n"
msgstr " -p \t\t--pico\t\t\tImiter Pico du mieux possible\n"
#: nano.c:469
-msgid " -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n"
-msgstr " -r [nb_col] \t--fill=[nb_col]\t\tPassage Ю la ligne auto. aprХs nb_col\n"
+msgid ""
+" -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n"
+msgstr ""
+" -r [nb_col] \t--fill=[nb_col]\t\tPassage Ю la ligne auto. aprХs nb_col\n"
#: nano.c:473
msgid " -s [prog] \t--speller=[prog]\tEnable alternate speller\n"
@@ -715,8 +754,12 @@ msgid " +LINE\t\t\t\t\tStart at line number LINE\n"
msgstr " +NO_LIGNE\t\t\t\tCommencer Ю la ligne NO_LIGNE\n"
#: nano.c:490
-msgid "Usage: nano [option] +LINE <file>\n\n"
-msgstr "Utilisation: nano [option] +NO_LIGNE <fichier>\n\n"
+msgid ""
+"Usage: nano [option] +LINE <file>\n"
+"\n"
+msgstr ""
+"Utilisation: nano [option] +NO_LIGNE <fichier>\n"
+"\n"
#: nano.c:491
msgid "Option\t\tMeaning\n"
@@ -731,8 +774,11 @@ msgid " -F \t\tEnable multiple file buffers\n"
msgstr " -F \t\tMode multifichiers\n"
#: nano.c:498
-msgid " -K\t\tUse alternate keypad routines\n\n"
-msgstr " -K\t\tUtiliser l'autre gestion du pavИ numИrique\n\n"
+#, fuzzy
+msgid " -K\t\tUse alternate keypad routines\n"
+msgstr ""
+" -K\t\tUtiliser l'autre gestion du pavИ numИrique\n"
+"\n"
#: nano.c:500
msgid " -M \t\tWrite file in Mac format\n"
@@ -828,315 +874,421 @@ msgid " Email: nano@nano-editor.org\tWeb: http://www.nano-editor.org"
msgstr " Adr. Иl.: nano@nano-editor.org\tToile : http://www.nano-editor.org"
#: nano.c:551
-msgid "\n Compiled options:"
-msgstr "\n CompilИ avec les options :"
+msgid ""
+"\n"
+" Compiled options:"
+msgstr ""
+"\n"
+" CompilИ avec les options :"
-#: nano.c:640
+#: nano.c:638
msgid "Mark Set"
msgstr "Marque posИe"
-#: nano.c:645
+#: nano.c:643
msgid "Mark UNset"
msgstr "Marque enlevИe"
-#: nano.c:1267
+#: nano.c:1264
#, c-format
msgid "check_wrap called with inptr->data=\"%s\"\n"
msgstr "check_wrap appelИe avec inptr->data=\"%s\"\n"
-#: nano.c:1319
+#: nano.c:1316
#, c-format
msgid "current->data now = \"%s\"\n"
msgstr "current->data vaut maintenant ╚ %s ╩\n"
-#: nano.c:1371
+#: nano.c:1368
#, c-format
msgid "After, data = \"%s\"\n"
msgstr "AprХs, data = ╚ %s ╩\n"
-#: nano.c:1480
+#: nano.c:1484
msgid "Edit a replacement"
msgstr "Entrez une correction"
-#: nano.c:1717
+#: nano.c:1724
#, c-format
msgid "Could not create a temporary filename: %s"
msgstr "Impossible de crИer le nom de fichier temporaire: %s"
-#: nano.c:1723
+#: nano.c:1730
msgid "Spell checking failed: unable to write temp file!"
-msgstr "иchec de la correction orthographique : impossible d'Иcrire dans un fichier temporaire !"
+msgstr ""
+"иchec de la correction orthographique : impossible d'Иcrire dans un fichier "
+"temporaire !"
-#: nano.c:1743
+#: nano.c:1750
msgid "Finished checking spelling"
msgstr "VИrification orthographique terminИe"
-#: nano.c:1745
+#: nano.c:1752
msgid "Spell checking failed"
msgstr "иchec de la correction orthographique"
-#: nano.c:1774
+#: nano.c:1781
msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
msgstr "Sauver le tampon modifiИ (RиPONDRE ╚ Non ╩ EFFACERA LES CHANGEMENTS) ?"
-#: nano.c:1921
+#: nano.c:1928
msgid "Received SIGHUP"
msgstr "RИception du signal SIGHUP"
-#: nano.c:1988
+#: nano.c:1998
msgid "Cannot resize top win"
msgstr "Impossible de redimensionner la fenЙtre du haut"
-#: nano.c:1990
+#: nano.c:2000
msgid "Cannot move top win"
msgstr "Impossible de bouger la fenЙtre du haut"
-#: nano.c:1992
+#: nano.c:2002
msgid "Cannot resize edit win"
msgstr "Impossible de redimensionner la fenЙtre d'Иdition"
-#: nano.c:1994
+#: nano.c:2004
msgid "Cannot move edit win"
msgstr "Impossible de bouger la fenЙtre d'Иdition"
-#: nano.c:1996
+#: nano.c:2006
msgid "Cannot resize bottom win"
msgstr "Impossible de redimensionner la fenЙtre du bas"
-#: nano.c:1998
+#: nano.c:2008
msgid "Cannot move bottom win"
msgstr "Impossible de bouger la fenЙtre du bas"
-#: nano.c:2337
+#: nano.c:2347
msgid "Can now UnJustify!"
msgstr "Il est maintenant possible de dИ-justifier"
-#: nano.c:2403
+#: nano.c:2413
msgid ""
"Search Command Help Text\n"
"\n"
-" Enter the words or characters you would like to search for, then hit enter. If there is a match for the text you entered, the screen will be updated to the location of the nearest match for the search string.\n"
+" Enter the words or characters you would like to search for, then hit "
+"enter. If there is a match for the text you entered, the screen will be "
+"updated to the location of the nearest match for the search string.\n"
"\n"
-" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or using a nanorc file, the previous search string will be shown in brackets after the Search: prompt. Hitting enter without entering any text will perform the previous search. Otherwise, the previous string will be placed in front of the cursor, and can be edited or deleted before hitting enter.\n"
+" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or "
+"using a nanorc file, the previous search string will be shown in brackets "
+"after the Search: prompt. Hitting enter without entering any text will "
+"perform the previous search. Otherwise, the previous string will be placed "
+"in front of the cursor, and can be edited or deleted before hitting enter.\n"
"\n"
" The following functions keys are available in Search mode:\n"
"\n"
msgstr ""
"Aide sur la commande de recherche\n"
"\n"
-" Entrer les mots ou les caractХres que vous dИsirez chercher, puis pressez la touche ╚ EntrИe ╩. Si un texte correspondant au texte que vous avez indiquИ est trouvИ, vous serez conduit Ю l'emplacement de la plus proche occurrence du texte recherchИ.\n"
+" Entrer les mots ou les caractХres que vous dИsirez chercher, puis pressez "
+"la touche ╚ EntrИe ╩. Si un texte correspondant au texte que vous avez "
+"indiquИ est trouvИ, vous serez conduit Ю l'emplacement de la plus proche "
+"occurrence du texte recherchИ.\n"
"\n"
-" Si vous utilisez le mode Pico, via les options -p ou --pico, le commutateur MИta-P ou le fichier de configuration nanorc, la chaНne prИcИdemment recherchИe sera affichИe entre crochets derriХre l'invite de recherche. Appuyer sur ╚ EntrИe ╩ sans indiquer de texte Ю chercher recommencera la recherche prИcИdente. Si vous n'Йtes pas en mode Pico, la chaНne prИcИdente sera affichИe devant le curseur et pourra Йtre ИditИe ou dИtruite avant d'appuyer sur ╚ EntrИe ╩.\n"
+" Si vous utilisez le mode Pico, via les options -p ou --pico, le commutateur "
+"MИta-P ou le fichier de configuration nanorc, la chaНne prИcИdemment "
+"recherchИe sera affichИe entre crochets derriХre l'invite de recherche. "
+"Appuyer sur ╚ EntrИe ╩ sans indiquer de texte Ю chercher recommencera la "
+"recherche prИcИdente. Si vous n'Йtes pas en mode Pico, la chaНne prИcИdente "
+"sera affichИe devant le curseur et pourra Йtre ИditИe ou dИtruite avant "
+"d'appuyer sur ╚ EntrИe ╩.\n"
"\n"
" Les touches de fonction suivantes sont disponibles en mode recherche :\n"
"\n"
-#: nano.c:2417
+#: nano.c:2427
msgid ""
"Goto Line Help Text\n"
"\n"
-" Enter the line number that you wish to go to and hit Enter. If there are fewer lines of text than the number you entered, you will be brought to the last line of the file.\n"
+" Enter the line number that you wish to go to and hit Enter. If there are "
+"fewer lines of text than the number you entered, you will be brought to the "
+"last line of the file.\n"
"\n"
" The following functions keys are available in Goto Line mode:\n"
"\n"
msgstr ""
"Aide sur la commande ╚ Aller Ю la ligne indiquИe ╩\n"
"\n"
-" Indiquez le numИro de ligne que vous dИsirez atteindre et appuyer sur ╚ EntrИe ╩. S'il y a moins de lignes de texte que le nombre que vous avez indiquИ, vous serez conduit Ю la derniХre ligne de texte du fichier.\n"
+" Indiquez le numИro de ligne que vous dИsirez atteindre et appuyer sur ╚ "
+"EntrИe ╩. S'il y a moins de lignes de texte que le nombre que vous avez "
+"indiquИ, vous serez conduit Ю la derniХre ligne de texte du fichier.\n"
"\n"
-" Les touches de fonctions suivantes sont disponibles dans le mode ╚ Aller Ю la ligne indiquИe ╩ :\n"
+" Les touches de fonctions suivantes sont disponibles dans le mode ╚ Aller Ю "
+"la ligne indiquИe ╩ :\n"
"\n"
-#: nano.c:2424
+#: nano.c:2434
msgid ""
"Insert File Help Text\n"
"\n"
-" Type in the name of a file to be inserted into the current file buffer at the current cursor location.\n"
+" Type in the name of a file to be inserted into the current file buffer at "
+"the current cursor location.\n"
"\n"
-" If you have compiled nano with multiple file buffer support, and enable multiple buffers with the -F or --multibuffer command line flags, the Meta-F toggle or using a nanorc file, inserting a file will cause it to be loaded into a separate buffer (use Meta-< and > to switch between file buffers).\n"
+" If you have compiled nano with multiple file buffer support, and enable "
+"multiple buffers with the -F or --multibuffer command line flags, the Meta-F "
+"toggle or using a nanorc file, inserting a file will cause it to be loaded "
+"into a separate buffer (use Meta-< and > to switch between file buffers).\n"
"\n"
" The following function keys are available in Insert File mode:\n"
"\n"
msgstr ""
"Aide sur l'insertion de fichier\n"
"\n"
-" Indiquez le nom du fichier que vous dИsirez insИrer. Il sera copiИ Ю l'intИrieur du fichier en cours lЮ oЫ se trouve le curseur.\n"
+" Indiquez le nom du fichier que vous dИsirez insИrer. Il sera copiИ Ю "
+"l'intИrieur du fichier en cours lЮ oЫ se trouve le curseur.\n"
"\n"
-" Si vous avez compilИ nano avec la capacitИ de traiter simultanИment plusieurs fichiers et que cette option a ИtИ activИe soit via l'option de dИmarrage -F ou --multibuffer, soit via le commutateur MИta-F, soit via le fichier nanorc, l'insertion d'un fichier entraНnera son chargement dans un tampon sИparИ (utilisez MИta-< et > pour passer d'un tampon Ю l'autre).\n"
+" Si vous avez compilИ nano avec la capacitИ de traiter simultanИment "
+"plusieurs fichiers et que cette option a ИtИ activИe soit via l'option de "
+"dИmarrage -F ou --multibuffer, soit via le commutateur MИta-F, soit via le "
+"fichier nanorc, l'insertion d'un fichier entraНnera son chargement dans un "
+"tampon sИparИ (utilisez MИta-< et > pour passer d'un tampon Ю l'autre).\n"
"\n"
-" Les touches de fonctions suivantes sont disponibles en mode ╚ Insertion de fichier ╩ :\n"
+" Les touches de fonctions suivantes sont disponibles en mode ╚ Insertion de "
+"fichier ╩ :\n"
"\n"
-#: nano.c:2435
+#: nano.c:2445
msgid ""
"Write File Help Text\n"
"\n"
-" Type the name that you wish to save the current file as and hit enter to save the file.\n"
+" Type the name that you wish to save the current file as and hit enter to "
+"save the file.\n"
"\n"
-" If you are using the marker code with Ctrl-^ and have selected text, you will be prompted to save only the selected portion to a separate file. To reduce the chance of overwriting the current file with just a portion of it, the current filename is not the default in this mode.\n"
+" If you are using the marker code with Ctrl-^ and have selected text, you "
+"will be prompted to save only the selected portion to a separate file. To "
+"reduce the chance of overwriting the current file with just a portion of it, "
+"the current filename is not the default in this mode.\n"
"\n"
" The following function keys are available in Write File mode:\n"
"\n"
msgstr ""
"Aide sur l'Иcriture de fichier\n"
"\n"
-" Indiquez le nom sous lequel vous dИsirez sauvegarder le fichier courant et appuyez sur la touche ╚ EntrИe ╩ pour effectuer la sauvegarde.\n"
+" Indiquez le nom sous lequel vous dИsirez sauvegarder le fichier courant et "
+"appuyez sur la touche ╚ EntrИe ╩ pour effectuer la sauvegarde.\n"
"\n"
-" Si vous utilisez le code de marquage avec Ctrl-^ et avez sИlectionnИ du texte, il vous sera proposИ de sauvegarder seulement la partie sИlectionnИe du texte dans un fichier sИparИ. Pour limiter le risque d'Иcraser le fichier en cours avec une simple portion de ce dernier, le nom du fichier courant n'est pas le nom qui vous sera proposИ par dИfaut dans ce mode.\n"
+" Si vous utilisez le code de marquage avec Ctrl-^ et avez sИlectionnИ du "
+"texte, il vous sera proposИ de sauvegarder seulement la partie sИlectionnИe "
+"du texte dans un fichier sИparИ. Pour limiter le risque d'Иcraser le "
+"fichier en cours avec une simple portion de ce dernier, le nom du fichier "
+"courant n'est pas le nom qui vous sera proposИ par dИfaut dans ce mode.\n"
"\n"
-" Les touches de fonctions suivantes sont disponibles en mode Иcriture de fichier :\n"
+" Les touches de fonctions suivantes sont disponibles en mode Иcriture de "
+"fichier :\n"
"\n"
-#: nano.c:2447
+#: nano.c:2457
msgid ""
"File Browser Help Text\n"
"\n"
-" The file browser is used to visually browse the directory structure to select a file for reading or writing. You may use the arrow keys or Page Up/Down to browse through the files, and S or Enter to choose the selected file or enter the selected directory. To move up one level, select the directory called \"..\" at the top of the file list.\n"
+" The file browser is used to visually browse the directory structure to "
+"select a file for reading or writing. You may use the arrow keys or Page Up/"
+"Down to browse through the files, and S or Enter to choose the selected file "
+"or enter the selected directory. To move up one level, select the directory "
+"called \"..\" at the top of the file list.\n"
"\n"
" The following functions keys are available in the file browser:\n"
"\n"
msgstr ""
"Aide du navigateur de fichiers\n"
"\n"
-" Le navigateur de fichiers est utilisИ pour parcourir visuellement la structure des rИpertoires afin de sИlectionner un fichier en lecture ou en Иcriture. Les flХches et les touches ╚ page prИcИdente ╩ et ╚ page suivante ╩ peuvent Йtre utilisИes pour parcourir les fichiers, les touches ╚ S ╩ et ╚ EntrИe ╩ permettent de sИlectionner un fichier ou de descendre dans un rИpertoire. Pour remonter dans l'arborescence des rИpertoires, sИlectionner le rИpertoire appelИ ╚ .. ╩ en haut de la liste des fichiers.\n"
+" Le navigateur de fichiers est utilisИ pour parcourir visuellement la "
+"structure des rИpertoires afin de sИlectionner un fichier en lecture ou en "
+"Иcriture. Les flХches et les touches ╚ page prИcИdente ╩ et ╚ page suivante "
+"╩ peuvent Йtre utilisИes pour parcourir les fichiers, les touches ╚ S ╩ et ╚ "
+"EntrИe ╩ permettent de sИlectionner un fichier ou de descendre dans un "
+"rИpertoire. Pour remonter dans l'arborescence des rИpertoires, sИlectionner "
+"le rИpertoire appelИ ╚ .. ╩ en haut de la liste des fichiers.\n"
"\n"
-" Les touches de fonctions suivantes sont disponibles en mode navigateur de fichiers :\n"
+" Les touches de fonctions suivantes sont disponibles en mode navigateur de "
+"fichiers :\n"
"\n"
-#: nano.c:2458
+#: nano.c:2468
msgid ""
"Browser Goto Directory Help Text\n"
"\n"
" Enter the name of the directory you would like to browse to.\n"
"\n"
-" If tab completion has not been disabled, you can use the TAB key to (attempt to) automatically complete the directory name. The following function keys are available in Browser GotoDir mode:\n"
+" If tab completion has not been disabled, you can use the TAB key to "
+"(attempt to) automatically complete the directory name. The following "
+"function keys are available in Browser GotoDir mode:\n"
"\n"
msgstr ""
"Aide du changement de rИpertoire du navigateur de fichier\n"
"\n"
" Entrer le nom du rИpertoire que vous dИsirez parcourir.\n"
"\n"
-" Si la complИtion automatique du nom de fichier via ╚ Tab ╩ n'a pas ИtИ dИsactivИ, vous pouvez utiliser la touche ╚ Tab ╩ pour essayer de complИter automatiquement le nom du rИpertoire. Les touches de fonctions suivantes sont disponibles dans le mode ╚ changement de rИpertoire du navigateur de fichier ╩ :\n"
+" Si la complИtion automatique du nom de fichier via ╚ Tab ╩ n'a pas ИtИ "
+"dИsactivИ, vous pouvez utiliser la touche ╚ Tab ╩ pour essayer de complИter "
+"automatiquement le nom du rИpertoire. Les touches de fonctions suivantes "
+"sont disponibles dans le mode ╚ changement de rИpertoire du navigateur de "
+"fichier ╩ :\n"
"\n"
-#: nano.c:2466
+#: nano.c:2476
msgid ""
"Spell Check Help Text\n"
"\n"
-" The spell checker checks the spelling of all text in the current file. When an unknown word is encountered, it is highlighted and a replacement can be edited. It will then prompt to replace every instance of the given misspelled word in the current file.\n"
+" The spell checker checks the spelling of all text in the current file. "
+"When an unknown word is encountered, it is highlighted and a replacement can "
+"be edited. It will then prompt to replace every instance of the given "
+"misspelled word in the current file.\n"
"\n"
" The following other functions are available in Spell Check mode:\n"
"\n"
msgstr ""
"Aide du vИrification d'orthographe\n"
"\n"
-" Le vИrificateur d'orthographe vИrifie l'orthographe de tout le texte du fichier en cours. Lorsqu'un mot inconnu est rencontrИ, il est surlignИ et peut Йtre corrigИ. Il vous sera alors proposИ de remplacer chaque instance du mЙme mot par le mot corrigИ dans le fichier courant.\n"
+" Le vИrificateur d'orthographe vИrifie l'orthographe de tout le texte du "
+"fichier en cours. Lorsqu'un mot inconnu est rencontrИ, il est surlignИ et "
+"peut Йtre corrigИ. Il vous sera alors proposИ de remplacer chaque instance "
+"du mЙme mot par le mot corrigИ dans le fichier courant.\n"
"\n"
-" Les touches de fonctions suivantes sont disponibles en mode vИrification d'orthographe :\n"
+" Les touches de fonctions suivantes sont disponibles en mode vИrification "
+"d'orthographe :\n"
"\n"
-#: nano.c:2550
+#: nano.c:2560
#, c-format
msgid "%s enable/disable"
msgstr "%s (commutateur)"
-#: nano.c:2569
+#: nano.c:2579
msgid "enabled"
msgstr "activИ"
-#: nano.c:2570
+#: nano.c:2580
msgid "disabled"
msgstr "dИsactivИ"
-#: nano.c:2634
+#: nano.c:2644
msgid "NumLock glitch detected. Keypad will malfunction with NumLock off"
-msgstr "ProblХme liИ Ю VerrNum dИtectИ. Le pavИ numИrique fonctionnera mal si VerrNum est dИsactivИ"
+msgstr ""
+"ProblХme liИ Ю VerrNum dИtectИ. Le pavИ numИrique fonctionnera mal si "
+"VerrNum est dИsactivИ"
-#: nano.c:2931
+#: nano.c:2941
msgid "Main: set up windows\n"
msgstr "Main: configuration des fenЙtres\n"
-#: nano.c:2948
+#: nano.c:2958
msgid "Main: bottom win\n"
msgstr "Main: fenЙtre du bas\n"
-#: nano.c:2954
+#: nano.c:2964
msgid "Main: open file\n"
msgstr "Main: ouvrir fichier\n"
-#: nano.c:3013
+#: nano.c:3023
#, c-format
msgid "I got Alt-O-%c! (%d)\n"
msgstr "J'ai reГu Alt-O-%c! (%d)\n"
-#: nano.c:3047
+#: nano.c:3057
#, c-format
msgid "I got Alt-[-1-%c! (%d)\n"
msgstr "J'ai reГu Alt-[-1-%c! (%d)\n"
-#: nano.c:3077
+#: nano.c:3087
#, c-format
msgid "I got Alt-[-2-%c! (%d)\n"
msgstr "J'ai reГu Alt-[-2-%c! (%d)\n"
-#: nano.c:3146
+#: nano.c:3156
#, c-format
msgid "I got Alt-[-%c! (%d)\n"
msgstr "J'ai reГu Alt-[-%c! (%d)\n"
-#: nano.c:3183
+#: nano.c:3194
#, c-format
msgid "I got Alt-%c! (%d)\n"
msgstr "J'ai reГu Alt-%c! (%d)\n"
-#: rcfile.c:85
-msgid "\nPress return to continue starting nano\n"
-msgstr "\nAppuyer sur ╚ EntrИe ╩ pour poursuivre le dИmarrage de nano\n"
+#: rcfile.c:86
+#, fuzzy, c-format
+msgid "Error in %s on line %d: "
+msgstr "Erreur dans %s Ю la ligne %d : la commande %s n'a pas ИtИ comprise"
+
+#: rcfile.c:90
+msgid ""
+"\n"
+"Press return to continue starting nano\n"
+msgstr ""
+"\n"
+"Appuyer sur ╚ EntrИe ╩ pour poursuivre le dИmarrage de nano\n"
+
+#: rcfile.c:180
+#, c-format
+msgid ""
+"color %s not understood.\n"
+"Valid colors are \"green\", \"red\", \"blue\", \n"
+"\"white\", \"yellow\", \"cyan\", \"magenta\" and \n"
+"\"black\", with the optional prefix \"bright\".\n"
+msgstr ""
+
+#: rcfile.c:204
+msgid "Missing color name"
+msgstr ""
+
+#: rcfile.c:234 rcfile.c:288
+msgid "regex strings must begin and end with a \" character\n"
+msgstr ""
-#: rcfile.c:282
+#: rcfile.c:280
+msgid ""
+"\n"
+"\t\"start=\" requires a corresponding \"end=\""
+msgstr ""
+
+#: rcfile.c:330
msgid "parse_rcfile: Read a comment\n"
msgstr "parse_rcfile : lecture d'un commentaire\n"
-#: rcfile.c:303
-#, c-format
-msgid "Error in %s on line %d: command %s not understood"
+#: rcfile.c:351
+#, fuzzy, c-format
+msgid "command %s not understood"
msgstr "Erreur dans %s Ю la ligne %d : la commande %s n'a pas ИtИ comprise"
-#: rcfile.c:316
+#: rcfile.c:363
#, c-format
msgid "parse_rcfile: Parsing option %s\n"
msgstr "parse_rcfile : analyse de l'option %s\n"
-#: rcfile.c:334
-#, c-format
-msgid "Error in %s on line %d: option %s requires an argument"
+#: rcfile.c:381
+#, fuzzy, c-format
+msgid "option %s requires an argument"
msgstr "Erreur dans %s Ю la ligne %d : l'option %s nИcessite un argument"
-#: rcfile.c:345
-#, c-format
-msgid "Error in %s on line %d: requested fill size %d too small"
-msgstr "Erreur dans %s Ю la ligne %d : taille de remplissage %d demandИe trop petite"
+#: rcfile.c:392
+#, fuzzy, c-format
+msgid "requested fill size %d too small"
+msgstr ""
+"Erreur dans %s Ю la ligne %d : taille de remplissage %d demandИe trop petite"
-#: rcfile.c:354
-#, c-format
-msgid "Error in %s on line %d: requested tab size %d too small"
-msgstr "Erreur dans %s Ю la ligne %d: taille de tabulation %d demandИe trop petite"
+#: rcfile.c:402
+#, fuzzy, c-format
+msgid "requested tab size %d too small"
+msgstr ""
+"Erreur dans %s Ю la ligne %d: taille de tabulation %d demandИe trop petite"
-#: rcfile.c:368
+#: rcfile.c:417
#, c-format
msgid "set flag %d!\n"
msgstr "drapeau %d activИ !\n"
-#: rcfile.c:373
+#: rcfile.c:423
#, c-format
msgid "unset flag %d!\n"
msgstr "drapeau %d dИsactivИ !\n"
-#: rcfile.c:382
+#: rcfile.c:433
msgid "Errors found in .nanorc file"
msgstr "Le fichier .nanorc comporte des erreurs"
-#: rcfile.c:391
+#: rcfile.c:441
#, c-format
msgid "Unable to open ~/.nanorc file, %s"
msgstr "Impossible d'ouvrir le fichier ~/.nanorc, %s"
@@ -1167,7 +1319,7 @@ msgstr " [Arri
msgid " (to replace)"
msgstr " (Ю remplacer)"
-#: search.c:151 search.c:424
+#: search.c:151 search.c:438
msgid "Search Cancelled"
msgstr "Recherche annulИe"
@@ -1176,58 +1328,58 @@ msgstr "Recherche annul
msgid "\"%s...\" not found"
msgstr "╚ %s... ╩ non trouvИ"
-#: search.c:278 search.c:340
+#: search.c:292 search.c:354
msgid "Search Wrapped"
msgstr "La recherche a fait le tour"
-#: search.c:446
+#: search.c:460
#, c-format
msgid "Replaced %d occurrences"
msgstr "%d occurrences remplacИes"
-#: search.c:448
+#: search.c:462
msgid "Replaced 1 occurrence"
msgstr "1 occurrence remplacИe"
-#: search.c:586 search.c:698 search.c:714
+#: search.c:600 search.c:699 search.c:715
msgid "Replace Cancelled"
msgstr "Remplacement annulИ"
-#: search.c:636
+#: search.c:637
msgid "Replace this instance?"
msgstr "Remplacer cette occurrence?"
-#: search.c:648
+#: search.c:649
msgid "Replace failed: unknown subexpression!"
msgstr "иchec du remplacement : sous-expression inconnue"
-#: search.c:739
+#: search.c:740
#, c-format
msgid "Replace with [%s]"
msgstr "Remplacer par [%s]"
-#: search.c:743 search.c:747
+#: search.c:744 search.c:748
msgid "Replace with"
msgstr "Remplacer par"
-#: search.c:781
+#: search.c:782
msgid "Enter line number"
msgstr "Entrer le numИro de ligne"
-#: search.c:783
+#: search.c:784
msgid "Aborted"
msgstr "Abandon"
-#: search.c:792
+#: search.c:793
msgid "Come on, be reasonable"
msgstr "Allez, soyez raisonnable"
-#: search.c:854
+#: search.c:855
msgid "Not a bracket"
msgstr "N'est pas un crochet"
#. didn't find either left or right bracket
-#: search.c:899
+#: search.c:900
msgid "No matching bracket"
msgstr "Aucun crochet correspondant"
@@ -1248,29 +1400,29 @@ msgstr "nano : realloc : plus de m
msgid "actual_x_from_start for xplus=%d returned %d\n"
msgstr "actual_x_from_star pour xplus=%d Ю renvoyИ %d\n"
-#: winio.c:295 winio.c:466
+#: winio.c:294 winio.c:464
#, c-format
msgid "Aha! '%c' (%d)\n"
msgstr "Ah ah! ╚ %c ╩ (%d)\n"
-#: winio.c:498
+#: winio.c:496
#, c-format
msgid "input '%c' (%d)\n"
msgstr "entrИe ╚ %c ╩ (%d)\n"
-#: winio.c:546
+#: winio.c:544
msgid "New Buffer"
msgstr "Nouveau tampon"
-#: winio.c:550
+#: winio.c:548
msgid " File: ..."
msgstr " Fichier: ..."
-#: winio.c:552
+#: winio.c:550
msgid " DIR: ..."
msgstr " RиP: ..."
-#: winio.c:556
+#: winio.c:555
msgid "File: "
msgstr "Fichier: "
@@ -1282,17 +1434,17 @@ msgstr " R
msgid "Modified"
msgstr "ModifiИ"
-#: winio.c:1166
+#: winio.c:1272
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr "DИplacement jusqu'Ю (%d, %d) dans le tampon d'Иdition\n"
-#: winio.c:1177
+#: winio.c:1283
#, c-format
msgid "current->data = \"%s\"\n"
msgstr "current->data = ╚ %s ╩\n"
-#: winio.c:1251
+#: winio.c:1357
#, c-format
msgid "I got \"%s\"\n"
msgstr "J'ai obtenu ╚ %s ╩\n"
@@ -1300,79 +1452,80 @@ msgstr "J'ai obtenu
#. Yes, no and all are strings of any length. Each string consists of
#. all characters accepted as a valid character for that value.
#. The first value will be the one displayed in the shortcuts.
-#: winio.c:1280
+#: winio.c:1386
msgid "Yy"
msgstr "Oo"
-#: winio.c:1281
+#: winio.c:1387
msgid "Nn"
msgstr "Nn"
-#: winio.c:1282
+#: winio.c:1388
msgid "Aa"
msgstr "Tt"
-#: winio.c:1296
+#: winio.c:1402
msgid "Yes"
msgstr "Oui"
-#: winio.c:1300
+#: winio.c:1406
msgid "All"
msgstr "Tous"
-#: winio.c:1305
+#: winio.c:1411
msgid "No"
msgstr "Non"
-#: winio.c:1512
+#: winio.c:1617
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
-#: winio.c:1520
+#: winio.c:1626
+#, c-format
msgid "line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"
msgstr "ligne %d sur %d (%.0f%%), caractХre %ld sur %ld (%.0f%%)"
-#: winio.c:1685
+#: winio.c:1790
msgid "Dumping file buffer to stderr...\n"
msgstr "Envoi du tampon fichier sur stderr...\n"
-#: winio.c:1687
+#: winio.c:1792
msgid "Dumping cutbuffer to stderr...\n"
msgstr "Envoi du presse-papiers sur stderr...\n"
-#: winio.c:1689
+#: winio.c:1794
msgid "Dumping a buffer to stderr...\n"
msgstr "Envoi d'un tampon sur stderr...\n"
-#: winio.c:1764
+#: winio.c:1870
msgid "The nano text editor"
msgstr "L'Иditeur de texte nano"
-#: winio.c:1765
+#: winio.c:1871
msgid "version "
msgstr "version "
-#: winio.c:1766
+#: winio.c:1872
msgid "Brought to you by:"
msgstr "ProposИ par :"
-#: winio.c:1767
+#: winio.c:1873
msgid "Special thanks to:"
msgstr "Remerciements particuliers Ю :"
-#: winio.c:1768
+#: winio.c:1874
msgid "The Free Software Foundation"
msgstr "La Free Software Foundation"
-#: winio.c:1769
+#: winio.c:1876
msgid "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurses"
msgstr "Pavel Curtis, Zeyd Ben-Halim et Eric S. Raymond pour ncurses"
-#: winio.c:1770
+#: winio.c:1877
msgid "and anyone else we forgot..."
msgstr "et toute autre personne que nous ayons oubliИ..."
-#: winio.c:1771
+#: winio.c:1878
msgid "Thank you for using nano!\n"
msgstr "Merci d'utiliser nano !\n"
diff --git a/po/gl.po b/po/gl.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: nano 1.1.4\n"
-"POT-Creation-Date: 2002-01-05 14:33-0500\n"
+"POT-Creation-Date: 2002-01-19 13:10-0500\n"
"PO-Revision-Date: 2001-12-27 21:20+0100\n"
"Last-Translator: Jacobo Tarrio <jtarrio@iname.com>\n"
"Language-Team: Galician <gpul-traduccion@ceu.fi.udc.es>\n"
@@ -86,7 +86,7 @@ msgstr "filename
msgid "Can't insert file from outside of %s"
msgstr "Non se pode inserir un ficheiro de fСra de %s"
-#: files.c:440 files.c:1106 files.c:1467 nano.c:1806
+#: files.c:440 files.c:1106 files.c:1467 nano.c:1813
msgid "Cancelled"
msgstr "Cancelado"
@@ -404,7 +404,7 @@ msgid "Find other bracket"
msgstr "Busca-la parella"
#: global.c:306 global.c:448 global.c:481 global.c:514 global.c:527
-#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:602
+#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:603
msgid "Get Help"
msgstr "Axuda"
@@ -522,7 +522,7 @@ msgid "Find Other Bracket"
msgstr "Busca-la Parella"
#: global.c:451 global.c:484 global.c:517 global.c:529 global.c:554
-#: global.c:568 global.c:579 global.c:604 winio.c:1307
+#: global.c:568 global.c:579 global.c:605 winio.c:1413
msgid "Cancel"
msgstr "Cancelar"
@@ -601,9 +601,9 @@ msgid ""
"commonly used shortcuts in the editor.\n"
"\n"
" The notation for shortcuts is as follows: Control-key sequences are notated "
-"with a caret (^) symbol and are entered with the Control (Ctrl) key. "
-"Escape-key sequences are notated with the Meta (M) symbol and can be entered "
-"using either the Esc, Alt or Meta key depending on your keyboard setup. The "
+"with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-"
+"key sequences are notated with the Meta (M) symbol and can be entered using "
+"either the Esc, Alt or Meta key depending on your keyboard setup. The "
"following keystrokes are available in the main editor window. Optional keys "
"are shown in parentheses:\n"
"\n"
@@ -765,9 +765,7 @@ msgid " -F \t\tEnable multiple file buffers\n"
msgstr " -F \t\tAdmitir varios buffers de ficheiros\n"
#: nano.c:498
-msgid ""
-" -K\t\tUse alternate keypad routines\n"
-"\n"
+msgid " -K\t\tUse alternate keypad routines\n"
msgstr ""
#: nano.c:500
@@ -871,96 +869,96 @@ msgstr ""
"\n"
"OpciСns compiladas:"
-#: nano.c:640
+#: nano.c:638
msgid "Mark Set"
msgstr "Marca Posta"
-#: nano.c:645
+#: nano.c:643
msgid "Mark UNset"
msgstr "Marca Quitada"
-#: nano.c:1267
+#: nano.c:1264
#, c-format
msgid "check_wrap called with inptr->data=\"%s\"\n"
msgstr "chamouse a check_wrap con inptr->data=\"%s\"\n"
-#: nano.c:1319
+#: nano.c:1316
#, c-format
msgid "current->data now = \"%s\"\n"
msgstr "current->data agora = \"%s\"\n"
-#: nano.c:1371
+#: nano.c:1368
#, c-format
msgid "After, data = \"%s\"\n"
msgstr "Despois, data = \"%s\"\n"
-#: nano.c:1480
+#: nano.c:1484
msgid "Edit a replacement"
msgstr "Editar unha substituciСn"
-#: nano.c:1717
+#: nano.c:1724
#, c-format
msgid "Could not create a temporary filename: %s"
msgstr "Non se puido crear un ficheiro temporal: %s"
-#: nano.c:1723
+#: nano.c:1730
msgid "Spell checking failed: unable to write temp file!"
msgstr ""
"Fallou a correcciСn ortogrАfica: non se puido grava-lo ficheiro temporal"
-#: nano.c:1743
+#: nano.c:1750
msgid "Finished checking spelling"
msgstr "Rematou a correcciСn ortogrАfica"
-#: nano.c:1745
+#: nano.c:1752
msgid "Spell checking failed"
msgstr "Fallou a correcciСn ortogrАfica"
-#: nano.c:1774
+#: nano.c:1781
msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
msgstr ""
"©Grava-lo buffer modificado (SE RESPOSTA \"Non\" HANSE PERDE-LOS CAMBIOS)? "
-#: nano.c:1921
+#: nano.c:1928
msgid "Received SIGHUP"
msgstr "Recibiuse SIGHUP"
-#: nano.c:1988
+#: nano.c:1998
msgid "Cannot resize top win"
msgstr "Non se pode cambia-lo tamaЯo da fiestra superior"
-#: nano.c:1990
+#: nano.c:2000
msgid "Cannot move top win"
msgstr "Non se pode move-la fiestra superior"
-#: nano.c:1992
+#: nano.c:2002
msgid "Cannot resize edit win"
msgstr "Non se pode cambia-lo tamaЯo da fiestra de ediciСn"
-#: nano.c:1994
+#: nano.c:2004
msgid "Cannot move edit win"
msgstr "Non se pode move-la fiestra de ediciСn"
-#: nano.c:1996
+#: nano.c:2006
msgid "Cannot resize bottom win"
msgstr "Non se pode cambia-lo tamaЯo da fiestra inferior"
-#: nano.c:1998
+#: nano.c:2008
msgid "Cannot move bottom win"
msgstr "Non se pode move-la fiestra inferior"
-#: nano.c:2337
+#: nano.c:2347
msgid "Can now UnJustify!"
msgstr "║Agora pode Des-Xustificar!"
-#: nano.c:2403
+#: nano.c:2413
#, fuzzy
msgid ""
"Search Command Help Text\n"
"\n"
-" Enter the words or characters you would like to search for, then hit enter. "
-" If there is a match for the text you entered, the screen will be updated to "
-"the location of the nearest match for the search string.\n"
+" Enter the words or characters you would like to search for, then hit "
+"enter. If there is a match for the text you entered, the screen will be "
+"updated to the location of the nearest match for the search string.\n"
"\n"
" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or "
"using a nanorc file, the previous search string will be shown in brackets "
@@ -986,7 +984,7 @@ msgstr ""
" As seguintes teclas de funciСn estАn dispoЯibles no modo Busca:\n"
"\n"
-#: nano.c:2417
+#: nano.c:2427
msgid ""
"Goto Line Help Text\n"
"\n"
@@ -1006,7 +1004,7 @@ msgstr ""
" As seguintes teclas de funciСn estАn dispoЯibles no modo Ir А LiЯa:\n"
"\n"
-#: nano.c:2424
+#: nano.c:2434
#, fuzzy
msgid ""
"Insert File Help Text\n"
@@ -1037,7 +1035,7 @@ msgstr ""
"Ficheiro:\n"
"\n"
-#: nano.c:2435
+#: nano.c:2445
msgid ""
"Write File Help Text\n"
"\n"
@@ -1066,15 +1064,15 @@ msgstr ""
"Ficheiros:\n"
"\n"
-#: nano.c:2447
+#: nano.c:2457
msgid ""
"File Browser Help Text\n"
"\n"
" The file browser is used to visually browse the directory structure to "
-"select a file for reading or writing. You may use the arrow keys or Page "
-"Up/Down to browse through the files, and S or Enter to choose the selected "
-"file or enter the selected directory. To move up one level, select the "
-"directory called \"..\" at the top of the file list.\n"
+"select a file for reading or writing. You may use the arrow keys or Page Up/"
+"Down to browse through the files, and S or Enter to choose the selected file "
+"or enter the selected directory. To move up one level, select the directory "
+"called \"..\" at the top of the file list.\n"
"\n"
" The following functions keys are available in the file browser:\n"
"\n"
@@ -1092,7 +1090,7 @@ msgstr ""
"ficheiros:\n"
"\n"
-#: nano.c:2458
+#: nano.c:2468
msgid ""
"Browser Goto Directory Help Text\n"
"\n"
@@ -1113,7 +1111,7 @@ msgstr ""
"Navegador:\n"
"\n"
-#: nano.c:2466
+#: nano.c:2476
msgid ""
"Spell Check Help Text\n"
"\n"
@@ -1135,61 +1133,66 @@ msgstr ""
" Existen as seguintes funciСns no modo Corrector OrtogrАfico:\n"
"\n"
-#: nano.c:2550
+#: nano.c:2560
#, c-format
msgid "%s enable/disable"
msgstr "Activar/desactivar %s"
-#: nano.c:2569
+#: nano.c:2579
msgid "enabled"
msgstr "activado"
-#: nano.c:2570
+#: nano.c:2580
msgid "disabled"
msgstr "desactivado"
-#: nano.c:2634
+#: nano.c:2644
msgid "NumLock glitch detected. Keypad will malfunction with NumLock off"
msgstr "Detectouse un fallo en BloqNum. BloqNum ha estar activado sempre."
-#: nano.c:2931
+#: nano.c:2941
msgid "Main: set up windows\n"
msgstr "Main: configura-las fiestras\n"
-#: nano.c:2948
+#: nano.c:2958
msgid "Main: bottom win\n"
msgstr "Main: fiestra inferior\n"
-#: nano.c:2954
+#: nano.c:2964
msgid "Main: open file\n"
msgstr "Main: abrir ficheiro\n"
-#: nano.c:3013
+#: nano.c:3023
#, c-format
msgid "I got Alt-O-%c! (%d)\n"
msgstr "║Recibiuse Alt-O-%c! (%d)\n"
-#: nano.c:3047
+#: nano.c:3057
#, c-format
msgid "I got Alt-[-1-%c! (%d)\n"
msgstr "║Recibiuse Alt-[-1-%c! (%d)\n"
-#: nano.c:3077
+#: nano.c:3087
#, c-format
msgid "I got Alt-[-2-%c! (%d)\n"
msgstr "║Recibiuse Alt-[-2-%c! (%d)\n"
-#: nano.c:3146
+#: nano.c:3156
#, c-format
msgid "I got Alt-[-%c! (%d)\n"
msgstr "║Recibiuse Alt-[-%c! (%d)\n"
-#: nano.c:3183
+#: nano.c:3194
#, c-format
msgid "I got Alt-%c! (%d)\n"
msgstr "║Recibiuse Alt-%c! (%d)\n"
-#: rcfile.c:85
+#: rcfile.c:86
+#, fuzzy, c-format
+msgid "Error in %s on line %d: "
+msgstr "Erro en %s na liЯa %d: o comando %s non se comprendeu"
+
+#: rcfile.c:90
msgid ""
"\n"
"Press return to continue starting nano\n"
@@ -1197,52 +1200,75 @@ msgstr ""
"\n"
"Prema enter para seguir cargando nano\n"
-#: rcfile.c:282
+#: rcfile.c:180
+#, c-format
+msgid ""
+"color %s not understood.\n"
+"Valid colors are \"green\", \"red\", \"blue\", \n"
+"\"white\", \"yellow\", \"cyan\", \"magenta\" and \n"
+"\"black\", with the optional prefix \"bright\".\n"
+msgstr ""
+
+#: rcfile.c:204
+msgid "Missing color name"
+msgstr ""
+
+#: rcfile.c:234 rcfile.c:288
+msgid "regex strings must begin and end with a \" character\n"
+msgstr ""
+
+#: rcfile.c:280
+msgid ""
+"\n"
+"\t\"start=\" requires a corresponding \"end=\""
+msgstr ""
+
+#: rcfile.c:330
msgid "parse_rcfile: Read a comment\n"
msgstr "parse_rcfile: Ler un comentario\n"
-#: rcfile.c:303
-#, c-format
-msgid "Error in %s on line %d: command %s not understood"
+#: rcfile.c:351
+#, fuzzy, c-format
+msgid "command %s not understood"
msgstr "Erro en %s na liЯa %d: o comando %s non se comprendeu"
-#: rcfile.c:316
+#: rcfile.c:363
#, c-format
msgid "parse_rcfile: Parsing option %s\n"
msgstr "parse_rcfile: Analizando a opciСn %s\n"
-#: rcfile.c:334
-#, c-format
-msgid "Error in %s on line %d: option %s requires an argument"
+#: rcfile.c:381
+#, fuzzy, c-format
+msgid "option %s requires an argument"
msgstr "Erro en %s na liЯa %d: a opciСn %s precisa dun argumento"
-#: rcfile.c:345
-#, c-format
-msgid "Error in %s on line %d: requested fill size %d too small"
+#: rcfile.c:392
+#, fuzzy, c-format
+msgid "requested fill size %d too small"
msgstr ""
"Erro en %s na liЯa %d: o tamaЯo de recheo solicitado %d И pequeno de mАis"
-#: rcfile.c:354
-#, c-format
-msgid "Error in %s on line %d: requested tab size %d too small"
+#: rcfile.c:402
+#, fuzzy, c-format
+msgid "requested tab size %d too small"
msgstr ""
"Erro en %s na liЯa %d: o tamaЯo de tabulaciСn solicitado %d И pequeno de mАis"
-#: rcfile.c:368
+#: rcfile.c:417
#, c-format
msgid "set flag %d!\n"
msgstr "║estabrece-lo indicador %d!\n"
-#: rcfile.c:373
+#: rcfile.c:423
#, c-format
msgid "unset flag %d!\n"
msgstr "║elimina-lo indicador %d!\n"
-#: rcfile.c:382
+#: rcfile.c:433
msgid "Errors found in .nanorc file"
msgstr "AtopАronse erros no ficheiro .nanorc"
-#: rcfile.c:391
+#: rcfile.c:441
#, c-format
msgid "Unable to open ~/.nanorc file, %s"
msgstr "Non se puido abri-lo ficheiro ~/.nanorc, %s"
@@ -1273,7 +1299,7 @@ msgstr " [Cara a Atr
msgid " (to replace)"
msgstr " (para substituМr)"
-#: search.c:151 search.c:424
+#: search.c:151 search.c:438
msgid "Search Cancelled"
msgstr "Busca Cancelada"
@@ -1282,58 +1308,58 @@ msgstr "Busca Cancelada"
msgid "\"%s...\" not found"
msgstr "Non se atopou \"%s...\""
-#: search.c:278 search.c:340
+#: search.c:292 search.c:354
msgid "Search Wrapped"
msgstr "Buscando dende o Principio"
-#: search.c:446
+#: search.c:460
#, c-format
msgid "Replaced %d occurrences"
msgstr "FixИronse %d substituciСns"
-#: search.c:448
+#: search.c:462
msgid "Replaced 1 occurrence"
msgstr "FМxose 1 substituciСn"
-#: search.c:586 search.c:698 search.c:714
+#: search.c:600 search.c:699 search.c:715
msgid "Replace Cancelled"
msgstr "SubstituciСn Cancelada"
-#: search.c:636
+#: search.c:637
msgid "Replace this instance?"
msgstr "©SubstituМr?"
-#: search.c:648
+#: search.c:649
msgid "Replace failed: unknown subexpression!"
msgstr "Fallou a substituciСn: subexpresiСn descoЯecida"
-#: search.c:739
+#: search.c:740
#, c-format
msgid "Replace with [%s]"
msgstr "SubstituМr por [%s]"
-#: search.c:743 search.c:747
+#: search.c:744 search.c:748
msgid "Replace with"
msgstr "SubstituМr por"
-#: search.c:781
+#: search.c:782
msgid "Enter line number"
msgstr "Introduza o nЗmero de liЯa"
-#: search.c:783
+#: search.c:784
msgid "Aborted"
msgstr "Abortado"
-#: search.c:792
+#: search.c:793
msgid "Come on, be reasonable"
msgstr "Vamos, sexa razonable"
-#: search.c:854
+#: search.c:855
msgid "Not a bracket"
msgstr "Non И un delimitador"
#. didn't find either left or right bracket
-#: search.c:899
+#: search.c:900
msgid "No matching bracket"
msgstr "Non se atopou a parella do delimitador"
@@ -1354,29 +1380,29 @@ msgstr "nano: realloc:
msgid "actual_x_from_start for xplus=%d returned %d\n"
msgstr "actual_x_from_start para xplus=%d devolveu %d\n"
-#: winio.c:295 winio.c:466
+#: winio.c:294 winio.c:464
#, c-format
msgid "Aha! '%c' (%d)\n"
msgstr "║AghА! '%c' (%d)\n"
-#: winio.c:498
+#: winio.c:496
#, c-format
msgid "input '%c' (%d)\n"
msgstr "entrada '%c' (%d)\n"
-#: winio.c:546
+#: winio.c:544
msgid "New Buffer"
msgstr "Novo Buffer"
-#: winio.c:550
+#: winio.c:548
msgid " File: ..."
msgstr " Ficheiro: ..."
-#: winio.c:552
+#: winio.c:550
msgid " DIR: ..."
msgstr " DIR: ..."
-#: winio.c:556
+#: winio.c:555
#, fuzzy
msgid "File: "
msgstr " Ficheiro: ..."
@@ -1390,17 +1416,17 @@ msgstr " DIR: ..."
msgid "Modified"
msgstr "Modificado"
-#: winio.c:1166
+#: winio.c:1272
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr "Moveuse a (%d, %d) no buffer de ediciСn\n"
-#: winio.c:1177
+#: winio.c:1283
#, c-format
msgid "current->data = \"%s\"\n"
msgstr "current->data = \"%s\"\n"
-#: winio.c:1251
+#: winio.c:1357
#, c-format
msgid "I got \"%s\"\n"
msgstr "Recibiuse \"%s\"\n"
@@ -1408,80 +1434,81 @@ msgstr "Recibiuse \"%s\"\n"
#. Yes, no and all are strings of any length. Each string consists of
#. all characters accepted as a valid character for that value.
#. The first value will be the one displayed in the shortcuts.
-#: winio.c:1280
+#: winio.c:1386
msgid "Yy"
msgstr "Ss"
-#: winio.c:1281
+#: winio.c:1387
msgid "Nn"
msgstr "Nn"
-#: winio.c:1282
+#: winio.c:1388
msgid "Aa"
msgstr "Tt"
-#: winio.c:1296
+#: winio.c:1402
msgid "Yes"
msgstr "Si"
-#: winio.c:1300
+#: winio.c:1406
msgid "All"
msgstr "Todo"
-#: winio.c:1305
+#: winio.c:1411
msgid "No"
msgstr "Non"
-#: winio.c:1512
+#: winio.c:1617
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
-#: winio.c:1520
+#: winio.c:1626
+#, c-format
msgid "line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"
msgstr "liЯa %d de %d (%.0f%%), carАcter %ld de %ld (%.0f%%)"
-#: winio.c:1685
+#: winio.c:1790
msgid "Dumping file buffer to stderr...\n"
msgstr "Envorcando o buffer de ficheiro a stderr...\n"
-#: winio.c:1687
+#: winio.c:1792
msgid "Dumping cutbuffer to stderr...\n"
msgstr "Envorcando o buffer de cortado a stderr...\n"
-#: winio.c:1689
+#: winio.c:1794
msgid "Dumping a buffer to stderr...\n"
msgstr "Envorcando un buffer a stderr...\n"
-#: winio.c:1764
+#: winio.c:1870
msgid "The nano text editor"
msgstr "O editor de texto nano"
-#: winio.c:1765
+#: winio.c:1871
msgid "version "
msgstr "versiСn "
-#: winio.c:1766
+#: winio.c:1872
msgid "Brought to you by:"
msgstr "Por cortesМa de:"
-#: winio.c:1767
+#: winio.c:1873
msgid "Special thanks to:"
msgstr "Gracias en especial a:"
-#: winio.c:1768
+#: winio.c:1874
msgid "The Free Software Foundation"
msgstr "A Free Software Foundation"
-#: winio.c:1769
+#: winio.c:1876
msgid "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurses"
msgstr "Pavel Curtis, Zeyd Ben-Halim e Eric S. Raymond por ncurses"
-#: winio.c:1770
+#: winio.c:1877
msgid "and anyone else we forgot..."
msgstr "e a todos os que esquencemos..."
-#: winio.c:1771
+#: winio.c:1878
msgid "Thank you for using nano!\n"
msgstr "║Gracias por usar nano!\n"
diff --git a/po/hu.po b/po/hu.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: nano 0.9.99pre2\n"
-"POT-Creation-Date: 2002-01-05 14:33-0500\n"
+"POT-Creation-Date: 2002-01-19 13:10-0500\n"
"PO-Revision-Date: 2001-02-03 07:47-0000\n"
"Last-Translator: Szabolcs Horvath <horvaths@penguinpowered.com>\n"
"Language-Team: Hungarian <magyar@lists.linux.hu>\n"
@@ -86,7 +86,7 @@ msgstr "a f
msgid "Can't insert file from outside of %s"
msgstr ""
-#: files.c:440 files.c:1106 files.c:1467 nano.c:1806
+#: files.c:440 files.c:1106 files.c:1467 nano.c:1813
msgid "Cancelled"
msgstr "MegszakМtva"
@@ -414,7 +414,7 @@ msgid "Find other bracket"
msgstr ""
#: global.c:306 global.c:448 global.c:481 global.c:514 global.c:527
-#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:602
+#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:603
msgid "Get Help"
msgstr "SЗgС"
@@ -532,7 +532,7 @@ msgid "Find Other Bracket"
msgstr ""
#: global.c:451 global.c:484 global.c:517 global.c:529 global.c:554
-#: global.c:568 global.c:579 global.c:604 winio.c:1307
+#: global.c:568 global.c:579 global.c:605 winio.c:1413
msgid "Cancel"
msgstr "MИgsem"
@@ -614,9 +614,9 @@ msgid ""
"commonly used shortcuts in the editor.\n"
"\n"
" The notation for shortcuts is as follows: Control-key sequences are notated "
-"with a caret (^) symbol and are entered with the Control (Ctrl) key. "
-"Escape-key sequences are notated with the Meta (M) symbol and can be entered "
-"using either the Esc, Alt or Meta key depending on your keyboard setup. The "
+"with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-"
+"key sequences are notated with the Meta (M) symbol and can be entered using "
+"either the Esc, Alt or Meta key depending on your keyboard setup. The "
"following keystrokes are available in the main editor window. Optional keys "
"are shown in parentheses:\n"
"\n"
@@ -781,9 +781,7 @@ msgid " -F \t\tEnable multiple file buffers\n"
msgstr ""
#: nano.c:498
-msgid ""
-" -K\t\tUse alternate keypad routines\n"
-"\n"
+msgid " -K\t\tUse alternate keypad routines\n"
msgstr ""
#: nano.c:500
@@ -887,95 +885,95 @@ msgstr ""
"\n"
" FordМtАsi paramИterek:"
-#: nano.c:640
+#: nano.c:638
msgid "Mark Set"
msgstr "MegjelЖlИs kezdete"
-#: nano.c:645
+#: nano.c:643
msgid "Mark UNset"
msgstr "MegjelЖlИs vИge"
-#: nano.c:1267
+#: nano.c:1264
#, c-format
msgid "check_wrap called with inptr->data=\"%s\"\n"
msgstr "check_wrap az inptr->data-bСl lett meghМvva (\"%s\")\n"
-#: nano.c:1319
+#: nano.c:1316
#, c-format
msgid "current->data now = \"%s\"\n"
msgstr "current->data most = \"%s\"\n"
-#: nano.c:1371
+#: nano.c:1368
#, c-format
msgid "After, data = \"%s\"\n"
msgstr "EzutАn az adat ez lett = \"%s\"\n"
-#: nano.c:1480
+#: nano.c:1484
msgid "Edit a replacement"
msgstr "A helyettesМtУ ИrtИk mСdosМtАsa"
-#: nano.c:1717
+#: nano.c:1724
#, c-format
msgid "Could not create a temporary filename: %s"
msgstr "Az ideiglenes fАjlt nem tudtam lИtrehozni: %s"
-#: nano.c:1723
+#: nano.c:1730
msgid "Spell checking failed: unable to write temp file!"
msgstr ""
"A helyesМrАs-ellenУrzИs nem sikerЭlt: kИptelen vagyok Мrni a temp fАjlt!"
-#: nano.c:1743
+#: nano.c:1750
msgid "Finished checking spelling"
msgstr "A helyesМrАs-ellenУrzИs befejezИse"
-#: nano.c:1745
+#: nano.c:1752
msgid "Spell checking failed"
msgstr "HelyesМrАs-ellenУrzИs nem sikerЭlt"
-#: nano.c:1774
+#: nano.c:1781
msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
msgstr ""
"A vАltozАsokat elmentsem (HA \"NEM\", AKKOR MINDEN MсDOSмTаS ELVESZIK) ?"
-#: nano.c:1921
+#: nano.c:1928
msgid "Received SIGHUP"
msgstr "Kaptam egy SIGHUPot"
-#: nano.c:1988
+#: nano.c:1998
msgid "Cannot resize top win"
msgstr "A felsУ ablakot nem tudom АtmИretezni"
-#: nano.c:1990
+#: nano.c:2000
msgid "Cannot move top win"
msgstr "A felsУ ablakot nem tudom mozgatni"
-#: nano.c:1992
+#: nano.c:2002
msgid "Cannot resize edit win"
msgstr "A szerkesztУ ablakot nem tudom АtmИretezni"
-#: nano.c:1994
+#: nano.c:2004
msgid "Cannot move edit win"
msgstr "A szerkesztУ ablakot nem tudom mozgatni"
-#: nano.c:1996
+#: nano.c:2006
msgid "Cannot resize bottom win"
msgstr "Az alsС ablakot nem tudom АtmИretezni"
-#: nano.c:1998
+#: nano.c:2008
msgid "Cannot move bottom win"
msgstr "Az alsС ablakot nem tudom mozgatni"
-#: nano.c:2337
+#: nano.c:2347
msgid "Can now UnJustify!"
msgstr "A sorokat most mАr tudom nem sorkizАrttА tenni"
-#: nano.c:2403
+#: nano.c:2413
msgid ""
"Search Command Help Text\n"
"\n"
-" Enter the words or characters you would like to search for, then hit enter. "
-" If there is a match for the text you entered, the screen will be updated to "
-"the location of the nearest match for the search string.\n"
+" Enter the words or characters you would like to search for, then hit "
+"enter. If there is a match for the text you entered, the screen will be "
+"updated to the location of the nearest match for the search string.\n"
"\n"
" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or "
"using a nanorc file, the previous search string will be shown in brackets "
@@ -987,7 +985,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2417
+#: nano.c:2427
msgid ""
"Goto Line Help Text\n"
"\n"
@@ -999,7 +997,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2424
+#: nano.c:2434
msgid ""
"Insert File Help Text\n"
"\n"
@@ -1015,7 +1013,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2435
+#: nano.c:2445
msgid ""
"Write File Help Text\n"
"\n"
@@ -1031,21 +1029,21 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2447
+#: nano.c:2457
msgid ""
"File Browser Help Text\n"
"\n"
" The file browser is used to visually browse the directory structure to "
-"select a file for reading or writing. You may use the arrow keys or Page "
-"Up/Down to browse through the files, and S or Enter to choose the selected "
-"file or enter the selected directory. To move up one level, select the "
-"directory called \"..\" at the top of the file list.\n"
+"select a file for reading or writing. You may use the arrow keys or Page Up/"
+"Down to browse through the files, and S or Enter to choose the selected file "
+"or enter the selected directory. To move up one level, select the directory "
+"called \"..\" at the top of the file list.\n"
"\n"
" The following functions keys are available in the file browser:\n"
"\n"
msgstr ""
-#: nano.c:2458
+#: nano.c:2468
msgid ""
"Browser Goto Directory Help Text\n"
"\n"
@@ -1057,7 +1055,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2466
+#: nano.c:2476
msgid ""
"Spell Check Help Text\n"
"\n"
@@ -1070,112 +1068,140 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2550
+#: nano.c:2560
#, c-format
msgid "%s enable/disable"
msgstr "%s engedИlyezИs/kikapcsolАs"
-#: nano.c:2569
+#: nano.c:2579
msgid "enabled"
msgstr "engedИlyezve"
-#: nano.c:2570
+#: nano.c:2580
msgid "disabled"
msgstr "kikapcsolva"
-#: nano.c:2634
+#: nano.c:2644
msgid "NumLock glitch detected. Keypad will malfunction with NumLock off"
msgstr ""
"NumLock hibАt fedeztem fel. A Keypad rosszul mШkЖdhet, ha a NumLock be van "
"kapcsolva"
-#: nano.c:2931
+#: nano.c:2941
msgid "Main: set up windows\n"
msgstr "FУprogram: az ablakok beАllМtАsa\n"
-#: nano.c:2948
+#: nano.c:2958
msgid "Main: bottom win\n"
msgstr "FУprogram: alsС ablak\n"
-#: nano.c:2954
+#: nano.c:2964
msgid "Main: open file\n"
msgstr "FУprogram: fАjl megnyitАsa\n"
-#: nano.c:3013
+#: nano.c:3023
#, c-format
msgid "I got Alt-O-%c! (%d)\n"
msgstr "Az Alt-O-%c billentyШket lenyomtad! (%d)\n"
-#: nano.c:3047
+#: nano.c:3057
#, c-format
msgid "I got Alt-[-1-%c! (%d)\n"
msgstr "Az Alt-[-1-%c billentyШket lenyomtad! (%d)\n"
-#: nano.c:3077
+#: nano.c:3087
#, c-format
msgid "I got Alt-[-2-%c! (%d)\n"
msgstr "Az Alt-[-2-%c billentyШket lenyomtad! (%d)\n"
-#: nano.c:3146
+#: nano.c:3156
#, c-format
msgid "I got Alt-[-%c! (%d)\n"
msgstr "Az Alt-[-%c billentyШket lenyomtad! (%d)\n"
-#: nano.c:3183
+#: nano.c:3194
#, c-format
msgid "I got Alt-%c! (%d)\n"
msgstr "Az Alt-%c billentyШket lenyomtad! (%d)\n"
-#: rcfile.c:85
+#: rcfile.c:86
+#, c-format
+msgid "Error in %s on line %d: "
+msgstr ""
+
+#: rcfile.c:90
msgid ""
"\n"
"Press return to continue starting nano\n"
msgstr ""
-#: rcfile.c:282
+#: rcfile.c:180
+#, c-format
+msgid ""
+"color %s not understood.\n"
+"Valid colors are \"green\", \"red\", \"blue\", \n"
+"\"white\", \"yellow\", \"cyan\", \"magenta\" and \n"
+"\"black\", with the optional prefix \"bright\".\n"
+msgstr ""
+
+#: rcfile.c:204
+msgid "Missing color name"
+msgstr ""
+
+#: rcfile.c:234 rcfile.c:288
+msgid "regex strings must begin and end with a \" character\n"
+msgstr ""
+
+#: rcfile.c:280
+msgid ""
+"\n"
+"\t\"start=\" requires a corresponding \"end=\""
+msgstr ""
+
+#: rcfile.c:330
msgid "parse_rcfile: Read a comment\n"
msgstr ""
-#: rcfile.c:303
+#: rcfile.c:351
#, c-format
-msgid "Error in %s on line %d: command %s not understood"
+msgid "command %s not understood"
msgstr ""
-#: rcfile.c:316
+#: rcfile.c:363
#, c-format
msgid "parse_rcfile: Parsing option %s\n"
msgstr ""
-#: rcfile.c:334
+#: rcfile.c:381
#, c-format
-msgid "Error in %s on line %d: option %s requires an argument"
+msgid "option %s requires an argument"
msgstr ""
-#: rcfile.c:345
+#: rcfile.c:392
#, c-format
-msgid "Error in %s on line %d: requested fill size %d too small"
+msgid "requested fill size %d too small"
msgstr ""
-#: rcfile.c:354
+#: rcfile.c:402
#, c-format
-msgid "Error in %s on line %d: requested tab size %d too small"
+msgid "requested tab size %d too small"
msgstr ""
-#: rcfile.c:368
+#: rcfile.c:417
#, c-format
msgid "set flag %d!\n"
msgstr ""
-#: rcfile.c:373
+#: rcfile.c:423
#, c-format
msgid "unset flag %d!\n"
msgstr ""
-#: rcfile.c:382
+#: rcfile.c:433
msgid "Errors found in .nanorc file"
msgstr ""
-#: rcfile.c:391
+#: rcfile.c:441
#, c-format
msgid "Unable to open ~/.nanorc file, %s"
msgstr ""
@@ -1209,7 +1235,7 @@ msgstr "Vissza"
msgid " (to replace)"
msgstr " (cserИre)"
-#: search.c:151 search.c:424
+#: search.c:151 search.c:438
msgid "Search Cancelled"
msgstr "KeresИs megszakМtva"
@@ -1218,59 +1244,59 @@ msgstr "Keres
msgid "\"%s...\" not found"
msgstr "\"%s...\" nem talАlhatС"
-#: search.c:278 search.c:340
+#: search.c:292 search.c:354
msgid "Search Wrapped"
msgstr ""
-#: search.c:446
+#: search.c:460
#, fuzzy, c-format
msgid "Replaced %d occurrences"
msgstr "%d alkalommal fordult elУ, kicserИltem azokat"
-#: search.c:448
+#: search.c:462
#, fuzzy
msgid "Replaced 1 occurrence"
msgstr "Egyszer fordult elУ, kicserИltem"
-#: search.c:586 search.c:698 search.c:714
+#: search.c:600 search.c:699 search.c:715
msgid "Replace Cancelled"
msgstr "A csere megszakМtva"
-#: search.c:636
+#: search.c:637
msgid "Replace this instance?"
msgstr ""
-#: search.c:648
+#: search.c:649
msgid "Replace failed: unknown subexpression!"
msgstr "Hiba a cserИnИl: ismeretlen alkifejezИs!"
-#: search.c:739
+#: search.c:740
#, c-format
msgid "Replace with [%s]"
msgstr "CserИlИs erre [%s]"
-#: search.c:743 search.c:747
+#: search.c:744 search.c:748
msgid "Replace with"
msgstr "Erre lesz cserИlve"
-#: search.c:781
+#: search.c:782
msgid "Enter line number"
msgstr "KИrem a sor szАmАt"
-#: search.c:783
+#: search.c:784
msgid "Aborted"
msgstr "MegszakМtva"
-#: search.c:792
+#: search.c:793
msgid "Come on, be reasonable"
msgstr "GyerЭnk, adj meg egy hihetУbb ИrtИket :-)"
-#: search.c:854
+#: search.c:855
msgid "Not a bracket"
msgstr ""
#. didn't find either left or right bracket
-#: search.c:899
+#: search.c:900
msgid "No matching bracket"
msgstr ""
@@ -1291,29 +1317,29 @@ msgstr ""
msgid "actual_x_from_start for xplus=%d returned %d\n"
msgstr "actual_x_from_start az xplus=%d-hoz visszatИrt: %d\n"
-#: winio.c:295 winio.c:466
+#: winio.c:294 winio.c:464
#, fuzzy, c-format
msgid "Aha! '%c' (%d)\n"
msgstr "bevitel '%c' (%d)\n"
-#: winio.c:498
+#: winio.c:496
#, c-format
msgid "input '%c' (%d)\n"
msgstr "bevitel '%c' (%d)\n"
-#: winio.c:546
+#: winio.c:544
msgid "New Buffer"
msgstr "зj fАjl"
-#: winio.c:550
+#: winio.c:548
msgid " File: ..."
msgstr " FАjl: ..."
-#: winio.c:552
+#: winio.c:550
msgid " DIR: ..."
msgstr " KЖnyvtАr: ..."
-#: winio.c:556
+#: winio.c:555
#, fuzzy
msgid "File: "
msgstr " FАjl: ..."
@@ -1327,17 +1353,17 @@ msgstr " K
msgid "Modified"
msgstr "MСdosМtva"
-#: winio.c:1166
+#: winio.c:1272
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr "аtmozgattam (%d, %d) a szerkesztУ-bufferben\n"
-#: winio.c:1177
+#: winio.c:1283
#, c-format
msgid "current->data = \"%s\"\n"
msgstr ""
-#: winio.c:1251
+#: winio.c:1357
#, c-format
msgid "I got \"%s\"\n"
msgstr "A \"%s\" lenyomva van.\n"
@@ -1345,80 +1371,81 @@ msgstr "A \"%s\" lenyomva van.\n"
#. Yes, no and all are strings of any length. Each string consists of
#. all characters accepted as a valid character for that value.
#. The first value will be the one displayed in the shortcuts.
-#: winio.c:1280
+#: winio.c:1386
msgid "Yy"
msgstr "Ii"
-#: winio.c:1281
+#: winio.c:1387
msgid "Nn"
msgstr "Nn"
-#: winio.c:1282
+#: winio.c:1388
msgid "Aa"
msgstr "Mm"
-#: winio.c:1296
+#: winio.c:1402
msgid "Yes"
msgstr "Igen"
-#: winio.c:1300
+#: winio.c:1406
msgid "All"
msgstr "Mindet"
-#: winio.c:1305
+#: winio.c:1411
msgid "No"
msgstr "Nem"
-#: winio.c:1512
+#: winio.c:1617
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr ""
-#: winio.c:1520
+#: winio.c:1626
+#, c-format
msgid "line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"
msgstr "%d(/%d). sor (%.0f%%) Иs a(z) %ld(/%ld). karakter (%.0f%%)"
-#: winio.c:1685
+#: winio.c:1790
msgid "Dumping file buffer to stderr...\n"
msgstr "A fАjlbuffer kiМrАsa a standard hibakimenetre...\n"
-#: winio.c:1687
+#: winio.c:1792
msgid "Dumping cutbuffer to stderr...\n"
msgstr "A cutbuffer kiМrАsa a standard hibakimenetre...\n"
-#: winio.c:1689
+#: winio.c:1794
msgid "Dumping a buffer to stderr...\n"
msgstr "A buffer kiМrАsa a standard hibakimenetre...\n"
-#: winio.c:1764
+#: winio.c:1870
msgid "The nano text editor"
msgstr "A nano szЖvegszerkesztУ"
-#: winio.c:1765
+#: winio.c:1871
msgid "version "
msgstr "verziС "
-#: winio.c:1766
+#: winio.c:1872
msgid "Brought to you by:"
msgstr "A nano-t Уk kИszМtettИk el Neked:"
-#: winio.c:1767
+#: winio.c:1873
msgid "Special thanks to:"
msgstr "KЭlЖn kЖszЖnet:"
-#: winio.c:1768
+#: winio.c:1874
msgid "The Free Software Foundation"
msgstr "A Szabad Szoftver AlapМtvАny"
-#: winio.c:1769
+#: winio.c:1876
msgid "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurses"
msgstr "Pavel Curtis, Zeyd Ben-Halim Иs Eric S. Raymond az ncurses-Иrt"
-#: winio.c:1770
+#: winio.c:1877
msgid "and anyone else we forgot..."
msgstr "Иs mindenkinek, akit kifelejtettЭnk volna..."
-#: winio.c:1771
+#: winio.c:1878
msgid "Thank you for using nano!\n"
msgstr "KЖszЖnjЭk, hogy a nano-t vАlasztottad!\n"
diff --git a/po/id.po b/po/id.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: nano 1.0.2\n"
-"POT-Creation-Date: 2002-01-05 14:33-0500\n"
+"POT-Creation-Date: 2002-01-19 13:10-0500\n"
"PO-Revision-Date: 2001-06-22 14:38GMT+0700\n"
"Last-Translator: Tedi Heriyanto <tedi_h@gmx.net>\n"
"Language-Team: Indonesian <id@li.org>\n"
@@ -86,7 +86,7 @@ msgstr "Namafile adalah %s"
msgid "Can't insert file from outside of %s"
msgstr ""
-#: files.c:440 files.c:1106 files.c:1467 nano.c:1806
+#: files.c:440 files.c:1106 files.c:1467 nano.c:1813
msgid "Cancelled"
msgstr "Dibatalkan"
@@ -414,7 +414,7 @@ msgid "Find other bracket"
msgstr ""
#: global.c:306 global.c:448 global.c:481 global.c:514 global.c:527
-#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:602
+#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:603
msgid "Get Help"
msgstr "Bantuan"
@@ -532,7 +532,7 @@ msgid "Find Other Bracket"
msgstr ""
#: global.c:451 global.c:484 global.c:517 global.c:529 global.c:554
-#: global.c:568 global.c:579 global.c:604 winio.c:1307
+#: global.c:568 global.c:579 global.c:605 winio.c:1413
msgid "Cancel"
msgstr "Batal"
@@ -614,9 +614,9 @@ msgid ""
"commonly used shortcuts in the editor.\n"
"\n"
" The notation for shortcuts is as follows: Control-key sequences are notated "
-"with a caret (^) symbol and are entered with the Control (Ctrl) key. "
-"Escape-key sequences are notated with the Meta (M) symbol and can be entered "
-"using either the Esc, Alt or Meta key depending on your keyboard setup. The "
+"with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-"
+"key sequences are notated with the Meta (M) symbol and can be entered using "
+"either the Esc, Alt or Meta key depending on your keyboard setup. The "
"following keystrokes are available in the main editor window. Optional keys "
"are shown in parentheses:\n"
"\n"
@@ -634,8 +634,8 @@ msgstr ""
"\n"
"Notasi untuk shortcut adalah sebagai berikut : urutan kunci Control "
"dilambangkan\n"
-"dengan simbol caret (^) dan dimasukkan dengan menekan tombol Control (Ctrl). "
-"\n"
+"dengan simbol caret (^) dan dimasukkan dengan menekan tombol Control "
+"(Ctrl). \n"
"Urutan kunci Escape dilambangkan dengan simbol Meta (M) dan dapat dimasukkan "
"dengan \n"
"menggunakan tombol Esc, Alt atau Meta tergantung pada setup keyboard anda. \n"
@@ -781,9 +781,7 @@ msgid " -F \t\tEnable multiple file buffers\n"
msgstr ""
#: nano.c:498
-msgid ""
-" -K\t\tUse alternate keypad routines\n"
-"\n"
+msgid " -K\t\tUse alternate keypad routines\n"
msgstr ""
#: nano.c:500
@@ -887,93 +885,93 @@ msgstr ""
"\n"
"Option kompilasi:"
-#: nano.c:640
+#: nano.c:638
msgid "Mark Set"
msgstr "Set Tanda"
-#: nano.c:645
+#: nano.c:643
msgid "Mark UNset"
msgstr "Unset Tanda"
-#: nano.c:1267
+#: nano.c:1264
#, c-format
msgid "check_wrap called with inptr->data=\"%s\"\n"
msgstr "check_wrap dipanggil dengan inptr->data=\"%s\"\n"
-#: nano.c:1319
+#: nano.c:1316
#, c-format
msgid "current->data now = \"%s\"\n"
msgstr "current->data sekarang =\"%s\"\n"
-#: nano.c:1371
+#: nano.c:1368
#, c-format
msgid "After, data = \"%s\"\n"
msgstr "Setelah, data= \"%s\"\n"
-#: nano.c:1480
+#: nano.c:1484
msgid "Edit a replacement"
msgstr "Edit pengganti"
-#: nano.c:1717
+#: nano.c:1724
#, c-format
msgid "Could not create a temporary filename: %s"
msgstr "Tidak dapat membuat nama file sementara: %s"
-#: nano.c:1723
+#: nano.c:1730
msgid "Spell checking failed: unable to write temp file!"
msgstr "Spell checking gagal: tidak dapat menulis file temp!"
-#: nano.c:1743
+#: nano.c:1750
msgid "Finished checking spelling"
msgstr "Selesai memeriksa ejaan"
-#: nano.c:1745
+#: nano.c:1752
msgid "Spell checking failed"
msgstr "Spell checking gagal"
-#: nano.c:1774
+#: nano.c:1781
msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
msgstr "Simpan buffer termodifikasi (JAWAB \"No\" AKAN MENGHAPUS PERUBAHAN) ?"
-#: nano.c:1921
+#: nano.c:1928
msgid "Received SIGHUP"
msgstr "Menerima SIGHUP"
-#: nano.c:1988
+#: nano.c:1998
msgid "Cannot resize top win"
msgstr "Tidak dapat menganti ukuran jendela atas"
-#: nano.c:1990
+#: nano.c:2000
msgid "Cannot move top win"
msgstr "Tidak dapat memindahkan jendela atas"
-#: nano.c:1992
+#: nano.c:2002
msgid "Cannot resize edit win"
msgstr "Tidak dapat mengganti ukuran jendela edit"
-#: nano.c:1994
+#: nano.c:2004
msgid "Cannot move edit win"
msgstr "Tidak dapat memindah jendela edit"
-#: nano.c:1996
+#: nano.c:2006
msgid "Cannot resize bottom win"
msgstr "Tidak dapat mengganti ukuran jendela bawah"
-#: nano.c:1998
+#: nano.c:2008
msgid "Cannot move bottom win"
msgstr "Tidak dapat memindah jendela bawah"
-#: nano.c:2337
+#: nano.c:2347
msgid "Can now UnJustify!"
msgstr "Sekarang dapat melakukan UnJustify"
-#: nano.c:2403
+#: nano.c:2413
msgid ""
"Search Command Help Text\n"
"\n"
-" Enter the words or characters you would like to search for, then hit enter. "
-" If there is a match for the text you entered, the screen will be updated to "
-"the location of the nearest match for the search string.\n"
+" Enter the words or characters you would like to search for, then hit "
+"enter. If there is a match for the text you entered, the screen will be "
+"updated to the location of the nearest match for the search string.\n"
"\n"
" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or "
"using a nanorc file, the previous search string will be shown in brackets "
@@ -985,7 +983,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2417
+#: nano.c:2427
msgid ""
"Goto Line Help Text\n"
"\n"
@@ -997,7 +995,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2424
+#: nano.c:2434
msgid ""
"Insert File Help Text\n"
"\n"
@@ -1013,7 +1011,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2435
+#: nano.c:2445
msgid ""
"Write File Help Text\n"
"\n"
@@ -1029,21 +1027,21 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2447
+#: nano.c:2457
msgid ""
"File Browser Help Text\n"
"\n"
" The file browser is used to visually browse the directory structure to "
-"select a file for reading or writing. You may use the arrow keys or Page "
-"Up/Down to browse through the files, and S or Enter to choose the selected "
-"file or enter the selected directory. To move up one level, select the "
-"directory called \"..\" at the top of the file list.\n"
+"select a file for reading or writing. You may use the arrow keys or Page Up/"
+"Down to browse through the files, and S or Enter to choose the selected file "
+"or enter the selected directory. To move up one level, select the directory "
+"called \"..\" at the top of the file list.\n"
"\n"
" The following functions keys are available in the file browser:\n"
"\n"
msgstr ""
-#: nano.c:2458
+#: nano.c:2468
msgid ""
"Browser Goto Directory Help Text\n"
"\n"
@@ -1055,7 +1053,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2466
+#: nano.c:2476
msgid ""
"Spell Check Help Text\n"
"\n"
@@ -1068,112 +1066,140 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2550
+#: nano.c:2560
#, c-format
msgid "%s enable/disable"
msgstr "%s enable/disable"
-#: nano.c:2569
+#: nano.c:2579
msgid "enabled"
msgstr "enabled"
-#: nano.c:2570
+#: nano.c:2580
msgid "disabled"
msgstr "disabled"
-#: nano.c:2634
+#: nano.c:2644
msgid "NumLock glitch detected. Keypad will malfunction with NumLock off"
msgstr ""
"Glitch pada NumLock terdeteksi. Keypad akan tidak berfungsi dg tombol "
"NumLock off"
-#: nano.c:2931
+#: nano.c:2941
msgid "Main: set up windows\n"
msgstr "Main: menset jendela\n"
-#: nano.c:2948
+#: nano.c:2958
msgid "Main: bottom win\n"
msgstr "Main: jendela bawah\n"
-#: nano.c:2954
+#: nano.c:2964
msgid "Main: open file\n"
msgstr "Main: membuka file\n"
-#: nano.c:3013
+#: nano.c:3023
#, c-format
msgid "I got Alt-O-%c! (%d)\n"
msgstr "Saya mendapat Alt-O-%c! (%d)\n"
-#: nano.c:3047
+#: nano.c:3057
#, c-format
msgid "I got Alt-[-1-%c! (%d)\n"
msgstr "Saya mendapat Alt-[-1-%c! (%d)\n"
-#: nano.c:3077
+#: nano.c:3087
#, c-format
msgid "I got Alt-[-2-%c! (%d)\n"
msgstr "Saya mendapat Alt-[-2-%c! (%d)\n"
-#: nano.c:3146
+#: nano.c:3156
#, c-format
msgid "I got Alt-[-%c! (%d)\n"
msgstr "Saya mendapat Alt-%c! (%d)\n"
-#: nano.c:3183
+#: nano.c:3194
#, c-format
msgid "I got Alt-%c! (%d)\n"
msgstr "Saya mendapat Alt-%c! (%d)\n"
-#: rcfile.c:85
+#: rcfile.c:86
+#, c-format
+msgid "Error in %s on line %d: "
+msgstr ""
+
+#: rcfile.c:90
msgid ""
"\n"
"Press return to continue starting nano\n"
msgstr ""
-#: rcfile.c:282
+#: rcfile.c:180
+#, c-format
+msgid ""
+"color %s not understood.\n"
+"Valid colors are \"green\", \"red\", \"blue\", \n"
+"\"white\", \"yellow\", \"cyan\", \"magenta\" and \n"
+"\"black\", with the optional prefix \"bright\".\n"
+msgstr ""
+
+#: rcfile.c:204
+msgid "Missing color name"
+msgstr ""
+
+#: rcfile.c:234 rcfile.c:288
+msgid "regex strings must begin and end with a \" character\n"
+msgstr ""
+
+#: rcfile.c:280
+msgid ""
+"\n"
+"\t\"start=\" requires a corresponding \"end=\""
+msgstr ""
+
+#: rcfile.c:330
msgid "parse_rcfile: Read a comment\n"
msgstr ""
-#: rcfile.c:303
+#: rcfile.c:351
#, c-format
-msgid "Error in %s on line %d: command %s not understood"
+msgid "command %s not understood"
msgstr ""
-#: rcfile.c:316
+#: rcfile.c:363
#, c-format
msgid "parse_rcfile: Parsing option %s\n"
msgstr ""
-#: rcfile.c:334
+#: rcfile.c:381
#, c-format
-msgid "Error in %s on line %d: option %s requires an argument"
+msgid "option %s requires an argument"
msgstr ""
-#: rcfile.c:345
+#: rcfile.c:392
#, c-format
-msgid "Error in %s on line %d: requested fill size %d too small"
+msgid "requested fill size %d too small"
msgstr ""
-#: rcfile.c:354
+#: rcfile.c:402
#, c-format
-msgid "Error in %s on line %d: requested tab size %d too small"
+msgid "requested tab size %d too small"
msgstr ""
-#: rcfile.c:368
+#: rcfile.c:417
#, c-format
msgid "set flag %d!\n"
msgstr ""
-#: rcfile.c:373
+#: rcfile.c:423
#, c-format
msgid "unset flag %d!\n"
msgstr ""
-#: rcfile.c:382
+#: rcfile.c:433
msgid "Errors found in .nanorc file"
msgstr ""
-#: rcfile.c:391
+#: rcfile.c:441
#, c-format
msgid "Unable to open ~/.nanorc file, %s"
msgstr ""
@@ -1207,7 +1233,7 @@ msgstr "Belakang"
msgid " (to replace)"
msgstr " (ganti)"
-#: search.c:151 search.c:424
+#: search.c:151 search.c:438
msgid "Search Cancelled"
msgstr "Pencarian dibatalkan"
@@ -1216,58 +1242,58 @@ msgstr "Pencarian dibatalkan"
msgid "\"%s...\" not found"
msgstr "\"%s...\" tidak ditemukan"
-#: search.c:278 search.c:340
+#: search.c:292 search.c:354
msgid "Search Wrapped"
msgstr "Pancarian diulangi dari awal"
-#: search.c:446
+#: search.c:460
#, c-format
msgid "Replaced %d occurrences"
msgstr "%d tempat terganti"
-#: search.c:448
+#: search.c:462
msgid "Replaced 1 occurrence"
msgstr "Terganti 1 tempat"
-#: search.c:586 search.c:698 search.c:714
+#: search.c:600 search.c:699 search.c:715
msgid "Replace Cancelled"
msgstr "Penggantian dibatalkan"
-#: search.c:636
+#: search.c:637
msgid "Replace this instance?"
msgstr "Ganti kata ini?"
-#: search.c:648
+#: search.c:649
msgid "Replace failed: unknown subexpression!"
msgstr "Replace gagal: subekspresi tidak dikenal!"
-#: search.c:739
+#: search.c:740
#, c-format
msgid "Replace with [%s]"
msgstr "Ganti dengan [%s]"
-#: search.c:743 search.c:747
+#: search.c:744 search.c:748
msgid "Replace with"
msgstr "Ganti dengan"
-#: search.c:781
+#: search.c:782
msgid "Enter line number"
msgstr "Masukkan nomor baris"
-#: search.c:783
+#: search.c:784
msgid "Aborted"
msgstr "Dibatalkan"
-#: search.c:792
+#: search.c:793
msgid "Come on, be reasonable"
msgstr "Ayo, yang masuk akal"
-#: search.c:854
+#: search.c:855
msgid "Not a bracket"
msgstr ""
#. didn't find either left or right bracket
-#: search.c:899
+#: search.c:900
msgid "No matching bracket"
msgstr ""
@@ -1288,29 +1314,29 @@ msgstr ""
msgid "actual_x_from_start for xplus=%d returned %d\n"
msgstr "actual_x_from_start untuk xplus=%d mengembalikan %d\n"
-#: winio.c:295 winio.c:466
+#: winio.c:294 winio.c:464
#, fuzzy, c-format
msgid "Aha! '%c' (%d)\n"
msgstr "input '%c' (%d)\n"
-#: winio.c:498
+#: winio.c:496
#, c-format
msgid "input '%c' (%d)\n"
msgstr "input '%c' (%d)\n"
-#: winio.c:546
+#: winio.c:544
msgid "New Buffer"
msgstr "Buffer baru"
-#: winio.c:550
+#: winio.c:548
msgid " File: ..."
msgstr " File: ..."
-#: winio.c:552
+#: winio.c:550
msgid " DIR: ..."
msgstr " DIR: ..."
-#: winio.c:556
+#: winio.c:555
#, fuzzy
msgid "File: "
msgstr " File: ..."
@@ -1324,17 +1350,17 @@ msgstr " DIR: ..."
msgid "Modified"
msgstr "Dimodifikasi"
-#: winio.c:1166
+#: winio.c:1272
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr "Pindah ke (%d, %d) dalam buffer edit\n"
-#: winio.c:1177
+#: winio.c:1283
#, c-format
msgid "current->data = \"%s\"\n"
msgstr "current->data = \"%s\"\n"
-#: winio.c:1251
+#: winio.c:1357
#, c-format
msgid "I got \"%s\"\n"
msgstr "Saya dapat \"%s\"\n"
@@ -1342,80 +1368,81 @@ msgstr "Saya dapat \"%s\"\n"
#. Yes, no and all are strings of any length. Each string consists of
#. all characters accepted as a valid character for that value.
#. The first value will be the one displayed in the shortcuts.
-#: winio.c:1280
+#: winio.c:1386
msgid "Yy"
msgstr "Yy"
-#: winio.c:1281
+#: winio.c:1387
msgid "Nn"
msgstr "Tt"
-#: winio.c:1282
+#: winio.c:1388
msgid "Aa"
msgstr "Ss"
-#: winio.c:1296
+#: winio.c:1402
msgid "Yes"
msgstr "Ya"
-#: winio.c:1300
+#: winio.c:1406
msgid "All"
msgstr "Semua"
-#: winio.c:1305
+#: winio.c:1411
msgid "No"
msgstr "Tidak"
-#: winio.c:1512
+#: winio.c:1617
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
-#: winio.c:1520
+#: winio.c:1626
+#, c-format
msgid "line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"
msgstr "baris %d dari %d (%f.0f%%), karakter %ld dari %ld (%.0f%%)"
-#: winio.c:1685
+#: winio.c:1790
msgid "Dumping file buffer to stderr...\n"
msgstr "Kirim buffer file ke stderr...\n"
-#: winio.c:1687
+#: winio.c:1792
msgid "Dumping cutbuffer to stderr...\n"
msgstr "Kirim cutbuffer ke stderr...\n"
-#: winio.c:1689
+#: winio.c:1794
msgid "Dumping a buffer to stderr...\n"
msgstr "Kirim buffer ke stderr...\n"
-#: winio.c:1764
+#: winio.c:1870
msgid "The nano text editor"
msgstr "Nano teks editor"
-#: winio.c:1765
+#: winio.c:1871
msgid "version "
msgstr "versi "
-#: winio.c:1766
+#: winio.c:1872
msgid "Brought to you by:"
msgstr "Dibuat untuk anda oleh:"
-#: winio.c:1767
+#: winio.c:1873
msgid "Special thanks to:"
msgstr "Ucapan terima kasih khusus kepada:"
-#: winio.c:1768
+#: winio.c:1874
msgid "The Free Software Foundation"
msgstr "The Free Software Foundation"
-#: winio.c:1769
+#: winio.c:1876
msgid "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurses"
msgstr "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurse"
-#: winio.c:1770
+#: winio.c:1877
msgid "and anyone else we forgot..."
msgstr "dan orang lain yang kami lupa...."
-#: winio.c:1771
+#: winio.c:1878
msgid "Thank you for using nano!\n"
msgstr "Terima kasih telah menggunakan nano!\n"
diff --git a/po/it.po b/po/it.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: nano 1.1.4\n"
-"POT-Creation-Date: 2002-01-05 14:33-0500\n"
+"POT-Creation-Date: 2002-01-19 13:10-0500\n"
"PO-Revision-Date: 2001-12-27 19:53+01:00\n"
"Last-Translator: Marco Colombo <magicdice@inwind.it>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
@@ -86,7 +86,7 @@ msgstr "Il nome del file
msgid "Can't insert file from outside of %s"
msgstr "Non posso inserire il file dall'esterno di %s"
-#: files.c:440 files.c:1106 files.c:1467 nano.c:1806
+#: files.c:440 files.c:1106 files.c:1467 nano.c:1813
msgid "Cancelled"
msgstr "Annullato"
@@ -404,7 +404,7 @@ msgid "Find other bracket"
msgstr "Trova la parentesi corrispondente"
#: global.c:306 global.c:448 global.c:481 global.c:514 global.c:527
-#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:602
+#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:603
msgid "Get Help"
msgstr "Aiuto"
@@ -522,7 +522,7 @@ msgid "Find Other Bracket"
msgstr "Trova la parentesi corrispondente"
#: global.c:451 global.c:484 global.c:517 global.c:529 global.c:554
-#: global.c:568 global.c:579 global.c:604 winio.c:1307
+#: global.c:568 global.c:579 global.c:605 winio.c:1413
msgid "Cancel"
msgstr "Annulla"
@@ -601,9 +601,9 @@ msgid ""
"commonly used shortcuts in the editor.\n"
"\n"
" The notation for shortcuts is as follows: Control-key sequences are notated "
-"with a caret (^) symbol and are entered with the Control (Ctrl) key. "
-"Escape-key sequences are notated with the Meta (M) symbol and can be entered "
-"using either the Esc, Alt or Meta key depending on your keyboard setup. The "
+"with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-"
+"key sequences are notated with the Meta (M) symbol and can be entered using "
+"either the Esc, Alt or Meta key depending on your keyboard setup. The "
"following keystrokes are available in the main editor window. Optional keys "
"are shown in parentheses:\n"
"\n"
@@ -771,9 +771,7 @@ msgid " -F \t\tEnable multiple file buffers\n"
msgstr " -F \t\tAbilita file multipli\n"
#: nano.c:498
-msgid ""
-" -K\t\tUse alternate keypad routines\n"
-"\n"
+msgid " -K\t\tUse alternate keypad routines\n"
msgstr ""
#: nano.c:500
@@ -878,97 +876,97 @@ msgstr ""
"\n"
" Opzioni di compilazione:"
-#: nano.c:640
+#: nano.c:638
msgid "Mark Set"
msgstr "Marcatura impostata"
-#: nano.c:645
+#: nano.c:643
msgid "Mark UNset"
msgstr "Marcatura disattivata"
-#: nano.c:1267
+#: nano.c:1264
#, c-format
msgid "check_wrap called with inptr->data=\"%s\"\n"
msgstr "check_wrap chiamata con inptr->data=\"%s\"\n"
-#: nano.c:1319
+#: nano.c:1316
#, c-format
msgid "current->data now = \"%s\"\n"
msgstr "current->data ora = \"%s\"\n"
-#: nano.c:1371
+#: nano.c:1368
#, c-format
msgid "After, data = \"%s\"\n"
msgstr "Dopo, data = \"%s\"\n"
-#: nano.c:1480
+#: nano.c:1484
msgid "Edit a replacement"
msgstr "Modifica sostituzione"
-#: nano.c:1717
+#: nano.c:1724
#, c-format
msgid "Could not create a temporary filename: %s"
msgstr "Impossibile creare un nome file temporaneo: %s"
-#: nano.c:1723
+#: nano.c:1730
msgid "Spell checking failed: unable to write temp file!"
msgstr ""
"Controllo ortografico fallito: impossibile scrivere su file temporaneo!"
-#: nano.c:1743
+#: nano.c:1750
msgid "Finished checking spelling"
msgstr "Controllo ortografico terminato"
-#: nano.c:1745
+#: nano.c:1752
msgid "Spell checking failed"
msgstr "Controllo ortografico fallito"
-#: nano.c:1774
+#: nano.c:1781
msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
msgstr ""
"Salva il buffer modificato? (RISPONDENDO \"No\" ANNULLERETE I CAMBIAMENTI "
"AVVENUTI) "
-#: nano.c:1921
+#: nano.c:1928
msgid "Received SIGHUP"
msgstr "Ricevuto SIGHUP"
-#: nano.c:1988
+#: nano.c:1998
msgid "Cannot resize top win"
msgstr "Impossibile ridimensionare la finestra superiore"
-#: nano.c:1990
+#: nano.c:2000
msgid "Cannot move top win"
msgstr "Impossibile spostare la finestra superiore"
-#: nano.c:1992
+#: nano.c:2002
msgid "Cannot resize edit win"
msgstr "Impossibile ridimensionare la finestra di modifica"
-#: nano.c:1994
+#: nano.c:2004
msgid "Cannot move edit win"
msgstr "Impossibile spostare finestra di modifica"
-#: nano.c:1996
+#: nano.c:2006
msgid "Cannot resize bottom win"
msgstr "Impossibile ridimensionare la finestra inferiore"
-#: nano.c:1998
+#: nano.c:2008
msgid "Cannot move bottom win"
msgstr "Impossibile spostare la finestra inferiore"
-#: nano.c:2337
+#: nano.c:2347
msgid "Can now UnJustify!"
msgstr "E' ora possibile togliere la giustificazione!"
-#: nano.c:2403
+#: nano.c:2413
#, fuzzy
msgid ""
"Search Command Help Text\n"
"\n"
-" Enter the words or characters you would like to search for, then hit enter. "
-" If there is a match for the text you entered, the screen will be updated to "
-"the location of the nearest match for the search string.\n"
+" Enter the words or characters you would like to search for, then hit "
+"enter. If there is a match for the text you entered, the screen will be "
+"updated to the location of the nearest match for the search string.\n"
"\n"
" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or "
"using a nanorc file, the previous search string will be shown in brackets "
@@ -995,7 +993,7 @@ msgstr ""
" Le seguenti funzioni sono disponibili in modalitЮ Ricerca:\n"
"\n"
-#: nano.c:2417
+#: nano.c:2427
msgid ""
"Goto Line Help Text\n"
"\n"
@@ -1015,7 +1013,7 @@ msgstr ""
" Le seguenti funzioni sono disponibili in modalitЮ Vai a...:\n"
"\n"
-#: nano.c:2424
+#: nano.c:2434
#, fuzzy
msgid ""
"Insert File Help Text\n"
@@ -1045,7 +1043,7 @@ msgstr ""
" Le seguenti funzioni sono disponibili in modalitЮ Inserisci:\n"
"\n"
-#: nano.c:2435
+#: nano.c:2445
msgid ""
"Write File Help Text\n"
"\n"
@@ -1061,21 +1059,21 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2447
+#: nano.c:2457
msgid ""
"File Browser Help Text\n"
"\n"
" The file browser is used to visually browse the directory structure to "
-"select a file for reading or writing. You may use the arrow keys or Page "
-"Up/Down to browse through the files, and S or Enter to choose the selected "
-"file or enter the selected directory. To move up one level, select the "
-"directory called \"..\" at the top of the file list.\n"
+"select a file for reading or writing. You may use the arrow keys or Page Up/"
+"Down to browse through the files, and S or Enter to choose the selected file "
+"or enter the selected directory. To move up one level, select the directory "
+"called \"..\" at the top of the file list.\n"
"\n"
" The following functions keys are available in the file browser:\n"
"\n"
msgstr ""
-#: nano.c:2458
+#: nano.c:2468
msgid ""
"Browser Goto Directory Help Text\n"
"\n"
@@ -1087,7 +1085,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2466
+#: nano.c:2476
msgid ""
"Spell Check Help Text\n"
"\n"
@@ -1100,63 +1098,68 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2550
+#: nano.c:2560
#, c-format
msgid "%s enable/disable"
msgstr "%s abilita/disabilita"
-#: nano.c:2569
+#: nano.c:2579
msgid "enabled"
msgstr "abilitato"
-#: nano.c:2570
+#: nano.c:2580
msgid "disabled"
msgstr "disabilitato"
-#: nano.c:2634
+#: nano.c:2644
msgid "NumLock glitch detected. Keypad will malfunction with NumLock off"
msgstr ""
"Rilevata pressione del NumLock. Il keypad potrebbe non funzionare col "
"Numlock spento"
-#: nano.c:2931
+#: nano.c:2941
msgid "Main: set up windows\n"
msgstr "Main: configura finestre\n"
-#: nano.c:2948
+#: nano.c:2958
msgid "Main: bottom win\n"
msgstr "Main: finestra inferiore\n"
-#: nano.c:2954
+#: nano.c:2964
msgid "Main: open file\n"
msgstr "Main: apri file\n"
-#: nano.c:3013
+#: nano.c:3023
#, c-format
msgid "I got Alt-O-%c! (%d)\n"
msgstr "Premuto Alt-O-%c! (%d)\n"
-#: nano.c:3047
+#: nano.c:3057
#, c-format
msgid "I got Alt-[-1-%c! (%d)\n"
msgstr "Premuto Alt-[-1-%c! (%d)\n"
-#: nano.c:3077
+#: nano.c:3087
#, c-format
msgid "I got Alt-[-2-%c! (%d)\n"
msgstr "Premuto Alt-[-2-%c! (%d)\n"
-#: nano.c:3146
+#: nano.c:3156
#, c-format
msgid "I got Alt-[-%c! (%d)\n"
msgstr "Premuto Alt-[-%c! (%d)\n"
-#: nano.c:3183
+#: nano.c:3194
#, c-format
msgid "I got Alt-%c! (%d)\n"
msgstr "Premuto Alt-%c! (%d)\n"
-#: rcfile.c:85
+#: rcfile.c:86
+#, fuzzy, c-format
+msgid "Error in %s on line %d: "
+msgstr "Errore in %s alla riga %d: comando %s non compreso"
+
+#: rcfile.c:90
msgid ""
"\n"
"Press return to continue starting nano\n"
@@ -1164,52 +1167,75 @@ msgstr ""
"\n"
"Premi invio per continuare l'avvio di nano\n"
-#: rcfile.c:282
+#: rcfile.c:180
+#, c-format
+msgid ""
+"color %s not understood.\n"
+"Valid colors are \"green\", \"red\", \"blue\", \n"
+"\"white\", \"yellow\", \"cyan\", \"magenta\" and \n"
+"\"black\", with the optional prefix \"bright\".\n"
+msgstr ""
+
+#: rcfile.c:204
+msgid "Missing color name"
+msgstr ""
+
+#: rcfile.c:234 rcfile.c:288
+msgid "regex strings must begin and end with a \" character\n"
+msgstr ""
+
+#: rcfile.c:280
+msgid ""
+"\n"
+"\t\"start=\" requires a corresponding \"end=\""
+msgstr ""
+
+#: rcfile.c:330
msgid "parse_rcfile: Read a comment\n"
msgstr "parse_rcfile: Letto un commento\n"
-#: rcfile.c:303
-#, c-format
-msgid "Error in %s on line %d: command %s not understood"
+#: rcfile.c:351
+#, fuzzy, c-format
+msgid "command %s not understood"
msgstr "Errore in %s alla riga %d: comando %s non compreso"
-#: rcfile.c:316
+#: rcfile.c:363
#, c-format
msgid "parse_rcfile: Parsing option %s\n"
msgstr "parse_rcfile: opzioni di parsing %s\n"
-#: rcfile.c:334
-#, c-format
-msgid "Error in %s on line %d: option %s requires an argument"
+#: rcfile.c:381
+#, fuzzy, c-format
+msgid "option %s requires an argument"
msgstr "Errore in %s alla riga %d: l'opzione %s richiede un argomento"
-#: rcfile.c:345
-#, c-format
-msgid "Error in %s on line %d: requested fill size %d too small"
+#: rcfile.c:392
+#, fuzzy, c-format
+msgid "requested fill size %d too small"
msgstr "Errore in %s alla riga %d: riempimento richiesto %d troppo piccolo"
-#: rcfile.c:354
-#, c-format
-msgid "Error in %s on line %d: requested tab size %d too small"
+#: rcfile.c:402
+#, fuzzy, c-format
+msgid "requested tab size %d too small"
msgstr ""
"Errore in %s alla riga %d: lunghezza della tabulazione richiesta %d troppo "
"piccola"
-#: rcfile.c:368
+#: rcfile.c:417
#, c-format
msgid "set flag %d!\n"
msgstr "Imposta flag %d!\n"
-#: rcfile.c:373
+#: rcfile.c:423
#, c-format
msgid "unset flag %d!\n"
msgstr "Rimuovi flag %d!\n"
-#: rcfile.c:382
+#: rcfile.c:433
msgid "Errors found in .nanorc file"
msgstr "Errori trovati in .nanorc"
-#: rcfile.c:391
+#: rcfile.c:441
#, c-format
msgid "Unable to open ~/.nanorc file, %s"
msgstr "Impossibile aprire il file ~/.nanorc, %s"
@@ -1240,7 +1266,7 @@ msgstr " [All'indietro]"
msgid " (to replace)"
msgstr " (sostituisci)"
-#: search.c:151 search.c:424
+#: search.c:151 search.c:438
msgid "Search Cancelled"
msgstr "Ricerca annullata"
@@ -1249,58 +1275,58 @@ msgstr "Ricerca annullata"
msgid "\"%s...\" not found"
msgstr "\"%s...\" non trovato"
-#: search.c:278 search.c:340
+#: search.c:292 search.c:354
msgid "Search Wrapped"
msgstr "Ricerca interrotta"
-#: search.c:446
+#: search.c:460
#, c-format
msgid "Replaced %d occurrences"
msgstr "%d sostituzioni effettuate"
-#: search.c:448
+#: search.c:462
msgid "Replaced 1 occurrence"
msgstr "1 sostituzione effettuata"
-#: search.c:586 search.c:698 search.c:714
+#: search.c:600 search.c:699 search.c:715
msgid "Replace Cancelled"
msgstr "Sostituzione annullata"
-#: search.c:636
+#: search.c:637
msgid "Replace this instance?"
msgstr "Sostituisci questa occorrenza?"
-#: search.c:648
+#: search.c:649
msgid "Replace failed: unknown subexpression!"
msgstr "Sostituzione fallita: espressione sconosciuta!"
-#: search.c:739
+#: search.c:740
#, c-format
msgid "Replace with [%s]"
msgstr "Sostituisci con [%s]"
-#: search.c:743 search.c:747
+#: search.c:744 search.c:748
msgid "Replace with"
msgstr "Sostituisci con"
-#: search.c:781
+#: search.c:782
msgid "Enter line number"
msgstr "Inserisci numero di riga"
-#: search.c:783
+#: search.c:784
msgid "Aborted"
msgstr "Operazione annullata"
-#: search.c:792
+#: search.c:793
msgid "Come on, be reasonable"
msgstr "Avanti, sii ragionevole"
-#: search.c:854
+#: search.c:855
msgid "Not a bracket"
msgstr "Non Х una parentesi"
#. didn't find either left or right bracket
-#: search.c:899
+#: search.c:900
msgid "No matching bracket"
msgstr "Parentesi corrispondente non trovata"
@@ -1321,29 +1347,29 @@ msgstr "nano: realloc: memoria esaurita!"
msgid "actual_x_from_start for xplus=%d returned %d\n"
msgstr "actual_x_from_start per xplus=%d ha riportato %d\n"
-#: winio.c:295 winio.c:466
+#: winio.c:294 winio.c:464
#, c-format
msgid "Aha! '%c' (%d)\n"
msgstr "Aha! '%c' (%d)\n"
-#: winio.c:498
+#: winio.c:496
#, c-format
msgid "input '%c' (%d)\n"
msgstr "input '%c' (%d)\n"
-#: winio.c:546
+#: winio.c:544
msgid "New Buffer"
msgstr "Nuovo Buffer"
-#: winio.c:550
+#: winio.c:548
msgid " File: ..."
msgstr " File: ..."
-#: winio.c:552
+#: winio.c:550
msgid " DIR: ..."
msgstr " Dir: ..."
-#: winio.c:556
+#: winio.c:555
#, fuzzy
msgid "File: "
msgstr " File: ..."
@@ -1357,17 +1383,17 @@ msgstr " Dir: ..."
msgid "Modified"
msgstr "Modificato"
-#: winio.c:1166
+#: winio.c:1272
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr "Spostato in (%d, %d) nel buffer di modifica\n"
-#: winio.c:1177
+#: winio.c:1283
#, c-format
msgid "current->data = \"%s\"\n"
msgstr "current->data = \"%s\"\n"
-#: winio.c:1251
+#: winio.c:1357
#, c-format
msgid "I got \"%s\"\n"
msgstr "Premuto \"%s\"\n"
@@ -1375,79 +1401,80 @@ msgstr "Premuto \"%s\"\n"
#. Yes, no and all are strings of any length. Each string consists of
#. all characters accepted as a valid character for that value.
#. The first value will be the one displayed in the shortcuts.
-#: winio.c:1280
+#: winio.c:1386
msgid "Yy"
msgstr "Ss"
-#: winio.c:1281
+#: winio.c:1387
msgid "Nn"
msgstr "Nn"
-#: winio.c:1282
+#: winio.c:1388
msgid "Aa"
msgstr "Tt"
-#: winio.c:1296
+#: winio.c:1402
msgid "Yes"
msgstr "SЛ"
-#: winio.c:1300
+#: winio.c:1406
msgid "All"
msgstr "Tutti"
-#: winio.c:1305
+#: winio.c:1411
msgid "No"
msgstr "No"
-#: winio.c:1512
+#: winio.c:1617
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
-#: winio.c:1520
+#: winio.c:1626
+#, c-format
msgid "line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"
msgstr "Riga %d di %d (%.0f%%), carattere %ld di %ld (%.0f%%)"
-#: winio.c:1685
+#: winio.c:1790
msgid "Dumping file buffer to stderr...\n"
msgstr "Copia file buffer sullo stderr...\n"
-#: winio.c:1687
+#: winio.c:1792
msgid "Dumping cutbuffer to stderr...\n"
msgstr "Copia cutbuffer sullo stderr...\n"
-#: winio.c:1689
+#: winio.c:1794
msgid "Dumping a buffer to stderr...\n"
msgstr "Copia un buffer sullo stderr...\n"
-#: winio.c:1764
+#: winio.c:1870
msgid "The nano text editor"
msgstr "L'editor di testi nano"
-#: winio.c:1765
+#: winio.c:1871
msgid "version "
msgstr "versione"
-#: winio.c:1766
+#: winio.c:1872
msgid "Brought to you by:"
msgstr "Prodotto per voi da:"
-#: winio.c:1767
+#: winio.c:1873
msgid "Special thanks to:"
msgstr "Ringraziamenti speciali a:"
-#: winio.c:1768
+#: winio.c:1874
msgid "The Free Software Foundation"
msgstr "La Free Software Foundation"
-#: winio.c:1769
+#: winio.c:1876
msgid "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurses"
msgstr "Pavel Curtis, Zeyd Ben-Halim e Eric S. Raymond per ncurses"
-#: winio.c:1770
+#: winio.c:1877
msgid "and anyone else we forgot..."
msgstr "e chiunque altro abbiamo dimenticato..."
-#: winio.c:1771
+#: winio.c:1878
msgid "Thank you for using nano!\n"
msgstr "Grazie per aver usato nano!\n"
diff --git a/po/nb.po b/po/nb.po
@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: 1.0.3\n"
-"POT-Creation-Date: 2002-01-05 14:33-0500\n"
+"POT-Creation-Date: 2002-01-19 13:10-0500\n"
"PO-Revision-Date: 2002-01-14 00:00+0100\n"
"Last-Translator: Stig E SandЬ <sig@users.sourceforge.net>\n"
"Language-Team: Norwegian bokmЕl <i18n-nb@lister.ping.uio.no>\n"
@@ -88,7 +88,7 @@ msgstr "filnavnet er %s"
msgid "Can't insert file from outside of %s"
msgstr ""
-#: files.c:440 files.c:1106 files.c:1467 nano.c:1806
+#: files.c:440 files.c:1106 files.c:1467 nano.c:1813
msgid "Cancelled"
msgstr "Avbrutt"
@@ -405,7 +405,7 @@ msgid "Find other bracket"
msgstr ""
#: global.c:306 global.c:448 global.c:481 global.c:514 global.c:527
-#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:602
+#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:603
msgid "Get Help"
msgstr "Hjelp"
@@ -523,7 +523,7 @@ msgid "Find Other Bracket"
msgstr ""
#: global.c:451 global.c:484 global.c:517 global.c:529 global.c:554
-#: global.c:568 global.c:579 global.c:604 winio.c:1307
+#: global.c:568 global.c:579 global.c:605 winio.c:1413
msgid "Cancel"
msgstr "Avbryt"
@@ -568,14 +568,18 @@ msgstr "G
msgid ""
"\n"
"Buffer written to %s\n"
-msgstr "\nBuffer lagret til %s\n"
+msgstr ""
+"\n"
+"Buffer lagret til %s\n"
#: nano.c:181
#, c-format
msgid ""
"\n"
"No %s written (file exists?)\n"
-msgstr "\n%s ikke lagret (filen eksisterer?)\n"
+msgstr ""
+"\n"
+"%s ikke lagret (filen eksisterer?)\n"
#: nano.c:188
msgid "Window size is too small for Nano..."
@@ -598,9 +602,9 @@ msgid ""
"commonly used shortcuts in the editor.\n"
"\n"
" The notation for shortcuts is as follows: Control-key sequences are notated "
-"with a caret (^) symbol and are entered with the Control (Ctrl) key. "
-"Escape-key sequences are notated with the Meta (M) symbol and can be entered "
-"using either the Esc, Alt or Meta key depending on your keyboard setup. The "
+"with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-"
+"key sequences are notated with the Meta (M) symbol and can be entered using "
+"either the Esc, Alt or Meta key depending on your keyboard setup. The "
"following keystrokes are available in the main editor window. Optional keys "
"are shown in parentheses:\n"
"\n"
@@ -616,11 +620,15 @@ msgstr ""
"meldinger. De to nederste linjene viser de vanligste snarveiene i\n"
"programmet.\n"
"\n"
-"Snarveiene er beskrevet slik: Control-tast sekvenser er skrevet med eit karet \n"
+"Snarveiene er beskrevet slik: Control-tast sekvenser er skrevet med eit "
+"karet \n"
"(^) symbol, og blir skrevet med Control (Ctrl) tasten.\n"
-"Escape-tast sekvensar er skrevet med meta (M) symbolet og kan skrives enten \n"
-"med Esc, Alt eller Meta-tasten avhengig av tastaturoppsettet ditt. De fЬlgende\n"
-"tastetrykka er tilgjengelige i hovedvinduet. Valgfrie taster er vist i parentes:\n"
+"Escape-tast sekvensar er skrevet med meta (M) symbolet og kan skrives "
+"enten \n"
+"med Esc, Alt eller Meta-tasten avhengig av tastaturoppsettet ditt. De "
+"fЬlgende\n"
+"tastetrykka er tilgjengelige i hovedvinduet. Valgfrie taster er vist i "
+"parentes:\n"
#: nano.c:347
msgid "delete_node(): free'd a node, YAY!\n"
@@ -707,7 +715,7 @@ msgstr ""
#: nano.c:464
msgid " -p \t\t--pico\t\t\tEmulate Pico as closely as possible\n"
-msgstr " -p --pico Etterlign Pico sЕ nЬye som mulig\n"
+msgstr " -p \t\t--pico\t\t\tEtterlign Pico sЕ nЬye som mulig\n"
#: nano.c:469
msgid ""
@@ -765,9 +773,7 @@ msgid " -F \t\tEnable multiple file buffers\n"
msgstr ""
#: nano.c:498
-msgid ""
-" -K\t\tUse alternate keypad routines\n"
-"\n"
+msgid " -K\t\tUse alternate keypad routines\n"
msgstr ""
#: nano.c:500
@@ -871,93 +877,93 @@ msgstr ""
"\n"
" Kompilerte opsjoner:"
-#: nano.c:640
+#: nano.c:638
msgid "Mark Set"
msgstr "Merke satt"
-#: nano.c:645
+#: nano.c:643
msgid "Mark UNset"
msgstr "Merke fjerna"
-#: nano.c:1267
+#: nano.c:1264
#, c-format
msgid "check_wrap called with inptr->data=\"%s\"\n"
msgstr "check_wrap kalt med inptr->data=\"%s\"\n"
-#: nano.c:1319
+#: nano.c:1316
#, c-format
msgid "current->data now = \"%s\"\n"
msgstr "current->data nЕ = \"%s\"\n"
-#: nano.c:1371
+#: nano.c:1368
#, c-format
msgid "After, data = \"%s\"\n"
msgstr "Etter, data = \"%s\"\n"
-#: nano.c:1480
+#: nano.c:1484
msgid "Edit a replacement"
msgstr "Rediger erstatning"
-#: nano.c:1717
+#: nano.c:1724
#, c-format
msgid "Could not create a temporary filename: %s"
msgstr "Kunne ikke oprette midlertidig fil: %s"
-#: nano.c:1723
+#: nano.c:1730
msgid "Spell checking failed: unable to write temp file!"
msgstr "Stavekontroll feilet: kunne ikke lage midlertidig fil!"
-#: nano.c:1743
+#: nano.c:1750
msgid "Finished checking spelling"
msgstr "Stavekontroll fullfЬrt"
-#: nano.c:1745
+#: nano.c:1752
msgid "Spell checking failed"
msgstr "Stavekontroll feilet"
-#: nano.c:1774
+#: nano.c:1781
msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
msgstr "Lagre endret buffer (\"No\" VIL MISTE ENDRINGENE) ? "
-#: nano.c:1921
+#: nano.c:1928
msgid "Received SIGHUP"
msgstr "Mottok SIGHUP"
-#: nano.c:1988
+#: nano.c:1998
msgid "Cannot resize top win"
msgstr "Kan ikke endre stЬrrelse pЕ toppvinduet"
-#: nano.c:1990
+#: nano.c:2000
msgid "Cannot move top win"
msgstr "Kan ikke flytte toppvinduet"
-#: nano.c:1992
+#: nano.c:2002
msgid "Cannot resize edit win"
msgstr "Kan ikke endre stЬrrelse pЕ redigeringsvinduet"
-#: nano.c:1994
+#: nano.c:2004
msgid "Cannot move edit win"
msgstr "Kan ikke flytte redigeringsvinduet"
-#: nano.c:1996
+#: nano.c:2006
msgid "Cannot resize bottom win"
msgstr "Kan ikke endre stЬrrelse pЕ bunnvinduet"
-#: nano.c:1998
+#: nano.c:2008
msgid "Cannot move bottom win"
msgstr "Kan ikke flytte bunnvinduet"
-#: nano.c:2337
+#: nano.c:2347
msgid "Can now UnJustify!"
msgstr "Du kan nЕ avjustere!"
-#: nano.c:2403
+#: nano.c:2413
msgid ""
"Search Command Help Text\n"
"\n"
-" Enter the words or characters you would like to search for, then hit enter. "
-" If there is a match for the text you entered, the screen will be updated to "
-"the location of the nearest match for the search string.\n"
+" Enter the words or characters you would like to search for, then hit "
+"enter. If there is a match for the text you entered, the screen will be "
+"updated to the location of the nearest match for the search string.\n"
"\n"
" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or "
"using a nanorc file, the previous search string will be shown in brackets "
@@ -969,7 +975,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2417
+#: nano.c:2427
msgid ""
"Goto Line Help Text\n"
"\n"
@@ -981,7 +987,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2424
+#: nano.c:2434
msgid ""
"Insert File Help Text\n"
"\n"
@@ -997,7 +1003,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2435
+#: nano.c:2445
msgid ""
"Write File Help Text\n"
"\n"
@@ -1013,21 +1019,21 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2447
+#: nano.c:2457
msgid ""
"File Browser Help Text\n"
"\n"
" The file browser is used to visually browse the directory structure to "
-"select a file for reading or writing. You may use the arrow keys or Page "
-"Up/Down to browse through the files, and S or Enter to choose the selected "
-"file or enter the selected directory. To move up one level, select the "
-"directory called \"..\" at the top of the file list.\n"
+"select a file for reading or writing. You may use the arrow keys or Page Up/"
+"Down to browse through the files, and S or Enter to choose the selected file "
+"or enter the selected directory. To move up one level, select the directory "
+"called \"..\" at the top of the file list.\n"
"\n"
" The following functions keys are available in the file browser:\n"
"\n"
msgstr ""
-#: nano.c:2458
+#: nano.c:2468
msgid ""
"Browser Goto Directory Help Text\n"
"\n"
@@ -1039,7 +1045,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2466
+#: nano.c:2476
msgid ""
"Spell Check Help Text\n"
"\n"
@@ -1052,61 +1058,66 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2550
+#: nano.c:2560
#, c-format
msgid "%s enable/disable"
msgstr "%s skru pЕ/av"
-#: nano.c:2569
+#: nano.c:2579
msgid "enabled"
msgstr "pЕ"
-#: nano.c:2570
+#: nano.c:2580
msgid "disabled"
msgstr "av"
-#: nano.c:2634
+#: nano.c:2644
msgid "NumLock glitch detected. Keypad will malfunction with NumLock off"
msgstr "NumLock-feil oppdaget. Nummer-tastane vil fungere feil med NumLock av"
-#: nano.c:2931
+#: nano.c:2941
msgid "Main: set up windows\n"
msgstr "Hoved: Vinduer satt opp\n"
-#: nano.c:2948
+#: nano.c:2958
msgid "Main: bottom win\n"
msgstr "Hoved: bunnvindu\n"
-#: nano.c:2954
+#: nano.c:2964
msgid "Main: open file\n"
msgstr "Hoved: Еpne fil\n"
-#: nano.c:3013
+#: nano.c:3023
#, c-format
msgid "I got Alt-O-%c! (%d)\n"
msgstr "Jeg fikk Alt-O-%c! (%d)\n"
-#: nano.c:3047
+#: nano.c:3057
#, c-format
msgid "I got Alt-[-1-%c! (%d)\n"
msgstr "Jeg fikk Alt-[-1-%c! (%d)\n"
-#: nano.c:3077
+#: nano.c:3087
#, c-format
msgid "I got Alt-[-2-%c! (%d)\n"
msgstr "Jeg fikk Alt-[-2-%c! (%d)\n"
-#: nano.c:3146
+#: nano.c:3156
#, c-format
msgid "I got Alt-[-%c! (%d)\n"
msgstr "Jeg fikk Alt-[-%c! (%d)\n"
-#: nano.c:3183
+#: nano.c:3194
#, c-format
msgid "I got Alt-%c! (%d)\n"
msgstr "Jeg fikk Alt-%c (%d)\n"
-#: rcfile.c:85
+#: rcfile.c:86
+#, fuzzy, c-format
+msgid "Error in %s on line %d: "
+msgstr "Feil i %s pЕ linje %d: kommandoen %s ikke forstЕelig"
+
+#: rcfile.c:90
msgid ""
"\n"
"Press return to continue starting nano\n"
@@ -1114,50 +1125,73 @@ msgstr ""
"\n"
"Trykk retur for Е fortsette lastingen av nano\n"
-#: rcfile.c:282
+#: rcfile.c:180
+#, c-format
+msgid ""
+"color %s not understood.\n"
+"Valid colors are \"green\", \"red\", \"blue\", \n"
+"\"white\", \"yellow\", \"cyan\", \"magenta\" and \n"
+"\"black\", with the optional prefix \"bright\".\n"
+msgstr ""
+
+#: rcfile.c:204
+msgid "Missing color name"
+msgstr ""
+
+#: rcfile.c:234 rcfile.c:288
+msgid "regex strings must begin and end with a \" character\n"
+msgstr ""
+
+#: rcfile.c:280
+msgid ""
+"\n"
+"\t\"start=\" requires a corresponding \"end=\""
+msgstr ""
+
+#: rcfile.c:330
msgid "parse_rcfile: Read a comment\n"
msgstr "parse_rcfile: Leste en kommentar\n"
-#: rcfile.c:303
-#, c-format
-msgid "Error in %s on line %d: command %s not understood"
+#: rcfile.c:351
+#, fuzzy, c-format
+msgid "command %s not understood"
msgstr "Feil i %s pЕ linje %d: kommandoen %s ikke forstЕelig"
-#: rcfile.c:316
+#: rcfile.c:363
#, c-format
msgid "parse_rcfile: Parsing option %s\n"
msgstr "parse_rcfile: Leser inn opsjon %s\n"
-#: rcfile.c:334
-#, c-format
-msgid "Error in %s on line %d: option %s requires an argument"
+#: rcfile.c:381
+#, fuzzy, c-format
+msgid "option %s requires an argument"
msgstr "Feil i %s pЕ linje %d: opsjonen %s krever et argument"
-#: rcfile.c:345
-#, c-format
-msgid "Error in %s on line %d: requested fill size %d too small"
+#: rcfile.c:392
+#, fuzzy, c-format
+msgid "requested fill size %d too small"
msgstr "Feil i %s pЕ linje %d: den foreslЕtte fyllbredden er %d for lav"
-#: rcfile.c:354
-#, c-format
-msgid "Error in %s on line %d: requested tab size %d too small"
+#: rcfile.c:402
+#, fuzzy, c-format
+msgid "requested tab size %d too small"
msgstr "Feil i %s pЕ linje %d: den foreslЕtte tabstЬrrelsen er %d for lav"
-#: rcfile.c:368
+#: rcfile.c:417
#, c-format
msgid "set flag %d!\n"
msgstr "sett flagget %d!\n"
-#: rcfile.c:373
+#: rcfile.c:423
#, c-format
msgid "unset flag %d!\n"
msgstr "Skru av flagget %d!\n"
-#: rcfile.c:382
+#: rcfile.c:433
msgid "Errors found in .nanorc file"
msgstr "Feil funnet i .nanorc filen"
-#: rcfile.c:391
+#: rcfile.c:441
#, c-format
msgid "Unable to open ~/.nanorc file, %s"
msgstr "Kan ikke Еpne ~/.nanorc, %s"
@@ -1188,7 +1222,7 @@ msgstr " [Bakover]"
msgid " (to replace)"
msgstr " (Е erstatte)"
-#: search.c:151 search.c:424
+#: search.c:151 search.c:438
msgid "Search Cancelled"
msgstr "SЬk avbrutt"
@@ -1197,58 +1231,58 @@ msgstr "S
msgid "\"%s...\" not found"
msgstr "\"%s...\" ikke funnet"
-#: search.c:278 search.c:340
+#: search.c:292 search.c:354
msgid "Search Wrapped"
msgstr "SЬket gikk rundt"
-#: search.c:446
+#: search.c:460
#, c-format
msgid "Replaced %d occurrences"
msgstr "Erstattet %d tilfeller"
-#: search.c:448
+#: search.c:462
msgid "Replaced 1 occurrence"
msgstr "Erstattet 1 tilfelle"
-#: search.c:586 search.c:698 search.c:714
+#: search.c:600 search.c:699 search.c:715
msgid "Replace Cancelled"
msgstr "Erstatt avbrutt"
-#: search.c:636
+#: search.c:637
msgid "Replace this instance?"
msgstr "Erstatt dette tilfellet?"
-#: search.c:648
+#: search.c:649
msgid "Replace failed: unknown subexpression!"
msgstr "Erstatt feila: ukjent underuttrykk!"
-#: search.c:739
+#: search.c:740
#, c-format
msgid "Replace with [%s]"
msgstr "Erstatt med [%s]"
-#: search.c:743 search.c:747
+#: search.c:744 search.c:748
msgid "Replace with"
msgstr "Erstatt med"
-#: search.c:781
+#: search.c:782
msgid "Enter line number"
msgstr "Skriv linjenummer"
-#: search.c:783
+#: search.c:784
msgid "Aborted"
msgstr "Avbrutt"
-#: search.c:792
+#: search.c:793
msgid "Come on, be reasonable"
msgstr "Kom igjen, samarbeid litt"
-#: search.c:854
+#: search.c:855
msgid "Not a bracket"
msgstr ""
#. didn't find either left or right bracket
-#: search.c:899
+#: search.c:900
msgid "No matching bracket"
msgstr ""
@@ -1269,29 +1303,29 @@ msgstr "nano: realloc: tom for minne!"
msgid "actual_x_from_start for xplus=%d returned %d\n"
msgstr "actual_x_from_start for xplus=%d returnerte %d\n"
-#: winio.c:295 winio.c:466
+#: winio.c:294 winio.c:464
#, c-format
msgid "Aha! '%c' (%d)\n"
msgstr "Aha! '%c' (%d)\n"
-#: winio.c:498
+#: winio.c:496
#, c-format
msgid "input '%c' (%d)\n"
msgstr "input '%c' (%d)\n"
-#: winio.c:546
+#: winio.c:544
msgid "New Buffer"
msgstr "Ny buffer"
-#: winio.c:550
+#: winio.c:548
msgid " File: ..."
msgstr " Fil: ..."
-#: winio.c:552
+#: winio.c:550
msgid " DIR: ..."
msgstr " KAT: ..."
-#: winio.c:556
+#: winio.c:555
msgid "File: "
msgstr "Fil: "
@@ -1303,17 +1337,17 @@ msgstr " KAT: "
msgid "Modified"
msgstr "Endret"
-#: winio.c:1166
+#: winio.c:1272
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr "Flyttet til (%d, %d) i rediger buffer\n"
-#: winio.c:1177
+#: winio.c:1283
#, c-format
msgid "current->data = \"%s\"\n"
msgstr "current->data = \"%s\"\n"
-#: winio.c:1251
+#: winio.c:1357
#, c-format
msgid "I got \"%s\"\n"
msgstr "Jeg fikk \"%s\"\n"
@@ -1321,81 +1355,82 @@ msgstr "Jeg fikk \"%s\"\n"
#. Yes, no and all are strings of any length. Each string consists of
#. all characters accepted as a valid character for that value.
#. The first value will be the one displayed in the shortcuts.
-#: winio.c:1280
+#: winio.c:1386
msgid "Yy"
msgstr "JjYy"
-#: winio.c:1281
+#: winio.c:1387
msgid "Nn"
msgstr "Nn"
-#: winio.c:1282
+#: winio.c:1388
msgid "Aa"
msgstr "Aa"
-#: winio.c:1296
+#: winio.c:1402
msgid "Yes"
msgstr "Ja"
-#: winio.c:1300
+#: winio.c:1406
msgid "All"
msgstr "Alle"
-#: winio.c:1305
+#: winio.c:1411
msgid "No"
msgstr "Nei"
-#: winio.c:1512
+#: winio.c:1617
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
-#: winio.c:1520
+#: winio.c:1626
+#, c-format
msgid "line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"
msgstr "linje %d av %d (%.0f%%), tegn %ld av %ld (%.0f%%)"
-#: winio.c:1685
+#: winio.c:1790
msgid "Dumping file buffer to stderr...\n"
msgstr "Dumper fil-bufferet til stderr...\n"
-#: winio.c:1687
+#: winio.c:1792
msgid "Dumping cutbuffer to stderr...\n"
msgstr "Dumper klippbufferet til stderr...\n"
-#: winio.c:1689
+#: winio.c:1794
msgid "Dumping a buffer to stderr...\n"
msgstr "Skriver et buffer til stderr...\n"
-#: winio.c:1764
+#: winio.c:1870
msgid "The nano text editor"
msgstr "Tekstbehandleren nano"
-#: winio.c:1765
+#: winio.c:1871
msgid "version "
msgstr "versjon"
-#: winio.c:1766
+#: winio.c:1872
msgid "Brought to you by:"
msgstr "Bragt til deg av:"
-#: winio.c:1767
+#: winio.c:1873
msgid "Special thanks to:"
msgstr "Mange takk til:"
# Oversette dette ?
-#: winio.c:1768
+#: winio.c:1874
msgid "The Free Software Foundation"
msgstr "The Free Sofware Foundation"
-#: winio.c:1769
+#: winio.c:1876
msgid "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurses"
msgstr "Pavel Curtis, Zeyd Ben-Halim og Eric S. Raymond for ncurses"
-#: winio.c:1770
+#: winio.c:1877
msgid "and anyone else we forgot..."
msgstr "og alle de andre vi glemte..."
-#: winio.c:1771
+#: winio.c:1878
msgid "Thank you for using nano!\n"
msgstr "Takk for at du bruker nano!\n"
diff --git a/po/nl.po b/po/nl.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: 1.0.4\n"
-"POT-Creation-Date: 2002-01-05 14:33-0500\n"
+"POT-Creation-Date: 2002-01-19 13:10-0500\n"
"PO-Revision-Date: 2001-09-04 17:25:56+0200\n"
"Last-Translator: Guus Sliepen <guus@nl.linux.org>\n"
"Language-Team: Dutch <nl@li.org>\n"
@@ -85,7 +85,7 @@ msgstr "bestandsnaam is %s"
msgid "Can't insert file from outside of %s"
msgstr ""
-#: files.c:440 files.c:1106 files.c:1467 nano.c:1806
+#: files.c:440 files.c:1106 files.c:1467 nano.c:1813
msgid "Cancelled"
msgstr "Afgebroken"
@@ -413,7 +413,7 @@ msgid "Find other bracket"
msgstr ""
#: global.c:306 global.c:448 global.c:481 global.c:514 global.c:527
-#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:602
+#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:603
msgid "Get Help"
msgstr "Toon hulp"
@@ -531,7 +531,7 @@ msgid "Find Other Bracket"
msgstr ""
#: global.c:451 global.c:484 global.c:517 global.c:529 global.c:554
-#: global.c:568 global.c:579 global.c:604 winio.c:1307
+#: global.c:568 global.c:579 global.c:605 winio.c:1413
msgid "Cancel"
msgstr "Afbreken"
@@ -613,9 +613,9 @@ msgid ""
"commonly used shortcuts in the editor.\n"
"\n"
" The notation for shortcuts is as follows: Control-key sequences are notated "
-"with a caret (^) symbol and are entered with the Control (Ctrl) key. "
-"Escape-key sequences are notated with the Meta (M) symbol and can be entered "
-"using either the Esc, Alt or Meta key depending on your keyboard setup. The "
+"with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-"
+"key sequences are notated with the Meta (M) symbol and can be entered using "
+"either the Esc, Alt or Meta key depending on your keyboard setup. The "
"following keystrokes are available in the main editor window. Optional keys "
"are shown in parentheses:\n"
"\n"
@@ -778,9 +778,7 @@ msgid " -F \t\tEnable multiple file buffers\n"
msgstr ""
#: nano.c:498
-msgid ""
-" -K\t\tUse alternate keypad routines\n"
-"\n"
+msgid " -K\t\tUse alternate keypad routines\n"
msgstr ""
#: nano.c:500
@@ -886,95 +884,95 @@ msgstr ""
"\n"
" Gecompileerde opties:"
-#: nano.c:640
+#: nano.c:638
msgid "Mark Set"
msgstr "Markering gezet"
-#: nano.c:645
+#: nano.c:643
msgid "Mark UNset"
msgstr "Markering gewist"
-#: nano.c:1267
+#: nano.c:1264
#, c-format
msgid "check_wrap called with inptr->data=\"%s\"\n"
msgstr "check_wrap aangeroepen met inptr->data=\"%s\"\n"
-#: nano.c:1319
+#: nano.c:1316
#, c-format
msgid "current->data now = \"%s\"\n"
msgstr "current->data nu = \"%s\"%\n"
-#: nano.c:1371
+#: nano.c:1368
#, c-format
msgid "After, data = \"%s\"\n"
msgstr "Na afloop, data = \"%s\"\n"
-#: nano.c:1480
+#: nano.c:1484
msgid "Edit a replacement"
msgstr "Bewerk vervanging"
-#: nano.c:1717
+#: nano.c:1724
#, c-format
msgid "Could not create a temporary filename: %s"
msgstr "Kon geen tijdelijke bestandsnaam maken: %s"
-#: nano.c:1723
+#: nano.c:1730
msgid "Spell checking failed: unable to write temp file!"
msgstr "Spelling controle faalde: kon niet naar tijdelijk bestand schrijven!"
-#: nano.c:1743
+#: nano.c:1750
msgid "Finished checking spelling"
msgstr "Spelling controle afgerond"
-#: nano.c:1745
+#: nano.c:1752
msgid "Spell checking failed"
msgstr "Spelling controle faalde"
-#: nano.c:1774
+#: nano.c:1781
msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
msgstr ""
"Bewaar gemodificeerde buffer (\"Nee\" ANTWOORDEN ZAL VERANDERINGEN "
"TENIETDOEN) ? "
-#: nano.c:1921
+#: nano.c:1928
msgid "Received SIGHUP"
msgstr "SIGHUP ontvangen"
-#: nano.c:1988
+#: nano.c:1998
msgid "Cannot resize top win"
msgstr "Kan bovenste venster niet herschalen"
-#: nano.c:1990
+#: nano.c:2000
msgid "Cannot move top win"
msgstr "Kan bovenste venster niet verplaatsen"
-#: nano.c:1992
+#: nano.c:2002
msgid "Cannot resize edit win"
msgstr "Kan bewerkingsvenster niet herschalen"
-#: nano.c:1994
+#: nano.c:2004
msgid "Cannot move edit win"
msgstr "Kan bewerkingsvenster niet verplaatsen"
-#: nano.c:1996
+#: nano.c:2006
msgid "Cannot resize bottom win"
msgstr "Kan onderste venster niet herschalen"
-#: nano.c:1998
+#: nano.c:2008
msgid "Cannot move bottom win"
msgstr "Kan onderste venster niet verplaatsen"
-#: nano.c:2337
+#: nano.c:2347
msgid "Can now UnJustify!"
msgstr "Kan nu OnUitlijnen!"
-#: nano.c:2403
+#: nano.c:2413
msgid ""
"Search Command Help Text\n"
"\n"
-" Enter the words or characters you would like to search for, then hit enter. "
-" If there is a match for the text you entered, the screen will be updated to "
-"the location of the nearest match for the search string.\n"
+" Enter the words or characters you would like to search for, then hit "
+"enter. If there is a match for the text you entered, the screen will be "
+"updated to the location of the nearest match for the search string.\n"
"\n"
" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or "
"using a nanorc file, the previous search string will be shown in brackets "
@@ -986,7 +984,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2417
+#: nano.c:2427
msgid ""
"Goto Line Help Text\n"
"\n"
@@ -998,7 +996,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2424
+#: nano.c:2434
msgid ""
"Insert File Help Text\n"
"\n"
@@ -1014,7 +1012,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2435
+#: nano.c:2445
msgid ""
"Write File Help Text\n"
"\n"
@@ -1030,21 +1028,21 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2447
+#: nano.c:2457
msgid ""
"File Browser Help Text\n"
"\n"
" The file browser is used to visually browse the directory structure to "
-"select a file for reading or writing. You may use the arrow keys or Page "
-"Up/Down to browse through the files, and S or Enter to choose the selected "
-"file or enter the selected directory. To move up one level, select the "
-"directory called \"..\" at the top of the file list.\n"
+"select a file for reading or writing. You may use the arrow keys or Page Up/"
+"Down to browse through the files, and S or Enter to choose the selected file "
+"or enter the selected directory. To move up one level, select the directory "
+"called \"..\" at the top of the file list.\n"
"\n"
" The following functions keys are available in the file browser:\n"
"\n"
msgstr ""
-#: nano.c:2458
+#: nano.c:2468
msgid ""
"Browser Goto Directory Help Text\n"
"\n"
@@ -1056,7 +1054,7 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2466
+#: nano.c:2476
msgid ""
"Spell Check Help Text\n"
"\n"
@@ -1069,112 +1067,140 @@ msgid ""
"\n"
msgstr ""
-#: nano.c:2550
+#: nano.c:2560
#, c-format
msgid "%s enable/disable"
msgstr "%s aanzetten/uitzetten"
-#: nano.c:2569
+#: nano.c:2579
msgid "enabled"
msgstr "aangezet"
-#: nano.c:2570
+#: nano.c:2580
msgid "disabled"
msgstr "uitgezet"
-#: nano.c:2634
+#: nano.c:2644
msgid "NumLock glitch detected. Keypad will malfunction with NumLock off"
msgstr ""
"NumLock fout gedetecteerd. Numeriek toetsenbord zal niet goed functioneren "
"zonder NumLock"
-#: nano.c:2931
+#: nano.c:2941
msgid "Main: set up windows\n"
msgstr "Main: vensters instellen\n"
-#: nano.c:2948
+#: nano.c:2958
msgid "Main: bottom win\n"
msgstr "Main: onderste venster\n"
-#: nano.c:2954
+#: nano.c:2964
msgid "Main: open file\n"
msgstr "Main: bestand openen\n"
-#: nano.c:3013
+#: nano.c:3023
#, c-format
msgid "I got Alt-O-%c! (%d)\n"
msgstr "Ik kreeg Alt-O-%c! (%d)\n"
-#: nano.c:3047
+#: nano.c:3057
#, c-format
msgid "I got Alt-[-1-%c! (%d)\n"
msgstr "Ik kreeg Alt-[-1-%c! (%d)\n"
-#: nano.c:3077
+#: nano.c:3087
#, c-format
msgid "I got Alt-[-2-%c! (%d)\n"
msgstr "Ik kreeg Alt-[-2-%c! (%d)\n"
-#: nano.c:3146
+#: nano.c:3156
#, c-format
msgid "I got Alt-[-%c! (%d)\n"
msgstr "Ik kreeg Alt-[-%c! (%d)\n"
-#: nano.c:3183
+#: nano.c:3194
#, c-format
msgid "I got Alt-%c! (%d)\n"
msgstr "Ik kreeg Alt-%c! (%d)\n"
-#: rcfile.c:85
+#: rcfile.c:86
+#, c-format
+msgid "Error in %s on line %d: "
+msgstr ""
+
+#: rcfile.c:90
msgid ""
"\n"
"Press return to continue starting nano\n"
msgstr ""
-#: rcfile.c:282
+#: rcfile.c:180
+#, c-format
+msgid ""
+"color %s not understood.\n"
+"Valid colors are \"green\", \"red\", \"blue\", \n"
+"\"white\", \"yellow\", \"cyan\", \"magenta\" and \n"
+"\"black\", with the optional prefix \"bright\".\n"
+msgstr ""
+
+#: rcfile.c:204
+msgid "Missing color name"
+msgstr ""
+
+#: rcfile.c:234 rcfile.c:288
+msgid "regex strings must begin and end with a \" character\n"
+msgstr ""
+
+#: rcfile.c:280
+msgid ""
+"\n"
+"\t\"start=\" requires a corresponding \"end=\""
+msgstr ""
+
+#: rcfile.c:330
msgid "parse_rcfile: Read a comment\n"
msgstr ""
-#: rcfile.c:303
+#: rcfile.c:351
#, c-format
-msgid "Error in %s on line %d: command %s not understood"
+msgid "command %s not understood"
msgstr ""
-#: rcfile.c:316
+#: rcfile.c:363
#, c-format
msgid "parse_rcfile: Parsing option %s\n"
msgstr ""
-#: rcfile.c:334
+#: rcfile.c:381
#, c-format
-msgid "Error in %s on line %d: option %s requires an argument"
+msgid "option %s requires an argument"
msgstr ""
-#: rcfile.c:345
+#: rcfile.c:392
#, c-format
-msgid "Error in %s on line %d: requested fill size %d too small"
+msgid "requested fill size %d too small"
msgstr ""
-#: rcfile.c:354
+#: rcfile.c:402
#, c-format
-msgid "Error in %s on line %d: requested tab size %d too small"
+msgid "requested tab size %d too small"
msgstr ""
-#: rcfile.c:368
+#: rcfile.c:417
#, c-format
msgid "set flag %d!\n"
msgstr ""
-#: rcfile.c:373
+#: rcfile.c:423
#, c-format
msgid "unset flag %d!\n"
msgstr ""
-#: rcfile.c:382
+#: rcfile.c:433
msgid "Errors found in .nanorc file"
msgstr ""
-#: rcfile.c:391
+#: rcfile.c:441
#, c-format
msgid "Unable to open ~/.nanorc file, %s"
msgstr ""
@@ -1208,7 +1234,7 @@ msgstr "Terug"
msgid " (to replace)"
msgstr " (om te vervangen)"
-#: search.c:151 search.c:424
+#: search.c:151 search.c:438
msgid "Search Cancelled"
msgstr "Zoeken afgebroken"
@@ -1217,58 +1243,58 @@ msgstr "Zoeken afgebroken"
msgid "\"%s...\" not found"
msgstr "\"%s...\" niet gevonden"
-#: search.c:278 search.c:340
+#: search.c:292 search.c:354
msgid "Search Wrapped"
msgstr "Zoeken van boven herstart"
-#: search.c:446
+#: search.c:460
#, c-format
msgid "Replaced %d occurrences"
msgstr "%d voorvallen vervangen"
-#: search.c:448
+#: search.c:462
msgid "Replaced 1 occurrence"
msgstr "1 voorval vervangen"
-#: search.c:586 search.c:698 search.c:714
+#: search.c:600 search.c:699 search.c:715
msgid "Replace Cancelled"
msgstr "Vervangen afgebroken"
-#: search.c:636
+#: search.c:637
msgid "Replace this instance?"
msgstr "Vervang deze instantie?"
-#: search.c:648
+#: search.c:649
msgid "Replace failed: unknown subexpression!"
msgstr "Vervangen faalde: onbekende deelexpressie!"
-#: search.c:739
+#: search.c:740
#, c-format
msgid "Replace with [%s]"
msgstr "Vervang met [%s]"
-#: search.c:743 search.c:747
+#: search.c:744 search.c:748
msgid "Replace with"
msgstr "Vervang met"
-#: search.c:781
+#: search.c:782
msgid "Enter line number"
msgstr "Geef regelnummer"
-#: search.c:783
+#: search.c:784
msgid "Aborted"
msgstr "Afgebroken"
-#: search.c:792
+#: search.c:793
msgid "Come on, be reasonable"
msgstr "Kom zeg, wees redelijk"
-#: search.c:854
+#: search.c:855
msgid "Not a bracket"
msgstr ""
#. didn't find either left or right bracket
-#: search.c:899
+#: search.c:900
msgid "No matching bracket"
msgstr ""
@@ -1289,29 +1315,29 @@ msgstr ""
msgid "actual_x_from_start for xplus=%d returned %d\n"
msgstr "actual_x_from_start voor xplus=%d gaf %d\n"
-#: winio.c:295 winio.c:466
+#: winio.c:294 winio.c:464
#, fuzzy, c-format
msgid "Aha! '%c' (%d)\n"
msgstr "invoer '%c' (%d)\n"
-#: winio.c:498
+#: winio.c:496
#, c-format
msgid "input '%c' (%d)\n"
msgstr "invoer '%c' (%d)\n"
-#: winio.c:546
+#: winio.c:544
msgid "New Buffer"
msgstr "Nieuwe buffer"
-#: winio.c:550
+#: winio.c:548
msgid " File: ..."
msgstr " Bestand: ..."
-#: winio.c:552
+#: winio.c:550
msgid " DIR: ..."
msgstr " Map: ..."
-#: winio.c:556
+#: winio.c:555
#, fuzzy
msgid "File: "
msgstr " Bestand: ..."
@@ -1325,17 +1351,17 @@ msgstr " Map: ..."
msgid "Modified"
msgstr "Veranderd"
-#: winio.c:1166
+#: winio.c:1272
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr "Ging naar (%d, %d) in bewerkingsbuffer\n"
-#: winio.c:1177
+#: winio.c:1283
#, c-format
msgid "current->data = \"%s\"\n"
msgstr "current->data = \"%s\"\n"
-#: winio.c:1251
+#: winio.c:1357
#, c-format
msgid "I got \"%s\"\n"
msgstr "Ik kreeg \"%s\"\n"
@@ -1343,80 +1369,81 @@ msgstr "Ik kreeg \"%s\"\n"
#. Yes, no and all are strings of any length. Each string consists of
#. all characters accepted as a valid character for that value.
#. The first value will be the one displayed in the shortcuts.
-#: winio.c:1280
+#: winio.c:1386
msgid "Yy"
msgstr "Jj"
-#: winio.c:1281
+#: winio.c:1387
msgid "Nn"
msgstr "Nn"
-#: winio.c:1282
+#: winio.c:1388
msgid "Aa"
msgstr "Aa"
-#: winio.c:1296
+#: winio.c:1402
msgid "Yes"
msgstr "Ja"
-#: winio.c:1300
+#: winio.c:1406
msgid "All"
msgstr "Alle"
-#: winio.c:1305
+#: winio.c:1411
msgid "No"
msgstr "Nee"
-#: winio.c:1512
+#: winio.c:1617
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
-#: winio.c:1520
+#: winio.c:1626
+#, c-format
msgid "line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"
msgstr "regel %d van %d (%.0f%%), karakter %ld van %ld (%.0f%%)"
-#: winio.c:1685
+#: winio.c:1790
msgid "Dumping file buffer to stderr...\n"
msgstr "Dumpen bestandsbuffer naar stderr...\n"
-#: winio.c:1687
+#: winio.c:1792
msgid "Dumping cutbuffer to stderr...\n"
msgstr "Dumpen snijbuffer naar stderr...\n"
-#: winio.c:1689
+#: winio.c:1794
msgid "Dumping a buffer to stderr...\n"
msgstr "Dumpen buffer naar stderr...\n"
-#: winio.c:1764
+#: winio.c:1870
msgid "The nano text editor"
msgstr "De nano tekst editor"
-#: winio.c:1765
+#: winio.c:1871
msgid "version "
msgstr "versie "
-#: winio.c:1766
+#: winio.c:1872
msgid "Brought to you by:"
msgstr "U gebracht door:"
-#: winio.c:1767
+#: winio.c:1873
msgid "Special thanks to:"
msgstr "Speciale dank aan:"
-#: winio.c:1768
+#: winio.c:1874
msgid "The Free Software Foundation"
msgstr "De Free Software Foundation"
-#: winio.c:1769
+#: winio.c:1876
msgid "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurses"
msgstr "Pavel Curtis, Zeyd Ben-Halim en Eric S. Raymond voor ncurses"
-#: winio.c:1770
+#: winio.c:1877
msgid "and anyone else we forgot..."
msgstr "en iedereen die we vergeten zijn..."
-#: winio.c:1771
+#: winio.c:1878
msgid "Thank you for using nano!\n"
msgstr "Dank u voor het gebruiken van nano!\n"
diff --git a/po/nn.po b/po/nn.po
@@ -8,7 +8,7 @@
msgid ""
msgstr ""
"Project-Id-Version: nano 1.1.5\n"
-"POT-Creation-Date: 2002-01-16 21:51+0100\n"
+"POT-Creation-Date: 2002-01-19 13:10-0500\n"
"PO-Revision-Date: 2002-01-16 22:17+0100\n"
"Last-Translator: Kjetil Torgrim Homme <kjetilho@linpro.no>\n"
"Language-Team: Norwegian nynorsk <i18n-nn@lister.ping.uio.no>\n"
@@ -89,7 +89,7 @@ msgstr "filnamnet er %s"
msgid "Can't insert file from outside of %s"
msgstr "Kan ikkje setja inn fil frЕ utanfor %s"
-#: files.c:440 files.c:1106 files.c:1467 nano.c:1815
+#: files.c:440 files.c:1106 files.c:1467 nano.c:1813
msgid "Cancelled"
msgstr "Avbrote"
@@ -524,7 +524,7 @@ msgid "Find Other Bracket"
msgstr "Finn den andre klamma"
#: global.c:451 global.c:484 global.c:517 global.c:529 global.c:554
-#: global.c:568 global.c:579 global.c:605 winio.c:1307
+#: global.c:568 global.c:579 global.c:605 winio.c:1413
msgid "Cancel"
msgstr "Avbryt"
@@ -566,13 +566,21 @@ msgstr "G
#: nano.c:179
#, c-format
-msgid "\nBuffer written to %s\n"
-msgstr "\nBuffer lagra til %s\n"
+msgid ""
+"\n"
+"Buffer written to %s\n"
+msgstr ""
+"\n"
+"Buffer lagra til %s\n"
#: nano.c:181
#, c-format
-msgid "\nNo %s written (file exists?)\n"
-msgstr "\n%s ikkje lagra (eksisterer fila?)\n"
+msgid ""
+"\n"
+"No %s written (file exists?)\n"
+msgstr ""
+"\n"
+"%s ikkje lagra (eksisterer fila?)\n"
#: nano.c:188
msgid "Window size is too small for Nano..."
@@ -586,16 +594,36 @@ msgstr "Tasten er ulovleg i VIS-modus"
msgid ""
" nano help text\n"
"\n"
-" The nano editor is designed to emulate the functionality and ease-of-use of the UW Pico text editor. There are four main sections of the editor: The top line shows the program version, the current filename being edited, and whether or not the file has been modified. Next is the main editor window showing the file being edited. The status line is the third line from the bottom and shows important messages. The bottom two lines show the most commonly used shortcuts in the editor.\n"
+" The nano editor is designed to emulate the functionality and ease-of-use of "
+"the UW Pico text editor. There are four main sections of the editor: The "
+"top line shows the program version, the current filename being edited, and "
+"whether or not the file has been modified. Next is the main editor window "
+"showing the file being edited. The status line is the third line from the "
+"bottom and shows important messages. The bottom two lines show the most "
+"commonly used shortcuts in the editor.\n"
"\n"
-" The notation for shortcuts is as follows: Control-key sequences are notated with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-key sequences are notated with the Meta (M) symbol and can be entered using either the Esc, Alt or Meta key depending on your keyboard setup. The following keystrokes are available in the main editor window. Optional keys are shown in parentheses:\n"
+" The notation for shortcuts is as follows: Control-key sequences are notated "
+"with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-"
+"key sequences are notated with the Meta (M) symbol and can be entered using "
+"either the Esc, Alt or Meta key depending on your keyboard setup. The "
+"following keystrokes are available in the main editor window. Optional keys "
+"are shown in parentheses:\n"
"\n"
msgstr ""
"Hjelpetekst for nano\n"
"\n"
-" Teksteditoren nano prЬver Е etterlikna bruksmЕten og funksjonaliteten til UW Pico. Der er fire hovudomrЕde i dette programmet: Den Ьvste linja viser versjonsnummeret til Nano, namnet pЕ fila og korvidt bufferet er endra. Nedanfor er hovedvindauget som viser fila som vert redigert. Status-linja er den 3. linja nedanfrЕ og viser viktige meldingar. Dei to nedste linjene viser dei vanlegaste snarvegane i programmet.\n"
+" Teksteditoren nano prЬver Е etterlikna bruksmЕten og funksjonaliteten til "
+"UW Pico. Der er fire hovudomrЕde i dette programmet: Den Ьvste linja viser "
+"versjonsnummeret til Nano, namnet pЕ fila og korvidt bufferet er endra. "
+"Nedanfor er hovedvindauget som viser fila som vert redigert. Status-linja er "
+"den 3. linja nedanfrЕ og viser viktige meldingar. Dei to nedste linjene "
+"viser dei vanlegaste snarvegane i programmet.\n"
"\n"
-"Snarvegane brukar denne notasjonen: Tastesekvensar markert med symbolet ╚^╩ vert skrivne med Control-tasten (evt. Ctrl). Sekvensar markert med meta-symbolet (M) kan skrivast anten med Esc, Alt eller Meta-tasten avhengig av tastaturoppsettet ditt. Dei fЬlgjande tastetrykkja er tilgjengelege i hovudvindauget. Valfrie tastar er vist i parentes:\n"
+"Snarvegane brukar denne notasjonen: Tastesekvensar markert med symbolet ╚^╩ "
+"vert skrivne med Control-tasten (evt. Ctrl). Sekvensar markert med meta-"
+"symbolet (M) kan skrivast anten med Esc, Alt eller Meta-tasten avhengig av "
+"tastaturoppsettet ditt. Dei fЬlgjande tastetrykkja er tilgjengelege i "
+"hovudvindauget. Valfrie tastar er vist i parentes:\n"
#: nano.c:347
msgid "delete_node(): free'd a node, YAY!\n"
@@ -606,7 +634,9 @@ msgid "delete_node(): free'd last node.\n"
msgstr "delete_node(): frigjorde siste node.\n"
#: nano.c:409
-msgid "Usage: nano [GNU long option] [option] +LINE <file>\n\n"
+msgid ""
+"Usage: nano [GNU long option] [option] +LINE <file>\n"
+"\n"
msgstr "Bruk: nano [GNU lange opsjonar] [opsjonar] +LINJE <fil>\n"
#: nano.c:410
@@ -678,7 +708,8 @@ msgid " -p \t\t--pico\t\t\tEmulate Pico as closely as possible\n"
msgstr " -p \t\t--pico\t\t\tEtterlikna Pico sЕ nЬye som mogleg\n"
#: nano.c:469
-msgid " -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n"
+msgid ""
+" -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n"
msgstr " -r [KOL] \t--fill=[KOL]\t\tBryt linjer [pЕ kolonne KOL]\n"
#: nano.c:473
@@ -711,8 +742,12 @@ msgid " +LINE\t\t\t\t\tStart at line number LINE\n"
msgstr " +LINJE\t\t\t\t\tStart pЕ linje LINJE\n"
#: nano.c:490
-msgid "Usage: nano [option] +LINE <file>\n\n"
-msgstr "Bruk: nano [opsjon] +LINJE <fil>\n\n"
+msgid ""
+"Usage: nano [option] +LINE <file>\n"
+"\n"
+msgstr ""
+"Bruk: nano [opsjon] +LINJE <fil>\n"
+"\n"
#: nano.c:491
msgid "Option\t\tMeaning\n"
@@ -824,132 +859,156 @@ msgid " Email: nano@nano-editor.org\tWeb: http://www.nano-editor.org"
msgstr "Epost: nano@nano-editor.org\tVev: http://www.nano-editor.org"
#: nano.c:551
-msgid "\n Compiled options:"
-msgstr "\n Kompilerte tillegg:"
+msgid ""
+"\n"
+" Compiled options:"
+msgstr ""
+"\n"
+" Kompilerte tillegg:"
-#: nano.c:640
+#: nano.c:638
msgid "Mark Set"
msgstr "Merke sett"
-#: nano.c:645
+#: nano.c:643
msgid "Mark UNset"
msgstr "Merke fjerna"
-#: nano.c:1266
+#: nano.c:1264
#, c-format
msgid "check_wrap called with inptr->data=\"%s\"\n"
msgstr "check_wrap kalla med inptr->data=\"%s\"\n"
-#: nano.c:1318
+#: nano.c:1316
#, c-format
msgid "current->data now = \"%s\"\n"
msgstr "current->data no = \"%s\"\n"
-#: nano.c:1370
+#: nano.c:1368
#, c-format
msgid "After, data = \"%s\"\n"
msgstr "Etter, data = \"%s\"\n"
-#: nano.c:1486
+#: nano.c:1484
msgid "Edit a replacement"
msgstr "Rediger erstatning"
-#: nano.c:1726
+#: nano.c:1724
#, c-format
msgid "Could not create a temporary filename: %s"
msgstr "Kunne ikkje oppretta mellombels fil: %s"
-#: nano.c:1732
+#: nano.c:1730
msgid "Spell checking failed: unable to write temp file!"
msgstr "Stavekontroll feila: kunne ikkje laga mellombels fil!"
-#: nano.c:1752
+#: nano.c:1750
msgid "Finished checking spelling"
msgstr "Stavekontroll fullfЬrt"
-#: nano.c:1754
+#: nano.c:1752
msgid "Spell checking failed"
msgstr "Stavekontroll feila"
-#: nano.c:1783
+#: nano.c:1781
msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
msgstr "Lagra endra buffer (\"No\" VIL MISSA ENDRINGANE)? "
-#: nano.c:1930
+#: nano.c:1928
msgid "Received SIGHUP"
msgstr "Mottok SIGHUP"
-#: nano.c:2000
+#: nano.c:1998
msgid "Cannot resize top win"
msgstr "Kan ikkje endra storleik pЕ toppvindauget"
-#: nano.c:2002
+#: nano.c:2000
msgid "Cannot move top win"
msgstr "Kan ikke flytta toppvindauget"
-#: nano.c:2004
+#: nano.c:2002
msgid "Cannot resize edit win"
msgstr "Kan ikkje endra storleik pЕ redigeringsvindauget"
-#: nano.c:2006
+#: nano.c:2004
msgid "Cannot move edit win"
msgstr "Kan ikkje flytta redigeringsvindauget"
-#: nano.c:2008
+#: nano.c:2006
msgid "Cannot resize bottom win"
msgstr "Kan ikkje endra storleik pЕ bunnvindauget"
-#: nano.c:2010
+#: nano.c:2008
msgid "Cannot move bottom win"
msgstr "Kan ikkje flytta botnvindauget"
-#: nano.c:2349
+#: nano.c:2347
msgid "Can now UnJustify!"
msgstr "Du kan no gjera om ombrekkinga!"
-#: nano.c:2415
+#: nano.c:2413
msgid ""
"Search Command Help Text\n"
"\n"
-" Enter the words or characters you would like to search for, then hit enter. If there is a match for the text you entered, the screen will be updated to the location of the nearest match for the search string.\n"
+" Enter the words or characters you would like to search for, then hit "
+"enter. If there is a match for the text you entered, the screen will be "
+"updated to the location of the nearest match for the search string.\n"
"\n"
-" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or using a nanorc file, the previous search string will be shown in brackets after the Search: prompt. Hitting enter without entering any text will perform the previous search. Otherwise, the previous string will be placed in front of the cursor, and can be edited or deleted before hitting enter.\n"
+" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or "
+"using a nanorc file, the previous search string will be shown in brackets "
+"after the Search: prompt. Hitting enter without entering any text will "
+"perform the previous search. Otherwise, the previous string will be placed "
+"in front of the cursor, and can be edited or deleted before hitting enter.\n"
"\n"
" The following functions keys are available in Search mode:\n"
"\n"
msgstr ""
"Hjelpetekst for sЬkjekommandoen\n"
"\n"
-" Tast inn orda eller teikna du vil sЬkja etter, og trykk Enter. Dersom teksten du tasta inn finnest, vil skjermen verta oppdatert til Е visa fram nФrmaste treff.\n"
+" Tast inn orda eller teikna du vil sЬkja etter, og trykk Enter. Dersom "
+"teksten du tasta inn finnest, vil skjermen verta oppdatert til Е visa fram "
+"nФrmaste treff.\n"
"\n"
-" Dersom du er i Pico-modus (vha. opsjonane -p eller --pico, brytaren Meta-P eller ei nanorc-fil), vil fЬrre sЬkjestreng visast i klammer etter ╚SЬk╩. Trykkjer du Enter vil fЬrre sЬket verta gjenteke, viss ikkje vil den fЬrre strengen verte plassert framfor markЬren, og kan endrast eller slettast fЬr du trykkjer Enter.\n"
+" Dersom du er i Pico-modus (vha. opsjonane -p eller --pico, brytaren Meta-P "
+"eller ei nanorc-fil), vil fЬrre sЬkjestreng visast i klammer etter ╚SЬk╩. "
+"Trykkjer du Enter vil fЬrre sЬket verta gjenteke, viss ikkje vil den fЬrre "
+"strengen verte plassert framfor markЬren, og kan endrast eller slettast fЬr "
+"du trykkjer Enter.\n"
"\n"
" FЬlgjande funksjonstastar er tilgjengelege i sЬkjemodus:\n"
"\n"
-#: nano.c:2429
+#: nano.c:2427
msgid ""
"Goto Line Help Text\n"
"\n"
-" Enter the line number that you wish to go to and hit Enter. If there are fewer lines of text than the number you entered, you will be brought to the last line of the file.\n"
+" Enter the line number that you wish to go to and hit Enter. If there are "
+"fewer lines of text than the number you entered, you will be brought to the "
+"last line of the file.\n"
"\n"
" The following functions keys are available in Goto Line mode:\n"
"\n"
msgstr ""
"Hjelpetekst for GЕ til linje\n"
"\n"
-" Skriv inn linjenummeret du vil gЕ til og trykk Enter. Dersom der er fФrre linjer med tekst enn talet du oppgav, vil du hamne pЕ siste linje i bufferet.\n"
+" Skriv inn linjenummeret du vil gЕ til og trykk Enter. Dersom der er fФrre "
+"linjer med tekst enn talet du oppgav, vil du hamne pЕ siste linje i "
+"bufferet.\n"
"\n"
" FЬlgjande funksjonstastar er tilgjengelege i GЕ til linje-modus:\n"
"\n"
-#: nano.c:2436
+#: nano.c:2434
msgid ""
"Insert File Help Text\n"
"\n"
-" Type in the name of a file to be inserted into the current file buffer at the current cursor location.\n"
+" Type in the name of a file to be inserted into the current file buffer at "
+"the current cursor location.\n"
"\n"
-" If you have compiled nano with multiple file buffer support, and enable multiple buffers with the -F or --multibuffer command line flags, the Meta-F toggle or using a nanorc file, inserting a file will cause it to be loaded into a separate buffer (use Meta-< and > to switch between file buffers).\n"
+" If you have compiled nano with multiple file buffer support, and enable "
+"multiple buffers with the -F or --multibuffer command line flags, the Meta-F "
+"toggle or using a nanorc file, inserting a file will cause it to be loaded "
+"into a separate buffer (use Meta-< and > to switch between file buffers).\n"
"\n"
" The following function keys are available in Insert File mode:\n"
"\n"
@@ -958,183 +1017,241 @@ msgstr ""
"\n"
" Tast inn namnet pЕ fila som skal setjast inn i bufferet der markЬren stЕr.\n"
"\n"
-" Dersom din nano har stЬtte for fleire buffer, og du har skrudd pЕ dette (vha. opsjonen -F eller --multibuffer, eller brytaren Meta-F, eller i ei nanorc-fil), vil fila i staden setjast inn i ein eigen buffer. Bruk Meta-< og Meta-> for Е skifte mellom filbuffer.\n"
+" Dersom din nano har stЬtte for fleire buffer, og du har skrudd pЕ dette "
+"(vha. opsjonen -F eller --multibuffer, eller brytaren Meta-F, eller i ei "
+"nanorc-fil), vil fila i staden setjast inn i ein eigen buffer. Bruk Meta-< "
+"og Meta-> for Е skifte mellom filbuffer.\n"
"\n"
" FЬlgjande funksjonstastar er tilgjengelege i Set inn fil-modus:\n"
"\n"
-#: nano.c:2447
+#: nano.c:2445
msgid ""
"Write File Help Text\n"
"\n"
-" Type the name that you wish to save the current file as and hit enter to save the file.\n"
+" Type the name that you wish to save the current file as and hit enter to "
+"save the file.\n"
"\n"
-" If you are using the marker code with Ctrl-^ and have selected text, you will be prompted to save only the selected portion to a separate file. To reduce the chance of overwriting the current file with just a portion of it, the current filename is not the default in this mode.\n"
+" If you are using the marker code with Ctrl-^ and have selected text, you "
+"will be prompted to save only the selected portion to a separate file. To "
+"reduce the chance of overwriting the current file with just a portion of it, "
+"the current filename is not the default in this mode.\n"
"\n"
" The following function keys are available in Write File mode:\n"
"\n"
msgstr ""
"Hjelpetekst for Lagre fil\n"
"\n"
-" Tast inn namnet du Ьnskjer og trykk Enter for Е lagra bufferet med dette namnet.\n"
+" Tast inn namnet du Ьnskjer og trykk Enter for Е lagra bufferet med dette "
+"namnet.\n"
"\n"
-" Viss du brukar merkekoden med Ctrl-^ og har merka tekst, vil berre den merka teksten lagrast. For Е redusera sjansen for Е overskriva fila med berre ein del av ho, vil filnamnet verte endra i denne modusen.\n"
+" Viss du brukar merkekoden med Ctrl-^ og har merka tekst, vil berre den "
+"merka teksten lagrast. For Е redusera sjansen for Е overskriva fila med "
+"berre ein del av ho, vil filnamnet verte endra i denne modusen.\n"
"\n"
" FЬlgjande funksjonstastar er tilgjengelege i Lagre fil-modus:\n"
"\n"
-#: nano.c:2459
+#: nano.c:2457
msgid ""
"File Browser Help Text\n"
"\n"
-" The file browser is used to visually browse the directory structure to select a file for reading or writing. You may use the arrow keys or Page Up/Down to browse through the files, and S or Enter to choose the selected file or enter the selected directory. To move up one level, select the directory called \"..\" at the top of the file list.\n"
+" The file browser is used to visually browse the directory structure to "
+"select a file for reading or writing. You may use the arrow keys or Page Up/"
+"Down to browse through the files, and S or Enter to choose the selected file "
+"or enter the selected directory. To move up one level, select the directory "
+"called \"..\" at the top of the file list.\n"
"\n"
" The following functions keys are available in the file browser:\n"
"\n"
msgstr ""
"Hjelpetekst for filutforskaren\n"
"\n"
-" Filutforskaren vert brukt til Е bla gjennom katalogane nЕr ein skal velja ei fil for lesing eller skriving. Du kan bruka piltastane eller Page Up/Down for Е bla, og S eller Enter for Е velja den markerte fila eller for Е gЕ inn i den valte katalogen. For Е gЕ eit hakk opp, vel katalogen ╚..╩ pЕ toppen av fillista.\n"
+" Filutforskaren vert brukt til Е bla gjennom katalogane nЕr ein skal velja "
+"ei fil for lesing eller skriving. Du kan bruka piltastane eller Page Up/"
+"Down for Е bla, og S eller Enter for Е velja den markerte fila eller for Е "
+"gЕ inn i den valte katalogen. For Е gЕ eit hakk opp, vel katalogen ╚..╩ pЕ "
+"toppen av fillista.\n"
"\n"
" FЬlgjande funksjonstastar er tilgjengelege i filutforskaren:\n"
"\n"
-#: nano.c:2470
+#: nano.c:2468
msgid ""
"Browser Goto Directory Help Text\n"
"\n"
" Enter the name of the directory you would like to browse to.\n"
"\n"
-" If tab completion has not been disabled, you can use the TAB key to (attempt to) automatically complete the directory name. The following function keys are available in Browser GotoDir mode:\n"
+" If tab completion has not been disabled, you can use the TAB key to "
+"(attempt to) automatically complete the directory name. The following "
+"function keys are available in Browser GotoDir mode:\n"
"\n"
msgstr ""
"Hjelpetekst for GЕ til katalog\n"
"\n"
" Tast inn namnet pЕ katalogen du vil utforske.\n"
"\n"
-" Du kan (med mindre det er slЕtt av) bruke Tab-tasten for Е prЬve Е fullfЬre katalognamnet.\n"
+" Du kan (med mindre det er slЕtt av) bruke Tab-tasten for Е prЬve Е fullfЬre "
+"katalognamnet.\n"
"\n"
" FЬlgjande funksjonstastar er tilgjengelege i GЕ til katalog-modus:\n"
"\n"
-#: nano.c:2478
+#: nano.c:2476
msgid ""
"Spell Check Help Text\n"
"\n"
-" The spell checker checks the spelling of all text in the current file. When an unknown word is encountered, it is highlighted and a replacement can be edited. It will then prompt to replace every instance of the given misspelled word in the current file.\n"
+" The spell checker checks the spelling of all text in the current file. "
+"When an unknown word is encountered, it is highlighted and a replacement can "
+"be edited. It will then prompt to replace every instance of the given "
+"misspelled word in the current file.\n"
"\n"
" The following other functions are available in Spell Check mode:\n"
"\n"
msgstr ""
"Hjelpetekst for stavesjekking\n"
"\n"
-" Stavesjekkinga kontrollerer all teksten i bufferet. NЕr eit ukjent ord vert funne, vert det framheva og ein endre det. Du vil sЕ verte spurt om du vil endre alle andre forekomstar i bufferet av det feilstava ordet.\n"
+" Stavesjekkinga kontrollerer all teksten i bufferet. NЕr eit ukjent ord "
+"vert funne, vert det framheva og ein endre det. Du vil sЕ verte spurt om du "
+"vil endre alle andre forekomstar i bufferet av det feilstava ordet.\n"
"\n"
" FЬlgjande andre funksjonar er tilgjengelege i stavesjekkingsmodus:\n"
"\n"
-#: nano.c:2562
+#: nano.c:2560
#, c-format
msgid "%s enable/disable"
msgstr "%s skru pЕ/av"
-#: nano.c:2581
+#: nano.c:2579
msgid "enabled"
msgstr "pЕ"
-#: nano.c:2582
+#: nano.c:2580
msgid "disabled"
msgstr "av"
-#: nano.c:2646
+#: nano.c:2644
msgid "NumLock glitch detected. Keypad will malfunction with NumLock off"
msgstr "NumLock-feil oppdaga. Nummer-tastane vil fungere feil med NumLock av"
-#: nano.c:2943
+#: nano.c:2941
msgid "Main: set up windows\n"
msgstr "Hovud: Vindauge sett opp\n"
-#: nano.c:2960
+#: nano.c:2958
msgid "Main: bottom win\n"
msgstr "Hovud: botnvindauge\n"
-#: nano.c:2966
+#: nano.c:2964
msgid "Main: open file\n"
msgstr "Hovud: opna fil\n"
-#: nano.c:3025
+#: nano.c:3023
#, c-format
msgid "I got Alt-O-%c! (%d)\n"
msgstr "Eg fekk Alt-O-%c! (%d)\n"
-#: nano.c:3059
+#: nano.c:3057
#, c-format
msgid "I got Alt-[-1-%c! (%d)\n"
msgstr "Eg fekk Alt-[-1-%c! (%d)\n"
-#: nano.c:3089
+#: nano.c:3087
#, c-format
msgid "I got Alt-[-2-%c! (%d)\n"
msgstr "Eg fekk Alt-[-2-%c! (%d)\n"
-#: nano.c:3158
+#: nano.c:3156
#, c-format
msgid "I got Alt-[-%c! (%d)\n"
msgstr "Eg fekk Alt-[-%c! (%d)\n"
-#: nano.c:3196
+#: nano.c:3194
#, c-format
msgid "I got Alt-%c! (%d)\n"
msgstr "Eg fekk Alt-%c (%d)\n"
-#: rcfile.c:85
-msgid "\nPress return to continue starting nano\n"
-msgstr "\nTrykk Enter for Е halda fram lastinga av nano\n"
+#: rcfile.c:86
+#, fuzzy, c-format
+msgid "Error in %s on line %d: "
+msgstr "Feil i %s pЕ linje %d: kommandoen %s er ikkje forstЕeleg"
+
+#: rcfile.c:90
+msgid ""
+"\n"
+"Press return to continue starting nano\n"
+msgstr ""
+"\n"
+"Trykk Enter for Е halda fram lastinga av nano\n"
+
+#: rcfile.c:180
+#, c-format
+msgid ""
+"color %s not understood.\n"
+"Valid colors are \"green\", \"red\", \"blue\", \n"
+"\"white\", \"yellow\", \"cyan\", \"magenta\" and \n"
+"\"black\", with the optional prefix \"bright\".\n"
+msgstr ""
-#: rcfile.c:282
+#: rcfile.c:204
+msgid "Missing color name"
+msgstr ""
+
+#: rcfile.c:234 rcfile.c:288
+msgid "regex strings must begin and end with a \" character\n"
+msgstr ""
+
+#: rcfile.c:280
+msgid ""
+"\n"
+"\t\"start=\" requires a corresponding \"end=\""
+msgstr ""
+
+#: rcfile.c:330
msgid "parse_rcfile: Read a comment\n"
msgstr "parse_rcfile: Las ein kommentar\n"
-#: rcfile.c:303
-#, c-format
-msgid "Error in %s on line %d: command %s not understood"
+#: rcfile.c:351
+#, fuzzy, c-format
+msgid "command %s not understood"
msgstr "Feil i %s pЕ linje %d: kommandoen %s er ikkje forstЕeleg"
-#: rcfile.c:316
+#: rcfile.c:363
#, c-format
msgid "parse_rcfile: Parsing option %s\n"
msgstr "parse_rcfile: Les inn opsjon %s\n"
-#: rcfile.c:334
-#, c-format
-msgid "Error in %s on line %d: option %s requires an argument"
+#: rcfile.c:381
+#, fuzzy, c-format
+msgid "option %s requires an argument"
msgstr "Feil i %s pЕ linje %d: opsjonen %s krev eit argument"
-#: rcfile.c:345
-#, c-format
-msgid "Error in %s on line %d: requested fill size %d too small"
+#: rcfile.c:392
+#, fuzzy, c-format
+msgid "requested fill size %d too small"
msgstr "Feil i %s pЕ linje %d: fyllbreidda du foreslo (%d) er for smal"
-#: rcfile.c:354
-#, c-format
-msgid "Error in %s on line %d: requested tab size %d too small"
+#: rcfile.c:402
+#, fuzzy, c-format
+msgid "requested tab size %d too small"
msgstr "Feil i %s pЕ linje %d: tab-breidda du foreslo (%d) er for smal"
-#: rcfile.c:368
+#: rcfile.c:417
#, c-format
msgid "set flag %d!\n"
msgstr "sett flagget %d!\n"
-#: rcfile.c:373
+#: rcfile.c:423
#, c-format
msgid "unset flag %d!\n"
msgstr "skru av flagget %d!\n"
-#: rcfile.c:382
+#: rcfile.c:433
msgid "Errors found in .nanorc file"
msgstr "Feil funne i .nanorc fila"
-#: rcfile.c:391
+#: rcfile.c:441
#, c-format
msgid "Unable to open ~/.nanorc file, %s"
msgstr "Kan ikkje opna ~/.nanorc, %s"
@@ -1246,29 +1363,29 @@ msgstr "nano: realloc: tom for minne!"
msgid "actual_x_from_start for xplus=%d returned %d\n"
msgstr "actual_x_from_start for xplus=%d returnerte %d\n"
-#: winio.c:295 winio.c:466
+#: winio.c:294 winio.c:464
#, c-format
msgid "Aha! '%c' (%d)\n"
msgstr "Aha! '%c' (%d)\n"
-#: winio.c:498
+#: winio.c:496
#, c-format
msgid "input '%c' (%d)\n"
msgstr "input '%c' (%d)\n"
-#: winio.c:546
+#: winio.c:544
msgid "New Buffer"
msgstr "Ny buffer"
-#: winio.c:550
+#: winio.c:548
msgid " File: ..."
msgstr " Fil: ..."
-#: winio.c:552
+#: winio.c:550
msgid " DIR: ..."
msgstr " KAT: ..."
-#: winio.c:556
+#: winio.c:555
msgid "File: "
msgstr "Fil: "
@@ -1280,17 +1397,17 @@ msgstr " KAT: "
msgid "Modified"
msgstr "Endra"
-#: winio.c:1166
+#: winio.c:1272
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr "Flytta til (%d, %d) i redigeringsbuffer\n"
-#: winio.c:1177
+#: winio.c:1283
#, c-format
msgid "current->data = \"%s\"\n"
msgstr "current->data = \"%s\"\n"
-#: winio.c:1251
+#: winio.c:1357
#, c-format
msgid "I got \"%s\"\n"
msgstr "Eg fekk \"%s\"\n"
@@ -1298,81 +1415,81 @@ msgstr "Eg fekk \"%s\"\n"
#. Yes, no and all are strings of any length. Each string consists of
#. all characters accepted as a valid character for that value.
#. The first value will be the one displayed in the shortcuts.
-#: winio.c:1280
+#: winio.c:1386
msgid "Yy"
msgstr "JjYy"
-#: winio.c:1281
+#: winio.c:1387
msgid "Nn"
msgstr "Nn"
-#: winio.c:1282
+#: winio.c:1388
msgid "Aa"
msgstr "Aa"
-#: winio.c:1296
+#: winio.c:1402
msgid "Yes"
msgstr "Ja"
-#: winio.c:1300
+#: winio.c:1406
msgid "All"
msgstr "Alle"
-#: winio.c:1305
+#: winio.c:1411
msgid "No"
msgstr "Nei"
-#: winio.c:1512
+#: winio.c:1617
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
-#: winio.c:1520
+#: winio.c:1626
#, c-format
msgid "line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"
msgstr "linje %d av %d (%.0f%%), teikn %ld av %ld (%.0f%%)"
-#: winio.c:1685
+#: winio.c:1790
msgid "Dumping file buffer to stderr...\n"
msgstr "Dumpar fil-bufferet til stderr...\n"
-#: winio.c:1687
+#: winio.c:1792
msgid "Dumping cutbuffer to stderr...\n"
msgstr "Dumpar utklippsbufferet til stderr...\n"
-#: winio.c:1689
+#: winio.c:1794
msgid "Dumping a buffer to stderr...\n"
msgstr "Dumpar eit buffer til stderr...\n"
-#: winio.c:1764
+#: winio.c:1870
msgid "The nano text editor"
msgstr "Teksteditoren nano"
-#: winio.c:1765
+#: winio.c:1871
msgid "version "
msgstr "versjon "
-#: winio.c:1766
+#: winio.c:1872
msgid "Brought to you by:"
msgstr "Gjeve til deg av:"
-#: winio.c:1767
+#: winio.c:1873
msgid "Special thanks to:"
msgstr "Spesiell takk til:"
# Oversette dette ?
-#: winio.c:1768
+#: winio.c:1874
msgid "The Free Software Foundation"
msgstr "Free Sofware Foundation"
-#: winio.c:1769
+#: winio.c:1876
msgid "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurses"
msgstr "Pavel Curtis, Zeyd Ben-Halim og Eric S. Raymond for ncurses"
-#: winio.c:1770
+#: winio.c:1877
msgid "and anyone else we forgot..."
msgstr "og alle dei andre vi glЬymde..."
-#: winio.c:1771
+#: winio.c:1878
msgid "Thank you for using nano!\n"
msgstr "Takk for at du brukar nano!\n"
diff --git a/po/pl.po b/po/pl.po
@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: nano 1.1.4\n"
-"POT-Creation-Date: 2002-01-05 14:33-0500\n"
+"POT-Creation-Date: 2002-01-19 13:10-0500\n"
"PO-Revision-Date: 2002-01-02 12:25+0200\n"
"Last-Translator: Wojciech Kotwica <wkotwica@post.pl>\n"
"Language-Team: Polish <pl@li.org>\n"
@@ -87,7 +87,7 @@ msgstr "nazwa pliku to %s"
msgid "Can't insert file from outside of %s"
msgstr "Nie mo©na wstawiФ pliku spoza %s "
-#: files.c:440 files.c:1106 files.c:1467 nano.c:1806
+#: files.c:440 files.c:1106 files.c:1467 nano.c:1813
msgid "Cancelled"
msgstr "Anulowano"
@@ -405,7 +405,7 @@ msgid "Find other bracket"
msgstr "Znajd╪ nawias do pary"
#: global.c:306 global.c:448 global.c:481 global.c:514 global.c:527
-#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:602
+#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:603
msgid "Get Help"
msgstr "Pomoc"
@@ -523,7 +523,7 @@ msgid "Find Other Bracket"
msgstr "Znajd╪ nawias do pary"
#: global.c:451 global.c:484 global.c:517 global.c:529 global.c:554
-#: global.c:568 global.c:579 global.c:604 winio.c:1307
+#: global.c:568 global.c:579 global.c:605 winio.c:1413
msgid "Cancel"
msgstr "Anuluj"
@@ -602,9 +602,9 @@ msgid ""
"commonly used shortcuts in the editor.\n"
"\n"
" The notation for shortcuts is as follows: Control-key sequences are notated "
-"with a caret (^) symbol and are entered with the Control (Ctrl) key. "
-"Escape-key sequences are notated with the Meta (M) symbol and can be entered "
-"using either the Esc, Alt or Meta key depending on your keyboard setup. The "
+"with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-"
+"key sequences are notated with the Meta (M) symbol and can be entered using "
+"either the Esc, Alt or Meta key depending on your keyboard setup. The "
"following keystrokes are available in the main editor window. Optional keys "
"are shown in parentheses:\n"
"\n"
@@ -769,9 +769,7 @@ msgid " -F \t\tEnable multiple file buffers\n"
msgstr " -F \t\tWЁ╠czenie wielu buforСw plikowych\n"
#: nano.c:498
-msgid ""
-" -K\t\tUse alternate keypad routines\n"
-"\n"
+msgid " -K\t\tUse alternate keypad routines\n"
msgstr ""
#: nano.c:500
@@ -878,95 +876,95 @@ msgstr ""
"\n"
" Skompilowane opcje:"
-#: nano.c:640
+#: nano.c:638
msgid "Mark Set"
msgstr "Znacznik ustawiony"
-#: nano.c:645
+#: nano.c:643
msgid "Mark UNset"
msgstr "Znacznik skasowany"
-#: nano.c:1267
+#: nano.c:1264
#, c-format
msgid "check_wrap called with inptr->data=\"%s\"\n"
msgstr "check_wrap wywoЁane z inptr->data=\"%s\"\n"
-#: nano.c:1319
+#: nano.c:1316
#, c-format
msgid "current->data now = \"%s\"\n"
msgstr "current->data teraz = \"%s\"\n"
-#: nano.c:1371
+#: nano.c:1368
#, c-format
msgid "After, data = \"%s\"\n"
msgstr "Po, data = \"%s\"\n"
-#: nano.c:1480
+#: nano.c:1484
msgid "Edit a replacement"
msgstr "Edytuj zast╠pienie"
-#: nano.c:1717
+#: nano.c:1724
#, c-format
msgid "Could not create a temporary filename: %s"
msgstr "Nie mo©na utworzyФ nazwy pliku tymczasowego: %s"
-#: nano.c:1723
+#: nano.c:1730
msgid "Spell checking failed: unable to write temp file!"
msgstr ""
"Niepowodzenie sprawdzania pisowni: nie mo©na zapisaФ pliku tymczasowego!"
-#: nano.c:1743
+#: nano.c:1750
msgid "Finished checking spelling"
msgstr "ZakoЯczono sprawdzanie pisowni"
-#: nano.c:1745
+#: nano.c:1752
msgid "Spell checking failed"
msgstr "Niepowodzenie sprawdzania pisowni"
-#: nano.c:1774
+#: nano.c:1781
msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
msgstr "ZapisaФ zmieniony bufor (ODPOWIED╛ \"Nie\" SPOWODUJE UTRATй ZMIAN) ? "
-#: nano.c:1921
+#: nano.c:1928
msgid "Received SIGHUP"
msgstr "Otrzymano SIGHUP"
-#: nano.c:1988
+#: nano.c:1998
msgid "Cannot resize top win"
msgstr "Nie mo©na zmieniФ rozmiaru gСrnego okna"
-#: nano.c:1990
+#: nano.c:2000
msgid "Cannot move top win"
msgstr "Nie mo©na przesun╠Ф gСrnego okna"
-#: nano.c:1992
+#: nano.c:2002
msgid "Cannot resize edit win"
msgstr "Nie mo©na zmieniФ rozmiaru okna edycji"
-#: nano.c:1994
+#: nano.c:2004
msgid "Cannot move edit win"
msgstr "Nie mo©na przesun╠Ф okna edycji"
-#: nano.c:1996
+#: nano.c:2006
msgid "Cannot resize bottom win"
msgstr "Nie mo©na zmieniФ rozmiaru dolnego okna"
-#: nano.c:1998
+#: nano.c:2008
msgid "Cannot move bottom win"
msgstr "Nie mo©na przesun╠Ф dolnego okna"
-#: nano.c:2337
+#: nano.c:2347
msgid "Can now UnJustify!"
msgstr "Mo©na teraz cofn╠Ф justowanie!"
-#: nano.c:2403
+#: nano.c:2413
#, fuzzy
msgid ""
"Search Command Help Text\n"
"\n"
-" Enter the words or characters you would like to search for, then hit enter. "
-" If there is a match for the text you entered, the screen will be updated to "
-"the location of the nearest match for the search string.\n"
+" Enter the words or characters you would like to search for, then hit "
+"enter. If there is a match for the text you entered, the screen will be "
+"updated to the location of the nearest match for the search string.\n"
"\n"
" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or "
"using a nanorc file, the previous search string will be shown in brackets "
@@ -993,7 +991,7 @@ msgstr ""
" W trybie szukania dostЙpne s╠ nastЙpuj╠ce klawisze funkcyjne:\n"
"\n"
-#: nano.c:2417
+#: nano.c:2427
msgid ""
"Goto Line Help Text\n"
"\n"
@@ -1013,7 +1011,7 @@ msgstr ""
"funkcyjne:\n"
"\n"
-#: nano.c:2424
+#: nano.c:2434
#, fuzzy
msgid ""
"Insert File Help Text\n"
@@ -1042,7 +1040,7 @@ msgstr ""
" W trybie wstawiania pliku dostЙpne s╠ nastЙpuj╠ce klawisze funkcyjne:\n"
"\n"
-#: nano.c:2435
+#: nano.c:2445
msgid ""
"Write File Help Text\n"
"\n"
@@ -1069,15 +1067,15 @@ msgstr ""
" W trybie zapisu pliku dostЙpne s╠ nastЙpuj╠ce klawisze funkcyjne:\n"
"\n"
-#: nano.c:2447
+#: nano.c:2457
msgid ""
"File Browser Help Text\n"
"\n"
" The file browser is used to visually browse the directory structure to "
-"select a file for reading or writing. You may use the arrow keys or Page "
-"Up/Down to browse through the files, and S or Enter to choose the selected "
-"file or enter the selected directory. To move up one level, select the "
-"directory called \"..\" at the top of the file list.\n"
+"select a file for reading or writing. You may use the arrow keys or Page Up/"
+"Down to browse through the files, and S or Enter to choose the selected file "
+"or enter the selected directory. To move up one level, select the directory "
+"called \"..\" at the top of the file list.\n"
"\n"
" The following functions keys are available in the file browser:\n"
"\n"
@@ -1094,7 +1092,7 @@ msgstr ""
" W przegl╠darce plikСw dostЙpne s╠ nastЙpuj╠ce klawisze funkcyjne:\n"
"\n"
-#: nano.c:2458
+#: nano.c:2468
msgid ""
"Browser Goto Directory Help Text\n"
"\n"
@@ -1115,7 +1113,7 @@ msgstr ""
"s╠ nastЙpuj╠ce klawisze funkcyjne:\n"
"\n"
-#: nano.c:2466
+#: nano.c:2476
msgid ""
"Spell Check Help Text\n"
"\n"
@@ -1138,62 +1136,67 @@ msgstr ""
" W trybie sprawdzania pisowni dostЙpne s╠ nastЙpuj╠ce klawisze funkcyjne:\n"
"\n"
-#: nano.c:2550
+#: nano.c:2560
#, c-format
msgid "%s enable/disable"
msgstr "%s wЁ╠cz/wyЁ╠cz"
-#: nano.c:2569
+#: nano.c:2579
msgid "enabled"
msgstr "wЁ╠czony(e)"
-#: nano.c:2570
+#: nano.c:2580
msgid "disabled"
msgstr "wyЁ╠czony(e)"
-#: nano.c:2634
+#: nano.c:2644
msgid "NumLock glitch detected. Keypad will malfunction with NumLock off"
msgstr ""
"Wykryto przeЁ╠czenie NumLock. Klawiatura numeryczna nie bЙdzie dziaЁaФ"
-#: nano.c:2931
+#: nano.c:2941
msgid "Main: set up windows\n"
msgstr "Main: ustaw okna\n"
-#: nano.c:2948
+#: nano.c:2958
msgid "Main: bottom win\n"
msgstr "Main: dolne okno\n"
-#: nano.c:2954
+#: nano.c:2964
msgid "Main: open file\n"
msgstr "Main: otwСrz plik\n"
-#: nano.c:3013
+#: nano.c:3023
#, fuzzy, c-format
msgid "I got Alt-O-%c! (%d)\n"
msgstr "DostaЁem Alt-O-%c! (%d)\n"
-#: nano.c:3047
+#: nano.c:3057
#, fuzzy, c-format
msgid "I got Alt-[-1-%c! (%d)\n"
msgstr "DostaЁem Alt-[-1-%c! (%d)\n"
-#: nano.c:3077
+#: nano.c:3087
#, fuzzy, c-format
msgid "I got Alt-[-2-%c! (%d)\n"
msgstr "DostaЁem Alt-[-2-%c! (%d)\n"
-#: nano.c:3146
+#: nano.c:3156
#, fuzzy, c-format
msgid "I got Alt-[-%c! (%d)\n"
msgstr "DostaЁem Alt-[-%c! (%d)\n"
-#: nano.c:3183
+#: nano.c:3194
#, fuzzy, c-format
msgid "I got Alt-%c! (%d)\n"
msgstr "DostaЁem Alt-%c! (%d)\n"
-#: rcfile.c:85
+#: rcfile.c:86
+#, fuzzy, c-format
+msgid "Error in %s on line %d: "
+msgstr "BЁ╠d w %s w linii %d: niezrozumiaЁe polecenie %s"
+
+#: rcfile.c:90
msgid ""
"\n"
"Press return to continue starting nano\n"
@@ -1201,50 +1204,73 @@ msgstr ""
"\n"
"Naci╤nij return aby kontynuowaФ start nano\n"
-#: rcfile.c:282
+#: rcfile.c:180
+#, c-format
+msgid ""
+"color %s not understood.\n"
+"Valid colors are \"green\", \"red\", \"blue\", \n"
+"\"white\", \"yellow\", \"cyan\", \"magenta\" and \n"
+"\"black\", with the optional prefix \"bright\".\n"
+msgstr ""
+
+#: rcfile.c:204
+msgid "Missing color name"
+msgstr ""
+
+#: rcfile.c:234 rcfile.c:288
+msgid "regex strings must begin and end with a \" character\n"
+msgstr ""
+
+#: rcfile.c:280
+msgid ""
+"\n"
+"\t\"start=\" requires a corresponding \"end=\""
+msgstr ""
+
+#: rcfile.c:330
msgid "parse_rcfile: Read a comment\n"
msgstr "parse_rcfile: Odczyt komentarza\n"
-#: rcfile.c:303
-#, c-format
-msgid "Error in %s on line %d: command %s not understood"
+#: rcfile.c:351
+#, fuzzy, c-format
+msgid "command %s not understood"
msgstr "BЁ╠d w %s w linii %d: niezrozumiaЁe polecenie %s"
-#: rcfile.c:316
+#: rcfile.c:363
#, c-format
msgid "parse_rcfile: Parsing option %s\n"
msgstr "parse_rcfile: Analiza opcji %s\n"
-#: rcfile.c:334
-#, c-format
-msgid "Error in %s on line %d: option %s requires an argument"
+#: rcfile.c:381
+#, fuzzy, c-format
+msgid "option %s requires an argument"
msgstr "BЁ╠d w %s w linii %d: opcja %s wymaga argumentu"
-#: rcfile.c:345
-#, c-format
-msgid "Error in %s on line %d: requested fill size %d too small"
+#: rcfile.c:392
+#, fuzzy, c-format
+msgid "requested fill size %d too small"
msgstr "BЁ╠d w %s w linii %d: ©╠dana pozycja Ёamania linii %d zbyt maЁa"
-#: rcfile.c:354
-#, c-format
-msgid "Error in %s on line %d: requested tab size %d too small"
+#: rcfile.c:402
+#, fuzzy, c-format
+msgid "requested tab size %d too small"
msgstr "BЁ╠d w %s w linii %d: ©╠dana wielko╤Ф tabulacji %d zbyt maЁa"
-#: rcfile.c:368
+#: rcfile.c:417
#, c-format
msgid "set flag %d!\n"
msgstr "ustawiono flagЙ %d!\n"
-#: rcfile.c:373
+#: rcfile.c:423
#, c-format
msgid "unset flag %d!\n"
msgstr "zdjЙto flagЙ %d!\n"
-#: rcfile.c:382
+#: rcfile.c:433
msgid "Errors found in .nanorc file"
msgstr "W pliku .nanorc znaleziono bЁЙdy"
-#: rcfile.c:391
+#: rcfile.c:441
#, c-format
msgid "Unable to open ~/.nanorc file, %s"
msgstr "Nie mo©na otworzyФ pliku ~/.nanorc, %s"
@@ -1275,7 +1301,7 @@ msgstr " [Wstecz]"
msgid " (to replace)"
msgstr " (i zast╠p)"
-#: search.c:151 search.c:424
+#: search.c:151 search.c:438
msgid "Search Cancelled"
msgstr "Wyszukiwanie anulowane"
@@ -1284,58 +1310,58 @@ msgstr "Wyszukiwanie anulowane"
msgid "\"%s...\" not found"
msgstr "\"%s...\" nie znalezione"
-#: search.c:278 search.c:340
+#: search.c:292 search.c:354
msgid "Search Wrapped"
msgstr "Wyszukiwanie minЙЁo granicЙ pliku - kontynuowane od pocz╠tku (koЯca)"
-#: search.c:446
+#: search.c:460
#, c-format
msgid "Replaced %d occurrences"
msgstr "Zast╠piono %d wyst╠pien(ia)"
-#: search.c:448
+#: search.c:462
msgid "Replaced 1 occurrence"
msgstr "Zast╠piono 1 wyst╠pienie"
-#: search.c:586 search.c:698 search.c:714
+#: search.c:600 search.c:699 search.c:715
msgid "Replace Cancelled"
msgstr "ZastЙpowanie anulowane"
-#: search.c:636
+#: search.c:637
msgid "Replace this instance?"
msgstr "Czy zast╠piФ to wyst╠pienie?"
-#: search.c:648
+#: search.c:649
msgid "Replace failed: unknown subexpression!"
msgstr "ZastЙpowanie nie powiodЁo siЙ: nieznane podwyra©enie!"
-#: search.c:739
+#: search.c:740
#, c-format
msgid "Replace with [%s]"
msgstr "Zast╠p przez [%s]"
-#: search.c:743 search.c:747
+#: search.c:744 search.c:748
msgid "Replace with"
msgstr "Zast╠p przez"
-#: search.c:781
+#: search.c:782
msgid "Enter line number"
msgstr "Wprowad╪ numer linii"
-#: search.c:783
+#: search.c:784
msgid "Aborted"
msgstr "Przerwane"
-#: search.c:792
+#: search.c:793
msgid "Come on, be reasonable"
msgstr "CzЁowieku, wiЙcej rozs╠dku"
-#: search.c:854
+#: search.c:855
msgid "Not a bracket"
msgstr "To nie nawias"
#. didn't find either left or right bracket
-#: search.c:899
+#: search.c:900
msgid "No matching bracket"
msgstr "Brak nawiasu do pary"
@@ -1356,29 +1382,29 @@ msgstr "nano: realloc: brak pami
msgid "actual_x_from_start for xplus=%d returned %d\n"
msgstr "actual_x_from_start dla xplus=%d zwrСciЁo %d\n"
-#: winio.c:295 winio.c:466
+#: winio.c:294 winio.c:464
#, c-format
msgid "Aha! '%c' (%d)\n"
msgstr "Aha! '%c' (%d)\n"
-#: winio.c:498
+#: winio.c:496
#, c-format
msgid "input '%c' (%d)\n"
msgstr "wej╤cie '%c' (%d)\n"
-#: winio.c:546
+#: winio.c:544
msgid "New Buffer"
msgstr "Nowy bufor"
-#: winio.c:550
+#: winio.c:548
msgid " File: ..."
msgstr " Plik: ..."
-#: winio.c:552
+#: winio.c:550
msgid " DIR: ..."
msgstr " KAT: ..."
-#: winio.c:556
+#: winio.c:555
#, fuzzy
msgid "File: "
msgstr " Plik: ..."
@@ -1392,17 +1418,17 @@ msgstr " KAT: ..."
msgid "Modified"
msgstr "Zmieniony"
-#: winio.c:1166
+#: winio.c:1272
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr "PrzesuniЙto do (%d, %d) w buforze edycji\n"
-#: winio.c:1177
+#: winio.c:1283
#, c-format
msgid "current->data = \"%s\"\n"
msgstr "current->data = \"%s\"\n"
-#: winio.c:1251
+#: winio.c:1357
#, fuzzy, c-format
msgid "I got \"%s\"\n"
msgstr "DostaЁem \"%s\"\n"
@@ -1410,79 +1436,80 @@ msgstr "Dosta
#. Yes, no and all are strings of any length. Each string consists of
#. all characters accepted as a valid character for that value.
#. The first value will be the one displayed in the shortcuts.
-#: winio.c:1280
+#: winio.c:1386
msgid "Yy"
msgstr "Tt"
-#: winio.c:1281
+#: winio.c:1387
msgid "Nn"
msgstr "Nn"
-#: winio.c:1282
+#: winio.c:1388
msgid "Aa"
msgstr "Ww"
-#: winio.c:1296
+#: winio.c:1402
msgid "Yes"
msgstr "Tak"
-#: winio.c:1300
+#: winio.c:1406
msgid "All"
msgstr "Wszystko"
-#: winio.c:1305
+#: winio.c:1411
msgid "No"
msgstr "Nie"
-#: winio.c:1512
+#: winio.c:1617
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
-#: winio.c:1520
+#: winio.c:1626
+#, c-format
msgid "line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"
msgstr "linia %d z %d (%.0f%%), znak %ld z %ld (%.0f%%"
-#: winio.c:1685
+#: winio.c:1790
msgid "Dumping file buffer to stderr...\n"
msgstr "Zrzucanie bufora pliku na stderr...\n"
-#: winio.c:1687
+#: winio.c:1792
msgid "Dumping cutbuffer to stderr...\n"
msgstr "Zrzucanie bufora wycinania na stderr...\n"
-#: winio.c:1689
+#: winio.c:1794
msgid "Dumping a buffer to stderr...\n"
msgstr "Zrzucanie bufora na stderr...\n"
-#: winio.c:1764
+#: winio.c:1870
msgid "The nano text editor"
msgstr "Edytor tekstu nano"
-#: winio.c:1765
+#: winio.c:1871
msgid "version "
msgstr "wersja "
-#: winio.c:1766
+#: winio.c:1872
msgid "Brought to you by:"
msgstr "Stworzony przez:"
-#: winio.c:1767
+#: winio.c:1873
msgid "Special thanks to:"
msgstr "Specjalne podziЙkowania otrzymuj╠:"
-#: winio.c:1768
+#: winio.c:1874
msgid "The Free Software Foundation"
msgstr "Free Software Foundation (Fundacja Wolnego Oprogramowania)"
-#: winio.c:1769
+#: winio.c:1876
msgid "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurses"
msgstr "Pavel Curtis, Zeyd Ben-Halim i Eric S. Raymond za ncurses"
-#: winio.c:1770
+#: winio.c:1877
msgid "and anyone else we forgot..."
msgstr "oraz wszyscy pozostali, o ktСrych zapomnieli╤my..."
-#: winio.c:1771
+#: winio.c:1878
msgid "Thank you for using nano!\n"
msgstr "DziЙkujemy za pracЙ z nano!\n"
diff --git a/po/ru.po b/po/ru.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: nano 1.1.5\n"
-"POT-Creation-Date: 2002-01-05 14:33-0500\n"
+"POT-Creation-Date: 2002-01-19 13:10-0500\n"
"PO-Revision-Date: 2002-01-08 11:10+0300\n"
"Last-Translator: Sergey A. Ribalchenko <fisher@obu.ck.ua>\n"
"Language-Team: Russian <ru@li.org>\n"
@@ -86,7 +86,7 @@ msgstr "
msgid "Can't insert file from outside of %s"
msgstr "Не могу вставить файл снаружи %s"
-#: files.c:440 files.c:1106 files.c:1467 nano.c:1806
+#: files.c:440 files.c:1106 files.c:1467 nano.c:1813
msgid "Cancelled"
msgstr "Отменено"
@@ -403,7 +403,7 @@ msgid "Find other bracket"
msgstr "Найти соответствующую скобку"
#: global.c:306 global.c:448 global.c:481 global.c:514 global.c:527
-#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:602
+#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:603
msgid "Get Help"
msgstr "Помощь"
@@ -521,7 +521,7 @@ msgid "Find Other Bracket"
msgstr "Найти Другую Скобку"
#: global.c:451 global.c:484 global.c:517 global.c:529 global.c:554
-#: global.c:568 global.c:579 global.c:604 winio.c:1307
+#: global.c:568 global.c:579 global.c:605 winio.c:1413
msgid "Cancel"
msgstr "Отменить"
@@ -563,13 +563,21 @@ msgstr "
#: nano.c:179
#, c-format
-msgid "\nBuffer written to %s\n"
-msgstr "\nБуфер записан в %s\n"
+msgid ""
+"\n"
+"Buffer written to %s\n"
+msgstr ""
+"\n"
+"Буфер записан в %s\n"
#: nano.c:181
#, c-format
-msgid "\nNo %s written (file exists?)\n"
-msgstr "\n%s не записан (файл существует?)\n"
+msgid ""
+"\n"
+"No %s written (file exists?)\n"
+msgstr ""
+"\n"
+"%s не записан (файл существует?)\n"
#: nano.c:188
msgid "Window size is too small for Nano..."
@@ -583,16 +591,39 @@ msgstr "
msgid ""
" nano help text\n"
"\n"
-" The nano editor is designed to emulate the functionality and ease-of-use of the UW Pico text editor. There are four main sections of the editor: The top line shows the program version, the current filename being edited, and whether or not the file has been modified. Next is the main editor window showing the file being edited. The status line is the third line from the bottom and shows important messages. The bottom two lines show the most commonly used shortcuts in the editor.\n"
+" The nano editor is designed to emulate the functionality and ease-of-use of "
+"the UW Pico text editor. There are four main sections of the editor: The "
+"top line shows the program version, the current filename being edited, and "
+"whether or not the file has been modified. Next is the main editor window "
+"showing the file being edited. The status line is the third line from the "
+"bottom and shows important messages. The bottom two lines show the most "
+"commonly used shortcuts in the editor.\n"
"\n"
-" The notation for shortcuts is as follows: Control-key sequences are notated with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-key sequences are notated with the Meta (M) symbol and can be entered using either the Esc, Alt or Meta key depending on your keyboard setup. The following keystrokes are available in the main editor window. Optional keys are shown in parentheses:\n"
+" The notation for shortcuts is as follows: Control-key sequences are notated "
+"with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-"
+"key sequences are notated with the Meta (M) symbol and can be entered using "
+"either the Esc, Alt or Meta key depending on your keyboard setup. The "
+"following keystrokes are available in the main editor window. Optional keys "
+"are shown in parentheses:\n"
"\n"
msgstr ""
" текст помощи nano\n"
"\n"
-" Редактор nano разработан для эмуляции функциональности и простоты использования оригинального редактора UW Pico. Редактор разбит на 4 секции: верхняя строка содержит версию программы, текущее имя файла, который редактируется, и были ли внесены изменения в текущий файл. Вторая секция - это главное окно редактирования, в котором, при некотором желании, можно рассмотреть содержимое редактируемого файла. Строка состояния - 3 строка снизу - показывает разные важные сообщения. И, наконец, последние две строки содержат наиболее общие комбинации клавиш редактора.\n"
+" Редактор nano разработан для эмуляции функциональности и простоты "
+"использования оригинального редактора UW Pico. Редактор разбит на 4 секции: "
+"верхняя строка содержит версию программы, текущее имя файла, который "
+"редактируется, и были ли внесены изменения в текущий файл. Вторая секция - "
+"это главное окно редактирования, в котором, при некотором желании, можно "
+"рассмотреть содержимое редактируемого файла. Строка состояния - 3 строка "
+"снизу - показывает разные важные сообщения. И, наконец, последние две строки "
+"содержат наиболее общие комбинации клавиш редактора.\n"
"\n"
-" Система обозначений комбинаций клавиш следующая: 1. Комбинации с Control'ом обозначены символом '^' и вводятся при помощи нажатой кнопки Ctrl; 2. комбинации с Esc (Esc-последовательности) обозначены буквой M и могут быть введены при помощи кнопки Esc, Alt или Meta, в зависимости от используемой клавиатуры. Нижеследущие комбинации доступны в главном окне редактирования. Дополнительные комбинации показаны в скобках:\n"
+" Система обозначений комбинаций клавиш следующая: 1. Комбинации с Control'ом "
+"обозначены символом '^' и вводятся при помощи нажатой кнопки Ctrl; 2. "
+"комбинации с Esc (Esc-последовательности) обозначены буквой M и могут быть "
+"введены при помощи кнопки Esc, Alt или Meta, в зависимости от используемой "
+"клавиатуры. Нижеследущие комбинации доступны в главном окне редактирования. "
+"Дополнительные комбинации показаны в скобках:\n"
"\n"
#: nano.c:347
@@ -604,8 +635,12 @@ msgid "delete_node(): free'd last node.\n"
msgstr "delete_node(): освобожден последний узел.\n"
#: nano.c:409
-msgid "Usage: nano [GNU long option] [option] +LINE <file>\n\n"
-msgstr "Использование: nano [длинные опции GNU] [опции] +СТРОКА <файл>\n\n"
+msgid ""
+"Usage: nano [GNU long option] [option] +LINE <file>\n"
+"\n"
+msgstr ""
+"Использование: nano [длинные опции GNU] [опции] +СТРОКА <файл>\n"
+"\n"
#: nano.c:410
msgid "Option\t\tLong option\t\tMeaning\n"
@@ -676,7 +711,8 @@ msgid " -p \t\t--pico\t\t\tEmulate Pico as closely as possible\n"
msgstr " -p\t \t--pico\t\t\tЭмулировать Pico насколько это возможно\n"
#: nano.c:469
-msgid " -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n"
+msgid ""
+" -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n"
msgstr " -r [#стол] \t--fill=[#стол]\t\tПереносить строки в позиции #стол\n"
#: nano.c:473
@@ -708,8 +744,12 @@ msgid " +LINE\t\t\t\t\tStart at line number LINE\n"
msgstr " +СТРОКА\t\t\t\tНачать со строки номер СТРОКА\n"
#: nano.c:490
-msgid "Usage: nano [option] +LINE <file>\n\n"
-msgstr "Использование: nano [опция] +СТРОКА <файл>\n\n"
+msgid ""
+"Usage: nano [option] +LINE <file>\n"
+"\n"
+msgstr ""
+"Использование: nano [опция] +СТРОКА <файл>\n"
+"\n"
#: nano.c:491
msgid "Option\t\tMeaning\n"
@@ -724,8 +764,11 @@ msgid " -F \t\tEnable multiple file buffers\n"
msgstr " -F \t\tРазрешить несколько файловых буфферов\n"
#: nano.c:498
-msgid " -K\t\tUse alternate keypad routines\n\n"
-msgstr " -K\t\tИспользовать альтернативные подпрограммы для keypad\n\n"
+#, fuzzy
+msgid " -K\t\tUse alternate keypad routines\n"
+msgstr ""
+" -K\t\tИспользовать альтернативные подпрограммы для keypad\n"
+"\n"
#: nano.c:500
msgid " -M \t\tWrite file in Mac format\n"
@@ -821,152 +864,186 @@ msgid " Email: nano@nano-editor.org\tWeb: http://www.nano-editor.org"
msgstr " Емыло: nano@nano-editor.org\tПаутина: http://www.nano-editor.org"
#: nano.c:551
-msgid "\n Compiled options:"
-msgstr "\n Собрано с опциями:"
+msgid ""
+"\n"
+" Compiled options:"
+msgstr ""
+"\n"
+" Собрано с опциями:"
-#: nano.c:640
+#: nano.c:638
msgid "Mark Set"
msgstr "Метка установлена"
-#: nano.c:645
+#: nano.c:643
msgid "Mark UNset"
msgstr "Метка снята"
-#: nano.c:1267
+#: nano.c:1264
#, c-format
msgid "check_wrap called with inptr->data=\"%s\"\n"
msgstr "check_wrap вызвано с inptr->data=\"%s\"\n"
-#: nano.c:1319
+#: nano.c:1316
#, c-format
msgid "current->data now = \"%s\"\n"
msgstr "current->data сейчас = \"%s\"\n"
-#: nano.c:1371
+#: nano.c:1368
#, c-format
msgid "After, data = \"%s\"\n"
msgstr "После, data = \"%s\"\n"
-#: nano.c:1480
+#: nano.c:1484
msgid "Edit a replacement"
msgstr "Редактировать замену"
-#: nano.c:1717
+#: nano.c:1724
#, c-format
msgid "Could not create a temporary filename: %s"
msgstr "Не могу создать временное имя файла: %s"
-#: nano.c:1723
+#: nano.c:1730
msgid "Spell checking failed: unable to write temp file!"
msgstr "Проверка правописания облом-с: не могу записать временный файл."
-#: nano.c:1743
+#: nano.c:1750
msgid "Finished checking spelling"
msgstr "Проверка правописания завершена"
-#: nano.c:1745
+#: nano.c:1752
msgid "Spell checking failed"
msgstr "Проверка правописания не удалась"
-#: nano.c:1774
+#: nano.c:1781
msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
msgstr "Сохранить измененный буфер (Ответ \"Нет\" УНИЧТОЖИТ все изменения) ?"
-#: nano.c:1921
+#: nano.c:1928
msgid "Received SIGHUP"
msgstr "Получили SIGHUP"
-#: nano.c:1988
+#: nano.c:1998
msgid "Cannot resize top win"
msgstr "Не могу изменить размер верхнего окна"
-#: nano.c:1990
+#: nano.c:2000
msgid "Cannot move top win"
msgstr "Не могу переместить верхнее окно"
-#: nano.c:1992
+#: nano.c:2002
msgid "Cannot resize edit win"
msgstr "Не могу изменить размер окна редактирования"
-#: nano.c:1994
+#: nano.c:2004
msgid "Cannot move edit win"
msgstr "Не могу переместить окно редактирования"
-#: nano.c:1996
+#: nano.c:2006
msgid "Cannot resize bottom win"
msgstr "Не могу изменить размер нижнего окна"
-#: nano.c:1998
+#: nano.c:2008
msgid "Cannot move bottom win"
msgstr "Не могу переместить нижнее окно"
-#: nano.c:2337
+#: nano.c:2347
msgid "Can now UnJustify!"
msgstr "Сейчас можно отменить выравнивание! (^U)"
-#: nano.c:2403
+#: nano.c:2413
msgid ""
"Search Command Help Text\n"
"\n"
-" Enter the words or characters you would like to search for, then hit enter. If there is a match for the text you entered, the screen will be updated to the location of the nearest match for the search string.\n"
+" Enter the words or characters you would like to search for, then hit "
+"enter. If there is a match for the text you entered, the screen will be "
+"updated to the location of the nearest match for the search string.\n"
"\n"
-" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or using a nanorc file, the previous search string will be shown in brackets after the Search: prompt. Hitting enter without entering any text will perform the previous search. Otherwise, the previous string will be placed in front of the cursor, and can be edited or deleted before hitting enter.\n"
+" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or "
+"using a nanorc file, the previous search string will be shown in brackets "
+"after the Search: prompt. Hitting enter without entering any text will "
+"perform the previous search. Otherwise, the previous string will be placed "
+"in front of the cursor, and can be edited or deleted before hitting enter.\n"
"\n"
" The following functions keys are available in Search mode:\n"
"\n"
msgstr ""
"Текст помощи команды поиска\n"
"\n"
-" Введите слова или символы, которые Вы собираетесь искать, затем нажмите Enter. Если для введеного Вами найдется совпадение, экран переместится в положение поблизости от найденного совпадения.\n"
+" Введите слова или символы, которые Вы собираетесь искать, затем нажмите "
+"Enter. Если для введеного Вами найдется совпадение, экран переместится в "
+"положение поблизости от найденного совпадения.\n"
"\n"
-" Если используется режим Pico через опцию -p или --pico, или через комбинацию Meta-P, или через файл nanorc, то предыдущая строка поиска будет показана в скобках после промпта 'Поиск:'. Нажатие Enter без редактирования текста продолжит предыдущий поиск. Иначе, предыдущая строка разместится перед курсором и может быть отредактирована или удалена перед тем как нажать Enter.\n"
+" Если используется режим Pico через опцию -p или --pico, или через "
+"комбинацию Meta-P, или через файл nanorc, то предыдущая строка поиска будет "
+"показана в скобках после промпта 'Поиск:'. Нажатие Enter без редактирования "
+"текста продолжит предыдущий поиск. Иначе, предыдущая строка разместится "
+"перед курсором и может быть отредактирована или удалена перед тем как нажать "
+"Enter.\n"
"\n"
" Следующие функциональные клавиши доступны в режиме поиска:\n"
"\n"
-#: nano.c:2417
+#: nano.c:2427
msgid ""
"Goto Line Help Text\n"
"\n"
-" Enter the line number that you wish to go to and hit Enter. If there are fewer lines of text than the number you entered, you will be brought to the last line of the file.\n"
+" Enter the line number that you wish to go to and hit Enter. If there are "
+"fewer lines of text than the number you entered, you will be brought to the "
+"last line of the file.\n"
"\n"
" The following functions keys are available in Goto Line mode:\n"
"\n"
msgstr ""
"Текст помощи режима Перейти_к_строке\n"
"\n"
-" Введите номер строки к которой Вы желаете перейти и нажмите Enter. Если в файле число строк меньше чем число, которое Вы ввели, Вы окажетесь на последней строке файла.\n"
+" Введите номер строки к которой Вы желаете перейти и нажмите Enter. Если в "
+"файле число строк меньше чем число, которое Вы ввели, Вы окажетесь на "
+"последней строке файла.\n"
"\n"
" Следующие функциональные клавиши доступны в режиме Перейти_к_строке:\n"
"\n"
-#: nano.c:2424
+#: nano.c:2434
msgid ""
"Insert File Help Text\n"
"\n"
-" Type in the name of a file to be inserted into the current file buffer at the current cursor location.\n"
+" Type in the name of a file to be inserted into the current file buffer at "
+"the current cursor location.\n"
"\n"
-" If you have compiled nano with multiple file buffer support, and enable multiple buffers with the -F or --multibuffer command line flags, the Meta-F toggle or using a nanorc file, inserting a file will cause it to be loaded into a separate buffer (use Meta-< and > to switch between file buffers).\n"
+" If you have compiled nano with multiple file buffer support, and enable "
+"multiple buffers with the -F or --multibuffer command line flags, the Meta-F "
+"toggle or using a nanorc file, inserting a file will cause it to be loaded "
+"into a separate buffer (use Meta-< and > to switch between file buffers).\n"
"\n"
" The following function keys are available in Insert File mode:\n"
"\n"
msgstr ""
"Текст помощи режима Вставить_файл\n"
"\n"
-" Наберите имя файла для вставки в текущий файловый буффер в текущую позицию курсора.\n"
+" Наберите имя файла для вставки в текущий файловый буффер в текущую позицию "
+"курсора.\n"
"\n"
-" Если Ваш nano скомпилирован с поддержкой нескольких файловых буфферов, и эта фича включена опциями -F или --multibuffer, или комбинацией клавиш Meta-F, или при помощи файла nanorc, то вставка файла приведет к загрузке этого файла в отдельный буффер (используйте Meta-< и > дабы переключаться между файловыми буфферами).\n"
+" Если Ваш nano скомпилирован с поддержкой нескольких файловых буфферов, и "
+"эта фича включена опциями -F или --multibuffer, или комбинацией клавиш Meta-"
+"F, или при помощи файла nanorc, то вставка файла приведет к загрузке этого "
+"файла в отдельный буффер (используйте Meta-< и > дабы переключаться между "
+"файловыми буфферами).\n"
"\n"
" Следующие функциональные клавиши доступны в режиме Вставить_файл:\n"
"\n"
-#: nano.c:2435
+#: nano.c:2445
msgid ""
"Write File Help Text\n"
"\n"
-" Type the name that you wish to save the current file as and hit enter to save the file.\n"
+" Type the name that you wish to save the current file as and hit enter to "
+"save the file.\n"
"\n"
-" If you are using the marker code with Ctrl-^ and have selected text, you will be prompted to save only the selected portion to a separate file. To reduce the chance of overwriting the current file with just a portion of it, the current filename is not the default in this mode.\n"
+" If you are using the marker code with Ctrl-^ and have selected text, you "
+"will be prompted to save only the selected portion to a separate file. To "
+"reduce the chance of overwriting the current file with just a portion of it, "
+"the current filename is not the default in this mode.\n"
"\n"
" The following function keys are available in Write File mode:\n"
"\n"
@@ -975,161 +1052,216 @@ msgstr ""
"\n"
" Наберите имя под которым Вы хотите сохранить текущий файл и нажмите Enter.\n"
"\n"
-" Если Вы используете код пометки (Ctrl-^) и отметили текст, Вам предложат записать только выделенную часть в отдельный файл. Чтобы понизить шансы переписывания текущего файла частью этого файла, текущее имя файла не будет именем по умолчанию в этом режиме.\n"
+" Если Вы используете код пометки (Ctrl-^) и отметили текст, Вам предложат "
+"записать только выделенную часть в отдельный файл. Чтобы понизить шансы "
+"переписывания текущего файла частью этого файла, текущее имя файла не будет "
+"именем по умолчанию в этом режиме.\n"
"\n"
" Следующие клавиши доступны в режиме записи файла:\n"
"\n"
-#: nano.c:2447
+#: nano.c:2457
msgid ""
"File Browser Help Text\n"
"\n"
-" The file browser is used to visually browse the directory structure to select a file for reading or writing. You may use the arrow keys or Page Up/Down to browse through the files, and S or Enter to choose the selected file or enter the selected directory. To move up one level, select the directory called \"..\" at the top of the file list.\n"
+" The file browser is used to visually browse the directory structure to "
+"select a file for reading or writing. You may use the arrow keys or Page Up/"
+"Down to browse through the files, and S or Enter to choose the selected file "
+"or enter the selected directory. To move up one level, select the directory "
+"called \"..\" at the top of the file list.\n"
"\n"
" The following functions keys are available in the file browser:\n"
"\n"
msgstr ""
"Текст помощи просмотрщика файлов\n"
"\n"
-" Просмотрщик файлов используется для визуального просмотра содержимого директории, для выбора файла из этой директории для операций ввода-вывода. Пользуйтесь клавишами-стрелочками или PageUp/PageDown для прогулки по содержимому директории, и клавишами S или Enter чтобы выбрать желаемый файл или войти в выбраную директорию. Для перемещения вверх на одну директорию, выберите директорию, названную \"..\" в самом верху списка файлов.\n"
+" Просмотрщик файлов используется для визуального просмотра содержимого "
+"директории, для выбора файла из этой директории для операций ввода-вывода. "
+"Пользуйтесь клавишами-стрелочками или PageUp/PageDown для прогулки по "
+"содержимому директории, и клавишами S или Enter чтобы выбрать желаемый файл "
+"или войти в выбраную директорию. Для перемещения вверх на одну директорию, "
+"выберите директорию, названную \"..\" в самом верху списка файлов.\n"
"\n"
" Следующие функциональные клавиши доступны в просмотрщике файлов:\n"
"\n"
-#: nano.c:2458
+#: nano.c:2468
msgid ""
"Browser Goto Directory Help Text\n"
"\n"
" Enter the name of the directory you would like to browse to.\n"
"\n"
-" If tab completion has not been disabled, you can use the TAB key to (attempt to) automatically complete the directory name. The following function keys are available in Browser GotoDir mode:\n"
+" If tab completion has not been disabled, you can use the TAB key to "
+"(attempt to) automatically complete the directory name. The following "
+"function keys are available in Browser GotoDir mode:\n"
"\n"
msgstr ""
"Текст помощи режима Перейти_к_директории Просмотрщика\n"
"\n"
" Введите имя директории которую Вы хотите просмотреть.\n"
"\n"
-" Если tab-дополнение не было запрещено, Вы можете использовать клавишу TAB для автоматического дополнения имени директории. Следующие функциональные клавиши доступны в режиме Перейти_к_директории Просмотрщика:\n"
+" Если tab-дополнение не было запрещено, Вы можете использовать клавишу TAB "
+"для автоматического дополнения имени директории. Следующие функциональные "
+"клавиши доступны в режиме Перейти_к_директории Просмотрщика:\n"
"\n"
-#: nano.c:2466
+#: nano.c:2476
msgid ""
"Spell Check Help Text\n"
"\n"
-" The spell checker checks the spelling of all text in the current file. When an unknown word is encountered, it is highlighted and a replacement can be edited. It will then prompt to replace every instance of the given misspelled word in the current file.\n"
+" The spell checker checks the spelling of all text in the current file. "
+"When an unknown word is encountered, it is highlighted and a replacement can "
+"be edited. It will then prompt to replace every instance of the given "
+"misspelled word in the current file.\n"
"\n"
" The following other functions are available in Spell Check mode:\n"
"\n"
msgstr ""
"Текст помощи проверки правописания\n"
"\n"
-" Спеллчекер (программа для проверки правописания) проверяет орфографию всего текста текущего файла. Если найдено неизвестное слово, оно подсвечивается и появляется редактируемая замена этому слову. Затем будет появляться приглашение для замены каждого вхождения данного ошибочно написанного слова в текущем файле.\n"
+" Спеллчекер (программа для проверки правописания) проверяет орфографию всего "
+"текста текущего файла. Если найдено неизвестное слово, оно подсвечивается и "
+"появляется редактируемая замена этому слову. Затем будет появляться "
+"приглашение для замены каждого вхождения данного ошибочно написанного слова "
+"в текущем файле.\n"
"\n"
" Следующие дополнительные функции доступны в режиме проверки правописания:\n"
"\n"
-#: nano.c:2550
+#: nano.c:2560
#, c-format
msgid "%s enable/disable"
msgstr "%s - разрешить/запретить"
-#: nano.c:2569
+#: nano.c:2579
msgid "enabled"
msgstr "разрешено"
-#: nano.c:2570
+#: nano.c:2580
msgid "disabled"
msgstr "запрещено"
-#: nano.c:2634
+#: nano.c:2644
msgid "NumLock glitch detected. Keypad will malfunction with NumLock off"
msgstr "Обнаружен сбой NumLock'а. Цифровая клавиатура недоступна (NumLock off)"
-#: nano.c:2931
+#: nano.c:2941
msgid "Main: set up windows\n"
msgstr "Main: установить окна\n"
-#: nano.c:2948
+#: nano.c:2958
msgid "Main: bottom win\n"
msgstr "Main: нижнее окно\n"
-#: nano.c:2954
+#: nano.c:2964
msgid "Main: open file\n"
msgstr "Main: открыть файл\n"
-#: nano.c:3013
+#: nano.c:3023
#, c-format
msgid "I got Alt-O-%c! (%d)\n"
msgstr "Поймал Alt-O-%c! (%d)\n"
-#: nano.c:3047
+#: nano.c:3057
#, c-format
msgid "I got Alt-[-1-%c! (%d)\n"
msgstr "Поймал Alt-[-1-%c! (%d)\n"
-#: nano.c:3077
+#: nano.c:3087
#, c-format
msgid "I got Alt-[-2-%c! (%d)\n"
msgstr "Поймал Alt-[-2-%c! (%d)\n"
-#: nano.c:3146
+#: nano.c:3156
#, c-format
msgid "I got Alt-[-%c! (%d)\n"
msgstr "Поймал Alt-[-%c! (%d)\n"
-#: nano.c:3183
+#: nano.c:3194
#, c-format
msgid "I got Alt-%c! (%d)\n"
msgstr "Поймал Alt-%c! (%d)\n"
-#: rcfile.c:85
-msgid "\nPress return to continue starting nano\n"
-msgstr "\nНажмите Ввод дабы продолжить старт nano\n"
+#: rcfile.c:86
+#, fuzzy, c-format
+msgid "Error in %s on line %d: "
+msgstr "Ошибка в %s в строке %d: команда %s весьма не вразумительна"
-#: rcfile.c:282
+#: rcfile.c:90
+msgid ""
+"\n"
+"Press return to continue starting nano\n"
+msgstr ""
+"\n"
+"Нажмите Ввод дабы продолжить старт nano\n"
+
+#: rcfile.c:180
+#, c-format
+msgid ""
+"color %s not understood.\n"
+"Valid colors are \"green\", \"red\", \"blue\", \n"
+"\"white\", \"yellow\", \"cyan\", \"magenta\" and \n"
+"\"black\", with the optional prefix \"bright\".\n"
+msgstr ""
+
+#: rcfile.c:204
+msgid "Missing color name"
+msgstr ""
+
+#: rcfile.c:234 rcfile.c:288
+msgid "regex strings must begin and end with a \" character\n"
+msgstr ""
+
+#: rcfile.c:280
+msgid ""
+"\n"
+"\t\"start=\" requires a corresponding \"end=\""
+msgstr ""
+
+#: rcfile.c:330
msgid "parse_rcfile: Read a comment\n"
msgstr "parse_rcfile: Читаем комментарий\n"
-#: rcfile.c:303
-#, c-format
-msgid "Error in %s on line %d: command %s not understood"
+#: rcfile.c:351
+#, fuzzy, c-format
+msgid "command %s not understood"
msgstr "Ошибка в %s в строке %d: команда %s весьма не вразумительна"
-#: rcfile.c:316
+#: rcfile.c:363
#, c-format
msgid "parse_rcfile: Parsing option %s\n"
msgstr "parse_rcfile: Разбираем опцию %s\n"
-#: rcfile.c:334
-#, c-format
-msgid "Error in %s on line %d: option %s requires an argument"
+#: rcfile.c:381
+#, fuzzy, c-format
+msgid "option %s requires an argument"
msgstr "Ошибка в %s в строке %d: опция %s требует аргумент"
-#: rcfile.c:345
-#, c-format
-msgid "Error in %s on line %d: requested fill size %d too small"
+#: rcfile.c:392
+#, fuzzy, c-format
+msgid "requested fill size %d too small"
msgstr "Ошибка в %s в строке %d: запрошенный размер заполнения %d слишком мал"
-#: rcfile.c:354
-#, c-format
-msgid "Error in %s on line %d: requested tab size %d too small"
+#: rcfile.c:402
+#, fuzzy, c-format
+msgid "requested tab size %d too small"
msgstr "Ошибка в %s в строке %d: запрошенный размер табуляции %d слишком мал"
-#: rcfile.c:368
+#: rcfile.c:417
#, c-format
msgid "set flag %d!\n"
msgstr "установите флаг %d!\n"
-#: rcfile.c:373
+#: rcfile.c:423
#, c-format
msgid "unset flag %d!\n"
msgstr "cнимите флаг %d!\n"
-#: rcfile.c:382
+#: rcfile.c:433
msgid "Errors found in .nanorc file"
msgstr "В файле .nanorc найдены ошибки"
-#: rcfile.c:391
+#: rcfile.c:441
#, c-format
msgid "Unable to open ~/.nanorc file, %s"
msgstr "Не могу открыть файл ~/.nanorc, %s"
@@ -1160,7 +1292,7 @@ msgstr " [
msgid " (to replace)"
msgstr " (что менять)"
-#: search.c:151 search.c:424
+#: search.c:151 search.c:438
msgid "Search Cancelled"
msgstr "Поиск отменен"
@@ -1169,58 +1301,58 @@ msgstr "
msgid "\"%s...\" not found"
msgstr "\"%s...\" не найдено"
-#: search.c:278 search.c:340
+#: search.c:292 search.c:354
msgid "Search Wrapped"
msgstr "Поиск завернут"
-#: search.c:446
+#: search.c:460
#, c-format
msgid "Replaced %d occurrences"
msgstr "Заменено %d вхождений"
-#: search.c:448
+#: search.c:462
msgid "Replaced 1 occurrence"
msgstr "Заменено 1 вхождение"
-#: search.c:586 search.c:698 search.c:714
+#: search.c:600 search.c:699 search.c:715
msgid "Replace Cancelled"
msgstr "Замена отменена"
-#: search.c:636
+#: search.c:637
msgid "Replace this instance?"
msgstr "Заменить это вхождение?"
-#: search.c:648
+#: search.c:649
msgid "Replace failed: unknown subexpression!"
msgstr "Замена не получилась: неизвестное подвыражение!"
-#: search.c:739
+#: search.c:740
#, c-format
msgid "Replace with [%s]"
msgstr "Заменить на [%s]"
-#: search.c:743 search.c:747
+#: search.c:744 search.c:748
msgid "Replace with"
msgstr "Заменить на"
-#: search.c:781
+#: search.c:782
msgid "Enter line number"
msgstr "Введите номер строки"
-#: search.c:783
+#: search.c:784
msgid "Aborted"
msgstr "Прервано"
-#: search.c:792
+#: search.c:793
msgid "Come on, be reasonable"
msgstr "Эта, а можно чуть более адекватно?"
-#: search.c:854
+#: search.c:855
msgid "Not a bracket"
msgstr "Не скобка"
#. didn't find either left or right bracket
-#: search.c:899
+#: search.c:900
msgid "No matching bracket"
msgstr "Нет соответствующей скобки"
@@ -1241,29 +1373,29 @@ msgstr "nano: realloc:
msgid "actual_x_from_start for xplus=%d returned %d\n"
msgstr "actual_x_from_start для xplus=%d вернуло %d\n"
-#: winio.c:295 winio.c:466
+#: winio.c:294 winio.c:464
#, c-format
msgid "Aha! '%c' (%d)\n"
msgstr "Ага! '%c' (%d)\n"
-#: winio.c:498
+#: winio.c:496
#, c-format
msgid "input '%c' (%d)\n"
msgstr "ввод '%c' (%d)\n"
-#: winio.c:546
+#: winio.c:544
msgid "New Buffer"
msgstr "Новый Буфер"
-#: winio.c:550
+#: winio.c:548
msgid " File: ..."
msgstr " Файл: ..."
-#: winio.c:552
+#: winio.c:550
msgid " DIR: ..."
msgstr " Дир: ..."
-#: winio.c:556
+#: winio.c:555
msgid "File: "
msgstr "Файл: "
@@ -1275,17 +1407,17 @@ msgstr "
msgid "Modified"
msgstr "Изменен"
-#: winio.c:1166
+#: winio.c:1272
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr "Перемещено на (%d, %d) в буфере редактирования\n"
-#: winio.c:1177
+#: winio.c:1283
#, c-format
msgid "current->data = \"%s\"\n"
msgstr "current->data = \"%s\"\n"
-#: winio.c:1251
+#: winio.c:1357
#, c-format
msgid "I got \"%s\"\n"
msgstr "Поймал \"%s\"\n"
@@ -1293,79 +1425,81 @@ msgstr "
#. Yes, no and all are strings of any length. Each string consists of
#. all characters accepted as a valid character for that value.
#. The first value will be the one displayed in the shortcuts.
-#: winio.c:1280
+#: winio.c:1386
msgid "Yy"
msgstr "YyДд"
-#: winio.c:1281
+#: winio.c:1387
msgid "Nn"
msgstr "NnНн"
-#: winio.c:1282
+#: winio.c:1388
msgid "Aa"
msgstr "AaВв"
-#: winio.c:1296
+#: winio.c:1402
msgid "Yes"
msgstr "Да"
-#: winio.c:1300
+#: winio.c:1406
msgid "All"
msgstr "Все"
-#: winio.c:1305
+#: winio.c:1411
msgid "No"
msgstr "Нет"
-#: winio.c:1512
+#: winio.c:1617
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
-#: winio.c:1520
+#: winio.c:1626
+#, c-format
msgid "line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"
msgstr "строка %d из %d (%.0f%%), символ %ld из %ld (%.0f%%)"
-#: winio.c:1685
+#: winio.c:1790
msgid "Dumping file buffer to stderr...\n"
msgstr "Сброс буфера файла на stderr...\n"
-#: winio.c:1687
+#: winio.c:1792
msgid "Dumping cutbuffer to stderr...\n"
msgstr "Сброс cutbuffer'а на stderr...\n"
-#: winio.c:1689
+#: winio.c:1794
msgid "Dumping a buffer to stderr...\n"
msgstr "Сброс буффера на stderr...\n"
-#: winio.c:1764
+#: winio.c:1870
msgid "The nano text editor"
msgstr "Текстовый редактор nano"
-#: winio.c:1765
+#: winio.c:1871
msgid "version "
msgstr "версия "
-#: winio.c:1766
+#: winio.c:1872
msgid "Brought to you by:"
msgstr "Предоставлен вам:"
-#: winio.c:1767
+#: winio.c:1873
msgid "Special thanks to:"
msgstr "Особая благодарность:"
-#: winio.c:1768
+#: winio.c:1874
msgid "The Free Software Foundation"
-msgstr "The Free Software Foundation (фонд свободного программного обеспечения)"
+msgstr ""
+"The Free Software Foundation (фонд свободного программного обеспечения)"
-#: winio.c:1769
+#: winio.c:1876
msgid "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurses"
msgstr "Павел Куртис, Зейд бен-Халим и Эрик С. Реймонд за ncurses"
-#: winio.c:1770
+#: winio.c:1877
msgid "and anyone else we forgot..."
msgstr "и всем остальным, кого мы забыли упомянуть..."
-#: winio.c:1771
+#: winio.c:1878
msgid "Thank you for using nano!\n"
msgstr "Спасибо Вам за выбор nano!\n"
diff --git a/po/sv.po b/po/sv.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: nano 1.1.5\n"
-"POT-Creation-Date: 2002-01-05 14:33-0500\n"
+"POT-Creation-Date: 2002-01-19 13:10-0500\n"
"PO-Revision-Date: 2002-01-07 11:10+0100\n"
"Last-Translator: Christian Rose <menthos@menthos.com>\n"
"Language-Team: Swedish <sv@li.org>\n"
@@ -86,7 +86,7 @@ msgstr "filnamnet
msgid "Can't insert file from outside of %s"
msgstr "Kan inte infoga fil frЕn utanfЖr %s"
-#: files.c:440 files.c:1106 files.c:1467 nano.c:1806
+#: files.c:440 files.c:1106 files.c:1467 nano.c:1813
msgid "Cancelled"
msgstr "Avbruten"
@@ -403,7 +403,7 @@ msgid "Find other bracket"
msgstr "Hitta andra klammern"
#: global.c:306 global.c:448 global.c:481 global.c:514 global.c:527
-#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:602
+#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:603
msgid "Get Help"
msgstr "FЕ hjДlp"
@@ -521,7 +521,7 @@ msgid "Find Other Bracket"
msgstr "Hitta andra klammern"
#: global.c:451 global.c:484 global.c:517 global.c:529 global.c:554
-#: global.c:568 global.c:579 global.c:604 winio.c:1307
+#: global.c:568 global.c:579 global.c:605 winio.c:1413
msgid "Cancel"
msgstr "Avbryt"
@@ -564,13 +564,21 @@ msgstr "G
#: nano.c:179
#, c-format
-msgid "\nBuffer written to %s\n"
-msgstr "\nBufferten skrevs till %s\n"
+msgid ""
+"\n"
+"Buffer written to %s\n"
+msgstr ""
+"\n"
+"Bufferten skrevs till %s\n"
#: nano.c:181
#, c-format
-msgid "\nNo %s written (file exists?)\n"
-msgstr "\nIngen %s skrevs (existerar filen?)\n"
+msgid ""
+"\n"
+"No %s written (file exists?)\n"
+msgstr ""
+"\n"
+"Ingen %s skrevs (existerar filen?)\n"
#: nano.c:188
msgid "Window size is too small for Nano..."
@@ -584,16 +592,38 @@ msgstr "Tangenten ogiltig i VISNINGsl
msgid ""
" nano help text\n"
"\n"
-" The nano editor is designed to emulate the functionality and ease-of-use of the UW Pico text editor. There are four main sections of the editor: The top line shows the program version, the current filename being edited, and whether or not the file has been modified. Next is the main editor window showing the file being edited. The status line is the third line from the bottom and shows important messages. The bottom two lines show the most commonly used shortcuts in the editor.\n"
+" The nano editor is designed to emulate the functionality and ease-of-use of "
+"the UW Pico text editor. There are four main sections of the editor: The "
+"top line shows the program version, the current filename being edited, and "
+"whether or not the file has been modified. Next is the main editor window "
+"showing the file being edited. The status line is the third line from the "
+"bottom and shows important messages. The bottom two lines show the most "
+"commonly used shortcuts in the editor.\n"
"\n"
-" The notation for shortcuts is as follows: Control-key sequences are notated with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-key sequences are notated with the Meta (M) symbol and can be entered using either the Esc, Alt or Meta key depending on your keyboard setup. The following keystrokes are available in the main editor window. Optional keys are shown in parentheses:\n"
+" The notation for shortcuts is as follows: Control-key sequences are notated "
+"with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-"
+"key sequences are notated with the Meta (M) symbol and can be entered using "
+"either the Esc, Alt or Meta key depending on your keyboard setup. The "
+"following keystrokes are available in the main editor window. Optional keys "
+"are shown in parentheses:\n"
"\n"
msgstr ""
" hjДlptext fЖr nano\n"
"\n"
-" Textredigeraren nano Дr skapad fЖr att emulera funktionaliteten och lДttanvДndheten hos textredigeraren UW Pico. Det finns fyra huvuddelar i redigeraren: жversta raden visar programmets versionsnummer, namnet pЕ filen som redigeras, och om filen har Дndrats. Efter detta finns huvudfЖnstret som visar filen som redigeras. Statusraden Дr tredje raden frЕn nederkanten och visar viktiga meddelanden. De nedersta tvЕ raderna visar de vanligaste kommandona som anvДnds i textredigeraren.\n"
+" Textredigeraren nano Дr skapad fЖr att emulera funktionaliteten och "
+"lДttanvДndheten hos textredigeraren UW Pico. Det finns fyra huvuddelar i "
+"redigeraren: жversta raden visar programmets versionsnummer, namnet pЕ filen "
+"som redigeras, och om filen har Дndrats. Efter detta finns huvudfЖnstret som "
+"visar filen som redigeras. Statusraden Дr tredje raden frЕn nederkanten och "
+"visar viktiga meddelanden. De nedersta tvЕ raderna visar de vanligaste "
+"kommandona som anvДnds i textredigeraren.\n"
"\n"
-" Notationen fЖr kommandon Дr som fЖljer: Sekvenser med Control-tangent skrivs med ett taktecken (^) och trycks tillsammans med Control-tangenten (Ctrl). Escape-sekvenser skrivs med metatecknet (M) och och anges antingen med Esc-, Alt- eller Meta-tangenten beroende pЕ dina tangentbordsinstДllningar. FЖljande tangentkombinationer Дr tillgДngliga i redigerarens huvudfЖnster. Alternativa tangenter visas inom parentes:\n"
+" Notationen fЖr kommandon Дr som fЖljer: Sekvenser med Control-tangent "
+"skrivs med ett taktecken (^) och trycks tillsammans med Control-tangenten "
+"(Ctrl). Escape-sekvenser skrivs med metatecknet (M) och och anges antingen "
+"med Esc-, Alt- eller Meta-tangenten beroende pЕ dina "
+"tangentbordsinstДllningar. FЖljande tangentkombinationer Дr tillgДngliga i "
+"redigerarens huvudfЖnster. Alternativa tangenter visas inom parentes:\n"
"\n"
#: nano.c:347
@@ -605,8 +635,12 @@ msgid "delete_node(): free'd last node.\n"
msgstr "delete_node(): frigjorde sista noden.\n"
#: nano.c:409
-msgid "Usage: nano [GNU long option] [option] +LINE <file>\n\n"
-msgstr "AnvДndning: nano [lЕng GNU-flagga] [flagga] +RAD <fil>\n\n"
+msgid ""
+"Usage: nano [GNU long option] [option] +LINE <file>\n"
+"\n"
+msgstr ""
+"AnvДndning: nano [lЕng GNU-flagga] [flagga] +RAD <fil>\n"
+"\n"
#: nano.c:410
msgid "Option\t\tLong option\t\tMeaning\n"
@@ -638,7 +672,8 @@ msgstr " -S\t\t--smooth\t\tMjuk rullning\n"
#: nano.c:438
msgid " -T [num]\t--tabsize=[num]\t\tSet width of a tab to num\n"
-msgstr " -T [tal]\t--tabsize=[tal]\t\tStДll in bredden pЕ ett tabbsteg till tal\n"
+msgstr ""
+" -T [tal]\t--tabsize=[tal]\t\tStДll in bredden pЕ ett tabbsteg till tal\n"
#: nano.c:441
msgid " -V \t\t--version\t\tPrint version information and exit\n"
@@ -658,7 +693,8 @@ msgstr " -i \t\t--autoindent\t\tDra automatiskt in nya rader\n"
#: nano.c:450
msgid " -k \t\t--cut\t\t\tLet ^K cut from cursor to end of line\n"
-msgstr " -k \t\t--cut\t\t\tLЕt ^K klippa ut frЕn markЖren till slutet pЕ raden\n"
+msgstr ""
+" -k \t\t--cut\t\t\tLЕt ^K klippa ut frЕn markЖren till slutet pЕ raden\n"
#: nano.c:453
msgid " -l \t\t--nofollow\t\tDon't follow symbolic links, overwrite\n"
@@ -677,7 +713,8 @@ msgid " -p \t\t--pico\t\t\tEmulate Pico as closely as possible\n"
msgstr " -p \t\t--pico\t\t\tEmulera Pico sЕ nДra som mЖjligt\n"
#: nano.c:469
-msgid " -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n"
+msgid ""
+" -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n"
msgstr " -r [tecken] \t--fill=[tecken]\t\tBryt rader efter antal tecken\n"
#: nano.c:473
@@ -709,8 +746,12 @@ msgid " +LINE\t\t\t\t\tStart at line number LINE\n"
msgstr " +RAD\t\t\t\t\tStarta vid radnummer RAD\n"
#: nano.c:490
-msgid "Usage: nano [option] +LINE <file>\n\n"
-msgstr "AnvДndning: nano [flagga] +RAD <fil>\n\n"
+msgid ""
+"Usage: nano [option] +LINE <file>\n"
+"\n"
+msgstr ""
+"AnvДndning: nano [flagga] +RAD <fil>\n"
+"\n"
#: nano.c:491
msgid "Option\t\tMeaning\n"
@@ -725,8 +766,11 @@ msgid " -F \t\tEnable multiple file buffers\n"
msgstr " -F \t\tAnvДnd flera filbuffertar\n"
#: nano.c:498
-msgid " -K\t\tUse alternate keypad routines\n\n"
-msgstr " -K\t\tAnvДnd alternativa tangentbordsrutiner\n\n"
+#, fuzzy
+msgid " -K\t\tUse alternate keypad routines\n"
+msgstr ""
+" -K\t\tAnvДnd alternativa tangentbordsrutiner\n"
+"\n"
#: nano.c:500
msgid " -M \t\tWrite file in Mac format\n"
@@ -822,315 +866,406 @@ msgid " Email: nano@nano-editor.org\tWeb: http://www.nano-editor.org"
msgstr " E-post: nano@nano-editor.org\tHemsida: http://www.nano-editor.org"
#: nano.c:551
-msgid "\n Compiled options:"
-msgstr "\n Kompileringsflaggor:"
+msgid ""
+"\n"
+" Compiled options:"
+msgstr ""
+"\n"
+" Kompileringsflaggor:"
-#: nano.c:640
+#: nano.c:638
msgid "Mark Set"
msgstr "Markering satt"
-#: nano.c:645
+#: nano.c:643
msgid "Mark UNset"
msgstr "Markering borttagen"
-#: nano.c:1267
+#: nano.c:1264
#, c-format
msgid "check_wrap called with inptr->data=\"%s\"\n"
msgstr "check_wrap anropades med inptr->data=\"%s\"\n"
-#: nano.c:1319
+#: nano.c:1316
#, c-format
msgid "current->data now = \"%s\"\n"
msgstr "current->data nu = \"%s\"\n"
-#: nano.c:1371
+#: nano.c:1368
#, c-format
msgid "After, data = \"%s\"\n"
msgstr "Efter, data = \"%s\"\n"
-#: nano.c:1480
+#: nano.c:1484
msgid "Edit a replacement"
msgstr "Redigera en ersДttning"
-#: nano.c:1717
+#: nano.c:1724
#, c-format
msgid "Could not create a temporary filename: %s"
msgstr "Kunde inte skapa ett temporДrt filnamn: %s"
-#: nano.c:1723
+#: nano.c:1730
msgid "Spell checking failed: unable to write temp file!"
msgstr "Stavningskontroll misslyckades: kan inte skriva till temporДrfil!"
-#: nano.c:1743
+#: nano.c:1750
msgid "Finished checking spelling"
msgstr "Stavningskontrollen slutfЖrdes"
-#: nano.c:1745
+#: nano.c:1752
msgid "Spell checking failed"
msgstr "Stavningskontrollen misslyckades"
-#: nano.c:1774
+#: nano.c:1781
msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
-msgstr "Spara Дndrad buffert (ATT SVARA \"Nej\" KOMMER ATT FжRSTжRA дNDRINGAR)? "
+msgstr ""
+"Spara Дndrad buffert (ATT SVARA \"Nej\" KOMMER ATT FжRSTжRA дNDRINGAR)? "
-#: nano.c:1921
+#: nano.c:1928
msgid "Received SIGHUP"
msgstr "Mottog SIGHUP"
-#: nano.c:1988
+#: nano.c:1998
msgid "Cannot resize top win"
msgstr "Kan inte Дndra storlek pЕ Жvre fЖnstret"
-#: nano.c:1990
+#: nano.c:2000
msgid "Cannot move top win"
msgstr "Kan inte flytta Жvre fЖnstret"
-#: nano.c:1992
+#: nano.c:2002
msgid "Cannot resize edit win"
msgstr "Kan inte Дndra storlek pЕ redigeringsfЖnstret"
-#: nano.c:1994
+#: nano.c:2004
msgid "Cannot move edit win"
msgstr "Kan inte flytta redigeringsfЖnstret"
-#: nano.c:1996
+#: nano.c:2006
msgid "Cannot resize bottom win"
msgstr "Kan inte Дndra storlek pЕ nedre fЖnstret"
-#: nano.c:1998
+#: nano.c:2008
msgid "Cannot move bottom win"
msgstr "Kan inte flytta nedre fЖnstret"
-#: nano.c:2337
+#: nano.c:2347
msgid "Can now UnJustify!"
msgstr "Kan ojustera nu!"
-#: nano.c:2403
+#: nano.c:2413
msgid ""
"Search Command Help Text\n"
"\n"
-" Enter the words or characters you would like to search for, then hit enter. If there is a match for the text you entered, the screen will be updated to the location of the nearest match for the search string.\n"
+" Enter the words or characters you would like to search for, then hit "
+"enter. If there is a match for the text you entered, the screen will be "
+"updated to the location of the nearest match for the search string.\n"
"\n"
-" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or using a nanorc file, the previous search string will be shown in brackets after the Search: prompt. Hitting enter without entering any text will perform the previous search. Otherwise, the previous string will be placed in front of the cursor, and can be edited or deleted before hitting enter.\n"
+" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or "
+"using a nanorc file, the previous search string will be shown in brackets "
+"after the Search: prompt. Hitting enter without entering any text will "
+"perform the previous search. Otherwise, the previous string will be placed "
+"in front of the cursor, and can be edited or deleted before hitting enter.\n"
"\n"
" The following functions keys are available in Search mode:\n"
"\n"
msgstr ""
"HjДlptext fЖr sЖkkommando\n"
"\n"
-" Ange de ord eller tecken som du vill sЖka efter, och tryck sedan retur. Om det finns en trДff fЖr det du angav kommer skДrmen att uppdateras till att visa den nДrmaste trДffen fЖr sЖkstrДngen.\n"
+" Ange de ord eller tecken som du vill sЖka efter, och tryck sedan retur. Om "
+"det finns en trДff fЖr det du angav kommer skДrmen att uppdateras till att "
+"visa den nДrmaste trДffen fЖr sЖkstrДngen.\n"
"\n"
-" Om picolДge Дr aktivt genom att flaggorna -p eller --pico, kombinationen Meta-P eller en nanorc-fil anvДnds, kommer den fЖregЕende sЖkstrДngen att visas inom klamrar efter SЖk:-prompten. Att trycka Retur utan att ange nЕgon text kommer att genomfЖra den tidigare sЖkningen. Annars kommer den fЖregЕende texten att placeras framfЖr markЖren och kan redigeras eller tas bort innan retur trycks.\n"
+" Om picolДge Дr aktivt genom att flaggorna -p eller --pico, kombinationen "
+"Meta-P eller en nanorc-fil anvДnds, kommer den fЖregЕende sЖkstrДngen att "
+"visas inom klamrar efter SЖk:-prompten. Att trycka Retur utan att ange nЕgon "
+"text kommer att genomfЖra den tidigare sЖkningen. Annars kommer den "
+"fЖregЕende texten att placeras framfЖr markЖren och kan redigeras eller tas "
+"bort innan retur trycks.\n"
"\n"
" FЖljande funktionstangenter Дr tillgДngliga i sЖklДge:\n"
"\n"
-#: nano.c:2417
+#: nano.c:2427
msgid ""
"Goto Line Help Text\n"
"\n"
-" Enter the line number that you wish to go to and hit Enter. If there are fewer lines of text than the number you entered, you will be brought to the last line of the file.\n"
+" Enter the line number that you wish to go to and hit Enter. If there are "
+"fewer lines of text than the number you entered, you will be brought to the "
+"last line of the file.\n"
"\n"
" The following functions keys are available in Goto Line mode:\n"
"\n"
msgstr ""
"HjДlptext fЖr GЕ till rad\n"
"\n"
-" Ange det radnummer du vill gЕ till och tryck Retur. Om det finns fДrre textrader Дn det tal du angav kommer du att tas till den sista raden i filen.\n"
+" Ange det radnummer du vill gЕ till och tryck Retur. Om det finns fДrre "
+"textrader Дn det tal du angav kommer du att tas till den sista raden i "
+"filen.\n"
"\n"
" FЖljande funktionstangenter Дr tillgДngliga i GЕ till rad-lДge:\n"
"\n"
-#: nano.c:2424
+#: nano.c:2434
msgid ""
"Insert File Help Text\n"
"\n"
-" Type in the name of a file to be inserted into the current file buffer at the current cursor location.\n"
+" Type in the name of a file to be inserted into the current file buffer at "
+"the current cursor location.\n"
"\n"
-" If you have compiled nano with multiple file buffer support, and enable multiple buffers with the -F or --multibuffer command line flags, the Meta-F toggle or using a nanorc file, inserting a file will cause it to be loaded into a separate buffer (use Meta-< and > to switch between file buffers).\n"
+" If you have compiled nano with multiple file buffer support, and enable "
+"multiple buffers with the -F or --multibuffer command line flags, the Meta-F "
+"toggle or using a nanorc file, inserting a file will cause it to be loaded "
+"into a separate buffer (use Meta-< and > to switch between file buffers).\n"
"\n"
" The following function keys are available in Insert File mode:\n"
"\n"
msgstr ""
"HjДlptext fЖr infoga fil\n"
"\n"
-" Ange namnet pЕ den fil som ska sДttas in i den aktuella filbufferten pЕ den aktuella platsen fЖr markЖren.\n"
+" Ange namnet pЕ den fil som ska sДttas in i den aktuella filbufferten pЕ den "
+"aktuella platsen fЖr markЖren.\n"
"\n"
-" Om du har kompilerat nano med stЖd fЖr flera samtidiga filbuffertar, och aktiverar flera buffertar med kommandoradsflaggorna -F eller --multibuffer, kombinationen Meta-F eller en nanorc-fil, kommer att infoga en fil gЖra sЕ att den lДses in i en separat buffert (anvДnd Meta-< och > fЖr att vДxla mellan filbuffertar).\n"
+" Om du har kompilerat nano med stЖd fЖr flera samtidiga filbuffertar, och "
+"aktiverar flera buffertar med kommandoradsflaggorna -F eller --multibuffer, "
+"kombinationen Meta-F eller en nanorc-fil, kommer att infoga en fil gЖra sЕ "
+"att den lДses in i en separat buffert (anvДnd Meta-< och > fЖr att vДxla "
+"mellan filbuffertar).\n"
"\n"
" FЖljande funktionstangenter Дr tillgДngliga i infoga fil-lДge:\n"
"\n"
-#: nano.c:2435
+#: nano.c:2445
msgid ""
"Write File Help Text\n"
"\n"
-" Type the name that you wish to save the current file as and hit enter to save the file.\n"
+" Type the name that you wish to save the current file as and hit enter to "
+"save the file.\n"
"\n"
-" If you are using the marker code with Ctrl-^ and have selected text, you will be prompted to save only the selected portion to a separate file. To reduce the chance of overwriting the current file with just a portion of it, the current filename is not the default in this mode.\n"
+" If you are using the marker code with Ctrl-^ and have selected text, you "
+"will be prompted to save only the selected portion to a separate file. To "
+"reduce the chance of overwriting the current file with just a portion of it, "
+"the current filename is not the default in this mode.\n"
"\n"
" The following function keys are available in Write File mode:\n"
"\n"
msgstr ""
"HjДlptext fЖr skriv fil\n"
"\n"
-" Ange det namn som du vill spara aktuell fil som och tryck retur fЖr att spara filen.\n"
+" Ange det namn som du vill spara aktuell fil som och tryck retur fЖr att "
+"spara filen.\n"
"\n"
-" Om du anvДnder markЖrkoden med Ctrl-^ och har markerat text kommer du fЕ frЕgan om att endast spara markeringen till en separat fil. FЖr att minska risken att den aktuella filen skrivs Жver med endast en del av den Дr inte det aktuella filnamnet standardalternativet i detta lДge.\n"
+" Om du anvДnder markЖrkoden med Ctrl-^ och har markerat text kommer du fЕ "
+"frЕgan om att endast spara markeringen till en separat fil. FЖr att minska "
+"risken att den aktuella filen skrivs Жver med endast en del av den Дr inte "
+"det aktuella filnamnet standardalternativet i detta lДge.\n"
"\n"
" FЖljande funktionstangenter Дr tillgДngliga i filskrivningslДge:\n"
"\n"
-#: nano.c:2447
+#: nano.c:2457
msgid ""
"File Browser Help Text\n"
"\n"
-" The file browser is used to visually browse the directory structure to select a file for reading or writing. You may use the arrow keys or Page Up/Down to browse through the files, and S or Enter to choose the selected file or enter the selected directory. To move up one level, select the directory called \"..\" at the top of the file list.\n"
+" The file browser is used to visually browse the directory structure to "
+"select a file for reading or writing. You may use the arrow keys or Page Up/"
+"Down to browse through the files, and S or Enter to choose the selected file "
+"or enter the selected directory. To move up one level, select the directory "
+"called \"..\" at the top of the file list.\n"
"\n"
" The following functions keys are available in the file browser:\n"
"\n"
msgstr ""
"HjДlptext fЖr filblДddrare\n"
"\n"
-" FilblДddraren anvДnds fЖr att visuellt blДddra i katalogstrukturen fЖr att vДlja en fil fЖr lДsning eller skrivning. Du kan anvДnda piltangenterna eller PageUp/PageDown fЖr att blДddra bland filerna, och S eller Retur fЖr att vДlja den markerade filen eller gЕ in i den markerade katalogen. FЖr att gЕ upp en nivЕ vДljer du katalogen kallad \"..\" Жverst i fillistan.\n"
+" FilblДddraren anvДnds fЖr att visuellt blДddra i katalogstrukturen fЖr att "
+"vДlja en fil fЖr lДsning eller skrivning. Du kan anvДnda piltangenterna "
+"eller PageUp/PageDown fЖr att blДddra bland filerna, och S eller Retur fЖr "
+"att vДlja den markerade filen eller gЕ in i den markerade katalogen. FЖr att "
+"gЕ upp en nivЕ vДljer du katalogen kallad \"..\" Жverst i fillistan.\n"
"\n"
" FЖljande funktionstangenter Дr tillgДngliga i filblДddraren:\n"
"\n"
-#: nano.c:2458
+#: nano.c:2468
msgid ""
"Browser Goto Directory Help Text\n"
"\n"
" Enter the name of the directory you would like to browse to.\n"
"\n"
-" If tab completion has not been disabled, you can use the TAB key to (attempt to) automatically complete the directory name. The following function keys are available in Browser GotoDir mode:\n"
+" If tab completion has not been disabled, you can use the TAB key to "
+"(attempt to) automatically complete the directory name. The following "
+"function keys are available in Browser GotoDir mode:\n"
"\n"
msgstr ""
"HjДlptext fЖr gЕ till katalog i blДddraren\n"
"\n"
" Ange namnet pЕ den katalog som du vill gЕ till.\n"
"\n"
-" Om tabulatorkomplettering inte har deaktiverats kan du anvДnda TABULATOR-tangenten fЖr att (fЖrsЖka att) automatiskt komplettera katalognamnet. FЖljande funktionstangenter Дr tillgДngliga i blДddrarens gЕtillkatalog-lДge:\n"
+" Om tabulatorkomplettering inte har deaktiverats kan du anvДnda TABULATOR-"
+"tangenten fЖr att (fЖrsЖka att) automatiskt komplettera katalognamnet. "
+"FЖljande funktionstangenter Дr tillgДngliga i blДddrarens gЕtillkatalog-"
+"lДge:\n"
"\n"
-#: nano.c:2466
+#: nano.c:2476
msgid ""
"Spell Check Help Text\n"
"\n"
-" The spell checker checks the spelling of all text in the current file. When an unknown word is encountered, it is highlighted and a replacement can be edited. It will then prompt to replace every instance of the given misspelled word in the current file.\n"
+" The spell checker checks the spelling of all text in the current file. "
+"When an unknown word is encountered, it is highlighted and a replacement can "
+"be edited. It will then prompt to replace every instance of the given "
+"misspelled word in the current file.\n"
"\n"
" The following other functions are available in Spell Check mode:\n"
"\n"
msgstr ""
"HjДlptext fЖr stavningskontrollen\n"
"\n"
-" Stavningskontrollen kontrollerar stavningen av all text i den aktuella filen. NДr ett okДnt ord hittas markeras det och en ersДttning kan redigeras. Den kommer sedan att fЖr varenda fЖrekomst av det angivna felstavade ordet i den aktuella filen frЕga om det ska ersДttas.\n"
+" Stavningskontrollen kontrollerar stavningen av all text i den aktuella "
+"filen. NДr ett okДnt ord hittas markeras det och en ersДttning kan "
+"redigeras. Den kommer sedan att fЖr varenda fЖrekomst av det angivna "
+"felstavade ordet i den aktuella filen frЕga om det ska ersДttas.\n"
"\n"
" FЖljande funktionstangenter Дr tillgДngliga i stavningskontrollslДget:\n"
"\n"
-#: nano.c:2550
+#: nano.c:2560
#, c-format
msgid "%s enable/disable"
msgstr "%s aktivera/deaktivera"
-#: nano.c:2569
+#: nano.c:2579
msgid "enabled"
msgstr "aktiverad"
-#: nano.c:2570
+#: nano.c:2580
msgid "disabled"
msgstr "deaktiverad"
-#: nano.c:2634
+#: nano.c:2644
msgid "NumLock glitch detected. Keypad will malfunction with NumLock off"
-msgstr "NumLock-problem upptДcktes. Tangenterna kommer inte att fungera utan NumLock"
+msgstr ""
+"NumLock-problem upptДcktes. Tangenterna kommer inte att fungera utan NumLock"
-#: nano.c:2931
+#: nano.c:2941
msgid "Main: set up windows\n"
msgstr "Main: konfigurera fЖnster\n"
-#: nano.c:2948
+#: nano.c:2958
msgid "Main: bottom win\n"
msgstr "Main: nedre fЖnstret\n"
-#: nano.c:2954
+#: nano.c:2964
msgid "Main: open file\n"
msgstr "Main: Жppna fil\n"
-#: nano.c:3013
+#: nano.c:3023
#, c-format
msgid "I got Alt-O-%c! (%d)\n"
msgstr "Jag mottog Alt-O-%c! (%d)\n"
-#: nano.c:3047
+#: nano.c:3057
#, c-format
msgid "I got Alt-[-1-%c! (%d)\n"
msgstr "Jag mottog Alt-[-1-%c! (%d)\n"
-#: nano.c:3077
+#: nano.c:3087
#, c-format
msgid "I got Alt-[-2-%c! (%d)\n"
msgstr "Jag mottog Alt-[-2-%c! (%d)\n"
-#: nano.c:3146
+#: nano.c:3156
#, c-format
msgid "I got Alt-[-%c! (%d)\n"
msgstr "Jag mottog Alt-[-%c! (%d)\n"
-#: nano.c:3183
+#: nano.c:3194
#, c-format
msgid "I got Alt-%c! (%d)\n"
msgstr "Jag mottog Alt-%c! (%d)\n"
-#: rcfile.c:85
-msgid "\nPress return to continue starting nano\n"
-msgstr "\nTryck Retur fЖr att fortsДtta starta nano\n"
+#: rcfile.c:86
+#, fuzzy, c-format
+msgid "Error in %s on line %d: "
+msgstr "Fel i %s pЕ rad %d: kommandot %s kan inte fЖrstЕs"
+
+#: rcfile.c:90
+msgid ""
+"\n"
+"Press return to continue starting nano\n"
+msgstr ""
+"\n"
+"Tryck Retur fЖr att fortsДtta starta nano\n"
+
+#: rcfile.c:180
+#, c-format
+msgid ""
+"color %s not understood.\n"
+"Valid colors are \"green\", \"red\", \"blue\", \n"
+"\"white\", \"yellow\", \"cyan\", \"magenta\" and \n"
+"\"black\", with the optional prefix \"bright\".\n"
+msgstr ""
-#: rcfile.c:282
+#: rcfile.c:204
+msgid "Missing color name"
+msgstr ""
+
+#: rcfile.c:234 rcfile.c:288
+msgid "regex strings must begin and end with a \" character\n"
+msgstr ""
+
+#: rcfile.c:280
+msgid ""
+"\n"
+"\t\"start=\" requires a corresponding \"end=\""
+msgstr ""
+
+#: rcfile.c:330
msgid "parse_rcfile: Read a comment\n"
msgstr "parse_rcfile: LДste in en kommentar\n"
-#: rcfile.c:303
-#, c-format
-msgid "Error in %s on line %d: command %s not understood"
+#: rcfile.c:351
+#, fuzzy, c-format
+msgid "command %s not understood"
msgstr "Fel i %s pЕ rad %d: kommandot %s kan inte fЖrstЕs"
-#: rcfile.c:316
+#: rcfile.c:363
#, c-format
msgid "parse_rcfile: Parsing option %s\n"
msgstr "parse_rcfile: Tolkar flaggan %s\n"
-#: rcfile.c:334
-#, c-format
-msgid "Error in %s on line %d: option %s requires an argument"
+#: rcfile.c:381
+#, fuzzy, c-format
+msgid "option %s requires an argument"
msgstr "Fel i %s pЕ rad %d: flaggan %s krДver ett argument"
-#: rcfile.c:345
-#, c-format
-msgid "Error in %s on line %d: requested fill size %d too small"
+#: rcfile.c:392
+#, fuzzy, c-format
+msgid "requested fill size %d too small"
msgstr "Fel i %s pЕ rad %d: begДrd fyllningsstorlek %d Дr fЖr liten"
-#: rcfile.c:354
-#, c-format
-msgid "Error in %s on line %d: requested tab size %d too small"
+#: rcfile.c:402
+#, fuzzy, c-format
+msgid "requested tab size %d too small"
msgstr "Fel i %s pЕ rad %d: begДrd tabulatorstorlek %d Дr fЖr liten"
-#: rcfile.c:368
+#: rcfile.c:417
#, c-format
msgid "set flag %d!\n"
msgstr "satte flagga %d!\n"
-#: rcfile.c:373
+#: rcfile.c:423
#, c-format
msgid "unset flag %d!\n"
msgstr "tog bort flagga %d!\n"
-#: rcfile.c:382
+#: rcfile.c:433
msgid "Errors found in .nanorc file"
msgstr "Fel hittades i filen .nanorc"
-#: rcfile.c:391
+#: rcfile.c:441
#, c-format
msgid "Unable to open ~/.nanorc file, %s"
msgstr "Kan inte Жppna filen ~/.nanorc, %s"
@@ -1161,7 +1296,7 @@ msgstr " [Bakl
msgid " (to replace)"
msgstr " (att ersДtta)"
-#: search.c:151 search.c:424
+#: search.c:151 search.c:438
msgid "Search Cancelled"
msgstr "SЖkningen avbruten"
@@ -1170,58 +1305,58 @@ msgstr "S
msgid "\"%s...\" not found"
msgstr "\"%s...\" kunde inte hittas"
-#: search.c:278 search.c:340
+#: search.c:292 search.c:354
msgid "Search Wrapped"
msgstr "SЖkningen bЖrjade om frЕn bЖrjan"
-#: search.c:446
+#: search.c:460
#, c-format
msgid "Replaced %d occurrences"
msgstr "Ersatte %d fЖrekomster"
-#: search.c:448
+#: search.c:462
msgid "Replaced 1 occurrence"
msgstr "Ersatte 1 fЖrekomst"
-#: search.c:586 search.c:698 search.c:714
+#: search.c:600 search.c:699 search.c:715
msgid "Replace Cancelled"
msgstr "ErsДttningen avbrЖts"
-#: search.c:636
+#: search.c:637
msgid "Replace this instance?"
msgstr "ErsДtta denna fЖrekomst?"
-#: search.c:648
+#: search.c:649
msgid "Replace failed: unknown subexpression!"
msgstr "ErsДttningen misslyckades: okДnt deluttryck!"
-#: search.c:739
+#: search.c:740
#, c-format
msgid "Replace with [%s]"
msgstr "ErsДtt med [%s]"
-#: search.c:743 search.c:747
+#: search.c:744 search.c:748
msgid "Replace with"
msgstr "ErsДtt med"
-#: search.c:781
+#: search.c:782
msgid "Enter line number"
msgstr "Ange radnummer"
-#: search.c:783
+#: search.c:784
msgid "Aborted"
msgstr "Avbruten"
-#: search.c:792
+#: search.c:793
msgid "Come on, be reasonable"
msgstr "Kom igen, var nu fЖrstЕndig"
-#: search.c:854
+#: search.c:855
msgid "Not a bracket"
msgstr "Inte en klammer"
#. didn't find either left or right bracket
-#: search.c:899
+#: search.c:900
msgid "No matching bracket"
msgstr "Ingen matchande klammer"
@@ -1242,30 +1377,30 @@ msgstr "nano: realloc: slut p
msgid "actual_x_from_start for xplus=%d returned %d\n"
msgstr "actual_x_from_start fЖr xplus=%d returnerade %d\n"
-#: winio.c:295 winio.c:466
+#: winio.c:294 winio.c:464
#, c-format
msgid "Aha! '%c' (%d)\n"
msgstr "Aha! \"%c\" (%d)\n"
# OsДker.
-#: winio.c:498
+#: winio.c:496
#, c-format
msgid "input '%c' (%d)\n"
msgstr "indata \"%c\" (%d)\n"
-#: winio.c:546
+#: winio.c:544
msgid "New Buffer"
msgstr "Ny buffert"
-#: winio.c:550
+#: winio.c:548
msgid " File: ..."
msgstr " Fil:..."
-#: winio.c:552
+#: winio.c:550
msgid " DIR: ..."
msgstr " KAT:..."
-#: winio.c:556
+#: winio.c:555
msgid "File: "
msgstr "Fil: "
@@ -1277,17 +1412,17 @@ msgstr " KAT: "
msgid "Modified"
msgstr "дndrad"
-#: winio.c:1166
+#: winio.c:1272
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr "Gick till (%d, %d) i redigeringsbufferten\n"
-#: winio.c:1177
+#: winio.c:1283
#, c-format
msgid "current->data = \"%s\"\n"
msgstr "current->data = \"%s\"\n"
-#: winio.c:1251
+#: winio.c:1357
#, c-format
msgid "I got \"%s\"\n"
msgstr "Jag mottog \"%s\"\n"
@@ -1295,91 +1430,92 @@ msgstr "Jag mottog \"%s\"\n"
#. Yes, no and all are strings of any length. Each string consists of
#. all characters accepted as a valid character for that value.
#. The first value will be the one displayed in the shortcuts.
-#: winio.c:1280
+#: winio.c:1386
msgid "Yy"
msgstr "JjYy"
-#: winio.c:1281
+#: winio.c:1387
msgid "Nn"
msgstr "Nn"
-#: winio.c:1282
+#: winio.c:1388
msgid "Aa"
msgstr "Aa"
-#: winio.c:1296
+#: winio.c:1402
msgid "Yes"
msgstr "Ja"
-#: winio.c:1300
+#: winio.c:1406
msgid "All"
msgstr "Alla"
-#: winio.c:1305
+#: winio.c:1411
msgid "No"
msgstr "Nej"
-#: winio.c:1512
+#: winio.c:1617
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
-#: winio.c:1520
+#: winio.c:1626
+#, c-format
msgid "line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"
msgstr "rad %d av %d (%.0f%%), tecken %ld av %ld (%.0f%%)"
-#: winio.c:1685
+#: winio.c:1790
msgid "Dumping file buffer to stderr...\n"
msgstr "Dumpar filbufferten till standard fel...\n"
-#: winio.c:1687
+#: winio.c:1792
msgid "Dumping cutbuffer to stderr...\n"
msgstr "Dumpar urklippsbufferten till standard fel...\n"
-#: winio.c:1689
+#: winio.c:1794
msgid "Dumping a buffer to stderr...\n"
msgstr "Dumpar en buffert til standard fel...\n"
-#: winio.c:1764
+#: winio.c:1870
msgid "The nano text editor"
msgstr "Textredigeraren nano"
-#: winio.c:1765
+#: winio.c:1871
msgid "version "
msgstr "version "
-#: winio.c:1766
+#: winio.c:1872
msgid "Brought to you by:"
msgstr "Presenteras av:"
-#: winio.c:1767
+#: winio.c:1873
msgid "Special thanks to:"
msgstr "Ytterligare tack till:"
-#: winio.c:1768
+#: winio.c:1874
msgid "The Free Software Foundation"
msgstr "Free Software Foundation"
-#: winio.c:1769
+#: winio.c:1876
msgid "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurses"
msgstr "Pavel Curtis, Zeyd Ben-Halim och Eric S. Raymond fЖr ncurses"
-#: winio.c:1770
+#: winio.c:1877
msgid "and anyone else we forgot..."
msgstr "och alla andra som vi har glЖmt..."
-#: winio.c:1771
+#: winio.c:1878
msgid "Thank you for using nano!\n"
msgstr "Tack fЖr att du anvДnder nano!\n"
-#~ # Denna idiotiska meddelandekonstruktion Дr felrapporterad
+# Denna idiotiska meddelandekonstruktion Дr felrapporterad
#~ msgid "Write"
#~ msgstr "Skriv"
#~ msgid "Backward"
#~ msgstr "BakЕt"
-#~ # Ja, denna idiotiska meddelandekonstruktion Дr felrapporterad
+# Ja, denna idiotiska meddelandekonstruktion Дr felrapporterad
#~ msgid "Regexp "
#~ msgstr "reguljДr uttrycks"
diff --git a/po/uk.po b/po/uk.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: nano 1.1.5\n"
-"POT-Creation-Date: 2002-01-05 14:33-0500\n"
+"POT-Creation-Date: 2002-01-19 13:10-0500\n"
"PO-Revision-Date: 2002-01-08 11:41+0300\n"
"Last-Translator: Sergey A. Ribalchenko <fisher@obu.ck.ua>\n"
"Language-Team: Ukrainian <kick@renome.rovno.ua>\n"
@@ -86,7 +86,7 @@ msgstr "
msgid "Can't insert file from outside of %s"
msgstr "Не можу вставити файл поза %s"
-#: files.c:440 files.c:1106 files.c:1467 nano.c:1806
+#: files.c:440 files.c:1106 files.c:1467 nano.c:1813
msgid "Cancelled"
msgstr "Скасовано"
@@ -405,7 +405,7 @@ msgid "Find other bracket"
msgstr "Знайти другу дужку"
#: global.c:306 global.c:448 global.c:481 global.c:514 global.c:527
-#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:602
+#: global.c:552 global.c:566 global.c:577 global.c:585 global.c:603
msgid "Get Help"
msgstr "Допомога"
@@ -523,7 +523,7 @@ msgid "Find Other Bracket"
msgstr "Знайти Другу Дужку"
#: global.c:451 global.c:484 global.c:517 global.c:529 global.c:554
-#: global.c:568 global.c:579 global.c:604 winio.c:1307
+#: global.c:568 global.c:579 global.c:605 winio.c:1413
msgid "Cancel"
msgstr "Скасувати"
@@ -565,13 +565,21 @@ msgstr "
#: nano.c:179
#, c-format
-msgid "\nBuffer written to %s\n"
-msgstr "\nБуфер записано до %s\n"
+msgid ""
+"\n"
+"Buffer written to %s\n"
+msgstr ""
+"\n"
+"Буфер записано до %s\n"
#: nano.c:181
#, c-format
-msgid "\nNo %s written (file exists?)\n"
-msgstr "\n%s не записано (файл ╕сну╓?)\n"
+msgid ""
+"\n"
+"No %s written (file exists?)\n"
+msgstr ""
+"\n"
+"%s не записано (файл ╕сну╓?)\n"
#: nano.c:188
msgid "Window size is too small for Nano..."
@@ -585,16 +593,37 @@ msgstr "
msgid ""
" nano help text\n"
"\n"
-" The nano editor is designed to emulate the functionality and ease-of-use of the UW Pico text editor. There are four main sections of the editor: The top line shows the program version, the current filename being edited, and whether or not the file has been modified. Next is the main editor window showing the file being edited. The status line is the third line from the bottom and shows important messages. The bottom two lines show the most commonly used shortcuts in the editor.\n"
+" The nano editor is designed to emulate the functionality and ease-of-use of "
+"the UW Pico text editor. There are four main sections of the editor: The "
+"top line shows the program version, the current filename being edited, and "
+"whether or not the file has been modified. Next is the main editor window "
+"showing the file being edited. The status line is the third line from the "
+"bottom and shows important messages. The bottom two lines show the most "
+"commonly used shortcuts in the editor.\n"
"\n"
-" The notation for shortcuts is as follows: Control-key sequences are notated with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-key sequences are notated with the Meta (M) symbol and can be entered using either the Esc, Alt or Meta key depending on your keyboard setup. The following keystrokes are available in the main editor window. Optional keys are shown in parentheses:\n"
+" The notation for shortcuts is as follows: Control-key sequences are notated "
+"with a caret (^) symbol and are entered with the Control (Ctrl) key. Escape-"
+"key sequences are notated with the Meta (M) symbol and can be entered using "
+"either the Esc, Alt or Meta key depending on your keyboard setup. The "
+"following keystrokes are available in the main editor window. Optional keys "
+"are shown in parentheses:\n"
"\n"
msgstr ""
" текст допомоги nano\n"
"\n"
-" Редактор nano розроблено для емуляц╕╖ функц╕ональност╕ та простоти використання редактору UW Pico. Редактор под╕ля╓ться на 4 головн╕ секц╕╖: верхн╕й рядок м╕стить верс╕ю програми, ╕м'я поточного файлу, що редагу╓ться, та ╕нформац╕ю про те, чи внесено будь-як╕ зм╕ни до файлу. Наступна секц╕я - це головне в╕кно редагування, в якому можна побачити зм╕ст поточного файлу. Рядок статуту ╓ 3 знизу рядком та м╕стить важлив╕ пов╕домлення. Останн╕ два рядки м╕стять найб╕льш загальн╕ комб╕нац╕╖ клав╕ш редактору.\n"
+" Редактор nano розроблено для емуляц╕╖ функц╕ональност╕ та простоти "
+"використання редактору UW Pico. Редактор под╕ля╓ться на 4 головн╕ секц╕╖: "
+"верхн╕й рядок м╕стить верс╕ю програми, ╕м'я поточного файлу, що редагу╓ться, "
+"та ╕нформац╕ю про те, чи внесено будь-як╕ зм╕ни до файлу. Наступна секц╕я - "
+"це головне в╕кно редагування, в якому можна побачити зм╕ст поточного файлу. "
+"Рядок статуту ╓ 3 знизу рядком та м╕стить важлив╕ пов╕домлення. Останн╕ два "
+"рядки м╕стять найб╕льш загальн╕ комб╕нац╕╖ клав╕ш редактору.\n"
"\n"
-" Нотатки до комб╕нац╕й: комб╕нац╕╖ з клав╕шею Control показан╕ ╕з символом '^' та вводяться з натиснутою клав╕шею Control (Ctrl). Esc-комб╕нац╕╖ показан╕ символом 'M' та вводяться з використанням клав╕ш╕ Esc, Alt або Meta в залежност╕ в╕д Вашо╖ клав╕атури. Наступн╕ комб╕нац╕╖ доступн╕ в головному в╕кн╕ редагування. Додатков╕ комб╕нац╕╖ показан╕ у дужках:\n"
+" Нотатки до комб╕нац╕й: комб╕нац╕╖ з клав╕шею Control показан╕ ╕з символом "
+"'^' та вводяться з натиснутою клав╕шею Control (Ctrl). Esc-комб╕нац╕╖ "
+"показан╕ символом 'M' та вводяться з використанням клав╕ш╕ Esc, Alt або Meta "
+"в залежност╕ в╕д Вашо╖ клав╕атури. Наступн╕ комб╕нац╕╖ доступн╕ в головному "
+"в╕кн╕ редагування. Додатков╕ комб╕нац╕╖ показан╕ у дужках:\n"
"\n"
#: nano.c:347
@@ -606,8 +635,12 @@ msgid "delete_node(): free'd last node.\n"
msgstr "delete_node(): зв╕льнено останнього вузла.\n"
#: nano.c:409
-msgid "Usage: nano [GNU long option] [option] +LINE <file>\n\n"
-msgstr "Використання: nano [довг╕ опц╕╖ GNU] [опц╕╖] +РЯДОК <файл>\n\n"
+msgid ""
+"Usage: nano [GNU long option] [option] +LINE <file>\n"
+"\n"
+msgstr ""
+"Використання: nano [довг╕ опц╕╖ GNU] [опц╕╖] +РЯДОК <файл>\n"
+"\n"
#: nano.c:410
msgid "Option\t\tLong option\t\tMeaning\n"
@@ -680,8 +713,10 @@ msgid " -p \t\t--pico\t\t\tEmulate Pico as closely as possible\n"
msgstr " -p\t \t--pico\t\t\tЕмулювати Pico наск╕льки це можливо\n"
#: nano.c:469
-msgid " -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n"
-msgstr " -r [#стовп]\t--fill=[#стовп]\t\tЗагортати рядки в позиц╕╖ стовпця #стовп\n"
+msgid ""
+" -r [#cols] \t--fill=[#cols]\t\tSet fill cols to (wrap lines at) #cols\n"
+msgstr ""
+" -r [#стовп]\t--fill=[#стовп]\t\tЗагортати рядки в позиц╕╖ стовпця #стовп\n"
#: nano.c:473
msgid " -s [prog] \t--speller=[prog]\tEnable alternate speller\n"
@@ -712,8 +747,12 @@ msgid " +LINE\t\t\t\t\tStart at line number LINE\n"
msgstr " +РЯДОК\t\t\t\t\tПочати з рядка номер РЯДОК\n"
#: nano.c:490
-msgid "Usage: nano [option] +LINE <file>\n\n"
-msgstr "Використання: nano [опц╕я] +РЯДОК <файл>\n\n"
+msgid ""
+"Usage: nano [option] +LINE <file>\n"
+"\n"
+msgstr ""
+"Використання: nano [опц╕я] +РЯДОК <файл>\n"
+"\n"
#: nano.c:491
msgid "Option\t\tMeaning\n"
@@ -728,8 +767,11 @@ msgid " -F \t\tEnable multiple file buffers\n"
msgstr " -F \t\tДозволити дек╕лька файлових буфер╕в\n"
#: nano.c:498
-msgid " -K\t\tUse alternate keypad routines\n\n"
-msgstr " -K\t\tВживати альтернативн╕ п╕дпрограми для keypad\n\n"
+#, fuzzy
+msgid " -K\t\tUse alternate keypad routines\n"
+msgstr ""
+" -K\t\tВживати альтернативн╕ п╕дпрограми для keypad\n"
+"\n"
#: nano.c:500
msgid " -M \t\tWrite file in Mac format\n"
@@ -825,315 +867,404 @@ msgid " Email: nano@nano-editor.org\tWeb: http://www.nano-editor.org"
msgstr " Е-мило: nano@nano-editor.org\tПавутиння: http://www.nano-editor.org"
#: nano.c:551
-msgid "\n Compiled options:"
-msgstr "\n З╕брано з опц╕ями:"
+msgid ""
+"\n"
+" Compiled options:"
+msgstr ""
+"\n"
+" З╕брано з опц╕ями:"
-#: nano.c:640
+#: nano.c:638
msgid "Mark Set"
msgstr "М╕тку встановлено"
-#: nano.c:645
+#: nano.c:643
msgid "Mark UNset"
msgstr "М╕тку знято"
-#: nano.c:1267
+#: nano.c:1264
#, c-format
msgid "check_wrap called with inptr->data=\"%s\"\n"
msgstr "check_wrap визвано з inptr->data=\"%s\"\n"
-#: nano.c:1319
+#: nano.c:1316
#, c-format
msgid "current->data now = \"%s\"\n"
msgstr "current->data зараз = \"%s\"\n"
-#: nano.c:1371
+#: nano.c:1368
#, c-format
msgid "After, data = \"%s\"\n"
msgstr "П╕сля, дан╕ = \"%s\"\n"
-#: nano.c:1480
+#: nano.c:1484
msgid "Edit a replacement"
msgstr "Редагувати зам╕ну"
-#: nano.c:1717
+#: nano.c:1724
#, c-format
msgid "Could not create a temporary filename: %s"
msgstr "Не можу створити тимчасову назву для файлу: %s"
-#: nano.c:1723
+#: nano.c:1730
msgid "Spell checking failed: unable to write temp file!"
msgstr "Перев╕рка орфограф╕╖ не вдалася: неможливо записати тимчасовий файл!"
-#: nano.c:1743
+#: nano.c:1750
msgid "Finished checking spelling"
msgstr "Перев╕рку орфограф╕╖ завершено"
-#: nano.c:1745
+#: nano.c:1752
msgid "Spell checking failed"
msgstr "Перев╕рка орфограф╕╖ не вдалася"
-#: nano.c:1774
+#: nano.c:1781
msgid "Save modified buffer (ANSWERING \"No\" WILL DESTROY CHANGES) ? "
msgstr "Зберегти зм╕нений буфер (В╕дпов╕дь \"Н╕\" СКАСУ╢ ВС╤ ЗМ╤НИ) ? "
-#: nano.c:1921
+#: nano.c:1928
msgid "Received SIGHUP"
msgstr "Прийнято SIGHUP"
-#: nano.c:1988
+#: nano.c:1998
msgid "Cannot resize top win"
msgstr "Не можу зм╕нити розм╕р верхнього в╕кна"
-#: nano.c:1990
+#: nano.c:2000
msgid "Cannot move top win"
msgstr "Не можу перем╕стити верхнього в╕кно"
-#: nano.c:1992
+#: nano.c:2002
msgid "Cannot resize edit win"
msgstr "Не можу зм╕нити розм╕р в╕кна редагування"
-#: nano.c:1994
+#: nano.c:2004
msgid "Cannot move edit win"
msgstr "Не можу перем╕стити в╕кно редагування"
-#: nano.c:1996
+#: nano.c:2006
msgid "Cannot resize bottom win"
msgstr "Не можу зм╕нити розм╕р нижнього в╕кна"
-#: nano.c:1998
+#: nano.c:2008
msgid "Cannot move bottom win"
msgstr "Не можу перем╕стити нижн╓ в╕кно"
-#: nano.c:2337
+#: nano.c:2347
msgid "Can now UnJustify!"
msgstr "Можу зараз же СкасВир╕внювання!"
-#: nano.c:2403
+#: nano.c:2413
msgid ""
"Search Command Help Text\n"
"\n"
-" Enter the words or characters you would like to search for, then hit enter. If there is a match for the text you entered, the screen will be updated to the location of the nearest match for the search string.\n"
+" Enter the words or characters you would like to search for, then hit "
+"enter. If there is a match for the text you entered, the screen will be "
+"updated to the location of the nearest match for the search string.\n"
"\n"
-" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or using a nanorc file, the previous search string will be shown in brackets after the Search: prompt. Hitting enter without entering any text will perform the previous search. Otherwise, the previous string will be placed in front of the cursor, and can be edited or deleted before hitting enter.\n"
+" If using Pico Mode via the -p or --pico flags, using the Meta-P toggle or "
+"using a nanorc file, the previous search string will be shown in brackets "
+"after the Search: prompt. Hitting enter without entering any text will "
+"perform the previous search. Otherwise, the previous string will be placed "
+"in front of the cursor, and can be edited or deleted before hitting enter.\n"
"\n"
" The following functions keys are available in Search mode:\n"
"\n"
msgstr ""
"Текст допомоги команди пошуку\n"
"\n"
-" Введ╕ть слова або л╕тери як╕ Ви шука╓те, та натисн╕ть Enter. Якщо для введено╖ Вами умови знайдеться в╕дпов╕дний зб╕г, екран перем╕ститься в положення поблизу цього зб╕гу.\n"
+" Введ╕ть слова або л╕тери як╕ Ви шука╓те, та натисн╕ть Enter. Якщо для "
+"введено╖ Вами умови знайдеться в╕дпов╕дний зб╕г, екран перем╕ститься в "
+"положення поблизу цього зб╕гу.\n"
"\n"
-" Якщо застосовано режим Pico за допомогою опц╕й -p або --pico, або через комб╕нац╕ю Meta-P, або користуючись файлом nanorc, попередня умова зб╕гу з'явиться у квадратних дужках п╕сля запрошення \"Пошук:\". Натиснення Enter без редагування будь-якого тексту призведе до пошуку попередньо╖ умови зб╕гу. ╤накше, рядок ╕з попередньою умовою пошуку буде розм╕щено поперед курсором та може бути отредаговано або видалено перед тим як тиснути Enter.\n"
+" Якщо застосовано режим Pico за допомогою опц╕й -p або --pico, або через "
+"комб╕нац╕ю Meta-P, або користуючись файлом nanorc, попередня умова зб╕гу "
+"з'явиться у квадратних дужках п╕сля запрошення \"Пошук:\". Натиснення Enter "
+"без редагування будь-якого тексту призведе до пошуку попередньо╖ умови "
+"зб╕гу. ╤накше, рядок ╕з попередньою умовою пошуку буде розм╕щено поперед "
+"курсором та може бути отредаговано або видалено перед тим як тиснути Enter.\n"
"\n"
" Наступн╕ функц╕ональн╕ клав╕ш╕ наявн╕ у режим╕ Пошуку:\n"
"\n"
-#: nano.c:2417
+#: nano.c:2427
msgid ""
"Goto Line Help Text\n"
"\n"
-" Enter the line number that you wish to go to and hit Enter. If there are fewer lines of text than the number you entered, you will be brought to the last line of the file.\n"
+" Enter the line number that you wish to go to and hit Enter. If there are "
+"fewer lines of text than the number you entered, you will be brought to the "
+"last line of the file.\n"
"\n"
" The following functions keys are available in Goto Line mode:\n"
"\n"
msgstr ""
"Текст допомоги режиму До_рядка\n"
"\n"
-" Введ╕ть номер рядка до якого Ви бажа╓те д╕статись та натисн╕ть Enter. Якщо к╕льк╕сть рядк╕в у файл╕ менша за число яке Ви ввели, Ви попадете на останн╕й рядок файлу.\n"
+" Введ╕ть номер рядка до якого Ви бажа╓те д╕статись та натисн╕ть Enter. Якщо "
+"к╕льк╕сть рядк╕в у файл╕ менша за число яке Ви ввели, Ви попадете на "
+"останн╕й рядок файлу.\n"
"\n"
" Наступн╕ функц╕ональн╕ клав╕ши наявн╕ у режим╕ До_рядка:\n"
"\n"
-#: nano.c:2424
+#: nano.c:2434
msgid ""
"Insert File Help Text\n"
"\n"
-" Type in the name of a file to be inserted into the current file buffer at the current cursor location.\n"
+" Type in the name of a file to be inserted into the current file buffer at "
+"the current cursor location.\n"
"\n"
-" If you have compiled nano with multiple file buffer support, and enable multiple buffers with the -F or --multibuffer command line flags, the Meta-F toggle or using a nanorc file, inserting a file will cause it to be loaded into a separate buffer (use Meta-< and > to switch between file buffers).\n"
+" If you have compiled nano with multiple file buffer support, and enable "
+"multiple buffers with the -F or --multibuffer command line flags, the Meta-F "
+"toggle or using a nanorc file, inserting a file will cause it to be loaded "
+"into a separate buffer (use Meta-< and > to switch between file buffers).\n"
"\n"
" The following function keys are available in Insert File mode:\n"
"\n"
msgstr ""
"Текст допомоги режиму Вставити Файл\n"
"\n"
-" Введ╕ть ╕м'я файлу до вставки в поточний файловий буфер в поточну позиц╕ю курсору.\n"
+" Введ╕ть ╕м'я файлу до вставки в поточний файловий буфер в поточну позиц╕ю "
+"курсору.\n"
"\n"
-" Якщо Ваш nano з╕браний ╕з п╕дтримкою дек╕лькох файлових буфер╕в, та ця можлив╕сть вв╕мкнена через опц╕╖ командного рядку -F або --multibuffer, або через комб╕нац╕ю Meta-F, або за допомогою файлу nanorc, файл вставиться в окремий файловий буфер (користуйтесь Meta-< та > щоб перемикатись м╕ж буферами).\n"
+" Якщо Ваш nano з╕браний ╕з п╕дтримкою дек╕лькох файлових буфер╕в, та ця "
+"можлив╕сть вв╕мкнена через опц╕╖ командного рядку -F або --multibuffer, або "
+"через комб╕нац╕ю Meta-F, або за допомогою файлу nanorc, файл вставиться в "
+"окремий файловий буфер (користуйтесь Meta-< та > щоб перемикатись м╕ж "
+"буферами).\n"
"\n"
" Наступн╕ функц╕ональн╕ клав╕ши наявн╕ в режим╕ Вставити Файл:\n"
"\n"
-#: nano.c:2435
+#: nano.c:2445
msgid ""
"Write File Help Text\n"
"\n"
-" Type the name that you wish to save the current file as and hit enter to save the file.\n"
+" Type the name that you wish to save the current file as and hit enter to "
+"save the file.\n"
"\n"
-" If you are using the marker code with Ctrl-^ and have selected text, you will be prompted to save only the selected portion to a separate file. To reduce the chance of overwriting the current file with just a portion of it, the current filename is not the default in this mode.\n"
+" If you are using the marker code with Ctrl-^ and have selected text, you "
+"will be prompted to save only the selected portion to a separate file. To "
+"reduce the chance of overwriting the current file with just a portion of it, "
+"the current filename is not the default in this mode.\n"
"\n"
" The following function keys are available in Write File mode:\n"
"\n"
msgstr ""
"Текст допомоги режиму Зберегти Файл\n"
"\n"
-" Введ╕ть ╕м'я п╕д яким Ви бажа╓те зберегти поточний файл та натисн╕ть Enter.\n"
+" Введ╕ть ╕м'я п╕д яким Ви бажа╓те зберегти поточний файл та натисн╕ть "
+"Enter.\n"
"\n"
-" Якщо Ви користу╓тесь кодом в╕дм╕тки ╕з Ctrl-^ та пом╕тили деякий текст, з'явиться запит ╕з п╕дказкою, чи записати обраний блок в окремий файл. Щоб зменшити шанси перезапису поточного файлу лише частиною цього файлу, ╕м'я поточного файлу не буде ╕м'ям по замовченню в цьому режим╕.\n"
+" Якщо Ви користу╓тесь кодом в╕дм╕тки ╕з Ctrl-^ та пом╕тили деякий текст, "
+"з'явиться запит ╕з п╕дказкою, чи записати обраний блок в окремий файл. Щоб "
+"зменшити шанси перезапису поточного файлу лише частиною цього файлу, ╕м'я "
+"поточного файлу не буде ╕м'ям по замовченню в цьому режим╕.\n"
"\n"
" Наступн╕ функц╕ональн╕ клав╕ши наявн╕ в режим╕ Зберегти Файл\n"
"\n"
-#: nano.c:2447
+#: nano.c:2457
msgid ""
"File Browser Help Text\n"
"\n"
-" The file browser is used to visually browse the directory structure to select a file for reading or writing. You may use the arrow keys or Page Up/Down to browse through the files, and S or Enter to choose the selected file or enter the selected directory. To move up one level, select the directory called \"..\" at the top of the file list.\n"
+" The file browser is used to visually browse the directory structure to "
+"select a file for reading or writing. You may use the arrow keys or Page Up/"
+"Down to browse through the files, and S or Enter to choose the selected file "
+"or enter the selected directory. To move up one level, select the directory "
+"called \"..\" at the top of the file list.\n"
"\n"
" The following functions keys are available in the file browser:\n"
"\n"
msgstr ""
"Текст допомоги режиму Переглядач Файл╕в\n"
"\n"
-" Переглядач файл╕в використову╓ться для в╕зуального перегляду зм╕сту директор╕╖ та обирання потр╕бного файлу для запису або читання. Ви ма╓те користуватись клав╕шами керування курсором та PageUp/PageDown для пересування кр╕зь файли, та обирати потр╕бний файл або входити до обрано╖ директор╕╖ клав╕шею S або Enter. Щоб перем╕ститись на директор╕ю вище, обер╕ть директор╕ю \"..\" в початку списку файл╕в.\n"
+" Переглядач файл╕в використову╓ться для в╕зуального перегляду зм╕сту "
+"директор╕╖ та обирання потр╕бного файлу для запису або читання. Ви ма╓те "
+"користуватись клав╕шами керування курсором та PageUp/PageDown для "
+"пересування кр╕зь файли, та обирати потр╕бний файл або входити до обрано╖ "
+"директор╕╖ клав╕шею S або Enter. Щоб перем╕ститись на директор╕ю вище, "
+"обер╕ть директор╕ю \"..\" в початку списку файл╕в.\n"
"\n"
" Наступн╕ функц╕ональн╕ клав╕ши наявн╕ в режим╕ Переглядач Файл╕в:\n"
"\n"
-#: nano.c:2458
+#: nano.c:2468
msgid ""
"Browser Goto Directory Help Text\n"
"\n"
" Enter the name of the directory you would like to browse to.\n"
"\n"
-" If tab completion has not been disabled, you can use the TAB key to (attempt to) automatically complete the directory name. The following function keys are available in Browser GotoDir mode:\n"
+" If tab completion has not been disabled, you can use the TAB key to "
+"(attempt to) automatically complete the directory name. The following "
+"function keys are available in Browser GotoDir mode:\n"
"\n"
msgstr ""
"Текст допомоги режиму переглядача файл╕в До_директор╕╖\n"
"\n"
" Введ╕ть ╕м'я директор╕╖, яку Ви бажа╓те переглянути.\n"
"\n"
-" Якщо tab-доповнення не заборонено, Ви можете користуватись клав╕шею TAB для (спроби) автоматичного доповнення ╕м'я директор╕╖. Наступн╕ функц╕ональн╕ клав╕ши наявн╕ в режим╕ переглядача файл╕в До_Директор╕╖:\n"
+" Якщо tab-доповнення не заборонено, Ви можете користуватись клав╕шею TAB для "
+"(спроби) автоматичного доповнення ╕м'я директор╕╖. Наступн╕ функц╕ональн╕ "
+"клав╕ши наявн╕ в режим╕ переглядача файл╕в До_Директор╕╖:\n"
"\n"
-#: nano.c:2466
+#: nano.c:2476
msgid ""
"Spell Check Help Text\n"
"\n"
-" The spell checker checks the spelling of all text in the current file. When an unknown word is encountered, it is highlighted and a replacement can be edited. It will then prompt to replace every instance of the given misspelled word in the current file.\n"
+" The spell checker checks the spelling of all text in the current file. "
+"When an unknown word is encountered, it is highlighted and a replacement can "
+"be edited. It will then prompt to replace every instance of the given "
+"misspelled word in the current file.\n"
"\n"
" The following other functions are available in Spell Check mode:\n"
"\n"
msgstr ""
"Текст допомоги режиму Правопис\n"
"\n"
-" Програма перев╕рки правопису перев╕ря╓ орфограф╕ю всього тексту в поточному файл╕. Коли зустр╕ча╓ться незнайоме слово, воно вид╕ля╓ться та з'явля╓ться можлив╕сть в╕дредагувати пропоновану зам╕ну. Пот╕м з'явиться запит на зам╕ну кожного входження цього незнайомого слова в поточному файл╕.\n"
+" Програма перев╕рки правопису перев╕ря╓ орфограф╕ю всього тексту в поточному "
+"файл╕. Коли зустр╕ча╓ться незнайоме слово, воно вид╕ля╓ться та з'явля╓ться "
+"можлив╕сть в╕дредагувати пропоновану зам╕ну. Пот╕м з'явиться запит на зам╕ну "
+"кожного входження цього незнайомого слова в поточному файл╕.\n"
"\n"
" Наступн╕ ╕нш╕ функц╕╖ наявн╕ в режим╕ Правопис:\n"
"\n"
-#: nano.c:2550
+#: nano.c:2560
#, c-format
msgid "%s enable/disable"
msgstr "%s - дозволити/заборонити"
-#: nano.c:2569
+#: nano.c:2579
msgid "enabled"
msgstr "дозволено"
-#: nano.c:2570
+#: nano.c:2580
msgid "disabled"
msgstr "заборонено"
-#: nano.c:2634
+#: nano.c:2644
msgid "NumLock glitch detected. Keypad will malfunction with NumLock off"
msgstr "пом╕чено глюк NumLock'а. Додаткова клав╕атура може не працювати"
-#: nano.c:2931
+#: nano.c:2941
msgid "Main: set up windows\n"
msgstr "Main: встановити в╕кна\n"
-#: nano.c:2948
+#: nano.c:2958
msgid "Main: bottom win\n"
msgstr "Main: нижн╓ в╕кно\n"
-#: nano.c:2954
+#: nano.c:2964
msgid "Main: open file\n"
msgstr "Main: в╕дкрити файл\n"
-#: nano.c:3013
+#: nano.c:3023
#, c-format
msgid "I got Alt-O-%c! (%d)\n"
msgstr "Я п╕ймав Alt-O-%c! (%d)\n"
-#: nano.c:3047
+#: nano.c:3057
#, c-format
msgid "I got Alt-[-1-%c! (%d)\n"
msgstr "Я п╕ймав Alt-[-1-%c! (%d)\n"
-#: nano.c:3077
+#: nano.c:3087
#, c-format
msgid "I got Alt-[-2-%c! (%d)\n"
msgstr "Я п╕ймав Alt-[-2-%c! (%d)\n"
-#: nano.c:3146
+#: nano.c:3156
#, c-format
msgid "I got Alt-[-%c! (%d)\n"
msgstr "Я п╕ймав Alt-[-%c! (%d)\n"
-#: nano.c:3183
+#: nano.c:3194
#, c-format
msgid "I got Alt-%c! (%d)\n"
msgstr "Я п╕ймав Alt-%c! (%d)\n"
-#: rcfile.c:85
-msgid "\nPress return to continue starting nano\n"
-msgstr "\nНажм╕ть Enter щоб продовжити завантаження nano\n"
+#: rcfile.c:86
+#, fuzzy, c-format
+msgid "Error in %s on line %d: "
+msgstr "Помилка в %s у рядку %d: команда %s не зрозум╕ла"
-#: rcfile.c:282
+#: rcfile.c:90
+msgid ""
+"\n"
+"Press return to continue starting nano\n"
+msgstr ""
+"\n"
+"Нажм╕ть Enter щоб продовжити завантаження nano\n"
+
+#: rcfile.c:180
+#, c-format
+msgid ""
+"color %s not understood.\n"
+"Valid colors are \"green\", \"red\", \"blue\", \n"
+"\"white\", \"yellow\", \"cyan\", \"magenta\" and \n"
+"\"black\", with the optional prefix \"bright\".\n"
+msgstr ""
+
+#: rcfile.c:204
+msgid "Missing color name"
+msgstr ""
+
+#: rcfile.c:234 rcfile.c:288
+msgid "regex strings must begin and end with a \" character\n"
+msgstr ""
+
+#: rcfile.c:280
+msgid ""
+"\n"
+"\t\"start=\" requires a corresponding \"end=\""
+msgstr ""
+
+#: rcfile.c:330
msgid "parse_rcfile: Read a comment\n"
msgstr "parse_rcfile: чита╓мо коментар\n"
-#: rcfile.c:303
-#, c-format
-msgid "Error in %s on line %d: command %s not understood"
+#: rcfile.c:351
+#, fuzzy, c-format
+msgid "command %s not understood"
msgstr "Помилка в %s у рядку %d: команда %s не зрозум╕ла"
-#: rcfile.c:316
+#: rcfile.c:363
#, c-format
msgid "parse_rcfile: Parsing option %s\n"
msgstr "parse_rcfile: Роз╕брання опц╕╖ %s\n"
-#: rcfile.c:334
-#, c-format
-msgid "Error in %s on line %d: option %s requires an argument"
+#: rcfile.c:381
+#, fuzzy, c-format
+msgid "option %s requires an argument"
msgstr "Помилка в %s у рядку %d: опц╕я %s потребу╓ аргумента"
-#: rcfile.c:345
-#, c-format
-msgid "Error in %s on line %d: requested fill size %d too small"
+#: rcfile.c:392
+#, fuzzy, c-format
+msgid "requested fill size %d too small"
msgstr "Помилка в %s у рядку %d: запитаний розм╕р заповнення %d занадто малий"
-#: rcfile.c:354
-#, c-format
-msgid "Error in %s on line %d: requested tab size %d too small"
+#: rcfile.c:402
+#, fuzzy, c-format
+msgid "requested tab size %d too small"
msgstr "Помилка в %s у рядку %d: запрошений розм╕р табуляц╕╖ %d занадто малий"
-#: rcfile.c:368
+#: rcfile.c:417
#, c-format
msgid "set flag %d!\n"
msgstr "встановить флаг %d!\n"
-#: rcfile.c:373
+#: rcfile.c:423
#, c-format
msgid "unset flag %d!\n"
msgstr "скиньте флаг %d!\n"
-#: rcfile.c:382
+#: rcfile.c:433
msgid "Errors found in .nanorc file"
msgstr "Знайдено помилки у файл╕ .nanorc"
-#: rcfile.c:391
+#: rcfile.c:441
#, c-format
msgid "Unable to open ~/.nanorc file, %s"
msgstr "Не можу в╕дкрити файл ~/.nanorc, %s"
@@ -1164,7 +1295,7 @@ msgstr " [
msgid " (to replace)"
msgstr " (до зам╕ни)"
-#: search.c:151 search.c:424
+#: search.c:151 search.c:438
msgid "Search Cancelled"
msgstr "Пошук скасовано"
@@ -1173,58 +1304,58 @@ msgstr "
msgid "\"%s...\" not found"
msgstr "\"%s...\" не знайдено"
-#: search.c:278 search.c:340
+#: search.c:292 search.c:354
msgid "Search Wrapped"
msgstr "Пошук Загорнуто"
-#: search.c:446
+#: search.c:460
#, c-format
msgid "Replaced %d occurrences"
msgstr "Зам╕нено %d входжень"
-#: search.c:448
+#: search.c:462
msgid "Replaced 1 occurrence"
msgstr "Зам╕нено 1 входження"
-#: search.c:586 search.c:698 search.c:714
+#: search.c:600 search.c:699 search.c:715
msgid "Replace Cancelled"
msgstr "Зам╕ну скасовано"
-#: search.c:636
+#: search.c:637
msgid "Replace this instance?"
msgstr "Зам╕нити цей прим╕рник?"
-#: search.c:648
+#: search.c:649
msgid "Replace failed: unknown subexpression!"
msgstr "Зам╕на невдала: незнайомий п╕двираз!"
-#: search.c:739
+#: search.c:740
#, c-format
msgid "Replace with [%s]"
msgstr "Зам╕нити на [%s]"
-#: search.c:743 search.c:747
+#: search.c:744 search.c:748
msgid "Replace with"
msgstr "Зам╕нити на"
-#: search.c:781
+#: search.c:782
msgid "Enter line number"
msgstr "Введ╕ть номер рядка"
-#: search.c:783
+#: search.c:784
msgid "Aborted"
msgstr "Прервано"
-#: search.c:792
+#: search.c:793
msgid "Come on, be reasonable"
msgstr "Гей, будьте автотентичн╕"
-#: search.c:854
+#: search.c:855
msgid "Not a bracket"
msgstr "Не дужка"
#. didn't find either left or right bracket
-#: search.c:899
+#: search.c:900
msgid "No matching bracket"
msgstr "Нема в╕дпов╕дно╖ дужки"
@@ -1245,29 +1376,29 @@ msgstr "nano: realloc:
msgid "actual_x_from_start for xplus=%d returned %d\n"
msgstr "actual_x_from_start для xplus=%d повернуто %d\n"
-#: winio.c:295 winio.c:466
+#: winio.c:294 winio.c:464
#, c-format
msgid "Aha! '%c' (%d)\n"
msgstr "Ага! '%c' (%d)\n"
-#: winio.c:498
+#: winio.c:496
#, c-format
msgid "input '%c' (%d)\n"
msgstr "вх╕д '%c' (%d)\n"
-#: winio.c:546
+#: winio.c:544
msgid "New Buffer"
msgstr "Новий Буфер"
-#: winio.c:550
+#: winio.c:548
msgid " File: ..."
msgstr " Файл: ..."
-#: winio.c:552
+#: winio.c:550
msgid " DIR: ..."
msgstr " Дир: ..."
-#: winio.c:556
+#: winio.c:555
msgid "File: "
msgstr "Файл: "
@@ -1279,17 +1410,17 @@ msgstr "
msgid "Modified"
msgstr "Зм╕нено"
-#: winio.c:1166
+#: winio.c:1272
#, c-format
msgid "Moved to (%d, %d) in edit buffer\n"
msgstr "Перем╕щено до (%d,%d) в буфер╕ редагування\n"
-#: winio.c:1177
+#: winio.c:1283
#, c-format
msgid "current->data = \"%s\"\n"
msgstr "(winio.c) current->data = \"%s\"\n"
-#: winio.c:1251
+#: winio.c:1357
#, c-format
msgid "I got \"%s\"\n"
msgstr "Я п╕ймав \"%s\"\n"
@@ -1297,80 +1428,81 @@ msgstr "
#. Yes, no and all are strings of any length. Each string consists of
#. all characters accepted as a valid character for that value.
#. The first value will be the one displayed in the shortcuts.
-#: winio.c:1280
+#: winio.c:1386
msgid "Yy"
msgstr "YyТт"
-#: winio.c:1281
+#: winio.c:1387
msgid "Nn"
msgstr "NnНн"
-#: winio.c:1282
+#: winio.c:1388
msgid "Aa"
msgstr "AaВв"
-#: winio.c:1296
+#: winio.c:1402
msgid "Yes"
msgstr "Так"
-#: winio.c:1300
+#: winio.c:1406
msgid "All"
msgstr "Все"
-#: winio.c:1305
+#: winio.c:1411
msgid "No"
msgstr "Н╕"
-#: winio.c:1512
+#: winio.c:1617
#, c-format
msgid "do_cursorpos: linepct = %f, bytepct = %f\n"
msgstr "do_cursorpos: linepct = %f, bytepct = %f\n"
-#: winio.c:1520
+#: winio.c:1626
+#, c-format
msgid "line %d of %d (%.0f%%), character %ld of %ld (%.0f%%)"
msgstr "рядок %d з %d (%.0f%%), л╕тера %ld з %ld (%.0f%%)"
-#: winio.c:1685
+#: winio.c:1790
msgid "Dumping file buffer to stderr...\n"
msgstr "Скидання буферу файлу до stderr...\n"
-#: winio.c:1687
+#: winio.c:1792
msgid "Dumping cutbuffer to stderr...\n"
msgstr "Скидання cutbuffer'у до stderr...\n"
-#: winio.c:1689
+#: winio.c:1794
msgid "Dumping a buffer to stderr...\n"
msgstr "Скидання буферу до stderr...\n"
-#: winio.c:1764
+#: winio.c:1870
msgid "The nano text editor"
msgstr "Текстовий редактор nano"
-#: winio.c:1765
+#: winio.c:1871
msgid "version "
msgstr "верс╕я "
-#: winio.c:1766
+#: winio.c:1872
msgid "Brought to you by:"
msgstr "Створено для Вас:"
-#: winio.c:1767
+#: winio.c:1873
msgid "Special thanks to:"
msgstr "Особлива подяка:"
-#: winio.c:1768
+#: winio.c:1874
msgid "The Free Software Foundation"
msgstr "The Free Software Foundation (Фонд В╕льного Програмного забезпечення)"
-#: winio.c:1769
+#: winio.c:1876
msgid "Pavel Curtis, Zeyd Ben-Halim and Eric S. Raymond for ncurses"
msgstr "Павло Курт╕с, Зейд син-Хал╕ма та Ер╕к С. Реймонд за ncurses"
-#: winio.c:1770
+#: winio.c:1877
msgid "and anyone else we forgot..."
msgstr "та ╕ншим кого ми забули..."
-#: winio.c:1771
+#: winio.c:1878
msgid "Thank you for using nano!\n"
msgstr "Дяку╓мо Вам за те, що вибрали nano!\n"