1: # po2tbl.sed - Convert Uniforum style .po file to lookup table for catgets
2: # Copyright (C) 1995 Free Software Foundation, Inc.
3: # Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
4: #
5: # This program is free software; you can redistribute it and/or modify
6: # it under the terms of the GNU General Public License as published by
7: # the Free Software Foundation; either version 2, or (at your option)
8: # any later version.
9: #
10: # This program is distributed in the hope that it will be useful,
11: # but WITHOUT ANY WARRANTY; without even the implied warranty of
12: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13: # GNU General Public License for more details.
14: #
15: # You should have received a copy of the GNU General Public License
16: # along with this program; if not, write to the Free Software
17: # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18: #
19: 1 {
20: i\
21: /* Automatically generated by po2tbl.sed from @PACKAGE NAME@.pot. */\
22: \
23: #if HAVE_CONFIG_H\
24: # include <config.h>\
25: #endif\
26: \
27: #include "libgettext.h"\
28: \
29: const struct _msg_ent _msg_tbl[] = {
30: h
31: s/.*/0/
32: x
33: }
34: #
35: # Write msgid entries in C array form.
36: #
37: /^msgid/ {
38: s/msgid[ ]*\(".*"\)/ {\1/
39: tb
40: # Append the next line
41: :b
42: N
43: # Look whether second part is continuation line.
44: s/\(.*\)"\(\n\)"\(.*"\)/\1\2\3/
45: # Yes, then branch.
46: ta
47: # Because we assume that the input file correctly formed the line
48: # just read cannot be again be a msgid line. So it's safe to ignore
49: # it.
50: s/\(.*\)\n.*/\1/
51: bc
52: # We found a continuation line. But before printing insert '\'.
53: :a
54: s/\(.*\)\(\n.*\)/\1\\\2/
55: P
56: # We cannot use D here.
57: s/.*\n\(.*\)/\1/
58: # Some buggy seds do not clear the `successful substitution since last ``t'''
59: # flag on `N', so we do a `t' here to clear it.
60: tb
61: # Not reached
62: :c
63: x
64: # The following nice solution is by
65: # Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
66: td
67: # Increment a decimal number in pattern space.
68: # First hide trailing `9' digits.
69: :d
70: s/9\(_*\)$/_\1/
71: td
72: # Assure at least one digit is available.
73: s/^\(_*\)$/0\1/
74: # Increment the last digit.
75: s/8\(_*\)$/9\1/
76: s/7\(_*\)$/8\1/
77: s/6\(_*\)$/7\1/
78: s/5\(_*\)$/6\1/
79: s/4\(_*\)$/5\1/
80: s/3\(_*\)$/4\1/
81: s/2\(_*\)$/3\1/
82: s/1\(_*\)$/2\1/
83: s/0\(_*\)$/1\1/
84: # Convert the hidden `9' digits to `0's.
85: s/_/0/g
86: x
87: G
88: s/\(.*\)\n\([0-9]*\)/\1, \2},/
89: s/\(.*\)"$/\1/
90: p
91: }
92: #
93: # Last line.
94: #
95: $ {
96: i\
97: };\
98:
99: g
100: s/0*\(.*\)/int _msg_tbl_length = \1;/p
101: }
102: d
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>