head	1.1;
branch	1.1.1;
access;
symbols
	RELENG_9_1_0_RELEASE:1.1.1.2
	RELENG_9_1:1.1.1.2.0.28
	RELENG_9_1_BP:1.1.1.2
	RELENG_8_3_0_RELEASE:1.1.1.2
	RELENG_8_3:1.1.1.2.0.26
	RELENG_8_3_BP:1.1.1.2
	RELENG_9_0_0_RELEASE:1.1.1.2
	RELENG_9_0:1.1.1.2.0.24
	RELENG_9_0_BP:1.1.1.2
	RELENG_9:1.1.1.2.0.22
	RELENG_9_BP:1.1.1.2
	RELENG_7_4_0_RELEASE:1.1.1.2
	RELENG_8_2_0_RELEASE:1.1.1.2
	RELENG_7_4:1.1.1.2.0.20
	RELENG_7_4_BP:1.1.1.2
	RELENG_8_2:1.1.1.2.0.18
	RELENG_8_2_BP:1.1.1.2
	RELENG_8_1_0_RELEASE:1.1.1.2
	RELENG_8_1:1.1.1.2.0.16
	RELENG_8_1_BP:1.1.1.2
	RELENG_7_3_0_RELEASE:1.1.1.2
	RELENG_7_3:1.1.1.2.0.14
	RELENG_7_3_BP:1.1.1.2
	RELENG_8_0_0_RELEASE:1.1.1.2
	RELENG_8_0:1.1.1.2.0.12
	RELENG_8_0_BP:1.1.1.2
	RELENG_8:1.1.1.2.0.10
	RELENG_8_BP:1.1.1.2
	RELENG_7_2_0_RELEASE:1.1.1.2
	RELENG_7_2:1.1.1.2.0.8
	RELENG_7_2_BP:1.1.1.2
	RELENG_7_1_0_RELEASE:1.1.1.2
	RELENG_6_4_0_RELEASE:1.1.1.1.2.2
	RELENG_7_1:1.1.1.2.0.6
	RELENG_7_1_BP:1.1.1.2
	RELENG_6_4:1.1.1.1.2.2.0.4
	RELENG_6_4_BP:1.1.1.1.2.2
	RELENG_7_0_0_RELEASE:1.1.1.2
	RELENG_6_3_0_RELEASE:1.1.1.1.2.2
	RELENG_7_0:1.1.1.2.0.4
	RELENG_7_0_BP:1.1.1.2
	RELENG_6_3:1.1.1.1.2.2.0.2
	RELENG_6_3_BP:1.1.1.1.2.2
	RELENG_7:1.1.1.2.0.2
	RELENG_7_BP:1.1.1.2
	RELENG_6:1.1.1.1.0.2
	v2_8_7:1.1.1.1
	FSF:1.1.1;
locks; strict;
comment	@# @;


1.1
date	2007.06.15.07.05.35;	author delphij;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2007.06.15.07.05.35;	author delphij;	state Exp;
branches
	1.1.1.1.2.1;
next	1.1.1.2;

1.1.1.2
date	2007.07.19.06.57.44;	author delphij;	state dead;
branches;
next	;

1.1.1.1.2.1
date	2007.07.15.01.24.41;	author delphij;	state Exp;
branches;
next	1.1.1.1.2.2;

1.1.1.1.2.2
date	2007.07.21.16.44.38;	author delphij;	state dead;
branches;
next	;


desc
@@


1.1
log
@Initial revision
@
text
@#! /bin/sh
# Wrapper around gettext for programs using the msgid convention.

# Copyright (C) 1998, 2001, 2004 Free Software Foundation, Inc.

# Written by Paul Eggert <eggert@@twinsun.com>.

# 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 GNU CC; see the file COPYING.  If not, write to
# the Free Software Foundation, 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.

# Always operate in the C locale.
LANG=C
LANGUAGE=C
LC_ALL=C
export LANG LANGUAGE LC_ALL

# Set AWK if environment has not already set it.
AWK=${AWK-awk}

# The argument to this wrapper is the xgettext command to be executed.
# Extract the xgettext program name from the rest of the command.
xgettext=${1?}
shift

# Save work if we're just wrapping a no-op.
case $xgettext in
:) exit;;
esac

# Find the files to be scanned, and the directory to scan them from.
directory=.
files=
for i
do
  case $i in
  --directory=*)
    directory=`expr " $i" : ' --directory=\(.*\)'`;;
  --files-from=*)
    files_from=`expr " $i" : ' --files-from=\(.*\)'`
    files=`$AWK '/^[^#]/ { print }' $files_from`;;
  esac
done

# Generate keyword options for xgettext,
# by scanning for declarations of functions
# whose parameter names end in "msgid".
generate_keyword_options='
  /^[A-Z_a-z].*\(.*msgid[,)]/ {

    paren_index = index($0, "(")

    name = substr($0, 1, paren_index - 1)
    sub(/[^0-9A-Z_a-z]*$/, "", name)
    sub(/[	 ]+PARAMS/, "", name)
    sub(/[	 ]+VPARAMS/, "", name)
    sub(/.*[^0-9A-Z_a-z]/, "", name)

    args = substr($0, paren_index)
    sub(/msgid[,)].*/, "", args)
    for (n = 1; sub(/^[^,]*,/, "", args); n++) {
      continue;
    }

    if (n == 1) {
      keyword = name
    } else {
      keyword = name ":" n
    }

    if (! keyword_seen[keyword]++) {
      print "--keyword=" keyword
    }
  }
'
keyword_options=`(
  cd $directory &&
  $AWK "$generate_keyword_options" $files < /dev/null
)` || exit

# Run the xgettext command, with extra input containing the extra
# msgids that it wouldn't normally find.
generate_emsgids='
  /%e.*}/ {
    line = $0
    while ((percent_index = index(line, "%e")) != 0) {
      line = substr(line, percent_index + 2)
      bracket_index = index(line, "}")
      if (bracket_index == 0) {
	continue
      }
      msgid = substr(line, 1, bracket_index - 1)
      if (index(msgid, "%") != 0) {
        continue
      }
      printf "#line %d \"%s\"\n", FNR, FILENAME
      printf "_(\"%s\")\n", msgid
      line = substr(line, bracket_index + 1)
    }
  }
'
(cd $directory &&
 $AWK "$generate_emsgids" $files < /dev/null
) | "$xgettext" $keyword_options ${1+"$@@"} -
@


1.1.1.1
log
@Virgin import of diffutils 2.8.7.
@
text
@@


1.1.1.2
log
@Remove unused FSF source files.

Approved by:	re (hrs)
@
text
@@


1.1.1.1.2.1
log
@MFC: diffutils 2.8.7.
@
text
@@


1.1.1.1.2.2
log
@MFC: Remove unneeded files.
@
text
@@


