Fixed problems in ubuntu

This commit is contained in:
Zane U. Ji 2012-08-20 20:12:32 +08:00
parent 807a96c1a0
commit 743ebcd7d7
37 changed files with 29818 additions and 29801 deletions

View File

@ -1,10 +1,10 @@
#!/bin/sh #!/bin/sh
export WANT_AUTOCONF_2_5="1" export WANT_AUTOCONF_2_5="1"
export WANT_AUTOMAKE_1_7="1" export WANT_AUTOMAKE_1_7="1"
aclocal aclocal
libtoolize --automake --force --copy libtoolize --automake --force --copy
automake -a -c automake -a -c
autoconf autoconf

View File

@ -1,3 +1,3 @@
#!/bin/sh #!/bin/sh
sudo checkinstall -D --requires libexpat1,libxslt1.1,libxml2,libpcre3,libxerces-c3.0,libwxgtk2.8-0 --maintainer "Gerald Schmidt \<gnschmidt@users.sourceforge.net\>" --pkgaltsource "http://xml-copy-editor.svn.sourceforge.net/viewvc/xml-copy-editor/" make install sudo checkinstall -D --requires libexpat1,libxslt1.1,libxml2,libpcre3,libxerces-c3.0,libwxgtk2.8-0 --maintainer "Gerald Schmidt \<gnschmidt@users.sourceforge.net\>" --pkgaltsource "http://xml-copy-editor.svn.sourceforge.net/viewvc/xml-copy-editor/" make install

2824
config.guess vendored

File diff suppressed because it is too large Load Diff

3002
config.sub vendored

File diff suppressed because it is too large Load Diff

34376
configure vendored

File diff suppressed because it is too large Load Diff

1062
depcomp

File diff suppressed because it is too large Load Diff

View File

