diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-05-22 11:02:04 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-05-22 11:02:04 +0000 |
commit | 3e300ca1aef3549968668a0fd380465e3d185282 (patch) | |
tree | 7b666d9304b907e39465ba631da20fe5810dd8fa /catgets | |
parent | d553bbf23643fd07d76a19f000b78efc13e1ff7e (diff) | |
download | glibc-3e300ca1aef3549968668a0fd380465e3d185282.tar.gz glibc-3e300ca1aef3549968668a0fd380465e3d185282.tar.xz glibc-3e300ca1aef3549968668a0fd380465e3d185282.zip |
Update.
1998-05-22 10:56 Ulrich Drepper <drepper@cygnus.com> * catgets/Makefile (distribute): Add xopen-msg.h. (generated): Add de.msg and de.cat. (tests): Add do-gencat-test. (do-gencat-test): New goal. Run gencat on a generated msg file. * catgets/xopen-msg.h: New file.
Diffstat (limited to 'catgets')
-rw-r--r-- | catgets/Makefile | 15 | ||||
-rwxr-xr-x | catgets/xopen-msg.sed | 104 |
2 files changed, 118 insertions, 1 deletions
diff --git a/catgets/Makefile b/catgets/Makefile index ee464c1adc..7ce634ff5b 100644 --- a/catgets/Makefile +++ b/catgets/Makefile @@ -22,7 +22,7 @@ subdir := catgets headers = nl_types.h -distribute = catgetsinfo.h config.h +distribute = catgetsinfo.h config.h xopen-msg.sed routines = catgets open_catalog others = gencat install-bin = gencat @@ -40,3 +40,16 @@ $(objpfx)gencat: $(gencat-modules:%=$(objpfx)%.o) CPPFLAGS := -DNLSPATH='"$(localedir)/%L/%N:$(localedir)/%L/LC_MESSAGES/%N:$(localedir)/%l/%N:$(localedir)/%l/LC_MESSAGES/%N:"' \ -DHAVE_CONFIG_H $(CPPFLAGS) + +generated = de.msg de.cat + +.PHONY: do-gencat-test +tests: do-gencat-test +# This test just checks whether the program produces any error or not. +# The result is not tested. +do-gencat-test: $(objpfx)de.msg $(objpfx)gencat + $(built-program-cmd) $(objpfx)de.cat $(objpfx)de.msg + +# Generate a non-simple input file. +$(objpfx)de.msg: $(..)/po/de.po + sed -f xopen-msg.sed $< > $@ diff --git a/catgets/xopen-msg.sed b/catgets/xopen-msg.sed new file mode 100755 index 0000000000..b19c0bbd0e --- /dev/null +++ b/catgets/xopen-msg.sed @@ -0,0 +1,104 @@ +# 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 |