(file) Return to po2tbl.sed.in CVS log (file) (dir) Up to [RizwankCVS] / testProject / source / src / intl

  1 rizwank 1.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 rizwank 1.1 \
 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 rizwank 1.1 # 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 rizwank 1.1 # 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 rizwank 1.1   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

Rizwan Kassim
Powered by
ViewCVS 0.9.2