@ -1,324 +1,324 @@
#!/bin/sh #!/bin/sh
# install - install a program, script, or datafile # install - install a program, script, or datafile
scriptversion=2005-05-14.22 scriptversion=2005-05-14.22
# This originates from X11R5 (mit/util/scripts/install.sh), which was # This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the # later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license. # following copyright and license.
# #
# Copyright (C) 1994 X Consortium # Copyright (C) 1994 X Consortium
# #
# Permission is hereby granted, free of charge, to any person obtaining a copy # Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to # of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the # deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is # sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions: # furnished to do so, subject to the following conditions:
# #
# The above copyright notice and this permission notice shall be included in # The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software. # all copies or substantial portions of the Software.
# #
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# #
# Except as contained in this notice, the name of the X Consortium shall not # Except as contained in this notice, the name of the X Consortium shall not
# be used in advertising or otherwise to promote the sale, use or other deal- # be used in advertising or otherwise to promote the sale, use or other deal-
# ings in this Software without prior written authorization from the X Consor- # ings in this Software without prior written authorization from the X Consor-
# tium. # tium.
# #
# #
# FSF changes to this file are in the public domain. # FSF changes to this file are in the public domain.
# #
# Calling this script install-sh is preferred over install.sh, to prevent # Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it # `make' implicit rules from creating a file called install from it
# when there is no Makefile. # when there is no Makefile.
# #
# This script is compatible with the BSD install script, but was written # This script is compatible with the BSD install script, but was written
# from scratch. It can only install one file at a time, a restriction # from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs. # shared with many OS's install programs.
# set DOITPROG to echo to test this script # set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it. # Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}" doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars. # put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}" mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}" cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}" chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}" chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}" chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}" stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}" rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}" mkdirprog="${MKDIRPROG-mkdir}"
chmodcmd="$chmodprog 0755" chmodcmd="$chmodprog 0755"
chowncmd= chowncmd=
chgrpcmd= chgrpcmd=
stripcmd= stripcmd=
rmcmd="$rmprog -f" rmcmd="$rmprog -f"
mvcmd="$mvprog" mvcmd="$mvprog"
src= src=
dst= dst=
dir_arg= dir_arg=
dstarg= dstarg=
no_target_directory= no_target_directory=
usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... SRCFILES... DIRECTORY
or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -t DIRECTORY SRCFILES...
or: $0 [OPTION]... -d DIRECTORIES... or: $0 [OPTION]... -d DIRECTORIES...
In the 1st form, copy SRCFILE to DSTFILE. In the 1st form, copy SRCFILE to DSTFILE.
In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
In the 4th, create DIRECTORIES. In the 4th, create DIRECTORIES.
Options: Options:
-c (ignored) -c (ignored)
-d create directories instead of installing files. -d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP. -g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE. -m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER. -o USER $chownprog installed files to USER.
-s $stripprog installed files. -s $stripprog installed files.
-t DIRECTORY install into DIRECTORY. -t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory. -T report an error if DSTFILE is a directory.
--help display this help and exit. --help display this help and exit.
--version display version info and exit. --version display version info and exit.
Environment variables override the default commands: Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
" "
while test -n "$1"; do while test -n "$1"; do
case $1 in case $1 in
-c) shift -c) shift
continue;; continue;;
-d) dir_arg=true -d) dir_arg=true
shift shift
continue;; continue;;
-g) chgrpcmd="$chgrpprog $2" -g) chgrpcmd="$chgrpprog $2"
shift shift
shift shift
continue;; continue;;
--help) echo "$usage"; exit $?;; --help) echo "$usage"; exit $?;;
-m) chmodcmd="$chmodprog $2" -m) chmodcmd="$chmodprog $2"
shift shift
shift shift
continue;; continue;;
-o) chowncmd="$chownprog $2" -o) chowncmd="$chownprog $2"
shift shift
shift shift
continue;; continue;;
-s) stripcmd=$stripprog -s) stripcmd=$stripprog
shift shift
continue;; continue;;
-t) dstarg=$2 -t) dstarg=$2
shift shift
shift shift
continue;; continue;;
-T) no_target_directory=true -T) no_target_directory=true
shift shift
continue;; continue;;
--version) echo "$0 $scriptversion"; exit $?;; --version) echo "$0 $scriptversion"; exit $?;;
*) # When -d is used, all remaining arguments are directories to create. *) # When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified. # When -t is used, the destination is already specified.
test -n "$dir_arg$dstarg" && break test -n "$dir_arg$dstarg" && break
# Otherwise, the last argument is the destination. Remove it from $@. # Otherwise, the last argument is the destination. Remove it from $@.
for arg for arg
do do
if test -n "$dstarg"; then if test -n "$dstarg"; then
# $@ is not empty: it contains at least $arg. # $@ is not empty: it contains at least $arg.
set fnord "$@" "$dstarg" set fnord "$@" "$dstarg"
shift # fnord shift # fnord
fi fi
shift # arg shift # arg
dstarg=$arg dstarg=$arg
done done
break;; break;;
esac esac
done done
if test -z "$1"; then if test -z "$1"; then
if test -z "$dir_arg"; then if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2 echo "$0: no input file specified." >&2
exit 1 exit 1
fi fi
# It's OK to call `install-sh -d' without argument. # It's OK to call `install-sh -d' without argument.
# This can happen when creating conditional directories. # This can happen when creating conditional directories.
exit 0 exit 0
fi fi
for src for src
do do
# Protect names starting with `-'. # Protect names starting with `-'.
case $src in case $src in
-*) src=./$src ;; -*) src=./$src ;;
esac esac
if test -n "$dir_arg"; then if test -n "$dir_arg"; then
dst=$src dst=$src
src= src=
if test -d "$dst"; then if test -d "$dst"; then
mkdircmd=: mkdircmd=:
chmodcmd= chmodcmd=
else else
mkdircmd=$mkdirprog mkdircmd=$mkdirprog
fi fi
else else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad # might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'. # if $src (and thus $dsttmp) contains '*'.
if test ! -f "$src" && test ! -d "$src"; then if test ! -f "$src" && test ! -d "$src"; then
echo "$0: $src does not exist." >&2 echo "$0: $src does not exist." >&2
exit 1 exit 1
fi fi
if test -z "$dstarg"; then if test -z "$dstarg"; then
echo "$0: no destination specified." >&2 echo "$0: no destination specified." >&2
exit 1 exit 1
fi fi
dst=$dstarg dst=$dstarg
# Protect names starting with `-'. # Protect names starting with `-'.
case $dst in case $dst in
-*) dst=./$dst ;; -*) dst=./$dst ;;
esac esac
# If destination is a directory, append the input filename; won't work # If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored. # if double slashes aren't ignored.
if test -d "$dst"; then if test -d "$dst"; then
if test -n "$no_target_directory"; then if test -n "$no_target_directory"; then
echo "$0: $dstarg: Is a directory" >&2 echo "$0: $dstarg: Is a directory" >&2
exit 1 exit 1
fi fi
dst=$dst/`basename "$src"` dst=$dst/`basename "$src"`
fi fi
fi fi
# This sed command emulates the dirname command. # This sed command emulates the dirname command.
dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
# Make sure that the destination directory exists. # Make sure that the destination directory exists.
# Skip lots of stat calls in the usual case. # Skip lots of stat calls in the usual case.
if test ! -d "$dstdir"; then if test ! -d "$dstdir"; then
defaultIFS=' defaultIFS='
' '
IFS="${IFS-$defaultIFS}" IFS="${IFS-$defaultIFS}"
oIFS=$IFS oIFS=$IFS
# Some sh's can't handle IFS=/ for some reason. # Some sh's can't handle IFS=/ for some reason.
IFS='%' IFS='%'
set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
shift shift
IFS=$oIFS IFS=$oIFS
pathcomp= pathcomp=
while test $# -ne 0 ; do while test $# -ne 0 ; do
pathcomp=$pathcomp$1 pathcomp=$pathcomp$1
shift shift
if test ! -d "$pathcomp"; then if test ! -d "$pathcomp"; then
$mkdirprog "$pathcomp" $mkdirprog "$pathcomp"
# mkdir can fail with a `File exist' error in case several # mkdir can fail with a `File exist' error in case several
# install-sh are creating the directory concurrently. This # install-sh are creating the directory concurrently. This
# is OK. # is OK.
test -d "$pathcomp" || exit test -d "$pathcomp" || exit
fi fi
pathcomp=$pathcomp/ pathcomp=$pathcomp/
done done
fi fi
if test -n "$dir_arg"; then if test -n "$dir_arg"; then
$doit $mkdircmd "$dst" \ $doit $mkdircmd "$dst" \
&& { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
else else
dstfile=`basename "$dst"` dstfile=`basename "$dst"`
# Make a couple of temp file names in the proper directory. # Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_ dsttmp=$dstdir/_inst.$$_
rmtmp=$dstdir/_rm.$$_ rmtmp=$dstdir/_rm.$$_
# Trap to clean up those temp files at exit. # Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
trap '(exit $?); exit' 1 2 13 15 trap '(exit $?); exit' 1 2 13 15
# Copy the file name to the temp name. # Copy the file name to the temp name.
$doit $cpprog "$src" "$dsttmp" && $doit $cpprog "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits. # and set any options; do chmod last to preserve setuid bits.
# #
# If any of these fail, we abort the whole thing. If we want to # If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore # ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $cpprog $src $dsttmp" command. # errors from the above "$doit $cpprog $src $dsttmp" command.
# #
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
&& { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
# Now rename the file to the real destination. # Now rename the file to the real destination.
{ $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
|| { || {
# The rename failed, perhaps because mv can't rename something else # The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not # to itself, or perhaps because mv is so ancient that it does not
# support -f. # support -f.
# Now remove or move aside any old file at destination location. # Now remove or move aside any old file at destination location.
# We try this two ways since rm can't unlink itself on some # We try this two ways since rm can't unlink itself on some
# systems and the destination file might be busy for other # systems and the destination file might be busy for other
# reasons. In this case, the final cleanup might fail but the new # reasons. In this case, the final cleanup might fail but the new
# file should still install successfully. # file should still install successfully.
{ {
if test -f "$dstdir/$dstfile"; then if test -f "$dstdir/$dstfile"; then
$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
|| $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
|| { || {
echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
(exit 1); exit 1 (exit 1); exit 1
} }
else else
: :
fi fi
} && } &&
# Now rename the file to the real destination. # Now rename the file to the real destination.
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile" $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
} }
} }
fi || { (exit 1); exit 1; } fi || { (exit 1); exit 1; }
done done
# The final little trick to "correctly" pass the exit status to the exit trap. # The final little trick to "correctly" pass the exit status to the exit trap.
{ {
(exit 0); exit 0 (exit 0); exit 0
} }
# Local variables: # Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp) # eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion=" # time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$" # time-stamp-end: "$"
# End: # End:

16826
ltmain.sh

File diff suppressed because it is too large Load Diff

722
missing
View File

@ -1,361 +1,361 @@
#! /bin/sh #! /bin/sh
# Common stub for a few missing GNU programs while installing. # Common stub for a few missing GNU programs while installing.
scriptversion=2005-06-08.21 scriptversion=2005-06-08.21
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
# Free Software Foundation, Inc. # Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option) # the Free Software Foundation; either version 2, or (at your option)
# any later version. # any later version.
# This program is distributed in the hope that it will be useful, # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of # but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA. # 02110-1301, USA.
# As a special exception to the GNU General Public License, if you # As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a # distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under # configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program. # the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then if test $# -eq 0; then
echo 1>&2 "Try \`$0 --help' for more information" echo 1>&2 "Try \`$0 --help' for more information"
exit 1 exit 1
fi fi
run=: run=:
# In the cases where this matters, `missing' is being run in the # In the cases where this matters, `missing' is being run in the
# srcdir already. # srcdir already.
if test -f configure.ac; then if test -f configure.ac; then
configure_ac=configure.ac configure_ac=configure.ac
else else
configure_ac=configure.in configure_ac=configure.in
fi fi
msg="missing on your system" msg="missing on your system"
case "$1" in case "$1" in
--run) --run)
# Try to run requested program, and just exit if it succeeds. # Try to run requested program, and just exit if it succeeds.
run= run=
shift shift
"$@" && exit 0 "$@" && exit 0
# Exit code 63 means version mismatch. This often happens # Exit code 63 means version mismatch. This often happens
# when the user try to use an ancient version of a tool on # when the user try to use an ancient version of a tool on
# a file that requires a minimum version. In this case we # a file that requires a minimum version. In this case we
# we should proceed has if the program had been absent, or # we should proceed has if the program had been absent, or
# if --run hadn't been passed. # if --run hadn't been passed.
if test $? = 63; then if test $? = 63; then
run=: run=:
msg="probably too old" msg="probably too old"
fi fi
;; ;;
-h|--h|--he|--hel|--help) -h|--h|--he|--hel|--help)
echo "\ echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]... $0 [OPTION]... PROGRAM [ARGUMENT]...
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
error status if there is no known handling for PROGRAM. error status if there is no known handling for PROGRAM.
Options: Options:
-h, --help display this help and exit -h, --help display this help and exit
-v, --version output version information and exit -v, --version output version information and exit
--run try to run the given command, and emulate it if it fails --run try to run the given command, and emulate it if it fails
Supported PROGRAM values: Supported PROGRAM values:
aclocal touch file \`aclocal.m4' aclocal touch file \`aclocal.m4'
autoconf touch file \`configure' autoconf touch file \`configure'
autoheader touch file \`config.h.in' autoheader touch file \`config.h.in'
automake touch all \`Makefile.in' files automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch] bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c flex create \`lex.yy.c', if possible, from existing .c
help2man touch the output file help2man touch the output file
lex create \`lex.yy.c', if possible, from existing .c lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file makeinfo touch the output file
tar try tar, gnutar, gtar, then tar without non-portable flags tar try tar, gnutar, gtar, then tar without non-portable flags
yacc create \`y.tab.[ch]', if possible, from existing .[ch] yacc create \`y.tab.[ch]', if possible, from existing .[ch]
Send bug reports to <bug-automake@gnu.org>." Send bug reports to <bug-automake@gnu.org>."
exit $? exit $?
;; ;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version) -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
echo "missing $scriptversion (GNU Automake)" echo "missing $scriptversion (GNU Automake)"
exit $? exit $?
;; ;;
-*) -*)
echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "$0: Unknown \`$1' option"
echo 1>&2 "Try \`$0 --help' for more information" echo 1>&2 "Try \`$0 --help' for more information"
exit 1 exit 1
;; ;;
esac esac
# Now exit if we have it, but it failed. Also exit now if we # Now exit if we have it, but it failed. Also exit now if we
# don't have it and --version was passed (most likely to detect # don't have it and --version was passed (most likely to detect
# the program). # the program).
case "$1" in case "$1" in
lex|yacc) lex|yacc)
# Not GNU programs, they don't have --version. # Not GNU programs, they don't have --version.
;; ;;
tar) tar)
if test -n "$run"; then if test -n "$run"; then
echo 1>&2 "ERROR: \`tar' requires --run" echo 1>&2 "ERROR: \`tar' requires --run"
exit 1 exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
exit 1 exit 1
fi fi
;; ;;
*) *)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed. # We have it, but it failed.
exit 1 exit 1
elif test "x$2" = "x--version" || test "x$2" = "x--help"; then elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
# Could not run --version or --help. This is probably someone # Could not run --version or --help. This is probably someone
# running `$TOOL --version' or `$TOOL --help' to check whether # running `$TOOL --version' or `$TOOL --help' to check whether
# $TOOL exists and not knowing $TOOL uses missing. # $TOOL exists and not knowing $TOOL uses missing.
exit 1 exit 1
fi fi
;; ;;
esac esac
# If it does not exist, or fails to run (possibly an outdated version), # If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it. # try to emulate it.
case "$1" in case "$1" in
aclocal*) aclocal*)
echo 1>&2 "\ echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if WARNING: \`$1' is $msg. You should only need it if
you modified \`acinclude.m4' or \`${configure_ac}'. You might want you modified \`acinclude.m4' or \`${configure_ac}'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site." any GNU archive site."
touch aclocal.m4 touch aclocal.m4
;; ;;
autoconf) autoconf)
echo 1>&2 "\ echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if WARNING: \`$1' is $msg. You should only need it if
you modified \`${configure_ac}'. You might want to install the you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site." archive site."
touch configure touch configure
;; ;;
autoheader) autoheader)
echo 1>&2 "\ echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if WARNING: \`$1' is $msg. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want you modified \`acconfig.h' or \`${configure_ac}'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site." from any GNU archive site."
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
test -z "$files" && files="config.h" test -z "$files" && files="config.h"
touch_files= touch_files=
for f in $files; do for f in $files; do
case "$f" in case "$f" in
*:*) touch_files="$touch_files "`echo "$f" | *:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;; sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";; *) touch_files="$touch_files $f.in";;
esac esac
done done
touch $touch_files touch $touch_files
;; ;;
automake*) automake*)
echo 1>&2 "\ echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if WARNING: \`$1' is $msg. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
You might want to install the \`Automake' and \`Perl' packages. You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site." Grab them from any GNU archive site."
find . -type f -name Makefile.am -print | find . -type f -name Makefile.am -print |
sed 's/\.am$/.in/' | sed 's/\.am$/.in/' |
while read f; do touch "$f"; done while read f; do touch "$f"; done
;; ;;
autom4te) autom4te)
echo 1>&2 "\ echo 1>&2 "\
WARNING: \`$1' is needed, but is $msg. WARNING: \`$1' is needed, but is $msg.
You might have modified some files without having the You might have modified some files without having the
proper tools for further handling them. proper tools for further handling them.
You can get \`$1' as part of \`Autoconf' from any GNU You can get \`$1' as part of \`Autoconf' from any GNU
archive site." archive site."
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
if test -f "$file"; then if test -f "$file"; then
touch $file touch $file
else else
test -z "$file" || exec >$file test -z "$file" || exec >$file
echo "#! /bin/sh" echo "#! /bin/sh"
echo "# Created by GNU Automake missing as a replacement of" echo "# Created by GNU Automake missing as a replacement of"
echo "# $ $@" echo "# $ $@"
echo "exit 0" echo "exit 0"
chmod +x $file chmod +x $file
exit 1 exit 1
fi fi
;; ;;
bison|yacc) bison|yacc)
echo 1>&2 "\ echo 1>&2 "\
WARNING: \`$1' $msg. You should only need it if WARNING: \`$1' $msg. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site." \`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h rm -f y.tab.c y.tab.h
if [ $# -ne 1 ]; then if [ $# -ne 1 ]; then
eval LASTARG="\${$#}" eval LASTARG="\${$#}"
case "$LASTARG" in case "$LASTARG" in
*.y) *.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
if [ -f "$SRCFILE" ]; then if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.c cp "$SRCFILE" y.tab.c
fi fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
if [ -f "$SRCFILE" ]; then if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.h cp "$SRCFILE" y.tab.h
fi fi
;; ;;
esac esac
fi fi
if [ ! -f y.tab.h ]; then if [ ! -f y.tab.h ]; then
echo >y.tab.h echo >y.tab.h
fi fi
if [ ! -f y.tab.c ]; then if [ ! -f y.tab.c ]; then
echo 'main() { return 0; }' >y.tab.c echo 'main() { return 0; }' >y.tab.c
fi fi
;; ;;
lex|flex) lex|flex)
echo 1>&2 "\ echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if WARNING: \`$1' is $msg. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site." \`Flex' from any GNU archive site."
rm -f lex.yy.c rm -f lex.yy.c
if [ $# -ne 1 ]; then if [ $# -ne 1 ]; then
eval LASTARG="\${$#}" eval LASTARG="\${$#}"
case "$LASTARG" in case "$LASTARG" in
*.l) *.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
if [ -f "$SRCFILE" ]; then if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" lex.yy.c cp "$SRCFILE" lex.yy.c
fi fi
;; ;;
esac esac
fi fi
if [ ! -f lex.yy.c ]; then if [ ! -f lex.yy.c ]; then
echo 'main() { return 0; }' >lex.yy.c echo 'main() { return 0; }' >lex.yy.c
fi fi
;; ;;
help2man) help2man)
echo 1>&2 "\ echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if WARNING: \`$1' is $msg. You should only need it if
you modified a dependency of a manual page. You may need the you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take \`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site." effect. You can get \`Help2man' from any GNU archive site."
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then if test -z "$file"; then
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
fi fi
if [ -f "$file" ]; then if [ -f "$file" ]; then
touch $file touch $file
else else
test -z "$file" || exec >$file test -z "$file" || exec >$file
echo ".ab help2man is required to generate this page" echo ".ab help2man is required to generate this page"
exit 1 exit 1
fi fi
;; ;;
makeinfo) makeinfo)
echo 1>&2 "\ echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if WARNING: \`$1' is $msg. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX, call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site." the \`GNU make' package. Grab either from any GNU archive site."
# The file to touch is that specified with -o ... # The file to touch is that specified with -o ...
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then if test -z "$file"; then
# ... or it is the one specified with @setfilename ... # ... or it is the one specified with @setfilename ...
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
# ... or it is derived from the source name (dir/f.texi becomes f.info) # ... or it is derived from the source name (dir/f.texi becomes f.info)
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
fi fi
# If the file does not exist, the user really needs makeinfo; # If the file does not exist, the user really needs makeinfo;
# let's fail without touching anything. # let's fail without touching anything.
test -f $file || exit 1 test -f $file || exit 1
touch $file touch $file
;; ;;
tar) tar)
shift shift
# We have already tried tar in the generic part. # We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error # Look for gnutar/gtar before invocation to avoid ugly error
# messages. # messages.
if (gnutar --version > /dev/null 2>&1); then if (gnutar --version > /dev/null 2>&1); then
gnutar "$@" && exit 0 gnutar "$@" && exit 0
fi fi
if (gtar --version > /dev/null 2>&1); then if (gtar --version > /dev/null 2>&1); then
gtar "$@" && exit 0 gtar "$@" && exit 0
fi fi
firstarg="$1" firstarg="$1"
if shift; then if shift; then
case "$firstarg" in case "$firstarg" in
*o*) *o*)
firstarg=`echo "$firstarg" | sed s/o//` firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" "$@" && exit 0 tar "$firstarg" "$@" && exit 0
;; ;;
esac esac
case "$firstarg" in case "$firstarg" in
*h*) *h*)
firstarg=`echo "$firstarg" | sed s/h//` firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" "$@" && exit 0 tar "$firstarg" "$@" && exit 0
;; ;;
esac esac
fi fi
echo 1>&2 "\ echo 1>&2 "\
WARNING: I can't seem to be able to run \`tar' with the given arguments. WARNING: I can't seem to be able to run \`tar' with the given arguments.
You may want to install GNU tar or Free paxutils, or check the You may want to install GNU tar or Free paxutils, or check the
command line arguments." command line arguments."
exit 1 exit 1
;; ;;
*) *)
echo 1>&2 "\ echo 1>&2 "\
WARNING: \`$1' is needed, and is $msg. WARNING: \`$1' is needed, and is $msg.
You might have modified some files without having the You might have modified some files without having the
proper tools for further handling them. Check the \`README' file, proper tools for further handling them. Check the \`README' file,
it often tells you about the needed prerequisites for installing it often tells you about the needed prerequisites for installing
this package. You may also peek at any GNU archive site, in case this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program." some other package would contain this missing \`$1' program."
exit 1 exit 1
;; ;;
esac esac
exit 0 exit 0
# Local variables: # Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp) # eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion=" # time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$" # time-stamp-end: "$"
# End: # End:

View File

View File

@ -41,7 +41,7 @@ MyPropertySheet::MyPropertySheet (
bool expandInternalEntitiesParameter, bool expandInternalEntitiesParameter,
bool showFullPathOnFrameParameter, bool showFullPathOnFrameParameter,
int lang, int lang,
const wxArrayString &translations, const std::set<const wxLanguageInfo *> &translations,
wxWindowID id, wxWindowID id,
wxString title, wxString title,
const wxPoint& position, const wxPoint& position,
@ -165,17 +165,18 @@ MyPropertySheet::MyPropertySheet (
languageBox = new wxChoice ( languageBox = new wxChoice (
generalPanel, generalPanel,
wxID_ANY ); wxID_ANY );
languageBox->SetExtraStyle ( languageBox->GetExtraStyle() | wxCB_SORT );
languageBox->Append ( _ ( "Default" ), ( void* ) wxLANGUAGE_ENGLISH_US );
languageBox->SetSelection ( 0 );
int index; int index;
const wxLanguageInfo *info; std::set<const wxLanguageInfo *>::const_iterator t = translations.begin();
wxArrayString::const_iterator trans = translations.begin(); for ( ; t != translations.end(); t++ )
for ( ; trans != translations.end(); trans++ )
{ {
info = wxLocale::FindLanguageInfo ( *trans ); index = languageBox->Append ( wxGetTranslation ( ( **t ).Description ),
if ( info == NULL ) continue; ( void* )( **t ).Language );
if (lang == ( **t ).Language)
index = languageBox->Append ( info->Description, (void*)info->Language );
if (lang == info->Language)
languageBox->SetSelection ( index ); languageBox->SetSelection ( index );
} }

View File

@ -47,7 +47,7 @@ class MyPropertySheet : public wxPropertySheetDialog
bool expandInternalEntities, bool expandInternalEntities,
bool showFullPathOnFrame, bool showFullPathOnFrame,
int lang, int lang,
const wxArrayString &translations, const std::set<const wxLanguageInfo *> &translations,
wxWindowID id = wxID_ANY, wxWindowID id = wxID_ANY,
wxString title = _T ( "" ), wxString title = _T ( "" ),
const wxPoint& position = wxDefaultPosition, const wxPoint& position = wxDefaultPosition,

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

@ -212,7 +212,17 @@ MyApp::MyApp() : checker ( NULL ), server ( NULL ), connection ( NULL ),
int fdnull = open ( "/dev/null", O_WRONLY, 0 ); int fdnull = open ( "/dev/null", O_WRONLY, 0 );
dup2 ( fdnull, STDERR_FILENO ); dup2 ( fdnull, STDERR_FILENO );
#endif #endif
//myLocale.Init(); }
MyApp::~MyApp()
{
delete checker;
delete server;
delete connection;
}
bool MyApp::OnInit()
{
int systemLocale = myLocale.GetSystemLanguage(); int systemLocale = myLocale.GetSystemLanguage();
switch ( systemLocale ) switch ( systemLocale )
{ {
@ -231,8 +241,8 @@ MyApp::MyApp() : checker ( NULL ), server ( NULL ), connection ( NULL ),
systemLocale = wxLANGUAGE_CHINESE_TRADITIONAL; systemLocale = wxLANGUAGE_CHINESE_TRADITIONAL;
break; break;
case wxLANGUAGE_CATALAN: case wxLANGUAGE_CATALAN:
systemLocale = wxLANGUAGE_CATALAN; systemLocale = wxLANGUAGE_CATALAN;
break; break;
case wxLANGUAGE_SPANISH: case wxLANGUAGE_SPANISH:
case wxLANGUAGE_SPANISH_ARGENTINA: case wxLANGUAGE_SPANISH_ARGENTINA:
case wxLANGUAGE_SPANISH_BOLIVIA: case wxLANGUAGE_SPANISH_BOLIVIA:
@ -302,43 +312,6 @@ MyApp::MyApp() : checker ( NULL ), server ( NULL ), connection ( NULL ),
#endif #endif
} }
myLocale.Init ( lang, wxLOCALE_LOAD_DEFAULT );
wxArrayString prefixes;
#ifdef __WXGTK__
prefixes.Add ( wxT ( "/usr/share/locale" ) );
prefixes.Add ( wxT ( "/usr/local/share/locale" ) );
#endif
wxString poDir = wxStandardPaths::Get().GetDataDir() +
wxFileName::GetPathSeparator() + _T ( "po" ) + wxFileName::GetPathSeparator();
prefixes.Add ( poDir );
wxArrayString::const_iterator itr;
for ( itr = prefixes.begin(); itr != prefixes.end(); itr++ )
wxLocale::AddCatalogLookupPathPrefix ( *itr );
wxString catalog = _T ( "messages" );
getAvailableTranslations ( &prefixes, &catalog );
if ( !myLocale.AddCatalog ( catalog ) )
;
#ifndef __WXMSW__
{
wxLogNull noLog;
myLocale.AddCatalog ( _T ( "fileutils" ) );
}
#endif
}
MyApp::~MyApp()
{
delete checker;
delete server;
delete connection;
}
bool MyApp::OnInit()
{
wxString name, service, hostName; wxString name, service, hostName;
name.Printf ( _T ( "xmlcopyeditor-%s" ), wxGetUserId().c_str() ); name.Printf ( _T ( "xmlcopyeditor-%s" ), wxGetUserId().c_str() );
service = IPC_SERVICE; service = IPC_SERVICE;
@ -346,7 +319,7 @@ bool MyApp::OnInit()
if ( singleInstanceCheck ) if ( singleInstanceCheck )
{ {
checker = new wxSingleInstanceChecker ( name ); checker = new wxSingleInstanceChecker ( name );
while ( checker->IsAnotherRunning() ) while ( checker->IsAnotherRunning() )
{ {
// attempt calling server // attempt calling server
@ -382,6 +355,38 @@ bool MyApp::OnInit()
server = new MyServer; server = new MyServer;
server->Create ( service ); server->Create ( service );
myLocale.Init ( lang, wxLOCALE_LOAD_DEFAULT );
wxArrayString prefixes;
#ifdef __WXGTK__
prefixes.Add ( _T ( "/usr/share/locale" ) );
prefixes.Add ( _T ( "/usr/share/locale-langpack" ) );
prefixes.Add ( _T ( "/usr/local/share/locale" ) );
#endif
wxString poDir = wxStandardPaths::Get().GetDataDir() +
wxFileName::GetPathSeparator() + _T ( "po" ) + wxFileName::GetPathSeparator();
prefixes.Add ( poDir );
for ( size_t i = 0; i < prefixes.Count(); )
{
if ( wxDirExists ( prefixes[i] ) )
wxLocale::AddCatalogLookupPathPrefix ( prefixes[i++] );
else
prefixes.RemoveAt ( i );
}
wxString catalog = _T ( "messages" );
getAvailableTranslations ( &prefixes, &catalog );
if ( !myLocale.AddCatalog ( catalog ) )
;
#ifndef __WXMSW__
{
wxLogNull noLog;
myLocale.AddCatalog ( _T ( "coreutils" ) );
}
#endif
MyFrame *frame; MyFrame *frame;
try try
{ {
@ -572,7 +577,7 @@ void MyApp::HandleEvent ( wxEvtHandler *handler, wxEventFunction func, wxEvent&
} }
#endif #endif
const wxArrayString &MyApp::getAvailableTranslations ( const std::set<const wxLanguageInfo *> &MyApp::getAvailableTranslations (
const wxArrayString *catalogLookupPathPrefixes /*= NULL*/, const wxArrayString *catalogLookupPathPrefixes /*= NULL*/,
const wxString *catalog /*= NULL*/ ) const wxString *catalog /*= NULL*/ )
{ {
@ -587,10 +592,20 @@ const wxArrayString &MyApp::getAvailableTranslations (
if ( catalog == NULL ) if ( catalog == NULL )
throw std::invalid_argument ( "catelog" ); throw std::invalid_argument ( "catelog" );
const wxLanguageInfo *info;
#if wxCHECK_VERSION(2,9,0) #if wxCHECK_VERSION(2,9,0)
wxTranslations *t = wxTranslations::Get(); wxTranslations *t = wxTranslations::Get();
if ( t != NULL ) if ( t != NULL )
{
translations = t->GetAvailableTranslations ( *catalog ); translations = t->GetAvailableTranslations ( *catalog );
wxArrayString::const_iterator trans = translations.begin();
for ( ; trans != translations.end(); trans++ )
{
info = wxLocale::FindLanguageInfo ( *trans );
if ( info != NULL )
translations.insert ( info );
}
}
#else #else
wxArrayString::const_iterator i = catalogLookupPathPrefixes->begin(); wxArrayString::const_iterator i = catalogLookupPathPrefixes->begin();
for ( i = catalogLookupPathPrefixes->begin(); for ( i = catalogLookupPathPrefixes->begin();
@ -613,7 +628,9 @@ const wxArrayString &MyApp::getAvailableTranslations (
if ( lang.EndsWith(".lproj", &rest) ) if ( lang.EndsWith(".lproj", &rest) )
lang = rest; lang = rest;
#endif // __WXOSX__ #endif // __WXOSX__
translations.push_back(lang); info = wxLocale::FindLanguageInfo ( lang );
if ( info != NULL )
translations.insert ( info );
} }
} }
} }
@ -624,9 +641,9 @@ const wxArrayString &MyApp::getAvailableTranslations (
return wxFileName ( dir, catelog, _T ( "mo" ) ).FileExists() return wxFileName ( dir, catelog, _T ( "mo" ) ).FileExists()
|| wxFileName ( dir + wxFILE_SEP_PATH + _T ( "LC_MESSAGES" ), catelog, _T ( "mo" ) ).FileExists(); || wxFileName ( dir + wxFILE_SEP_PATH + _T ( "LC_MESSAGES" ), catelog, _T ( "mo" ) ).FileExists();
} }
const wxArrayString &operator()() { return translations; } const std::set<const wxLanguageInfo *> &operator()() { return translations; }
protected: protected:
wxArrayString translations; std::set<const wxLanguageInfo *> translations;
} translations ( catalogLookupPathPrefixes, catalog ); } translations ( catalogLookupPathPrefixes, catalog );
return translations(); return translations();
@ -2573,7 +2590,6 @@ void MyFrame::OnOptions ( wxCommandEvent& WXUNUSED ( event ) )
#else #else
( _ ( "Preferences" ) ); ( _ ( "Preferences" ) );
#endif #endif
MyApp *app = ( MyApp * ) wxTheApp;
std::auto_ptr<MyPropertySheet> mpsd ( new MyPropertySheet ( std::auto_ptr<MyPropertySheet> mpsd ( new MyPropertySheet (
this, this,
properties, properties,
@ -2587,7 +2603,7 @@ void MyFrame::OnOptions ( wxCommandEvent& WXUNUSED ( event ) )
expandInternalEntities, expandInternalEntities,
showFullPathOnFrame, showFullPathOnFrame,
lang, lang,
app->getAvailableTranslations(), wxGetApp().getAvailableTranslations(),
wxID_ANY, wxID_ANY,
title ) ); title ) );
if ( mpsd->ShowModal() == wxID_OK ) if ( mpsd->ShowModal() == wxID_OK )

View File

@ -176,7 +176,7 @@ class MyApp : public wxApp
#ifndef __WXMSW__ #ifndef __WXMSW__
virtual void HandleEvent ( wxEvtHandler *handler, wxEventFunction func, wxEvent& event ) const; virtual void HandleEvent ( wxEvtHandler *handler, wxEventFunction func, wxEvent& event ) const;
#endif #endif
const wxArrayString &getAvailableTranslations ( const std::set<const wxLanguageInfo *> &getAvailableTranslations (
const wxArrayString *catalogLookupPathPrefixes = NULL, const wxArrayString *catalogLookupPathPrefixes = NULL,
const wxString *catelog = NULL ); const wxString *catelog = NULL );
protected: protected: