po2tbl.sed.in
上传用户:xxcykj
上传日期:2007-01-04
资源大小:727k
文件大小:2k
源码类别:

Email客户端

开发平台:

Unix_Linux

  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. #if HAVE_CONFIG_H
  23. # include <config.h>
  24. #endif
  25. #include "libgettext.h"
  26. const struct _msg_ent _msg_tbl[] = {
  27.   h
  28.   s/.*/0/
  29.   x
  30. }
  31. #
  32. # Write msgid entries in C array form.
  33. #
  34. /^msgid/ {
  35.   s/msgid[  ]*(".*")/  {1/
  36.   tb
  37. # Append the next line
  38.   :b
  39.   N
  40. # Look whether second part is continuation line.
  41.   s/(.*)"(n)"(.*")/123/
  42. # Yes, then branch.
  43.   ta
  44. # Because we assume that the input file correctly formed the line
  45. # just read cannot be again be a msgid line.  So it's safe to ignore
  46. # it.
  47.   s/(.*)n.*/1/
  48.   bc
  49. # We found a continuation line.  But before printing insert ''.
  50.   :a
  51.   s/(.*)(n.*)/1\2/
  52.   P
  53. # We cannot use D here.
  54.   s/.*n(.*)/1/
  55. # Some buggy seds do not clear the `successful substitution since last ``t'''
  56. # flag on `N', so we do a `t' here to clear it.
  57.   tb
  58. # Not reached
  59.   :c
  60.   x
  61. # The following nice solution is by
  62. # Bruno <Haible@ma2s2.mathematik.uni-karlsruhe.de>
  63.   td
  64. # Increment a decimal number in pattern space.
  65. # First hide trailing `9' digits.
  66.   :d
  67.   s/9(_*)$/_1/
  68.   td
  69. # Assure at least one digit is available.
  70.   s/^(_*)$/01/
  71. # Increment the last digit.
  72.   s/8(_*)$/91/
  73.   s/7(_*)$/81/
  74.   s/6(_*)$/71/
  75.   s/5(_*)$/61/
  76.   s/4(_*)$/51/
  77.   s/3(_*)$/41/
  78.   s/2(_*)$/31/
  79.   s/1(_*)$/21/
  80.   s/0(_*)$/11/
  81. # Convert the hidden `9' digits to `0's.
  82.   s/_/0/g
  83.   x
  84.   G
  85.   s/(.*)n([0-9]*)/1, 2},/
  86.   s/(.*)"$/1/
  87.   p
  88. }
  89. #
  90. # Last line.
  91. #
  92. $ {
  93.   i
  94. };
  95.   g
  96.   s/0*(.*)/int _msg_tbl_length = 1;/p
  97. }
  98. d