This file is indexed.

/usr/bin/pocompendium is in translate-toolkit 1.10.0-2.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
#!/bin/bash
#
# Copyright 2004, 2005 Zuza Software Foundation
#
# This file is part of The Translate Toolkit.
#
# The Translate Toolkit 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 of the License, or
# (at your option) any later version.
#
# translate 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 translate; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


# Creates a PO Compendium ie a merge of all PO files in a given directory and
# subdirectory.  If conflicts in the merge are found then these are
# combined and marked fuzzy.


function print_usage() {
	echo "Usage: `basename $0` [options] output.po <-d directory(s)|file(s)>"
	echo "       The first parameter is the output file, standard output if the output file is '-'."
	echo "       Any number of directories may be specified for input files."
	echo "     Options:"
	echo "       --invert|v  Creates an inverse compendium with msgid and msgstr swapped"
	echo "       --errors|e  Only ouput msg bundles that have errors"
	echo "       --correct|c Only ouput msg bundles that are correctly translated"
	echo "       --ignore-case|i  Drops all strings to lowercase"
	echo "       --strip-accel-tilde|-st  Strip all tilde (~) accelerator characters"
	echo "       --strip-accel-amp|-sa  Strip all ampersand (&) accelerator characters"
	echo "       --strip-accel-under|-su  Strip all underscore (_) accelerator characters"
	exit 1
}

option_invert=0
option_errors=0
option_correct=0
option_ignorecase=0
option_accel_ooo=0
option_accel_moz=0
option_accel_gnome=0

for true
do
	case $1 in
		--invert|-v) option_invert=1
				shift
				;;
		--errors|-e) option_errors=1
				if [ $option_correct -eq 1 ]; then 
					usage 
				fi
				shift
				;;
        --correct|-c) option_correct=1
				if [ $option_errors -eq 1 ]; 
				then 
					usage 
				fi
				shift
				;;
	    --ignore-case|-i) option_ignorecase=1
				shift
				;;
	    --strip-accel-tilde|-st) option_accel_ooo=1
				shift
				;;
	    --strip-accel-amp|-sa) option_accel_moz=1
				shift
				;;
	    --strip-accel-under|-su) option_accel_gnome=1
				shift
				;;
		--*|-*) print_usage
			;;
		*) break
			;;
	esac
done
	#--strip-end-punctuation|-p)
	#--strip-all|-A)
	#--good|-g)

if [ $# -lt 2 ]; then
	print_usage
fi

output=$1
shift

tmp_dir=`mktemp -d tmp.XXXXXXXXXX`

if [ $1 == "-d" ]; then
	shift
	directories=$*
	if [ $# -eq 0 ]; then
		print_usage
	fi
	for dir in $directories
	do
		cp -rp $dir $tmp_dir
	done
else
	files=$*
	for file in $files
	do
		mkdir -p $tmp_dir/`dirname $file`
		cp -p $file $tmp_dir/`dirname $file`
	done
fi

# Invert if requested
if [ $option_invert -eq 1 ] ; then
	for po_file in `find $tmp_dir -name "*.po"`
	do
		stripped_name=`dirname $po_file`/`basename $po_file .po`
		po_translated=${stripped_name}.translated.po
		po_inverted=${stripped_name}.invert.po
		msgattrib --translated $po_file > $po_translated
		msghack --invert $po_translated > $po_inverted
		rm $po_file $po_translated
	done
fi

# Drop case to lowercase and apply other filters
UPPER=ABCDEFGHIJKLMNOPQRSTUVWXYZ
LOWER=abcdefghijklmnopqrstuvwxyz

if [ $option_ignorecase -eq 1 ]; then
	sed_string=`echo "$sed_string y/$UPPER/$LOWER/;"`
fi
if [ $option_accel_ooo -eq 1 ]; then
	sed_string=`echo "$sed_string s/~//;"`
fi
if [ $option_accel_moz -eq 1 ]; then
	sed_string=`echo "$sed_string s/&//;"`
fi
if [ $option_accel_gnome -eq 1 ]; then
	sed_string=`echo "$sed_string s/_//;"`
fi

if [ $option_ignorecase = 1 ]; then
	for po_file in `find $tmp_dir -name "*.po"`
	do
		stripped_name=`dirname $po_file`/`basename $po_file .po`
		po_lower=${stripped_name}.lower.po
		msgfilter --keep-header -i $po_file sed -e "$sed_string" > $po_lower
		rm $po_file
	done
fi

msgcat -o $output `find $tmp_dir -name "*.po"` 2> >(egrep -v "warning: internationali.ed messages should not contain the .* escape sequence" >&2)

# Extract only errors if requested
if [ $option_errors -eq 1 ] ; then
	tmp=`mktemp tmp.XXXXXXXXXX`
	msgattrib --only-fuzzy $output > $tmp
	mv $tmp $output
fi

# Extract only correct translations if requested
if [ $option_correct -eq 1 ] ; then
	tmp=`mktemp tmp.XXXXXXXXXX`
	msgattrib --translated --no-fuzzy -o $tmp $output  2> >(egrep -v "warning: internationali.ed messages should not contain the .* escape sequence" >&2) && mv $tmp $output
fi

rm -rf $tmp_dir