regexxer-0.9/0000777000175000017500000000000010566142352010224 500000000000000regexxer-0.9/m4/0000777000175000017500000000000010566142352010544 500000000000000regexxer-0.9/m4/dk-export.m40000644000175000017500000000332010552050511012623 00000000000000## Copyright (c) 2004-2007 Daniel Elstner ## ## This file is part of danielk's Autostuff. ## ## danielk's Autostuff 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. ## ## danielk's Autostuff 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 danielk's Autostuff; if not, write to the Free Software Foundation, ## Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #serial 20070113 ## DK_LINK_VERSION_SCRIPT(variable, filename) ## ## Check whether the linker accepts the --version-script flag. On success, ## set the output to "-Wl,--version-script=$srcdir/". ## The should be a path relative to the top source directory. ## AC_DEFUN([DK_LINK_VERSION_SCRIPT], [dnl m4_if([$2],, [AC_FATAL([2 arguments expected])])[]dnl dnl AC_CACHE_CHECK([whether the linker accepts --version-script], [dk_cv_link_version_script], [ DK_SH_VAR_PUSH([LDFLAGS], ["$LDFLAGS -Wl,--version-script=$srcdir/$2"]) AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], [dk_cv_link_version_script=yes], [dk_cv_link_version_script=no]) DK_SH_VAR_POP([LDFLAGS]) ]) AS_IF([test "x$dk_cv_link_version_script" = xyes], [$1='-Wl,--version-script=$(top_srcdir)/'"$2"], [$1=]) AC_SUBST([$1])[]dnl ]) regexxer-0.9/m4/dk-feature.m40000644000175000017500000000660410547704455012766 00000000000000## Copyright (c) 2004-2007 Daniel Elstner ## ## This file is part of danielk's Autostuff. ## ## danielk's Autostuff 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. ## ## danielk's Autostuff 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 danielk's Autostuff; if not, write to the Free Software Foundation, ## Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #serial 20070105 ## _DK_SH_VAR_PUSH_DEPTH(depth, variable, [value]) ## m4_define([_DK_SH_VAR_PUSH_DEPTH], [dnl m4_pushdef([_DK_SH_VAR_DEPTH_$2], [$1])[]dnl dk_save_sh_var_$2_$1=$$2 m4_if([$3], [],, [$2=$3 ])[]dnl ]) ## _DK_SH_VAR_POP_DEPTH(depth, variable) ## m4_define([_DK_SH_VAR_POP_DEPTH], [dnl $2=$dk_save_sh_var_$2_$1 m4_popdef([_DK_SH_VAR_DEPTH_$2])[]dnl ]) ## DK_SH_VAR_PUSH(variable, [value]) ## ## Temporarily replace the current value of the shell variable ## with until DK_SH_VAR_POP() is invoked to restore the ## original value. If is empty, is left unchanged but ## its current value is still saved. ## ## This macro may safely be used repeatedly on the same shell variable, ## as long as each DK_SH_VAR_PUSH(variable) is matched by a corresponding ## DK_SH_VAR_POP(variable). ## AC_DEFUN([DK_SH_VAR_PUSH], [dnl m4_if([$1],, [AC_FATAL([argument expected])])[]dnl _DK_SH_VAR_PUSH_DEPTH(m4_ifdef([_DK_SH_VAR_DEPTH_$1], [m4_incr(_DK_SH_VAR_DEPTH_$1)], [1]), [$1], [$2])[]dnl ]) ## DK_SH_VAR_POP(variable) ## ## Restore the original value of the shell variable which it had ## before the corresponding invocation of DK_SH_VAR_PUSH(). ## AC_DEFUN([DK_SH_VAR_POP], [dnl m4_if([$1],, [AC_FATAL([argument expected])])[]dnl _DK_SH_VAR_POP_DEPTH(_DK_SH_VAR_DEPTH_$1, [$1])[]dnl ]) ## _DK_CHECK_FEATURE_VAR(feature, source, cache var, shell var, cpp define) ## m4_define([_DK_CHECK_FEATURE_VAR], [dnl AC_CACHE_CHECK([for $1], [$3], [AC_LINK_IFELSE([$2], [$3=yes], [$3=no])]) $4=$$3 AS_IF([test "x$$4" = xyes], [AC_DEFINE([$5], [1], [Define to 1 if $1 is available.]) ])[]dnl ]) ## DK_CHECK_FEATURE(feature, test source) ## ## Check for a feature of the C/C++ environment. If compiling and linking ## the supplied test program is successful, the configuration header macro ## _HAVE_ is defined to 1 and "yes" is assigned ## to the shell variable _FEATURE_. Otherwise, ## _FEATURE_ is set to "no". ## ## This macro is intended to be used in conjunction with AC_LANG_PROGRAM ## or AC_LANG_SOURCE. ## AC_DEFUN([DK_CHECK_FEATURE], [dnl m4_if([$2],, [AC_FATAL([2 arguments expected])])[]dnl _DK_CHECK_FEATURE_VAR([$1], [$2], m4_quote(AS_TR_SH([dk_cv_feature_$1])), m4_quote(AS_TR_CPP(AC_PACKAGE_TARNAME[_FEATURE_$1])), m4_quote(AS_TR_CPP(AC_PACKAGE_TARNAME[_HAVE_$1])))[]dnl ]) regexxer-0.9/m4/dk-pkgprog.m40000644000175000017500000000345010547704456013001 00000000000000## Copyright (c) 2004-2007 Daniel Elstner ## ## This file is part of danielk's Autostuff. ## ## danielk's Autostuff 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. ## ## danielk's Autostuff 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 danielk's Autostuff; if not, write to the Free Software Foundation, ## Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #serial 20070105 ## DK_PKG_PATH_PROG(variable, package, executable) ## ## Like AC_PATH_PROG(variable, executable,, ), where ## is set to the contents of $PATH prepended by the package's binary executable ## directory. This should catch even the weirdest setups. An error message is ## generated if the executable cannot be found anywhere in the resulting path. ## AC_DEFUN([DK_PKG_PATH_PROG], [dnl m4_if([$3],, [AC_FATAL([3 arguments expected])])[]dnl AC_REQUIRE([PKG_PROG_PKG_CONFIG])[]dnl dnl dk_pkg_prefix=`$PKG_CONFIG --variable=exec_prefix "$2" 2>&AS_MESSAGE_LOG_FD` AS_IF([test "x$dk_pkg_prefix" = x], [dk_pkg_path=$PATH], [dk_pkg_path=$dk_pkg_prefix/bin$PATH_SEPARATOR$PATH]) AC_PATH_PROG([$1], [$3],, [$dk_pkg_path]) AS_IF([test "x$$1" = x], [AC_MSG_ERROR([[ Oops, could not find "]$3[". This program is normally included with the ]$2[ package. Please make sure that your installation of ]$2[ is set up correctly. ]])]) ]) regexxer-0.9/m4/dk-warn.m40000644000175000017500000000715110553042345012266 00000000000000## Copyright (c) 2004-2007 Daniel Elstner ## ## This file is part of danielk's Autostuff. ## ## danielk's Autostuff 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. ## ## danielk's Autostuff 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 danielk's Autostuff; if not, write to the Free Software Foundation, ## Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #serial 20070116 ## DK_ARG_ENABLE_WARNINGS(variable, min-flags, max-flags, [deprecation-prefixes]) ## ## Provide the --enable-warnings configure argument, set to "min" by default. ## and should be space-separated lists of compiler ## warning flags to use with --enable-warnings=min or --enable-warnings=max, ## respectively. Warning level "fatal" is the same as "max" but in addition ## enables -Werror mode. ## ## If not empty, should be a list of module prefixes ## which is expanded to -D_DISABLE_DEPRECATED flags if fatal warnings ## are enabled, too. ## AC_DEFUN([DK_ARG_ENABLE_WARNINGS], [dnl m4_if([$3],, [AC_FATAL([3 arguments expected])])[]dnl dnl AC_ARG_ENABLE([warnings], [AS_HELP_STRING( [--enable-warnings=@<:@min|max|fatal|no@:>@], [control compiler pickyness @<:@min@:>@])], [dk_enable_warnings=$enableval], [dk_enable_warnings=min])[]dnl dk_lang= case $ac_compile in *'$CXXFLAGS '*) dk_lang='C++' dk_cc=$CXX dk_conftest=conftest.${ac_ext-cc} ;; *'$CFLAGS '*) dk_lang=C dk_cc=$CC dk_conftest=conftest.${ac_ext-c} ;; esac AS_IF([test "x$dk_lang" != x], [ AC_MSG_CHECKING([which $dk_lang compiler warning flags to use]) case $dk_enable_warnings in no) dk_warning_flags=;; max) dk_warning_flags="$3";; fatal) dk_warning_flags="$3 -Werror";; *) dk_warning_flags="$2";; esac dk_deprecation_flags= m4_if([$4],,, [ AS_IF([test "x$dk_enable_warnings" = xfatal], [ dk_deprecation_prefixes="$4" for dk_prefix in $dk_deprecation_prefixes do dk_deprecation_flags="${dk_deprecation_flags}-D${dk_prefix}_DISABLE_DEPRECATED " done ]) ])[]dnl dk_tested_flags= AS_IF([test "x$dk_warning_flags" != x], [ # Keep in mind that the dummy source must be devoid of any # problems that might cause diagnostics. AC_LANG_CONFTEST([AC_LANG_SOURCE( [[int main(int argc, char** argv) { return (argv != 0) ? argc : 0; }]])]) for dk_flag in $dk_warning_flags do # Test whether the compiler accepts the flag. GCC doesn't bail # out when given an unsupported flag but prints a warning, so # check the compiler output instead. dk_cc_out=`$dk_cc $dk_tested_flags $dk_flag -c "$dk_conftest" 2>&1 || echo failed` rm -f "conftest.${OBJEXT-o}" AS_IF([test "x$dk_cc_out" = x], [ AS_IF([test "x$dk_tested_flags" = x], [dk_tested_flags=$dk_flag], [dk_tested_flags="$dk_tested_flags $dk_flag"]) ], [ echo "$dk_cc_out" >&AS_MESSAGE_LOG_FD ]) done rm -f "$dk_conftest" ]) dk_all_flags=$dk_deprecation_flags$dk_tested_flags AC_SUBST([$1], [$dk_all_flags]) test "x$dk_all_flags" != x || dk_all_flags=none AC_MSG_RESULT([$dk_all_flags]) ]) ]) regexxer-0.9/m4/intltool.m40000644000175000017500000002367710566140564012610 00000000000000## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*- ## Copyright (C) 2001 Eazel, Inc. ## Author: Maciej Stachowiak ## Kenneth Christiansen ## ## 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 of the License, 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 this program; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ## ## As a special exception to the GNU General Public License, if you ## distribute this file as part of a program that contains a ## configuration script generated by Autoconf, you may include it under ## the same distribution terms that you use for the rest of that program. dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 35 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [AC_PREREQ([2.50])dnl case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac if test -n "$1"; then AC_MSG_CHECKING(for intltool >= $1) INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`awk -F\" '/\\$VERSION / { print $ 2; }' ${ac_aux_dir}/intltool-update.in` [INTLTOOL_APPLIED_VERSION_AS_INT=`awk -F\" '/\\$VERSION / { split($ 2, VERSION, "."); print VERSION[1] * 1000 + VERSION[2] * 100 + VERSION[3];}' ${ac_aux_dir}/intltool-update.in` ] AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.]) fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' AC_SUBST(INTLTOOL_DESKTOP_RULE) AC_SUBST(INTLTOOL_DIRECTORY_RULE) AC_SUBST(INTLTOOL_KEYS_RULE) AC_SUBST(INTLTOOL_PROP_RULE) AC_SUBST(INTLTOOL_OAF_RULE) AC_SUBST(INTLTOOL_PONG_RULE) AC_SUBST(INTLTOOL_SERVER_RULE) AC_SUBST(INTLTOOL_SHEET_RULE) AC_SUBST(INTLTOOL_SOUNDLIST_RULE) AC_SUBST(INTLTOOL_UI_RULE) AC_SUBST(INTLTOOL_XAM_RULE) AC_SUBST(INTLTOOL_KBD_RULE) AC_SUBST(INTLTOOL_XML_RULE) AC_SUBST(INTLTOOL_XML_NOMERGE_RULE) AC_SUBST(INTLTOOL_CAVES_RULE) AC_SUBST(INTLTOOL_SCHEMAS_RULE) AC_SUBST(INTLTOOL_THEME_RULE) AC_SUBST(INTLTOOL_SERVICE_RULE) # Use the tools built into the package, not the ones that are installed. AC_SUBST(INTLTOOL_EXTRACT, '$(top_builddir)/intltool-extract') AC_SUBST(INTLTOOL_MERGE, '$(top_builddir)/intltool-merge') AC_SUBST(INTLTOOL_UPDATE, '$(top_builddir)/intltool-update') AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_ERROR([perl not found; required for intltool]) fi if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then AC_MSG_ERROR([perl 5.x required for intltool]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_ERROR([XML::Parser perl module is required for intltool]) fi fi AC_PATH_PROG(INTLTOOL_ICONV, iconv, iconv) AC_PATH_PROG(INTLTOOL_MSGFMT, msgfmt, msgfmt) AC_PATH_PROG(INTLTOOL_MSGMERGE, msgmerge, msgmerge) AC_PATH_PROG(INTLTOOL_XGETTEXT, xgettext, xgettext) # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) IT_PO_SUBDIR([po]) dnl The following is very similar to dnl dnl AC_CONFIG_FILES([intltool-extract intltool-merge intltool-update]) dnl dnl with the following slight differences: dnl - the *.in files are in ac_aux_dir, dnl - if the file haven't changed upon reconfigure, it's not touched, dnl - the evaluation of the third parameter enables a hack which computes dnl the actual value of $libdir, dnl - the user sees "executing intltool commands", instead of dnl "creating intltool-extract" and such. dnl dnl Nothing crucial here, and we could use AC_CONFIG_FILES, if there were dnl a reason for it. AC_CONFIG_COMMANDS([intltool], [ for file in intltool-extract intltool-merge intltool-update; do sed -e "s|@INTLTOOL_EXTRACT@|`pwd`/intltool-extract|g" \ -e "s|@INTLTOOL_LIBDIR@|${INTLTOOL_LIBDIR}|g" \ -e "s|@INTLTOOL_ICONV@|${INTLTOOL_ICONV}|g" \ -e "s|@INTLTOOL_MSGFMT@|${INTLTOOL_MSGFMT}|g" \ -e "s|@INTLTOOL_MSGMERGE@|${INTLTOOL_MSGMERGE}|g" \ -e "s|@INTLTOOL_XGETTEXT@|${INTLTOOL_XGETTEXT}|g" \ -e "s|@INTLTOOL_PERL@|${INTLTOOL_PERL}|g" \ < ${ac_aux_dir}/${file}.in > ${file}.out if cmp -s ${file} ${file}.out 2>/dev/null; then rm -f ${file}.out else mv -f ${file}.out ${file} fi chmod ugo+x ${file} chmod u+w ${file} done ], [INTLTOOL_PERL='${INTLTOOL_PERL}' ac_aux_dir='${ac_aux_dir}' prefix="$prefix" exec_prefix="$exec_prefix" INTLTOOL_LIBDIR="$libdir" INTLTOOL_EXTRACT='${INTLTOOL_EXTRACT}' INTLTOOL_ICONV='${INTLTOOL_ICONV}' INTLTOOL_MSGFMT='${INTLTOOL_MSGFMT}' INTLTOOL_MSGMERGE='${INTLTOOL_MSGMERGE}' INTLTOOL_XGETTEXT='${INTLTOOL_XGETTEXT}']) ]) # IT_PO_SUBDIR(DIRNAME) # --------------------- # All po subdirs have to be declared with this macro; the subdir "po" is # declared by IT_PROG_INTLTOOL. # AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl dnl The following CONFIG_COMMANDS should be exetuted at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" >"$1/stamp-it.tmp" [sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" ] if test ! -f "$1/Makefile"; then AC_MSG_ERROR([$1/Makefile is not ready.]) fi mv "$1/Makefile" "$1/Makefile.tmp" [sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r $1/POTFILES } ' "$1/Makefile.tmp" >"$1/Makefile"] rm -f "$1/Makefile.tmp" mv "$1/stamp-it.tmp" "$1/stamp-it" ]) ])dnl ]) # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: # AC_DEFUN([AC_PROG_INTLTOOL], ...) regexxer-0.9/po/0000777000175000017500000000000010566142352010642 500000000000000regexxer-0.9/po/ChangeLog0000644000175000017500000003651510566141042012335 000000000000002007-02-18 Daniel Elstner * *.po: Regenerate for regexxer 0.9 release. 2007-02-06 Pema Geyleg * LINGUAS: Added dz to the list * dz.po: Added Dzongkha translation. 2007-01-26 Matic Zgur * sl.po: Updated Slovenian translation. 2007-01-14 Alexander Shopov * bg.po: Updated Bulgarian translation by Yavor Doganov 2007-01-11 Daniel Elstner * de.po ("C_urrent match color:"): Move accelerator from "g" to "T" in order to make it visible. ("Text view font"): Slightly reword translation. 2007-01-11 Daniel Elstner * *.po: Globally replace ASCII quotes (") and apostrophes (') with the typographically correct variants in Unicode. * en.po: Remove English "translation" as proper Unicode quotes and apostrophes are now used directly in the untranslated messages. * LINGUAS: Remove "en" from list. * POTFILES.in: Prepend [encoding: UTF-8] to list of files. 2007-01-10 Daniel Elstner * Makevars (XGETTEXT_OPTIONS): Add --add-comments=TRANSLATORS in order to make xgettext only extract explicitely tagged comments into PO files. This gets rid of the comment spam due to intltool passing --add-comments by default without specifying any tag. 2007-01-09 Daniel Nylander * sv.po: Updated Swedish translation. 2007-01-09 Daniel Elstner * Makevars (MSGID_BUGS_ADDRESS): Change URI to . 2007-01-08 Alexander Shopov * bg.po: Updated Bulgarian translation by Yavor Doganov 2007-01-08 David Lodge * en_GB.po: Updated English (British) translation 2007-01-07 Daniel Elstner * en.po: Update translation. * de.po: Ditto. 2007-01-06 Daniel Elstner * POTFILES.in: Remove ui/aboutdialog.glade. 2007-01-06 Daniel Elstner * it.po: Replace my old email address with the one of the original contributor of this translation. 2007-01-06 Daniel Elstner * {de,en}.po: Update my email address. 2007-01-05 Daniel Elstner * POTFILES.in: Move regexxer.{desktop,schemas}.in to the ui/ directory. 2006-11-18 Djihed Afifi * ar.po: Added Arabic Translation. * LINGUAS: Added ar. 2006-10-31 Matic Zgur * sl.po: Added Slovenian translation. * LINGUAS: Added Slovenian ("sl") to the list of languages. 2006-10-16 Abel Cheung * zh_TW.po: Updated Chinese (Taiwan) translation. * zh_HK.po: New Chinese (Hong Kong) translation. * LINGUAS: Added "zh_HK". 2006-09-24 Pawan Chitrakar * ne.po: Updated Nepali Translation 2006-08-28 Inaki Larranaga * eu.po: Added Basque translation. * LINGUAS: Added "eu" (Basque) entry. 2006-08-26 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2006-07-24 Christophe Merlet * fr.po: Updated French translation. 2006-03-01 Daniel Nylander * sv.po: Updated Swedish translation. 2006-01-22 Clytie Siddall * vi.po: Added "vi" to LINGUAS. 2005-08-21 Pawan Chitrakar * ne.po: Added Nepali Translation * LINGUAS: Added ne in list 2005-08-04 Abel Cheung * zh_TW.po: Fix language team reference and my email address. 2005-08-01 Vincent van Adrighem * nl.po: Translation updated. 2005-07-31 Ilkka Tuohela * fi.po: Bulk updates to Finnish translation for new gnome.fi website. 2005-07-28 Ilkka Tuohela * fi.po: Bulk change to some Finnish translations. 2005-07-09 Chao-Hsiung Liao * zh_TW.po: Fixed Traditional Chinese translation. 2005-07-08 Chao-Hsiung Liao * zh_TW.po: Added Traditional Chinese translation. * LINGUAS: Added "zh_TW" 2005-04-01 Steve Murphy * LINGUAS: Added "rw" to list of translations. 2005-04-01 Steve Murphy * rw.po: Added Kinyarwanda translation. 2005-03-16 Adam Weinberger * en_CA.po: Updated Canadian English translation. 2005-02-15 Christophe Merlet * LINGUAS: Updated. * fr.po: Updated French Translation from David Soulayrol . 2005-02-14 Jordi Mallach * ca.po: Updated Catalan translation by Xavi Ivars . 2005-02-07 Jordi Mallach * ca.po: Added Catalan translation by Xavi Ivars . * LINGUAS: Added "ca" (Catalan). 2005-01-28 Alexander Shopov * bg.po: Updated Bulgarian translation by Iassen Pramatarov 2005-01-11 Laszlo Dvornik * hu.po: Hungarian translation added by Gabor Kelemen. 2004-11-29 Funda Wang * zh_CN.po: Added Simplified Chinese translation. 2004-11-11 Benoît Dejean * fr.po: Updated French Translation. 2004-11-11 Benoît Dejean * LINGUAS: * fr.po: Added French Translation. 2004-10-05 Amanpreet Singh Alam * pa.po: Punjabi Translation is added 2004-09-26 Artur Flinta * pl.po: Updated Polish translation by GNOME PL Team. 2004-09-26 Artur Flinta * pl.po: Updated Polish translation by GNOME PL Team. 2004-09-25 Maxim Dziumanenko * uk.po: Added Ukrainian translation. 2004-09-22 Artur Flinta * pl.po: Updated Polish translation by GNOME PL Team. 2004-09-13 Jayaradha * ta.po: Added Tamil Tranlation. 2004-09-08 Ankit Patel * gu.po: Added Gujarati Tranlation. 2004-09-06 Danilo Šegan * LINGUAS: Added "sr" and "sr@Latn". * sr.po, sr@Latn.po: Added Serbian translation. 2004-09-05 Ilkka Tuohela * fi.po: Added Finnish tranlation. 2004-09-03 Laurent Dhima * sq.po: Added Albanian translation. 2004-08-29 Takeshi AIHANA * ja.po: Updated Japanese translation by Satoru SATOH . 2004-08-29 Vincent van Adrighem * nl.po: Translation updated by Tino Meinen. 2004-08-09 Duarte Loreto * pt.po: Updated Portuguese translation. 2004-08-02 Adam Weinberger * en_CA.po: Updated Canadian English translation. 2004-07-31 David Lodge * en_GB.po: Updated British translation. 2004-07-31 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2004-07-18 Francisco Javier F. Serrador * es.po: Updated Spanish translation. 2004-07-16 Gustavo Maciel Dias Vieira * pt_BR.po: Updated Brazilian Portuguese translation done by Raphael Higino . 2004-07-15 Miloslav Trmac * cs.po: Updated Czech translation. 2004-07-15 Vincent van Adrighem * nl.po: Translation updated by Tino Meinen. 2004-07-14 Miloslav Trmac * cs.po: Updated Czech translation. 2004-07-14 Daniel Elstner * de.po: Get rid of unused string. * en.po: ditto. 2004-07-14 Daniel Elstner * de.po: Update. * en.po: Update. 2004-07-13 Daniel Elstner * de.po: Translate new strings. * en.po: ditto. 2004-07-11 Francisco Javier F. Serrador * es.po: Added Spanish translation. 2004-07-11 Takeshi AIHANA * ja.po: Updated Japanese translation. Thanks for the fixing bellow :) 2004-07-08 Daniel Elstner * ja.po: Fix serious % vs. %s typo. * nl.po: ditto. * *.po: Regenerate, forced by make dist. I know I probably shouldn't commit this but I really want CVS to be in sync with the distributed tarball. Sorry. 2004-07-06 Vincent van Adrighem * nl.po: Translation updated by Tino Meinen. 2004-07-01 Miloslav Trmac * cs.po: Updated Czech translation. 2004-06-29 Daniel Elstner * Makevars: Temporarily remove this file, until dobey realizes that he's neither infallible nor the God of Perl. (#144725) 2004-06-29 Daniel Elstner * de.po: Translate new strings. * en.po: ditto. 2004-06-18 Daniel Elstner * it.po: New translation, contributed by Alberto Paro . * LINGUAS: Add it. 2004-06-12 Takeshi AIHANA * LINGUAS: Added ja. * ja.po: Added Japanese translation. 2004-06-10 Daniel Elstner * pt_BR.po ("translator-credits"): Replace literal translation with "João Paulo Gomes Vanzuita " who contributed this file. 2004-06-10 Gustavo Noronha Silva * LINGUAS: added pt_BR * pt_BR.po: added translation, by Joao Paulo Gomes Vanzuita 2004-06-09 Daniel Elstner * de.po: Update to pull in the qt-format comments. * en.po: ditto. 2004-06-03 Gareth Owen * en_GB.po: Updated British English translation 2004-05-31 Daniel Elstner * LINGUAS: Add nl. 2004-05-31 Vincent van Adrighem * nl.po: Translation added by Tino Meinen. 2004-05-39 Adam Weinberger * en_CA.po: Updated Canadian English translation. 2004-05-30 Daniel Elstner * de.po: Remove now unused strings. * en.po: ditto. 2004-05-29 Miloslav Trmac * cs.po: Updated Czech translation. 2004-05-28 Daniel Elstner * de.po: Translate new string. * en.po: ditto. 2004-05-24 Adam Weinberger * LINGUAS: Added en_CA to the list * en_CA.po: Added Canadian English translation. 2004-05-22 Daniel Elstner * de.po: Oops, the closing quote in German is U+201C not U+201D. 2004-05-20 Miloslav Trmac * cs.po: Updated Czech translation. 2004-05-19 Gareth Owen * en_GB.po: Added British English translation * LINGUAS: Added en_GB to the list 2004-05-19 Daniel Elstner * *.po: Synchronize with source tree. * de.po: Update translation and add credits. * en.po: ditto. 2004-05-19 Miloslav Trmac * cs.po: Updated Czech translation. 2004-05-18 Miloslav Trmac * cs.po, LINGUAS: Added Czech translation. 2004-05-18 Daniel Elstner * *.po: Synchronize with source code. 2004-05-17 Duarte Loreto * pt.po: Added Portuguese translation. * LINGUAS: Added Portuguese (pt). 2004-05-17 Christian Rose * sv.po: Added an incomplete Swedish translation. * LINGUAS: Added "sv". * Rules-quot, boldquot.sed, en@boldquot.header, en@quot.header, insert-header.sin, quot.sed, remove-potcdate.sin: Removed this cruft. * .cvsignore: Added more appropriate contents. 2004-05-17 Daniel Elstner * de.po: Translate new desktop file strings. * en.po: ditto. 2004-05-17 Daniel Elstner * de.po (ui/prefdialog.glade.h:16): Fix translation. 2004-05-17 Daniel Elstner * Makefile.in.in: Remove file from the repository because autogen.sh now executes glib-gettextize. * POTFILES.in: Add regexxer.desktop.in and regexxer.schemas.in in order to make intltool merge translatable messages from these files into regexxer.pot. * de.po: Translate the new strings merged by intltool. * en.po: ditto. 2004-05-17 Daniel Elstner * *.po: Line number changes. 2004-05-16 Daniel Elstner * *.po: Update due to line number changes. 2004-05-14 Daniel Elstner * *.po: Synchronize message IDs with source code. 2004-05-14 Daniel Elstner * de.po ("Find fi_les"): Translate new string. * en.po: ditto. 2004-05-12 Daniel Elstner * *.po: Update due to line number changes. 2004-05-10 Daniel Elstner * POTFILES.in: Add ui/mainwindow.glade, remove src/controller.cc. * de.po: Update. * en.po: Update. 2004-05-10 Daniel Elstner * POTFILES.in: Add ui/aboutdialog.glade, remove src/aboutdialog.cc. * de.po: Update. * en.po: Update. 2004-05-10 Daniel Elstner * POTFILES.in: Add ui/prefdialog.glade. * de.po: Update. * en.po: Update. 2004-05-08 Daniel Elstner * de.po ("regexxer icon"): Fix translation. 2004-05-08 Daniel Elstner * *.po: Remove the disambiguing "...|" from all message keys, because sgettext() is no longer used. 2004-05-07 Daniel Elstner * en.po: Replace U+0027 APOSTROPHE with U+2019, which is the preferred code point for apostrophe. 2004-05-07 Daniel Elstner * de.po: Fix translation of "About" menu item. 2004-05-06 Daniel Elstner * de.po ("LeftPane|Pattern:"): Improve the translation's clarity. 2004-05-05 Daniel Elstner * remove-potcdate.sed: Remove file from CVS, as it was added by mistake. Apparently make clean deletes it -- I have know idea why gettextize installed this file. 2004-05-05 Daniel Elstner * de.po: Translate the newly added compose() format strings. * en.po: ditto. 2004-05-05 Daniel Elstner * de.po ("Find all matches..."): Fix English artifact in the translation, yet again. 2004-05-05 Daniel Elstner * de.po ("Do case insensitive matching"): Fix English artifact in the translation. 2004-05-05 Daniel Elstner * de.po ("Fallback _encoding:"): Ooops, forgot the hotkey in the translated string. 2004-05-05 Daniel Elstner * en.po: New translation file for plain English with some special Unicode goodies. * de.po: Update. * LINGUAS: Add en and remove en@quot, because the auto-generation of the latter doesn't really suit our purpose. For instance I'd like to seep NO-BREAK SPACE and such in the English UI too. * POTFILES.in: Add all of the recently gettextized source files. 2004-05-05 gettextize * Makefile.in.in: New file, from gettext-0.14.1. * boldquot.sed: New file, from gettext-0.14.1. * en@boldquot.header: New file, from gettext-0.14.1. * en@quot.header: New file, from gettext-0.14.1. * insert-header.sin: New file, from gettext-0.14.1. * quot.sed: New file, from gettext-0.14.1. * remove-potcdate.sin: New file, from gettext-0.14.1. * Rules-quot: New file, from gettext-0.14.1. regexxer-0.9/po/Makefile.in.in0000644000175000017500000001466210566140564013244 00000000000000# Makefile for program source directory in GNU NLS utilities package. # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper # # This file file be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # Please note that the actual code is *not* freely available. # # - Modified by Owen Taylor to use GETTEXT_PACKAGE # instead of PACKAGE and to look for po2tbl in ./ not in intl/ # # - Modified by jacob berkman to install # Makefile.in.in and po2tbl.sed.in for use with glib-gettextize # # - Modified by Rodney Dawes for use with intltool # # We have the following line for use by intltoolize: # INTLTOOL_MAKEFILE GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = /bin/sh srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = .. VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ datarootdir = @datarootdir@ libdir = @libdir@ DATADIRNAME = @DATADIRNAME@ itlocaledir = $(prefix)/$(DATADIRNAME)/locale subdir = po install_sh = @install_sh@ # Automake >= 1.8 provides @mkdir_p@. # Until it can be supposed, use the safe fallback: mkdir_p = $(install_sh) -d INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot ALL_LINGUAS = @ALL_LINGUAS@ PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; fi) POFILES=$(shell if test -n "$(PO_LINGUAS)"; then LINGUAS="$(PO_LINGUAS)"; else LINGUAS="$(ALL_LINGUAS)"; fi; for lang in $$LINGUAS; do printf "$$lang.po "; done) DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(POFILES) EXTRA_DISTFILES = POTFILES.skip Makevars LINGUAS POTFILES = \ #This Gets Replace for some reason CATALOGS=$(shell if test -n "$(PO_LINGUAS)"; then LINGUAS="$(PO_LINGUAS)"; else LINGUAS="$(ALL_LINGUAS)"; fi; for lang in $$LINGUAS; do printf "$$lang.gmo "; done) .SUFFIXES: .SUFFIXES: .po .pox .gmo .mo .msg .cat .po.pox: $(MAKE) $(GETTEXT_PACKAGE).pot $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox .po.mo: $(MSGFMT) -o $@ $< .po.gmo: file=`echo $* | sed 's,.*/,,'`.gmo \ && rm -f $$file && $(GMSGFMT) -o $$file $< .po.cat: sed -f ../intl/po2msg.sed < $< > $*.msg \ && rm -f $@ && gencat $@ $*.msg all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: $(GETTEXT_PACKAGE).pot: $(POTFILES) $(GENPOT) install: install-data install-data: install-data-@USE_NLS@ install-data-no: all install-data-yes: all $(mkdir_p) $(DESTDIR)$(itlocaledir) if test -n "$(PO_LINGUAS)"; then \ linguas="$(PO_LINGUAS)"; \ else \ linguas="$(ALL_LINGUAS)"; \ fi; \ for lang in $$linguas; do \ dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $$dir; \ if test -r $$lang.gmo; then \ $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \ else \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \ echo "installing $(srcdir)/$$lang.gmo as" \ "$$dir/$(GETTEXT_PACKAGE).mo"; \ fi; \ if test -r $$lang.gmo.m; then \ $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ if test -r $(srcdir)/$$lang.gmo.m ; then \ $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \ $$dir/$(GETTEXT_PACKAGE).mo.m; \ echo "installing $(srcdir)/$$lang.gmo.m as" \ "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ else \ true; \ fi; \ fi; \ done # Empty stubs to satisfy archaic automake needs dvi info tags TAGS ID: # Define this as empty until I found a useful application. installcheck: uninstall: if test -n "$(PO_LINGUAS)"; then \ linguas="$(PO_LINGUAS)"; \ else \ linguas="$(ALL_LINGUAS)"; \ fi; \ for lang in $$linguas; do \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ done check: all $(GETTEXT_PACKAGE).pot mostlyclean: rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp rm -f .intltool-merge-cache clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES stamp-it rm -f *.mo *.msg *.cat *.cat.m *.gmo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f Makefile.in.in distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(DISTFILES) dists="$(DISTFILES)"; \ extra_dists="$(EXTRA_DISTFILES)"; \ for file in $$extra_dists; do \ test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \ done; \ for file in $$dists; do \ test -f $$file || file="$(srcdir)/$$file"; \ ln $$file $(distdir) 2> /dev/null \ || cp -p $$file $(distdir); \ done update-po: Makefile $(MAKE) $(GETTEXT_PACKAGE).pot tmpdir=`pwd`; \ if test -n "$(PO_LINGUAS)"; then \ linguas="$(PO_LINGUAS)"; \ else \ linguas="$(ALL_LINGUAS)"; \ fi; \ for lang in $$linguas; do \ echo "$$lang:"; \ result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \ if $$result; then \ if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.gmo failed!"; \ rm -f $$tmpdir/$$lang.new.po; \ fi; \ done Makefile POTFILES: stamp-it @if test ! -f $@; then \ rm -f stamp-it; \ $(MAKE) stamp-it; \ fi stamp-it: Makefile.in.in ../config.status POTFILES.in cd .. \ && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \ $(SHELL) ./config.status # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: regexxer-0.9/po/POTFILES.in0000644000175000017500000000033510550464564012341 00000000000000[encoding: UTF-8] ui/regexxer.desktop.in ui/regexxer.schemas.in src/filebuffer.cc src/filetree.cc src/main.cc src/mainwindow.cc src/pcreshell.cc src/prefdialog.cc src/statusline.cc ui/mainwindow.glade ui/prefdialog.glade regexxer-0.9/po/ar.po0000644000175000017500000002765110566140447011536 00000000000000# Arabic translations for PACKAGE package. # Copyright (C) 2006 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Automatically generated, 2006. # msgid "" msgstr "" "Project-Id-Version: regexxer\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2006-11-17 22:46+0100\n" "Last-Translator: Djihed Afifi \n" "Language-Team: Arabic \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n >= " "3 && n <= 10 ? 3 : n >= 11 && n <= 99 ? 4 : 5;\n" "X-Poedit-Language: Arabic\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "" #: ../ui/regexxer.desktop.in.h:2 #, fuzzy msgid "regexxer Search Tool" msgstr "أداة تقرير خلال" #: ../ui/regexxer.schemas.in.h:1 #, fuzzy msgid "Current-match color" msgstr "لون التظليل للنتائج الحالية" #: ../ui/regexxer.schemas.in.h:2 #, fuzzy msgid "Fallback encoding" msgstr "التشفير الإفتراضي" #: ../ui/regexxer.schemas.in.h:3 #, fuzzy msgid "Match color" msgstr "إضبط الألوان" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" #: ../ui/regexxer.schemas.in.h:5 #, fuzzy msgid "Text view font" msgstr "خطّ النّصّ" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "" #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "" #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" #: ../ui/regexxer.schemas.in.h:10 #, fuzzy msgid "Toolbar style" msgstr "شكل أزرار عمود الأدوات" #: ../src/filebuffer.cc:198 #, fuzzy msgid "Can’t read file:" msgstr "لا يمكن حفظ الملف: %s\n" #: ../src/filetree.cc:80 #, fuzzy msgid "File" msgstr "الملف" #: ../src/filetree.cc:99 msgid "#" msgstr "" #: ../src/filetree.cc:530 #, fuzzy, qt-format msgid "Failed to save file “%1”: %2" msgstr "حفظ صورة شاشة في الم_لف:" #: ../src/filetree.cc:946 #, fuzzy, qt-format msgid "“%1” seems to be a binary file." msgstr "لا يمكن نقل الملف \"%s\" إلى سلة المهملات." #: ../src/main.cc:77 #, fuzzy msgid "Save _all" msgstr "_حفظ الكل" #: ../src/main.cc:134 #, fuzzy msgid "Find files matching PATTERN" msgstr "اسم النموذج للملفات" #: ../src/main.cc:134 #, fuzzy msgid "PATTERN" msgstr "ال_نمط:" #: ../src/main.cc:136 #, fuzzy msgid "Do not recurse into subdirectories" msgstr "لا تشعب إلى الخلفية" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 #, fuzzy msgid "Also find hidden files" msgstr "إظهار الملفّات و الدلائل المخفية" #: ../src/main.cc:140 #, fuzzy msgid "Find text matching REGEX" msgstr "لا يمكن العثور على النص التالي!" #: ../src/main.cc:140 #, fuzzy msgid "REGEX" msgstr "مطابقة التّعبير النّظامي" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "" #: ../src/main.cc:146 #, fuzzy msgid "Replace matches with STRING" msgstr "استبدال مدير النوافذ ب متستي" #: ../src/main.cc:146 #, fuzzy msgid "STRING" msgstr "سلسلة" #: ../src/main.cc:148 #, fuzzy msgid "Print match location to standard output" msgstr "كتابة قيمة مفتاح في لإخراج القياسي." #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" #: ../src/mainwindow.cc:455 #, fuzzy msgid "The file search pattern is invalid." msgstr "اختر خيار البحث \"Contains the text\"" #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "" #: ../src/mainwindow.cc:854 #, fuzzy msgid "translator-credits" msgstr "Yousef Raffah يوسف رفه (yousef@raffah.com)" #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" #: ../src/pcreshell.cc:89 #, fuzzy, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "خطأ عند تجميع التعبير النظامي \"%s\"." #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" #: ../src/prefdialog.cc:249 #, fuzzy, qt-format msgid "“%1” is not a valid encoding." msgstr "ليس %s موقعا سليما." #: ../src/statusline.cc:263 #, fuzzy msgid "Stop" msgstr "توقّف" #: ../src/statusline.cc:270 #, fuzzy msgid "File:" msgstr "الملف" #: ../src/statusline.cc:273 #, fuzzy msgid "Match:" msgstr "مطابقة" #: ../src/statusline.cc:284 #, fuzzy msgid "Cancels the running search" msgstr "خطأ أثناء تنفيذ أمر البحث." #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "" #: ../ui/mainwindow.glade.h:4 #, fuzzy msgid "Backward" msgstr "لل_خلف" #: ../ui/mainwindow.glade.h:6 #, fuzzy msgid "File backward" msgstr "بحث إلى ال_خلف" #: ../ui/mainwindow.glade.h:7 #, fuzzy msgid "File forward" msgstr "حوّل المكالمات" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "" #: ../ui/mainwindow.glade.h:9 #, fuzzy msgid "Find all matches of the regular expression" msgstr "اختر خيار البحث \"Contains the text\"" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "" #: ../ui/mainwindow.glade.h:11 #, fuzzy msgid "Find fi_les" msgstr "ايكي ليه بان" #: ../ui/mainwindow.glade.h:12 #, fuzzy msgid "Fol_der:" msgstr "_دلائل" #: ../ui/mainwindow.glade.h:13 #, fuzzy msgid "Forward" msgstr "تمرير" #: ../ui/mainwindow.glade.h:14 #, fuzzy msgid "Go to next match" msgstr "إذهب إلى الصفحة التالية" #: ../ui/mainwindow.glade.h:15 #, fuzzy msgid "Go to previous match" msgstr "إذهب إلى الصفحة السابقة" #: ../ui/mainwindow.glade.h:16 #, fuzzy msgid "Go to the next matching file" msgstr "الذهابل إلى %s في الملف %s" #: ../ui/mainwindow.glade.h:17 #, fuzzy msgid "Go to the previous matching file" msgstr "الذهابل إلى %s في الملف %s" #: ../ui/mainwindow.glade.h:18 #, fuzzy msgid "Pattern:" msgstr "ال_نمط:" #: ../ui/mainwindow.glade.h:19 #, fuzzy msgid "Preview" msgstr "لمحة" #: ../ui/mainwindow.glade.h:20 #, fuzzy msgid "Preview of the substitution" msgstr "استعراض الفيديو" #: ../ui/mainwindow.glade.h:21 #, fuzzy msgid "Recurse into subdirectories" msgstr "ال_صق إلى مجلد" #: ../ui/mainwindow.glade.h:22 #, fuzzy msgid "Replace _current" msgstr "تعويض المستند الحالي" #: ../ui/mainwindow.glade.h:23 #, fuzzy msgid "Replace all matches in all files" msgstr "عدّد كل الملفّات في المجلّد" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "" #: ../ui/mainwindow.glade.h:25 #, fuzzy msgid "Replace current match" msgstr "تعويض المستند الحالي" #: ../ui/mainwindow.glade.h:26 #, fuzzy msgid "Replace in _all files" msgstr "عدّد كل الملفّات في المجلّد" #: ../ui/mainwindow.glade.h:27 #, fuzzy msgid "Replace in _this file" msgstr "بيانات زائدة في الملف" #: ../ui/mainwindow.glade.h:28 #, fuzzy msgid "Replace:" msgstr "استبدال" #: ../ui/mainwindow.glade.h:29 #, fuzzy msgid "Search:" msgstr "ابحث:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" #: ../ui/mainwindow.glade.h:31 #, fuzzy msgid "_All files" msgstr "_كل الملفات" #: ../ui/mainwindow.glade.h:32 #, fuzzy msgid "_Edit" msgstr "_تحرير" #: ../ui/mainwindow.glade.h:33 #, fuzzy msgid "_File" msgstr "_ملف" #: ../ui/mainwindow.glade.h:34 #, fuzzy msgid "_Help" msgstr "م_ساعدة" #: ../ui/mainwindow.glade.h:35 #, fuzzy msgid "_Match" msgstr "مطابقة" #: ../ui/mainwindow.glade.h:36 #, fuzzy msgid "_Next file" msgstr "إنتقاء ملف" #: ../ui/mainwindow.glade.h:37 #, fuzzy msgid "_Previous file" msgstr "إنتقاء ملف" #: ../ui/mainwindow.glade.h:38 #, fuzzy msgid "_Replace" msgstr "است_بدال" #: ../ui/mainwindow.glade.h:39 #, fuzzy msgid "_This file" msgstr "تنزيل الملف؟" #: ../ui/mainwindow.glade.h:40 #, fuzzy msgid "hidden" msgstr "إبدأ مخفياً" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "" #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "" #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "" #: ../ui/prefdialog.glade.h:4 #, fuzzy msgid "C_urrent match color:" msgstr "لون التظليل للنتائج الحالية" #: ../ui/prefdialog.glade.h:5 #, fuzzy msgid "Fallback _encoding:" msgstr "التشفير الإفتراضي" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" #: ../ui/prefdialog.glade.h:10 #, fuzzy msgid "Preferences" msgstr "تفضيلات" #: ../ui/prefdialog.glade.h:11 #, fuzzy msgid "The encoding specified by the current locale" msgstr "استخدام التشفير المحدد من طرف المستند" #: ../ui/prefdialog.glade.h:12 #, fuzzy msgid "Tool_bar style:" msgstr "بدون عمود الأدوات" #: ../ui/prefdialog.glade.h:13 #, fuzzy msgid "UTF-8" msgstr "يو تي أف-8:" #: ../ui/prefdialog.glade.h:14 #, fuzzy msgid "_File access" msgstr "النفاذ للملف:" #: ../ui/prefdialog.glade.h:15 #, fuzzy msgid "_Look’n’feel" msgstr "مظهر ريترو" #: ../ui/prefdialog.glade.h:16 #, fuzzy msgid "_Match color:" msgstr "إضبط الألوان" #: ../ui/prefdialog.glade.h:17 #, fuzzy msgid "_Text view font:" msgstr "خطّ النّصّ" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" #, fuzzy #~ msgid "_About" #~ msgstr "_حول" #, fuzzy #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "افتح مجلد %s" #, fuzzy #~ msgid "Select a folder" #~ msgstr "انتقاء مجلّد" #, fuzzy #~ msgid "About regexxer" #~ msgstr "_حول الملحق" #, fuzzy #~ msgid "The application icon of regexxer" #~ msgstr "لم يعثر على الأيقونة" #, fuzzy #~ msgid "regexxer icon" #~ msgstr "حجم الأيقونة" #, fuzzy #~ msgid "translated by" #~ msgstr "المترجمون:" #, fuzzy #~ msgid "written by" #~ msgstr "المطورون" #, fuzzy #~ msgid "The directory to be searched" #~ msgstr "الدليل الذي سيتم البحث فيه عن أيقونات." regexxer-0.9/po/bg.po0000644000175000017500000003474310566140447011524 00000000000000# Bulgarian translation of regexxer. # Copyright (C) 2005, 2007 Free Software Foundation, Inc. # This file is distributed under the same license as the regexxer package. # Yasen Pramatarov , 2005. # Yavor Doganov , 2007. # msgid "" msgstr "" "Project-Id-Version: regexxer trunk\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2007-01-12 19:12+0200\n" "Last-Translator: Yavor Doganov \n" "Language-Team: Bulgarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Търсене и замяна с регулярни изрази" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "Инструмент за търсене (regexxer)" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Цвят на текущото съвпадение" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Запасна таблица" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Цвят на съвпаденията" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Име на кодовата таблица, която да се използва, ако файлът не може да се " "прочете нито с Уникод, нито с кодовата таблица на текущия локал. Използвайте " "„iconv --list“ за пълен списък с възможните стойности." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Шрифт за редактора" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "Фонов цвят за отбелязване на съвпаденията с търсения израз." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "Фонов цвят за отбелязване на текущо избраното съвпадение с търсения израз." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "Шрифтът, използван в текстовия редактор." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "Видът на лентата с инструменти на програмата. Възможните стойности са " "„icons“, „text“, „both“ и „both-horiz“." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Вид на лентата с инструменти" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Неуспех при прочитането на файла:" #: ../src/filetree.cc:80 msgid "File" msgstr "Файл" #: ../src/filetree.cc:99 msgid "#" msgstr "бр." #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Грешка при запазване на файла „%1“: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "„%1“ изглежда е двоичен файл." #: ../src/main.cc:77 msgid "Save _all" msgstr "Запазване на _всички" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Намиране на файлове, отговарящи на ШАБЛОН" #: ../src/main.cc:134 msgid "PATTERN" msgstr "ШАБЛОН" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Без включване на подпапките" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Търсене и в скритите файлове" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Намиране на текст, отговарящ на РЕГУЛЯРЕНИЗРАЗ" #: ../src/main.cc:140 msgid "REGEX" msgstr "РЕГУЛЯРЕНИЗРАЗ" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Намиране само на първото съвпадение на ред" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Съвпадение без чувствителност към регистъра" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Замяна на съвпаденията с НИЗ" #: ../src/main.cc:146 msgid "STRING" msgstr "НИЗ" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Извеждане на съвпадащи местоположения на стандартния изход" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Без автоматично започване на търсенето" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "[ПАПКА]" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Някои файлове още не са запазени.\n" "Да бъде ли все пак спряна програмата?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Някои файлове още не са запазени.\n" "Да се продължи ли въпреки това?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "Шаблонът за търсене на файл не е правилен." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "Грешки при търсенето:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "Грешки при запазването:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "" "Ясен Праматаров \n" "\n" "Проектът за превод на GNOME има нужда от подкрепа.\n" "Научете повече за нас на http://gnome.cult.bg\n" "Докладвайте за грешки на http://gnome.cult.bg/bugs" #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" "Използването на последователността \\C за откриване на отделен байт не се " "поддържа." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Грешка в регулярния израз около „%1“ (индекс %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Грешка в регулярния израз:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "Достигнато е вътрешното ограничение за рекурсивно търсене на системата за " "регулярни изрази." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "„%1“ не е правилна кодова таблица." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Прекъсване" #: ../src/statusline.cc:270 msgid "File:" msgstr "Файлове:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Съвпадения:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Отмяна на действащото търсене" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Шаблон за име на файл, както се използва в системната обвивка. Символни " "класове [ab] и изрази със скоби в стила на csh {a,b} са сред поддържаните " "изрази." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Регулярен израз със синтаксис на Пърл" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Предишно" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Файл назад" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Файл напред" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "Намиране на всички файлове, отговарящи на шаблона" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Намиране на всички съвпадения на регулярния израз" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Намиране на всички възможни съвпадения на ред" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Намиране на _файлове" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "_Папка:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Следващо" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Преход към следващото съвпадение" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Преход към предишното съвпадение" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Преход към следващия съвпадащ файл" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Преход към предишния съвпадащ файл" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Шаблон:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Преглед" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Преглед на замяната" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Включване и на подпапките" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Замяна на _текущото" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Замяна на всички съвпадения във всички файлове" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Замяна на всички съвпадения в текущия файл" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Замяна на текущото съвпадение" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Замяна във _всички файлове" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Замяна в т_ози файл" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Замяна с:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Търсене на:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "Новият низ за замяна. Както и в Пърл, можете да обработвате части от " "съвпадението с използване на $1, $2, и т.н. или дори $+, $&, $` и $'. " "Операторите \\l, \\u, \\L, \\U и \\E също се поддържат." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_Всички файлове" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_Редактиране" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Файл" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "_Помощ" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Съвпадение" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "_Следващ файл" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "_Предишен файл" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Замяна" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "Т_ози файл" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "и скрити" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "в подпапките" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "Цвят на _текущото съвпадение:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "_Запасна таблица:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Само икони\n" "Само текст\n" "Икони и текст\n" "Текст до иконите" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Настройки" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "Кодовата таблица на текущия локал" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "Вид на _лентата с инструменти:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "_Файлов достъп" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Изглед" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "_Цвят на съвпаденията:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "_Шрифт " #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "Програмата опитва да прочете файла със следните кодови таблици, преди да се " "откаже с грешка:" regexxer-0.9/po/ca.po0000644000175000017500000003173210566140447011512 00000000000000# Traducció de Regexxer. # Copyright © 2004, 2005 Free Software Foundation # This file is distributed under the same license as the Regexxer package. # Jordi Ivars , 2004, 2005. msgid "" msgstr "" "Project-Id-Version: regexxer\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2005-01-28 12:47+0100\n" "Last-Translator: Jordi Ivars \n" "Language-Team: Catalan \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Cerqueu i reemplaceu utilitzant expressions regulars" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "Eina de cerca de regexxer" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Color de la coincidència actual" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Codificació alternativa" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Color de la coincidència" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "El nom de la codificació dels caràcters a utilitzar si el fitxer no és " "llegible ambUTF-8 o amb la codificació especificada en l'actual " "localització. Proveu amb“iconv --list” per a un llistat complet dels " "possibles valors." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Tipus de lletra" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "" "El color de fons utilitzat per a ressaltar les coincidències en l'expressió " "de cerca." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "El color de fons utilitzat per ressaltar l'actual coincidència seleccionada " "de la cerca de l'expressió." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "Tipus de lletra utilitzat en l'editor de fitxers." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "L'estil de la barra d'eines. Els possibles valors són “icons”, “text”, " "“both”,i “both-horiz”." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Estil de la barra d'eines" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "No s'ha pogut llegir el fitxer:" #: ../src/filetree.cc:80 msgid "File" msgstr "Fitxer" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "S'ha produït un error en desar el fitxer “%1”: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” sembla que es un fitxer binari." #: ../src/main.cc:77 msgid "Save _all" msgstr "Des_a-ho tot" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Cerca fitxers en coincidència amb el PATRÓ" #: ../src/main.cc:134 msgid "PATTERN" msgstr "PATRÓ" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "No incloure els subdirectoris" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Cerca també els fitxers ocults" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Cerca les coincidències amb EXPREG en un text" #: ../src/main.cc:140 msgid "REGEX" msgstr "EXPREG" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Cerca solament la primera coincidència en una línia" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "No diferènciïs majúscules i minúscules en les coincidències" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Reemplaça coincidències amb la CADENA" #: ../src/main.cc:146 msgid "STRING" msgstr "CADENA" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Imprimeix la ubicació de la coincidència per la sortida estàndard" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "No comencis la cerca automáticament" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Alguns fitxers no s'han desat encara.\n" "Voleu continuar?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Alguns fitxers encara no s'han desat.\n" "Voleu continuar?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "El patró de cerca de fitxers es incorrecte." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "S'han produït els següents errors durant la cerca:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "Han ocorregut els següents error en desar:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "Jordi Ivars " #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" "No està suportat fer servir la seqüència d'escapada \\C per fer coincidir un " "únic byte." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Hi ha un error en l'expressió regular a “%1” (índex %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Hi ha un error en l'expressió regular:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "S'ha arribat al limit de recursivitat i retrocés del motor de la expressió " "regular." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” no es una codificació vàlida." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Atura" #: ../src/statusline.cc:270 msgid "File:" msgstr "Fitxer:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Coincidència:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Cancel·la la cerca en marxa" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Un patró de nom de fitxer, com els emprats per l'intèrpret de comandes. Se " "suporten les classes de caràcters [ab] i les expressions al estil de csh {a," "b}." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Una expressió regular en sintaxi de Perl" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Endarrere" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Fitxer endarrere" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Fitxer endavant" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "Cerca tots els fitxers que coincideixen amb el patró del nom de fitxer" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Cerca totes les coincidències en una expressió regular" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Cerca totes les possibles coincidències en una línia" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Cerca f_itxers" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "_Carpeta:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Endavant" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Ves a la següent coincidència" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Ves a la coincidència prèvia" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Ves al pròxim fitxer coincident" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Ves a l'anterior fitxer coincident" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Patró:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Previsualitza" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Previsualitza les substitucions" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Inclou recursivament els subdirectoris" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Reemplaça l'a_ctual" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Reemplaça totes les coincidències en tots els fitxers" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Reemplaça totes les coincidències en el fitxer actual" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Reemplaça la coincidència actual" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Reemplaç_a en tots els fitxers" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Reemplaça en aques_t fitxer" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Reemplaça:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Cerca:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "La nova cadena a substituir. Es com en Perl, podeu fer referències a partsde " "la coincidència utilitzant $1, $2, etc. o $+, $&, $` i $'. Els operadors\\|, " "\\u, \\L, \\U i \\E també estan suportats." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_Tots els fitxers" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_Edita" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Fitxer" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "_Ajuda" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Coincidència" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "_Pròxim fitxer" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "F_itxer anterior" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Reemplaça" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "Aques_t fitxer" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "ocult" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "recursiu" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "Actual coincidència de color" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "Codificació alt_ernativa:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Només icones\n" "Només text\n" "Icones i text\n" "Els dos horitzontalment" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Preferències" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "La codificació especificada en la localització actual" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "Estil de la _barra d'eines:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "Accés al _fitxer" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Aspecte" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "_Coincideix color:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "_Tipus de lletra de la visualització de text:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "El regexxer prova de llegir un fitxer en les següents codificacions abans " "d'abandonar els intents:" #~ msgid "_About" #~ msgstr "Qu_ant a" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[OPCIÓ]... [CARPETA]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "Proveu “regexxer --help” per a més informació." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "El nom de la carpeta “%1” conté caràcters no representables en la " #~ "codificaciódel sistema de fitxers local." #~ msgid "Select a folder" #~ msgstr "Selecciona una carpeta" #~ msgid "About regexxer" #~ msgstr "Quant a regexxer" #~ msgid "The application icon of regexxer" #~ msgstr "La icona de l'aplicació regexxer" #~ msgid "regexxer icon" #~ msgstr "icona de regexxer" #~ msgid "translated by" #~ msgstr "traduït per" #~ msgid "written by" #~ msgstr "escrit per" #~ msgid "The directory to be searched" #~ msgstr "El directori per cercar" regexxer-0.9/po/cs.po0000644000175000017500000003245310566140447011535 00000000000000# Czech translation of regexxer. # Copyright (C) 2004 regexxer'S COPYRIGHT HOLDER # Copyright (C) 2004 Miloslav Trmac # This file is distributed under the same license as the regexxer package. # Miloslav Trmac , 2004. # msgid "" msgstr "" "Project-Id-Version: regexxer VERSION\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2004-07-15 18:55+0200\n" "Last-Translator: Miloslav Trmac \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Hledat a nahradit pomocí regulárních výrazů" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "Nástroj pro hledání regexxer" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Barva aktuálního výskytu" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Náhradní kódování" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Barva výskytu" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Název kódování znaků, které používat, když soubor není čitelný ani v UTF-8 " "ani kódování určeném aktuálním locale. Pro úplný seznam možných hodnot " "zkuste “iconv --list”." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Písmo pro textový pohled" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "Barva pozadí používaná pro zvýraznění výskytů hledaného výrazu." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "Barva pozadí používaná pro zvýraznění momentálně vybraného výskytu hledaného " "výrazu." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "Písmo používané v editoru souborů." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "Styl lišty nástrojů aplikace. Možné hodnoty jsou “icons”, “text”, “both” a " "“both-horiz”." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Styl lišty nástrojů" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Nemohu číst soubor:" #: ../src/filetree.cc:80 msgid "File" msgstr "Soubor" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Nemohu uložit soubor “%1”: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” je zřejmě binární soubor." #: ../src/main.cc:77 msgid "Save _all" msgstr "Uložit _vše" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Hledat soubory odpovídající VZORKU" #: ../src/main.cc:134 msgid "PATTERN" msgstr "VZOREK" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Nevnořovat se do adresářů" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Hledat i skryté soubory" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Hledat text odpovídající REGEX" #: ../src/main.cc:140 msgid "REGEX" msgstr "REGEX" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Hledat jen první výskyt na řádku" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Nerozlišovat velikost písmen" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Nahradit výskyty ŘETĚZCEM" #: ../src/main.cc:146 msgid "STRING" msgstr "ŘETĚZEC" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Vypsat umístění výskytů na standardní výstup" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Nezačínat hledání automaticky" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Některé soubory dosud nebyly uloženy.\n" "Přesto skončit?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Některé soubory dosud nebyly uloženy.\n" "Přesto pokračovat?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "Vzor pro hledání souborů je neplatný." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "Při hledání došlo k následujícím chybám:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "Při ukládání došlo k následujícím chybám:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "Miloslav Trmač " #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" "Používání escape sekvence \\C pro hledání jednoho bajtu není podporováno." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Chyba v regulárním výrazu na “%1” (index %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Chyba v regulárním výrazu:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "Narazil jsem na limit rekurze a návratů v engine pro regulární výrazy." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” není platné kódování." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Zastavit" #: ../src/statusline.cc:270 msgid "File:" msgstr "Soubor:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Výskyt:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Zruší probíhající hledání" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Vzor názvů souborů jako v shellu. Třídy znaků [ab] a výrazy se složenými " "závorkami ve stylu csh {a,b} jsou podporovány." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Reguálrní výraz v syntaxi Perlu" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Zpět" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Soubor zpět" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Soubor vpřed" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "Hledat všechny soubory, které odpovídají vzoru názvu souboru" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Hledat všechny výskyty regulárního výrazu" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Hledat všechny možné výskyty na řádku" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Hledat _soubory" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "_Adresář:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Vpřed" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Jít na následující výskyt" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Jít na předchozí výskyt" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Jít na následující odpovídající soubor" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Jít na předchozí odpovídající soubor" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Vzorek:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Náhled" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Náhled nahrazení" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Vnořovat se do adresářů" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Nahradit _aktuální" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Nahradit všechny výskyty ve všech souborech" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Nahradit všechny výskyty v aktuálním souboru" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Nahradit aktuální výskyt" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Nahrazovat ve _všech souborech" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Nahrazovat v _tomto souboru" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Nahradit:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Hledat:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "Nový řetězec, kterým nahrazovat. Můžete se odkazovat na části nalezeného " "výskytu pomocí $1, $2 atd. nebo i $+, $&, $` a $', jako v Perlu. Operátory " "\\l, \\u, \\L, \\U a \\E jsou také podporovány." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_Všechny soubory" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_Upravit" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Soubor" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "_Nápověda" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Výskyt" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "_Následující soubor" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "_Předchozí soubor" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "Na_hradit" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "_Tento soubor" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "skryté" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "rekurzivně" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "Barva _aktuálního výskytu:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "Náhradní _kódování:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Jen ikony\n" "Jen text\n" "Ikony a text\n" "Obojí vedle sebe" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Nastavení" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "Kódování určené aktuálním locale" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "_Styl lišty nástrojů:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "_Přístup k souborům" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Vzhled a chování" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "_Barva výskytu:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "_Písmo textového pohledu:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "Než se regexxer vzdá, zkouší soubor načíst v následujících kódováních:" #~ msgid "_About" #~ msgstr "O _aplikaci" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[PŘEPÍNAČ]... [ADRESÁŘ]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "Pro více informací zkuste “regexxer --help”." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "Název adrsáře “%1” obsahuje znaky, které nelze reprezentovat v kódování " #~ "místního systému souborů." #~ msgid "Select a folder" #~ msgstr "Zvolte adresář" #~ msgid "About regexxer" #~ msgstr "O regexxeru" #~ msgid "The application icon of regexxer" #~ msgstr "Ikona aplikace regexxer" #~ msgid "regexxer icon" #~ msgstr "ikona regexxeru" #~ msgid "translated by" #~ msgstr "přeložili" #~ msgid "written by" #~ msgstr "napsali" #~ msgid "The directory to be searched" #~ msgstr "Adresář, ve kterém hledat" #~ msgid "Ignore case distinctions" #~ msgstr "Nerozlišovat velikost písmen" #~ msgid "" #~ "If enabled, the text direction of the file editor, preview area, and all " #~ "file-related entry boxes is always set to left-to-right no matter what " #~ "the locale's default direction is." #~ msgstr "" #~ "Je-li povoleno, je směr textu v editoru souborů, oblasti náhledu a všech " #~ "polích souvisejících se souborem vždy nastaven na zleva doprava bez " #~ "ohledu na implicitní směr locale." #~ msgid "Override text direction" #~ msgstr "Ignorovat směr textu" #~ msgid "_Ignore the text direction of the locale" #~ msgstr "_Ignorovat směr textu locale" #~ msgid "Color Selection" #~ msgstr "Výběr barev" regexxer-0.9/po/de.po0000644000175000017500000002771210566140447011522 00000000000000# German translations for regexxer package # German messages for regexxer. # Copyright (C) 2004 Free Software Foundation, Inc. # This file is distributed under the same license as the regexxer package. # Daniel Elstner , 2004. # msgid "" msgstr "" "Project-Id-Version: regexxer 0.8\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2004-05-05 11:34+0200\n" "Last-Translator: Daniel Elstner \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Suchen und Ersetzen mit regulären Ausdrücken" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "regexxer Suchwerkzeug" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Farbe des gewählten Treffers" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Rückfall-Zeichensatz" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Farbe eines Treffers" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Name des zu benutzenden Zeichensatzes wenn eine Datei weder in UTF-8 noch " "dem in der Sprachumgebung eingestellten Zeichensatzes gelesen werden kann. " "„iconv --list“ zeigt eine komplette Liste möglicher Werte an." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Schriftart in Dateiansicht" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "" "Die Hintergrundfarbe die für das Hervorheben von Treffern des Suchausdrucks " "verwendet wird." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "Die Hintergrundfarbe die für das Hervorheben des ausgewählten Treffers des " "Suchausdrucks verwendet wird." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "Die Schriftart die im Datei-Editor benutzt wird." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "Der Stil der Werkzeugleiste der Anwendung. Mögliche Werte sind „icons“, " "„text“, „both“ und „both-horiz“." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Stil der Werkzeugleiste" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Datei nicht lesbar:" #: ../src/filetree.cc:80 msgid "File" msgstr "Datei" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Fehler beim Speichern der Datei „%1“: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "„%1“ scheint eine Binärdatei zu sein." #: ../src/main.cc:77 msgid "Save _all" msgstr "_Alle speichern" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Suche Dateien die auf MUSTER passen" #: ../src/main.cc:134 msgid "PATTERN" msgstr "MUSTER" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Steige nicht in Unterverzeichnisse hinab" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Finde auch versteckte Dateien" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Suche Text der auf REGEX passt" #: ../src/main.cc:140 msgid "REGEX" msgstr "REGEX" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Finde nur den ersten Treffer in einer Zeile" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Ignoriere Groß-/Kleinschreibung beim Suchen" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Ersetze Treffer durch STRING" #: ../src/main.cc:146 msgid "STRING" msgstr "STRING" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Zeige Trefferposition auf Standardausgabe an" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Keine automatische Suche starten" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "[ORDNER]" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Einige Dateien wurden noch nicht gespeichert.\n" "Trotzdem beenden?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Einige Dateien wurden noch nicht gespeichert.\n" "Trotzdem fortsetzen?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "Das Dateinamen-Suchmuster ist ungültig." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "Die folgenden Fehler sind beim Suchen aufgetreten:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "Die folgenden Fehler sind beim Speichern aufgetreten:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "Daniel Elstner " #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" "Das Benutzen der \\C Escape-Sequenz um ein einzelnes Byte zu finden wird " "nicht unterstützt." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Fehler in regulärem Ausdruck bei „%1“ (Index %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Fehler in regulärem Ausdruck:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "Das Rekursions- und Rückreferenz-Limit der Reguläre-Ausdrücke-" "Implementierung wurde erreicht." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "„%1“ ist kein gültiger Zeichensatz." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Stopp" #: ../src/statusline.cc:270 msgid "File:" msgstr "Datei:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Treffer:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Bricht die laufende Suche ab" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Ein Dateinamen-Suchmuster wie es in der Kommandozeile benutzt wird. " "Zeichenklassen [ab] und Klammerausdrücke im csh-Stil {a,b} werden " "unterstützt." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Ein regulärer Ausdruck in Perl-Syntax" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Zurück" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Eine Datei zurück" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Eine Datei vorwärts" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "Finde alle Dateien auf die das Dateinamen-Suchmuster passt" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Finde alle Treffer für den regulären Ausdruck" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Finde alle möglichen Treffer innerhalb einer Zeile" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "_Finde Dateien" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "_Ordner:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Vorwärts" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Gehe zum nächsten Treffer" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Gehe zum vorherigen Treffer" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Gehe zur nächsten Datei mit Treffern" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Gehe zur vorherigen Datei mit Treffern" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Suchmuster:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Vorschau" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Vorschau des ersetzten Texts" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Steige in Unterverzeichnisse hinab" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "_Ersetze Auswahl" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Ersetze alle Treffer in allen Dateien" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Ersetze alle Treffer in der gewählten Datei" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Ersetze gewählten Treffer" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Ersetze in _allen Dateien" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Ersetze in _dieser Datei" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Ersetzen:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Suchen:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "Die neu einzusetzende Zeichenkette. Wie in Perl können Teile des Treffers " "mit $1, $2, etc. oder sogar $+, $&, $` und $' referenziert werden. Die " "Operatoren \\l, \\u, \\L, \\U und \\E werden auch unterstützt." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_Alle Dateien" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_Bearbeiten" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Datei" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "_Hilfe" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Treffer" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "_Nächste Datei" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "_Vorherige Datei" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Ersetzen" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "D_iese Datei" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "versteckt" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "rekursiv" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "Farbe des gewählten _Treffers:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "_Rückfall-Zeichensatz:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Nur Icons\n" "Nur Text\n" "Icons und Text\n" "Beides horizontal" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Einstellungen" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "Der in der Sprachumgebung eingestellte Zeichensatz" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "Stil der _Werkzeugleiste:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "_Dateizugriff" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Oberfläche" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "_Farbe eines Treffers:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "_Schriftart in Dateiansicht:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "regexxer versucht eine Datei in den folgenden Zeichensätzen zu lesen bevor " "ein Fehlschlag angezeigt wird:" regexxer-0.9/po/dz.po0000644000175000017500000004561010566140447011544 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: regexxer.head.pot\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2007-02-01 11:04+0530\n" "Last-Translator: sonam pelden \n" "Language-Team: Dzongkha \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "X-Poedit-Language: Dzongkha\n" "X-Poedit-Country: Bhutan\n" "X-Poedit-SourceCharset: UTF-8\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "དུས་རྒྱུན་གསལ་བརྗོད་ཚུ་ལག་ལེན་འཐབ་སྟེ་ འཚོལ་ཞིབ་འབད་ནི་དང་ཚབ་བཙུགས་ " #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "regexxer འཚོལ་ཞིབ་འབད་བའི་ལག་ཆས་" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "ད་ལྟོའི་-མཐུན་སྒྲིག་གི་ཚོས་གཞི་" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "ཨིན་ཀོ་ཌིང་འདི་གློ་བུར་རྒྱབ་ཐག་" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "མཐུན་པའི་ཚོས་གཞི་" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "ཡིག་སྣོད་འདི་ UTF-8 ཡང་ན་ ད་ལྟོའི་ལོ་ཀེལ་གྱིས་གསལ་བཀོད་འབད་ཡོད་པའི་ ཨང་རྟགས་གཞི་སྒྲིག་གི་ནང་ལྷག་" "མ་བཏུབ་པ་ཅིན་ ལག་ལེན་འཐབ་ནི་ཨིན་པའི་ཨིན་ཀོ་ཌིང་ཡིག་འབྲུའི་མིང་། སྲིད་པའི་གནས་གོང་ཚུ་གི་ མཇུག་" "བསྡུ་ཐོ་ཡིག་ཅིག་གི་དོན་ལུ་ “iconv --list” འབད་བརྩོལ་བསྐྱེད།" #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "ཚིག་ཡིག་མཐོང་སྣང་གི་ཡིག་གཟུགས་" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "" "འཚོལ་ཞིབ་གསལ་བརྗོད་ཀྱི་མཐུན་སྒྲིག་ཚུ་གཙོ་དམིགས་བཀོད་ནི་ལུ་ ལག་ལེན་འཐབ་དོ་ཡོད་པའི་རྒྱབ་གཞི་ཚོས་གཞི།" #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "འཚོལ་ཞིབ་གསལ་བརྗོད་ཀྱི་ད་ལྟོ་སེལ་འཐུ་འབད་དེ་ཡོད་པའི་མཐུན་སྒྲིག་འདི་ གཙོ་དམིགས་བཀོད་ནི་ལུ་ལག་ལེན་འཐབ་" "པའི་ རྒྱབ་གཞི་ཚོས་གཞི།" #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "ཡིག་སྣོད་ཞུན་དགཔ་ནང་ལག་ལེན་འཐབ་པའི་ཡིག་གཟུགས།" #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "གློག་རིམ་ལག་ཆས་ཀྱི་བཟོ་རྣམ། སྲིད་པའི་གནས་གོང་ཚུ་ “icons”, “text”, “both”, དང་ “both-" "horiz” ཚུ་ཨིན།" #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "ལག་ཆས་ཕྲ་རིང་གི་བཟོ་རྣམ་" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "ཡིག་སྣོད་ལྷག་མ་ཚུགས:" #: ../src/filetree.cc:80 msgid "File" msgstr "ཡིག་སྣོད་" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "ཡིག་སྣོད་ “%1” སྲུང་བཞག་འབད་མ་ཚུགས: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” འདི་ ཟུང་ལྡན་ཡིག་སྣོད་ཅིག་སྦེ་མཐོང་མས།" #: ../src/main.cc:77 msgid "Save _all" msgstr "ཆ་མཉམ་སྲུང་། (_a)" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "PATTERN མཐུན་པའི་ཡིག་སྣོད་ཚུ་འཚོལ་" #: ../src/main.cc:134 msgid "PATTERN" msgstr "PATTERN" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "ཡན་ལག་སྣོད་ཐོའི་ནང་ལུ་སླར་ལོག་མ་འབད་" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "གཞན་ཡང་སྦ་སྟེ་ཡོད་པའི་ཡིག་སྣོད་ཚུ་འཚོལ་" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "REGEX མཐུན་པའི་ཚིག་ཡིག་འཚོལ་" #: ../src/main.cc:140 msgid "REGEX" msgstr "REGEX" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "གྲལ་ཐིག་ཅིག་གི་ནང་ལུ་ མགོའི་མཐུན་པ་རྐྱངམ་ཅིག་འཚོལ་" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "གནད་དོན་ཉེན་ཁ་མེད་པའི་མཐུན་སྒྲིག་བཟོ་" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "STRING དང་ཅིག་ཁར་ མཐུན་སྒྲིག་ཚུ་ཚབ་བཙུགས་" #: ../src/main.cc:146 msgid "STRING" msgstr "STRING" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "ཚད་ལྡན་ཨའུཊི་པུཊི་ལུ་ མཐུན་པའི་གནས་ཁོངས་དཔར་བསྐྲུན་འབད་" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "འཚོལ་ཞིབ་འབད་ནི་འདི་ རང་བཞིན་གྱིས་སྦེ་འགོ་མ་བཙུགས་" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "[FOLDER]" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "ཡིག་སྣོད་ལ་ལོ་ཅིག་ད་ལྟོ་ཡང་སྲུང་མ་ཚུགས། \n" "ག་ལས་སྐོར་རུང་སྤང་བཞག་ག?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "ཡིག་སྣོད་ལ་ལོ་ཅིག་ད་ལྟོ་ཡང་སྲུང་མ་ཚུགས། \n" "ག་ལས་སྐོར་རུང་འཕྲོ་མཐུད་ག?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "ཡིག་སྣོད་འཚོལ་བའི་དཔེ་གཞི་འདི་ནུས་ཅན་མེད།" #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "འོག་གི་འཛོལ་བ་ཚུ་འཚོལ་ཞིབ་འབད་བའི་བསྒང་བྱུང་ཡོདཔ:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "སྲུང་བཞག་འབདཝ་ད་འོག་གི་འཛོལ་བ་ཚུ་བྱུང་ཡོདཔ:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "སྐད་བསྒྱུར་པའི་-ངོ་བསྟོད་ཚུ་" #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" "བཱའིཊི་རྐྱང་པ་ཅིག་མཐུན་སྒྲིག་འབད་ནི་ལུ་ \\C escape འབྱུང་རིམ་ལག་ལེན་འཐབ་མི་འདི་ རྒྱབ་སྐྱོར་མ་འབད་" "བས།" #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "“%1” (index %2) ལུ་དུས་རྒྱུན་གསལ་བརྗོད་ནང་འཛོལ་བ:\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "དུས་རྒྱུན་གསལ་བརྗོད་ནང་འཛོལ་བ:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "དུས་རྒྱུན་གསལ་བརྗོད་མ་འཕྲུལ་གྱི་སླར་ལོག་དང་ རྒྱབ་འཚོལ་ཚད་ལུ་ལྷོད་ཡོདཔ།" #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” འདི་ནུས་ཅན་ཡོད་པའི་ཨིན་ཀོ་ཌིང་མེན།" #: ../src/statusline.cc:263 msgid "Stop" msgstr "བཀག" #: ../src/statusline.cc:270 msgid "File:" msgstr "ཡིག་སྣོད:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "མཐུན་སྒྲིག:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "ལཱ་འབད་མི་འཚོལ་ཞིབ་འདི་ཆ་མེད་གཏངམ་ཨིན་" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "ཤལ་གྱིས་ལག་ལེན་འཐབ་ཡོདཔ་བཟུམ་མའི་ ཡིག་སྣོད་ཀྱི་དཔེ་གཞི། ཡིག་འབྲུའི་དབྱེ་རིགས་ [ab] དང་ སི་ཨེསི་ཨེཆ་" "བཟོ་རྣམ་གུག་ཤད་གསལ་བརྗོད་ {a,b} ཚུ་རྒྱབ་སྐྱོར་འབད་དེ་ཡོདཔ་ཨིན།" #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "པརཱལ་ཚིག་སྦྱོར་ནང་ དུས་རྒྱུན་གསལ་བརྗོད་ཅིག་" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "རྒྱབ་བསྐྱོད་" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "ཡིག་སྣོད་རྒྱབ་བསྐྱོད་" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "ཡིག་སྣོད་གདོང་བསྐྱོད་" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "ཡིག་སྣོད་མིང་གི་དཔེ་གཞི་མཐུན་མི་ ཡིག་སྣོད་ཚུ་ཆ་མཉམ་འཚོལ་" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "དུས་རྒྱུན་གསལ་བརྗོད་ཀྱི་ མཐུན་སྒྲིག་ཚུ་འཚོལ་" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "གྲལ་ཐིག་ཅིག་ནང་ སྲིད་པའི་མཐུན་སྒྲིག་ཚུ་འཚོལ་" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "ཡིག་སྣོད་ཚུ་འཚོལ། (_l)" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "སྣོད་འཛིན: (_d)" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "གདོང་བསྐྱོད་" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "ཤུལ་མའི་མཐུན་སྒྲིག་ནང་སོང་" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "ཧེ་མའི་མཐུན་སྒྲིག་ནང་སོང་" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "ཤུལ་མའི་མཐུན་སྒྲིག་གི་ཡིག་སྣོད་ལུ་སོང་" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "ཧེ་མའི་མཐུན་སྒྲིག་གི་ཡིག་སྣོད་ལུ་སོང་" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "དཔེ་གཞི:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "སྔོན་ལྟ་" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "ཚབ་མའི་སྔོན་ལྟ་" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "ཡན་ལག་སྣོད་ཐོའི་ནང་ལུ་ སླར་ལོག་འབད་" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "ད་ལྟོ་ཚབ་བཙུགས། (_c)" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "ཡིག་སྣོད་ཆ་མཉམ་ནང་ལུ་ མཐུན་སྒྲིག་ཆ་མཉམ་ཚབ་བཙུགས་" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "ད་ལྟོའི་ཡིག་སྣོད་ནང་མཐུན་སྒྲིག་ཆ་མཉམ་ཚབ་བཙུགས་" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "ད་ལྟོའི་མཐུན་སྒྲིག་ཚབ་བཙུགས་" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "ཡིག་སྣོད་ཆ་མཉམ་ཚུ་ནང་ཚབ་བཙུགས། (_a)" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "ཡིག་སྣོད་འདི་ནང་ ཚབ་བཙུགས། ( _t)" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "ཚབ་བཙུགས:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "འཚོལ་ཞིབ་འབད:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "ཚབ་མ་འབད་ནི་ཨིན་པའི་ཡིག་རྒྱུན་གསརཔ། པརཱལ་ནང་འབད་བ་ཅིན་ ཁྱོད་ཀྱིས་ $1, $2, ལ་སོགས་པ་ལག་" "ལེན་འཐབ་སྟེ་ མཐུན་སྒྲིག་གི་ཆ་ཤས་ལུ་གཞི་བསྟུན་འབད་ཚུགས་ ཡང་ན་ $+, $&, $` and $' བཀོལ་" "བསྐྱོདཔ་ \\l, \\u, \\L, \\U and \\E ཚུ་ རྒྱབ་སྐྱོར་འབད་དེ་ཡོད།" #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "ཡིག་སྣོད་ཆ་ཚང་། (_A)" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "ཞུན་དག་འབད། (_E)" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "ཡིག་སྣོད། (_F)" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "གྲོགས་རམ། (_H)" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "མཐུན་སྒྲིག། (_M)" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "ཤུལ་མའི་ཡིག་སྣོད། (_N)" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "ཧེ་མའི་ཡིག་སྣོད། (_P)" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "ཚབ་བཙུགས། (_R)" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "ཡིག་སྣོད་འདི། (_T)" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "སྦ་བཞག་ཡོདཔ་" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "སླར་ལོག་འབད་བཏུབ་" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "ད་ལྟོའི་མཐུན་པའི་ཚོས་གཞི: (_u)" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "ཨིན་ཀོ་ཌིང་གློ་བུར་རྒྱབ་ཐག: (_e)" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "ངོས་དཔར་ཚུ་རྐྱངམ་ཅིག\n" "ཚིག་ཡིག་རྐྱངམ་ཅིག\n" "ངོས་དཔར་ཚུ་དང་ཚིག་ཡིག་\n" "གཉིས་ཆ་རང་ཐད་སྙོམས་" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "དགའ་གདམ་ཚུ་" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "ད་ལྟོའི་ལོ་ཀེལ་གྱིས་གསལ་བཀོད་འབད་དེ་ཡོད་པའི་ཨིན་ཀོ་ཌིང་" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "ལག་ཆས་ཕྲ་རིང་གི་བཟོ་རྣམ: (_b)" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "ཡིག་སྣོད་འཛུལ་སྤྱོད་འབད་ནི། (_F)" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "བལྟ་ཞིནམ་ལས་ ’n’ ཚོར་སྣང་། (_L)" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "ཚོས་གཞི་མཐུན་སྒྲིག་བཟོ: (_M)" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "ཚིག་ཡིག་མཐོང་སྣང་གི་ཡིག་གཟུགས: (_T)" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "regexxer དེ་གིས་ མ་བཞག་པའི་ཧེ་མ་རང་ འོག་གི་ཨིན་ཀོ་ཌིང་ཚུ་ནང་ཡོད་པའི་ ཡིག་སྣོད་ཅིག་ལྷགཔ་ཨིན:" regexxer-0.9/po/en_CA.po0000644000175000017500000003027110566140447012071 00000000000000# Canadian English translation of regexxer. # Copyright (C) 2004 Adam Weinberger and the GNOME Foundation # This file is distributed under the same licence as the regexxer package. # Maintainer: Adam Weinberger # # msgid "" msgstr "" "Project-Id-Version: regexxer\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2004-08-02 14:57-0400\n" "Last-Translator: Adam Weinberger \n" "Language-Team: Canadian English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Search and replace using regular expressions" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "regexxer Search Tool" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Current-match colour" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Fallback encoding" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Match colour" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Text view font" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "" "The background colour used to highlight matches of the search expression." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "The background colour used to highlight the currently selected match of the " "search expression." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "The font used in the file editor." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Toolbar style" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Can’t read file:" #: ../src/filetree.cc:80 msgid "File" msgstr "File" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Failed to save file “%1”: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” seems to be a binary file." #: ../src/main.cc:77 msgid "Save _all" msgstr "Save _all" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Find files matching PATTERN" #: ../src/main.cc:134 msgid "PATTERN" msgstr "PATTERN" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Do not recurse into subdirectories" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Also find hidden files" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Find text matching REGEX" #: ../src/main.cc:140 msgid "REGEX" msgstr "REGEX" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Find only the first match in a line" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Do case insensitive matching" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Replace matches with STRING" #: ../src/main.cc:146 msgid "STRING" msgstr "STRING" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Print match location to standard output" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Do not automatically start search" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Some files haven’t been saved yet.\n" "Quit anyway?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Some files haven’t been saved yet.\n" "Continue anyway?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "The file search pattern is invalid." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "The following errors occurred during search:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "The following errors occurred during save:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "Adam Weinberger " #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "Using the \\C escape sequence to match a single byte is not supported." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Error in regular expression at “%1” (index %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Error in regular expression:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "Reached the recursion and backtracking limit of the regular expression " "engine." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” is not a valid encoding." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Stop" #: ../src/statusline.cc:270 msgid "File:" msgstr "File:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Match:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Cancels the running search" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "A regular expression in Perl syntax" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Backward" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "File backward" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "File forward" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "Find all files that match the filename pattern" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Find all matches of the regular expression" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Find all possible matches in a line" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Find fi_les" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "Fol_der:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Forward" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Go to next match" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Go to previous match" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Go to the next matching file" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Go to the previous matching file" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Pattern:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Preview" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Preview of the substitution" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Recurse into subdirectories" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Replace _current" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Replace all matches in all files" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Replace all matches in the current file" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Replace current match" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Replace in _all files" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Replace in _this file" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Replace:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Search:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_All files" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_Edit" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_File" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "_Help" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Match" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "_Next file" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "_Previous file" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Replace" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "_This file" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "hidden" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "recursive" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "C_urrent match colour:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "Fallback _encoding:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Preferences" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "The encoding specified by the current locale" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "Tool_bar style:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "_File access" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Look’n’feel" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "_Match colour:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "_Text view font:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "regexxer attempts to read a file in the following encodings before giving up:" #~ msgid "_About" #~ msgstr "_About" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[OPTION]... [FOLDER]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "Try “regexxer --help” for more information." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgid "Select a folder" #~ msgstr "Select a folder" #~ msgid "About regexxer" #~ msgstr "About regexxer" #~ msgid "The application icon of regexxer" #~ msgstr "The application icon of regexxer" #~ msgid "regexxer icon" #~ msgstr "regexxer icon" #~ msgid "translated by" #~ msgstr "translated by" #~ msgid "written by" #~ msgstr "written by" #~ msgid "The directory to be searched" #~ msgstr "The directory to be searched" regexxer-0.9/po/en_GB.po0000644000175000017500000003143710566140447012103 00000000000000# English (British) translation. # Copyright (C) 2004 THE regexxer's COPYRIGHT HOLDER # This file is distributed under the same license as the regexxer package. # Gareth Owen , David Lodge , 2004. # # msgid "" msgstr "" "Project-Id-Version: regexxer\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2007-01-08 07:25-0000\n" "Last-Translator: David Lodge \n" "Language-Team: English/GB \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Search and replace using regular expressions" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "regexxer Search Tool" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Current-match colour" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Fallback encoding" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Match colour" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Text view font" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "" "The background colour used to highlight matches of the search expression." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "The background colour used to highlight the currently selected match of the " "search expression." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "The font used in the file editor." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Toolbar style" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Can’t read file:" #: ../src/filetree.cc:80 msgid "File" msgstr "File" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Failed to save file “%1”: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” seems to be a binary file." #: ../src/main.cc:77 msgid "Save _all" msgstr "Save _all" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Find files matching PATTERN" #: ../src/main.cc:134 msgid "PATTERN" msgstr "PATTERN" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Do not recurse into subdirectories" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Also find hidden files" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Find text matching REGEX" #: ../src/main.cc:140 msgid "REGEX" msgstr "REGEX" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Find only the first match in a line" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Do case insensitive matching" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Replace matches with STRING" #: ../src/main.cc:146 msgid "STRING" msgstr "STRING" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Print match location to standard output" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Do not automatically start search" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "[FOLDER]" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Some files haven’t been saved yet.\n" "Quit anyway?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Some files haven’t been saved yet.\n" "Continue anyway?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "The file search pattern is invalid." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "The following errors occurred during search:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "The following errors occurred during save:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "Gareth Owen " #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "Using the \\C escape sequence to match a single byte is not supported." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Error in regular expression at “%1” (index %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Error in regular expression:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "Reached the recursion and backtracking limit of the regular expression " "engine." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” is not a valid encoding." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Stop" #: ../src/statusline.cc:270 msgid "File:" msgstr "File:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Match:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Cancels the running search" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "A regular expression in Perl syntax" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Backward" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "File backward" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "File forward" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "Find all files that match the filename pattern" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Find all matches of the regular expression" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Find all possible matches in a line" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Find fi_les" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "Fol_der:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Forward" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Go to next match" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Go to previous match" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Go to the next matching file" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Go to the previous matching file" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Pattern:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Preview" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Preview of the substitution" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Recurse into subdirectories" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Replace _current" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Replace all matches in all files" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Replace all matches in the current file" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Replace current match" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Replace in _all files" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Replace in _this file" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Replace:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Search:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_All files" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_Edit" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_File" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "_Help" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Match" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "_Next file" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "_Previous file" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Replace" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "_This file" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "hidden" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "recursive" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "C_urrent match colour:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "Fallback _encoding:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Preferences" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "The encoding specified by the current locale" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "Tool_bar style:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "_File access" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Look’n’feel" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "_Match colour:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "_Text view font:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "regexxer attempts to read a file in the following encodings before giving up:" #~ msgid "_About" #~ msgstr "_About" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[OPTION]... [FOLDER]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "Try “regexxer --help” for more information." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgid "Select a folder" #~ msgstr "Select a folder" #~ msgid "About regexxer" #~ msgstr "About regexxer" #~ msgid "The application icon of regexxer" #~ msgstr "The application icon of regexxer" #~ msgid "regexxer icon" #~ msgstr "regexxer icon" #~ msgid "translated by" #~ msgstr "translated by" #~ msgid "written by" #~ msgstr "written by" #~ msgid "The directory to be searched" #~ msgstr "The directory to be searched" #~ msgid "*" #~ msgstr "*" #~ msgid "" #~ "If enabled, the text direction of the file editor, preview area, and all " #~ "file-related entry boxes is always set to left-to-right no matter what " #~ "the locale's default direction is." #~ msgstr "" #~ "If enabled, the text direction of the file editor, preview area, and all " #~ "file-related entry boxes is always set to left-to-right no matter what " #~ "the locale's default direction is." #~ msgid "Override text direction" #~ msgstr "Override text direction" #~ msgid "_Ignore the text direction of the locale" #~ msgstr "_Ignore the text direction of the locale" regexxer-0.9/po/es.po0000644000175000017500000003235110566140447011534 00000000000000# translation of es.po to Spanish # traducción de es.po al Spanish # This file is distributed under the same license as the PACKAGE package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. # # Francisco Javier F. Serrador , 2004, 2006. msgid "" msgstr "" "Project-Id-Version: es\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2006-08-26 18:10+0200\n" "Last-Translator: Francisco Javier F. Serrador \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Buscar y reemplazar usando expresiones regulares" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "Herramienta de búsqueda regexxer" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Color para la coincidencia actual" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Codificación en caso de fallo" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Color de coincidencia" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Nombre de la codificación de caracteres que se usará si un archivo no se " "puede leer ni en UTF-8 ni en el conjunto de códigos especificado en la " "localización actual. Intente «iconv --list» para una lista completa de los " "valores posibles." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Tipografía para la vista de texto" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "" "El color de fondo usado para resaltar las coincidencias de la expresión de " "búsqueda." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "El color de fondo usado para resaltar la coincidencia actualmente " "seleccionada de la expresión de búsqueda." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "La tipografía usada en el editor de archivos." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "El estilo de la barra de herramientas de la aplicación. Los valores posibles " "son «iconos» , «texto», «ambos» y «ambos-horizontal»." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Estilo de la barra de herramientas" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "No se puede leer el archivo:" #: ../src/filetree.cc:80 msgid "File" msgstr "Archivo" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Falló al guardar el archivo «%1»: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "«%1» parece ser un archivo binario." #: ../src/main.cc:77 msgid "Save _all" msgstr "Guardar _todo" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Buscar archivos que coincidan con el PATRÓN" #: ../src/main.cc:134 msgid "PATTERN" msgstr "PATRÓN" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "No ir recursivamente por los subdirectorios" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "También buscar en los archivos ocultos" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Buscar el texto que coincida con la EXPREG" #: ../src/main.cc:140 msgid "REGEX" msgstr "EXPREG" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Buscar sólo la primera coincidencia en una línea" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Coincidencias no sensibles a mayúsculas" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Reemplazar coincidencias con la CADENA" #: ../src/main.cc:146 msgid "STRING" msgstr "CADENA" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Imprimir la ubicación coincidente en la salida estándar" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "No empezar a buscar automáticamente" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Algunos archivos no han sido guardados aún.\n" "¿Desea salir de todas formas?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "Algunos archivos no han sido guardados aún.ºn ¿Aún quiere continuar?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "El patrón de búsqueda de archivos es inválido." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "Los siguientes errores ocurrieron durante la búsqueda:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "Los siguientes errores ocurrieron al guardar:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "Francisco Javier F. Serrador " #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" "El uso de la secuencia de escape \\C para coincidir un byte único no está " "soportada." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Error en la expresión regular en «%1» (índice %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Error en la expresión regular:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "Se alcanzó el límite de recursión y vuelta atrás del motor de expresiones " "regulares." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "«%1» no es una codificación válida." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Parar" #: ../src/statusline.cc:270 msgid "File:" msgstr "Archivo:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Coincide:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Cancela la búsqueda actual" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Un patrón de nombres de archivos tal como se usa por el shell. Las clases de " "caracteres [ab] y las expresiones de llaves estilo csh, {a,b} están " "soportadas." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Una expresión regular en sintaxis Perl" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Atrás" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Archivo anterior" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Archivo siguiente" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "" "Encontrar todos los archivos que coincidan con el patrón en el nombre del " "archivo" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Buscar todas las coincidencias de la expresión regular" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Buscar todas las posibles coincidencias en una línea" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Buscar _archivos" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "Car_peta:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Adelante" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Ir a la siguiente coincidencia" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Ir a la anterior coincidencia" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Ir al archivo coincidente siguiente" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Ir al archivo coincidente anterior" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Patrón:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Vista previa" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Vista previa de la sustitución" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Recursivamente por los directorios" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Reemplazar el _actual" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Reemplazar todas las coincidencias en todos los archivos" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Reemplazar todas las coincidencias en el archivo actual" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Reemplazar la coincidencia actual" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Reemplazar en _todos los archivos" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Reemplazar en _este archivo" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Reemplazar:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Buscar:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "La cadena nueva a sustituir. Como en Perl, puede referirse a partes de la " "coincidencia usando $1, $2, etc. o incluso $+, $&, $` y $'. Los operadores " "\\l, \\u, \\L, \\U y \\E están soportados también." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_Todos los archivos" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_Editar" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Archivo" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "Ay_uda" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Coincide" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "Siguiente _archivo" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "Archivo _anterior" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Reemplazar" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "_Este archivo" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "oculto" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "recursivo" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "Color actual de _coincidencia:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "_Codificación en caso de error:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Sólo iconos\n" "Sólo texto\n" "Iconos y texto\n" "Ambos horizontal" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Preferencias" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "La codificación especificada por la localización actual" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "Estilo de la barra de _herramientas:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "Acceso al _archivo" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Apariencia" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "Color de _coincidencia:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "Tipografía de la vista de _texto:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "regexxer intenta leer un archivo en las siguientes codificaciones antes de " "dejarlo:" #~ msgid "_About" #~ msgstr "A_cerca de" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[OPCIÓN]... [CARPETA]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "Pruebe con «regexxer --help» para más información." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "El nombre de carpeta «%1» contiene caracteres no representables en la " #~ "codificación del sistema de archivos local." #~ msgid "Select a folder" #~ msgstr "Seleccione una carpeta" #~ msgid "About regexxer" #~ msgstr "Acerca de regexxer" #~ msgid "The application icon of regexxer" #~ msgstr "El icono de aplicación de regexxer" #~ msgid "regexxer icon" #~ msgstr "icono regexxer" #~ msgid "translated by" #~ msgstr "traducido por" #~ msgid "written by" #~ msgstr "escrito por" #~ msgid "The directory to be searched" #~ msgstr "El directorio que ser buscado" regexxer-0.9/po/eu.po0000644000175000017500000003156010566140447011537 00000000000000# translation of eu.po to Basque # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Iñaki Larrañaga Murgoitio , 2006. # msgid "" msgstr "" "Project-Id-Version: eu\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2006-08-29 12:10+0000\n" "Last-Translator: Iñaki Larrañaga Murgoitio \n" "Language-Team: Basque \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.2\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Bilatu eta ordeztu adierazpen erregularrak erabiliz" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "regexxer bilaketa-tresna" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Uneko bat datorrenaren kolorea" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Kodeketa lehenetsia" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Bat datorrenaren kolorea" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Erabiliko den karaktere-kodeketaren izena, uneko lokalean UTF-8 edo beste " "zehaztutako kodeketa multzoarekin fitxategia ezin bada irakurri. Saiatu " "“iconv --list” erabilgarri dauden balioen zerrenda ikusteko." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Testu ikuspegiaren letra-tipoa" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "" "Atzeko planoko kolorea bat datozenak nabarmentzeko adierazpenaren bilaketan." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "Atzeko planoko kolorea unean hautatuta dagoen eta bat datorrena " "nabarmentzeko adierazpenaren bilaketan." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "Letra-tipoa fitxategi-editorean erabiltzeko." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "Aplikazioaren tresna-barraren estiloa. Balio erabilgarriak: " "“icons” (ikonoak), “text” (testua), “both” (biak), eta “both-horiz” (biak-" "horiz)." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Tresna-barraren estiloa" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Ezin da irakurri fitxategia:" #: ../src/filetree.cc:80 msgid "File" msgstr "Fitxategia" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Huts egin du “%1” fitxategia gordetzean: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "Badirudi “%1” fitxategi bitarra dela." #: ../src/main.cc:77 msgid "Save _all" msgstr "Gorde _denak" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Bilatu fitxategiak EREDUAREKIN bat datozenak" #: ../src/main.cc:134 msgid "PATTERN" msgstr "EREDUA" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Ez bilatu errekurtsiboki azpidirektorioetan" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Bilatu ezkutuko fitxategiak ere" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Bilatu testua ADIERGrekin bat datorrena" #: ../src/main.cc:140 msgid "REGEX" msgstr "ADIERG" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Bilatu bat datorren aurrenekoa lerroan" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Ez bereiztu maiuskulak/minuskulak" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Ordeztu KATEArekin bat datozenak" #: ../src/main.cc:146 msgid "STRING" msgstr "KATEA" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Bistaratu bat datorrenaren kokalekua irteera estandarrean" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Ez hasi bilaketa automatikoki" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Fitxategi batzuk oraindik ez dira gorde.\n" "Irten dena den?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Fitxategi batzuk oraindik ez dira gorde.\n" "Jarraitu dena den?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "Eredu baliogabea fitxategia bilatzeko." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "Erroreak bilaketa lantzean:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "Erroreak gordetzean:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "Iñaki Larrañaga Murgoitio " #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" "\\C ihes-sekuentzia erabiltzea byte bakarra bilatzeko ez dago onartuta." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Errorea adierazpen erregularrean “%1” (%2 indizea):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Errorea adierazpen erregularrean:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "Adierazpen erregularreko motoreko errekurtsibitateko eta atzera-jotzeko muga " "gainditu da." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” ez da baliozko kodeketa." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Gelditu" #: ../src/statusline.cc:270 msgid "File:" msgstr "Fitxategia:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Bat dator:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Utzi bertan behera uneko bilaketa" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Fitxategi-izena komando lerroan erabiltzen den bezala. Karaktere-klaseak " "[ab] eta csh estiloko giltzen adierazpenak {a,b} onartzen dira." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Adierazpen erregularra Perl sintaxian" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Atzera" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Aurreko fitxategia" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Hurrengo fitxategia" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "Bilatu fitxategi guztiak, fitxategi-izenaren ereduarekin bat datozenak" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Bilatu adierazpen erregularrarekin bat datozen guztiak" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Bilatu lerroan bat etor daitezkeen guztiak" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Bilatu _fitxategiak" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "_Karpeta:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Aurrera" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Joan bat datorren hurrengora" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Joan bat datorren aurrekora" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Joan bat datorren hurrengo fitxategira" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Joan bat datorren aurreko fitxategira" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Eredua:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Aurrebista" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Ordezpenaren aurrebista" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Errekurtsiboki azpidirektorioetan" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Ordeztu _unekoa" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Ordeztu bat datozen guztiak fitxategi guztietan" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Ordeztu bat datozen guztiak uneko fitxategian" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Ordeztu bat datorren unekoa" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Ordeztu fitxategi _guztietan" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Ordeztu fitxategi _honetan" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Ordeztu:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Bilatu:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "Kate berria ordezteko. Perl hizkuntzan bezala, bat datorrenaren zatiari " "buruz aritzeko $1, $2, e.a. bezalakoak erabil ditzakezu. Baita $+, $&, $`eta " "$' ere. \\|, \\u, \\L, \\U eta \\E eragileak ere onartuta daude." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "Fitxategi _denak" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_Editatu" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Fitxategia" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "_Laguntza" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Bat dator" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "_Hurrengo fitxategia" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "_Aurreko fitxategia" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Ordeztu" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "_Fitxategi hau" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "ezkutukoa" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "errekurtsiboa" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "_Unean bat datorrenaren kolorea:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "Kodeketa _lehenetsia:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Ikonoak soilik\n" "Testua soilik\n" "Ikonoak eta testua\n" "Biak horizontalean" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Hobespenak" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "Uneko lokalean zehaztutako kodeketa" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "_Tresna-barraren estiloa:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "_Fitxategiaren sarbidea" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Itxura eta izaera" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "_Bat datorrenaren kolorea:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "_Testu ikuspegiaren letra-tipoa:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "regexxer-ek honako kodeketekin saiatu da fitxategia irakurtzen utzi aurretik:" #~ msgid "_About" #~ msgstr "Honi _buruz" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[AUKERA]... [KARPETA]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "Exekutatu “regexxer --help” informazio gehiagorako." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "Fitxategi-sistema lokaleko kodeketarekin bistaratu ezin daitekeen " #~ "karaktereak ditu “%1” izeneko karpetak." #~ msgid "Select a folder" #~ msgstr "Hautatu karpeta" #~ msgid "About regexxer" #~ msgstr "regexxer-i buruz" #~ msgid "The application icon of regexxer" #~ msgstr "regexxer aplikazioaren ikonoa" #~ msgid "regexxer icon" #~ msgstr "regexxer ikonoa" #~ msgid "translated by" #~ msgstr "Itzultzaileak" #~ msgid "written by" #~ msgstr "Idazleak " #~ msgid "The directory to be searched" #~ msgstr "Direktorioa bilaketa egiteko" regexxer-0.9/po/fi.po0000644000175000017500000003147310566140447011527 00000000000000# Finnish messages for regexxer. # Copyright (C) 2004 Free Software Foundation, Inc. # This file is distributed under the same license as the regexxer package. # Ilkka Tuohela 2004. # msgid "" msgstr "" "Project-Id-Version: regexxer\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2004-09-05 13:34+0300\n" "Last-Translator: hile@iki.fi \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Hae ja korvaa käyttäen säännöllisiä lausekkeita" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "regexxer hakutyökalu" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Nykyisen osuman väri" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Muu merkistökoodaus, jos tyyppi ei vastaa" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Osuman väri" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Käytettävän merkistökoodauksen nimi, jos tiedosto ei ole luettavissa joko " "UTF-8 muodossa tai merkistökoodauksessa, joka on määritelty nykyisissä " "lokalisointiasetuksissa. Komennolla “iconv --list” saat listan kaikista " "mahdollisista arvoista." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Tekstinäytön kirjasin" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "Hakulausekkeen osumien korostuksessa käytettävä taustaväri." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "Taustaväri, jota käytetään korostamaan valittu osuma hakulausekkeelle." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "Tiedostomuokkaimessa käytettävä kirjasin." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "Ohjelman työkalupalkin tyyli. Mahdolliset arvot ovat \"kuvakkeet\", \"teksti" "\", \"molemmat\" tai \"molemmat-rinnakkain\"." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Työkalupalkin tyyli" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Tiedostoa ei voida lukea" #: ../src/filetree.cc:80 msgid "File" msgstr "Tiedosto" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Tiedostoa “%1” ei voitu tallentaa: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” näyttää olevan binäääritiedosto." #: ../src/main.cc:77 msgid "Save _all" msgstr "Tallenna _kaikki" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Etsi tiedostoja, jotka vastaavat LAUSEKETTA" #: ../src/main.cc:134 msgid "PATTERN" msgstr "LAUSEKE" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Älä mene alihakemistoihin" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Etsi myös piilotiedostoja" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Etsi tekstiä, joka vastaa säännöllistä lauseketta" #: ../src/main.cc:140 msgid "REGEX" msgstr "Säännöllinen lauseke" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Etsi vain ensimmäinen osuma riviltä" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Älä välitä kirjainten koosta vertailtaessa" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Korvaa osumat merkkijonolla" #: ../src/main.cc:146 msgid "STRING" msgstr "Merkkijono" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Tulosta osuman sijainti oletustulosteeseen" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Älä käynnistä hakua automaattisesti" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Joitain tiedostoja ei ole vielä tallennettu.\n" "Lopetaanko siitä huolimatta?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Joitain tiedostoja ei ole vielä tallennettu.\n" "Jatketaanko siitä huolimatta?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "Tiedostojen hakumalli on virheellinen" #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "Seuraavat virheet tapahtuivat haettaessa:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "Seuraavat virheet tapahtuivat tallennettaessa:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "" "Ilkka Tuohela, 2004\n" "\n" "http://gnome.fi/" #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "\\C escape-sekvenssin käyttö yhden tavun hakuun ei ole tuettu." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Virhe säännöllisessä lausekkeessa kohdassa “%1” (indeksi %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Virhe säännöllisessä lausekkessa:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "Rekursion ja takaisinseurannan rajat säännöllisten lausekkeiden moottorissa " "tulivat vastaan." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” ei ole kelvollinen merkistökooda" #: ../src/statusline.cc:263 msgid "Stop" msgstr "Pysäyte" #: ../src/statusline.cc:270 msgid "File:" msgstr "Tiedosto:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Osuma:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Keskeyttää suoritettavan haun" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Tiedostinimien hakumalli komentotulkin käyttämässä muodossa. Merkkiluokat " "[ab] ja csh-tyyliset aaltosulkulausekkeet {a,b} ovat tuettuja." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Säännöllinen lauseke perl-syntaksissa" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Taaksepäin" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Tiedosto taaksepäin" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Tiedosto eteenpäin" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "Etsi kaikki tiedostot, jotka vastaavat tiedostonimen hakumallia" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Etsi kaikki säännöllistä lauseketta vastaavat osumat" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Etsi kaikki osumat rivillä" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Etsi _tiedostoja" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "_Kansio:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Eteenpäin" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Siirry seuraavaan osumaan" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Siirry edelliseen osumaan" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Siirry seuraavaan hakua vastaavan nimiseen tiedostoon" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Siirry edelliseen hakua vastaavan nimiseen tiedostoon" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Malli:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Esikatselu" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Esikatselu muutoksesta" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Käy läpi myös alihakemistot" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Korvaa _nykyinen" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Korvaa kaikki osumat kaikissa tiedostoissa" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Korvaa kaikki osumat nykyisessä tiedostossa" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Korvaa nykyinen osuma" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Korvaa _kaikissa tiedostoissa" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Korvaa _tässä tiedostossa" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Korvaa:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Hae:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "Uusi korvaava merkkijono. Kuten perlissä, voit viitata osuman osiin " "käyttämällä muuttujia $1, $2 jne. tai $+, $& $` ja $'. Operaattorit \\l, " "\\u, \\L, \\U ja \\E ovat myös tuettuja." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_Kaikki tiedostot" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_Muokkaa" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Tiedosto" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "O_hje" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Osuma" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "_Seuraava tiedosto" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "_Edellinen tiedosto" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "Ko_rvaa" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "_Tämä tiedosto" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "piilotettu" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "rekursiivinen" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "_Nykyisen osuman väri:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "Muu koodaus:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Vain kuvakkeet\n" "Vain teksti\n" "Kuvakkeet ja teksti\n" "Molemmat vierekkäin" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Asetukset" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "Valitun lokalisoinnin mukainen merkistökoodaus" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "_Työkalupalkin tyyli:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "_Tiedoston luku" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Käyttöliittymä" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "_Osuman väri:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "_Tekstinäytön kirjasin:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "regexxer yrittää lukea tiedostoja seuraavilla merkistökoodauksilla ennen " "luovuttamista:" #~ msgid "_About" #~ msgstr "_Tietoja" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[OPTIO] ... [KANSIO]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "Kokeile “regexxer --help” saadaksesi lisätietoja." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "Kansion nimi “%1” sisältää merkkejä, joita ei voida esittää paikkalisen " #~ "tiedostojärjestelmän merkistökoodauksessa." #~ msgid "Select a folder" #~ msgstr "Valitse kansio" #~ msgid "About regexxer" #~ msgstr "Keskeytä regexxer" #~ msgid "The application icon of regexxer" #~ msgstr "Ohjelman regexxer kuvake" #~ msgid "regexxer icon" #~ msgstr "regexxerin kuvake" #~ msgid "translated by" #~ msgstr "Kääntänyt" #~ msgid "written by" #~ msgstr "Kirjoittanut" #~ msgid "The directory to be searched" #~ msgstr "Hakemisto, josta haetaan" regexxer-0.9/po/fr.po0000644000175000017500000003275710566140447011546 00000000000000# French translation of regexxer. # Copyright (C) 2004-2006 Free Software Foundation, Inc. # This file is distributed under the same license as the regexxer package. # # Benoît Dejean , 2004. # David Soulayrol , 2005. # msgid "" msgstr "" "Project-Id-Version: regexxer 0.8\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2006-07-24 14:39+0200\n" "Last-Translator: David Soulayrol \n" "Language-Team: GNOME French Team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Rechercher et remplacer en utilisant des expressions régulières" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "Outil de recherche regexxer" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Couleur de la correspondance courante" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Codage par défaut" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Couleur de correspondance" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Nom du codage de caractères à utiliser si un fichier n'est pas lisible en " "UTF-8 ou selon le jeu de code spécifié par la locale courante. Essayez " "« iconv --list » pour une liste complète des valeurs possibles." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Police du visionneur de texte" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "" "La couleur d'arrière-plan à utiliser pour mettre en valeur les " "correspondances à l'expression de recherche." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "La couleur d'arrière-plan utilisée pour mettre en valeur la correspondance " "sélectionnée à l'expression de recherche." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "La police utilisée dans l'éditeur de fichier." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "Le style de la barre d'outils de l'application. Les valeurs possibles sont " "« icônes seulement », « test seulement », « texte sous les icônes » et " "« texte à coté des icônes »." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Style de la barre d'outils" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Impossible de lire le fichier :" #: ../src/filetree.cc:80 msgid "File" msgstr "Fichier" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Impossible d'enregistrer « %1 » : %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "« %1 » semble être un fichier binaire." #: ../src/main.cc:77 msgid "Save _all" msgstr "Enregistrer _tout" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Recherche les fichiers correspondant au MOTIF" #: ../src/main.cc:134 msgid "PATTERN" msgstr "MOTIF" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Ne rentre pas dans les sous-répertoires récursivement" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Recherche aussi les fichiers cachés" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Recherche le texte correspondant au REGEX" #: ../src/main.cc:140 msgid "REGEX" msgstr "REGEX" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Recherche seulement la première correspondance dans une ligne" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Effectue une recherche insensible à la casse" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Remplace les correspondances avec CHAÎNE" #: ../src/main.cc:146 msgid "STRING" msgstr "CHAÎNE" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Affiche l'emplacement de la correspondance sur la sortie standard" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Ne démarre pas la recherche automatiquement" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Certains fichiers n'ont pas été enregistrés.\n" "Quitter malgré tout ?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Certains fichiers n'ont pas été enregistrés.\n" "Continuer malgré tout ?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "Le motif de recherche de fichiers n'est pas valide." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "Les erreurs suivantes sont apparues durant la recherche :" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "Les erreurs suivantes sont apparues lors de l'enregistrement :" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "David Soulayrol " #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" "La séquence d'échappement \\C pour filtrer un seul octet n'est pas supporté." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Erreur dans l'expression régulière à « %1 » (index %2) :\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Erreur dans l'expression régulière :\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "Limite de récursion et de retour du moteur d'expression régulière atteinte." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "« %1 » n'est pas un codage valide." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Stop" #: ../src/statusline.cc:270 msgid "File:" msgstr "Fichier :" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Correspondance :" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Annule la recherche courante" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Un motif de nom de fichier tel qu'utilisé par le shell. Les classes de " "caractères [ab] et les expressions entre accolades {a,b} de csh sont " "supportées." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Une expression régulière dans la syntaxe de Perl" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Précédent" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Fichier précédent" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Fichier suivant" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "" "Recherche tous les fichiers qui correspondent au motif du nom de fichiers" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Recherche toutes les correspondances à l'expression régulière" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Recherche toutes les correspondances possibles dans une ligne" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "_Rechercher des fichiers" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "_Dossier :" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Suivant" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Aller à la correspondance suivante" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Aller à la correspondance précédente" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Aller au fichier correspondant suivant" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Aller au fichier correspondant précédent" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Motif :" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Aperçu" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Aperçu de la substitution" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Recherche récursivement dans les sous-répertoires" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Remplacer la valeur _courante" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Remplacer toutes les correspondances dans tous les fichiers" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Remplacer toutes les correspondances dans le fichier courant" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Remplacer la correspondance courante" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Remplacer dans _tous les fichiers" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Remplacer dans ce _fichier" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Remplacer :" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Rechercher :" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "La nouvelle chaîne à substituer. Comme en Perl, vous pouvez vous référer à " "des parties de la correspondance en utilisant $1, $2, etc. ou même $+, $&, " "$` et $'. Les opérateurs \\l,·\\u,·\\L,·\\U·et·\\E·sont également supportés." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_Tous les fichiers" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "É_dition" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Fichier" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "_Aide" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Correspondance" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "Fichier _suivant" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "Fichier _précédent" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Remplacer" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "_Ce fichier" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "caché" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "récursif" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "Couleur de c_orrespondance courante :" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "_Codage par défaut :" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Icônes seulement\n" "Texte seulement\n" "Texte sous les icônes\n" "Texte à coté des icônes." #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Préférences" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "Le codage spécifié par la locale courante" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "Style de la _barre d'outils :" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "Accès aux _fichiers" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Apparence" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "Couleur de _correspondance :" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "_Police du visionneur de texte :" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "regexxer tente de lire un fichier avec le codage suivant avant d'abandonner :" #~ msgid "_About" #~ msgstr "À _propos" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[OPTION]... [REPERTOIRE]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "Essayez « regexxer --help » pour plus d'information." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "Le nom du répertoire « %1 » contient des caractères non représentables " #~ "dans le codage du système de fichier local." #~ msgid "Select a folder" #~ msgstr "Sélectionnez un répertoire" #~ msgid "About regexxer" #~ msgstr "À propos de regexxer" #~ msgid "The application icon of regexxer" #~ msgstr "L'icône d'application de regexxer" #~ msgid "regexxer icon" #~ msgstr "icône regexxer" #~ msgid "translated by" #~ msgstr "traduit par" #~ msgid "written by" #~ msgstr "écrit par" #~ msgid "The directory to be searched" #~ msgstr "Le répertoire devant être inspecté" regexxer-0.9/po/hu.po0000644000175000017500000003156010566140450011534 00000000000000# Hungarian translation of regexxer. # Copyright (C) 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the regexxer package. # Gabor Kelemen , 2005. # msgid "" msgstr "" "Project-Id-Version: regexxer\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2005-01-11 14:04+0100\n" "Last-Translator: Gabor Kelemen \n" "Language-Team: Hungarian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Keresés és csere reguláris kifejezések használatával" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "regexxer keresőeszköz" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Jelenlegi találat színe" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Tartalék kódolás" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Találat színe" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "A használandó karakterkódolás neve, ha a fájl nem olvasható sem UTF-8, sem a " "jelenlegi területi beállítások által meghatározott kódolással. A lehetséges " "értékek listáját az “iconv --list” paranccsal kérheti le." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Szövegnézet betűkészlete" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "" "A keresőkifejezéssel egyező találatok kiemeléséhez használt háttérszín." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "A keresőkifejezéssel egyező jelenleg kiválasztott találat kiemeléséhez " "használt háttérszín." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "A fájlszerkesztőben használt betűkészlet." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "Az alkalmazás eszköztárának stílusa. Lehetséges értékek: “icons” (ikonok), " "“text” (szöveg), “both” (mindkettő), és “both-horiz” (mindkettő " "vízszintesen)." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Eszköztár stílusa" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Nem lehet olvasni a fájlt:" #: ../src/filetree.cc:80 msgid "File" msgstr "Fájl" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "A(z) “%1” fájl mentése sikertelen: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” bináris fájlnak tűnik." #: ../src/main.cc:77 msgid "Save _all" msgstr "Összes _mentése" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "A MINTA-ra illeszkedő fájlok keresése" #: ../src/main.cc:134 msgid "PATTERN" msgstr "MINTA" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Alkönyvtárakba ne menjen le" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Rejtett fájlokat is keres" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "A REGEX-re illeszkedő fájlok keresése" #: ../src/main.cc:140 msgid "REGEX" msgstr "REGEX" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Csak az első találat keresése egy sorban" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "A kis- és nagybetűk nem különböznek" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Találatok helyettesítése a STRING-gel" #: ../src/main.cc:146 msgid "STRING" msgstr "STRING" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Találat helyének kiírása a szabvány kimenetre" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Ne kezdjen keresni automatikusan" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Néhány fájl még nincs elmentve.\n" "Mindenképp kilép?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Néhány fájl még nincs elmentve.\n" "Mindenképp folytatja?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "A fájlkereső minta érvénytelen." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "A következő hibák léptek fel keresés közben:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "A következő hibák léptek fel mentés közben:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "Kelemen Gábor " #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" "A \\C escape-szekvencia használata egyetlen bájt keresésére nem támogatott." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Hiba a szabályos kifejezésben itt: “%1” (index %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Hiba a szabályos kifejezésben:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "Elérte a szabályos kifejezés motor rekurziós és visszalépési határértékét." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” érvénytelen kódolás." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Leállítás" #: ../src/statusline.cc:270 msgid "File:" msgstr "Fájl:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Találat:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Leállítja a futó keresést" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "A parancsértelmezőben használthoz hasonló fájlnév-minta. A karakterosztályok" "[ab] és csh-stílusú zárójeles kifejezések {a,b} támogatottak." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Egy szabályos kifejezés Perl szintaxissal" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Vissza" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Előző fájl" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Következő fájl" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "Minden, a fájlnév-mintára illeszkedő fájl megkeresése" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "A szabályos kifejezés minden illeszkedésének megkeresése" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Egy soron belül az összes lehetséges találat megkeresése" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Fájlok ke_resése" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "Ma_ppa:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Előre" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Ugrás a következő találatra" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Ugrás az előző találatra" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Ugrás a következő találatot tartalmazó fájlra" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Ugrás az előző találatot tartalmazó fájlra" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Minta:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Előnézet" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "A helyettesítés előnézete" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Alkönyvtárakban is keres" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "_Jelenlegi cseréje" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Minden találat cseréje minden fájlban" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Minden találat cseréje a jelenlegi fájlban" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "A jelenlegi találat cseréje" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Csere mi_nden fájlban" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Csere e_bben a fájlban" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Csere:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Keresés:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "A helyettesítő karakterlánc. A találat részeire úgy hivatkozhat, ahogyan " "Perlben, $1, $2, sőt $+, $&, $` és $' használatával is. A \\l, \\u, \\L, \\U " "és \\E operátorok is ugyanúgy támogatottak." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_Minden fájlban" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "S_zerkesztés" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Fájl" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "_Súgó" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Találatok" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "_Következő fájl" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "Elő_ző fájl" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Csere" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "_Ebben a fájlban" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "rejtett" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "rekurzív" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "_Jelenlegi találat színe:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "Tartalék kó_dolás:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Csak ikonok\n" "Csak szöveg\n" "Ikonok és szöveg\n" "Mindkettő vízszintesen" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Beállítások" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "A jelenlegi területi beállítások által megadott kódolás" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "_Eszköztár stílusa:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "_Fájlelérés" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Kinézet" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "_Találat színe:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "_Szöveg betűtípusa:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "A regexxer a következő kódolásokkal próbálja meg beolvasni a fájlokat, " "mielőtt feladja:" #~ msgid "_About" #~ msgstr "_Névjegy" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[OPCIÓ]... [MAPPA]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "További információért adja ki a “regexxer --help” parancsot." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "A(z) “%1” mappanév olyan karaktereket tartalmaz, amelyek nem " #~ "jeleníthetőek meg a helyi fájlrendszer kódolásával." #~ msgid "Select a folder" #~ msgstr "Válasszon egy mappát" #~ msgid "About regexxer" #~ msgstr "A Regexxer névjegye" #~ msgid "The application icon of regexxer" #~ msgstr "A regexxer alkalmazás ikonja" #~ msgid "regexxer icon" #~ msgstr "regexxer ikon" #~ msgid "translated by" #~ msgstr "fordította:" #~ msgid "written by" #~ msgstr "írta:" #~ msgid "The directory to be searched" #~ msgstr "A keresendő könyvtár" regexxer-0.9/po/it.po0000644000175000017500000003050510566140450011532 00000000000000# Italian translations for regexxer package. # Copyright (C) 2004 Free Software Foundation, Inc. # This file is distributed under the same license as the regexxer package. # Alberto Paro , 2004. # msgid "" msgstr "" "Project-Id-Version: regexxer 0.8\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2004-06-18 14:27+0200\n" "Last-Translator: Alberto Paro \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Cerca e sostituisci usando espressioni regolari" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "regexxer Strumento di Ricerca" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Current-match color" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Fallback encoding" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Colore dell’occorrenza" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "UTF-8 o nel set di codici specificato nella localizzazione corrente. Prova " "“iconv --list” per una lista completa di possibili valori." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Carattere text view" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "" "Il colore di sfondo usato per evidenziare i risultari di un’espressione di " "ricerca." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "Il colore di sfondo usato per evidenziare i risultati correntemente " "selezzionati di un’espressione di ricerca." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "Il carattere usato nel file editor" #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "Lo stile della toolbar dell’applicazione. I possibili valori sono “icone”, " "“testo”, “entrambi”, e “entrambi-oriz”." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Stile Toolbar" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Impossibile leggere file:" #: ../src/filetree.cc:80 msgid "File" msgstr "File" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Fallito salvataggio file “%1”: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” sembra essere un file binario." #: ../src/main.cc:77 msgid "Save _all" msgstr "Salv_a tutti" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "" #: ../src/main.cc:134 msgid "PATTERN" msgstr "" #: ../src/main.cc:136 #, fuzzy msgid "Do not recurse into subdirectories" msgstr "Ricorsivo nelle sottodirectory" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Trova anche files nascosti" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "" #: ../src/main.cc:140 msgid "REGEX" msgstr "" #: ../src/main.cc:142 #, fuzzy msgid "Find only the first match in a line" msgstr "Trova tutte le possibili occorrenze in una riga" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Fai una ricerca case insensitive" #: ../src/main.cc:146 #, fuzzy msgid "Replace matches with STRING" msgstr "Sostituisci tutte le occorrenze in tutti i files" #: ../src/main.cc:146 msgid "STRING" msgstr "" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Dei files non sono ancora stati salvati.\n" "Esci comunque?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Alcuni files non sono ancora stati salvati.\n" "Continua comunque?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "Il pattern di ricerca file non è valido." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "I seguenti errori sono accorsi durante la ricerca:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "I seguenti errori sono accorsi durante il salvataggio:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "Alberto Paro " #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" "Usando la sequenza di uscita \\C per fare il match di un singolo byte non è " "sopportato." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Errore nell’espressione regolare a “%1” (index %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Errore nell’espressione regolare:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "Raggiunto il limite di ricorsione e backtracking del motore delle " "espressioni regolari." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” non è una codifica valida." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Ferma" #: ../src/statusline.cc:270 msgid "File:" msgstr "File:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Trova:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Cancella la ricerca in corso" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Un filename pattern come usato dalla shell. Le classi di carattere [ab] e le " "espressioni parentesi stile csh {a,b} sono sopportati." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Una espressione regolare in sintassi Perl" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Precedente" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "File precedente" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "File successivo" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "Trova tutti i files che verificano il filename pattern" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Trova tutte le occorrenze dell’espressione regolare" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Trova tutte le possibili occorrenze in una riga" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Trova fi_les" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "Cartel_la:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Successivo" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Vai alla prossima occorrenza" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Vai alla precedente occorrenza" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Vai al prossimo file" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Vai al precedente file" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Pattern:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Anteprima" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Anteprima della sostituzione" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Ricorsivo nelle sottodirectory" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Sostituisci _corrente" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Sostituisci tutte le occorrenze in tutti i files" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Sostituisci tutte le occorrenze nel file corrente" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Sostituisci la corrente occorrenza" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Sostituisci in tutti i files" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Sostituisci in ques_to file" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Sostituisci:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Cerca:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "La nuova stringa da sostituire. Come in Perl, puoi riferirti a parti " "dell’occorrenza usando $1, $2, etc. o anche $+, $&, $` e $'. sono sopportati " "acnhe gli operatori \\l, \\u, \\L, \\U e \\E." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "Tutti i files" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_File" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "Ai_uto" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Occorrenza" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "_Prossimo file" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "_Precedente file" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Sostituisci" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "Ques_to file" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "nascosto" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "ricorsivo" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "Colore dell’occorrenza c_orrente:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "Fallback _encoding:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Solo Icone\n" "Solo testo\n" "Icone e testo\n" "Entrambi orizzontali" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Preferenze" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "La codifica specificata dalla localizzazione corrente" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "Stile Tool_bar:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "Accesso _File" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "Aspetto" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "Colore _occorrenza:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "Carattere _Text view:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "regexxer tenta di leggere un file nella seguente codifica prima di " "rinunciare:" #~ msgid "_About" #~ msgstr "_Su" #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "La cartella “%1” contiene caratteri non rappresentabili nella codifica " #~ "del file system locale." #~ msgid "Select a folder" #~ msgstr "Seleziona una cartella" #~ msgid "About regexxer" #~ msgstr "Su regexxer" #~ msgid "The application icon of regexxer" #~ msgstr "L’icona applicazione di regexxer" #~ msgid "regexxer icon" #~ msgstr "regexxer icon" #~ msgid "translated by" #~ msgstr "tradotto da" #~ msgid "written by" #~ msgstr "scritto da" #~ msgid "The directory to be searched" #~ msgstr "La directory in cui cercare" #~ msgid "*" #~ msgstr "*" regexxer-0.9/po/ja.po0000644000175000017500000003430310566140450011510 00000000000000# regexxer ja.po. # Copyright (C) 2004 Free Software Foundation, Inc. # This file is distributed under the same license as the regexxer package. # Takeshi AIHANA , 2004. # Satoru SATOH , 2004. # msgid "" msgstr "" "Project-Id-Version: regexxer HEAD\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2004-08-28 00:15+0900\n" "Last-Translator: Satoru SATOH \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "正規表現を用いた検索と置換を行います" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "regexxer 検索ツール" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "条件にマッチした色 (現在)" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "予備のエンコーディング" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "条件にマッチした色" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "UTF-8 または現在利用しているロケールが指定するコードセットを使ってファイルを" "読み込めない場合に使用する文字エンコーディングの名前です。“iconv --list” を実" "行すると、指定できる値の一覧が表示されます。" #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "テキストを表示するフォント" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "検索条件にマッチするものを強調表示する際に使用する背景色です。" #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "検索条件にマッチし、現在選択しているものを強調表示する際に使用する背景色で" "す。" #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "ファイル・エディタで使用するフォントです。" #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "アプリケーションのツールバーのスタイルです。指定可能な値: " "“icons”、“text”、“both”、“both-horiz”" #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "ツールバーのスタイル" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "ファイルを読み込めません:" #: ../src/filetree.cc:80 msgid "File" msgstr "ファイル" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "ファイル “%1” の保存に失敗: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” はバイナリ・ファイルのようです。" #: ../src/main.cc:77 msgid "Save _all" msgstr "全て保存(_A)" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "パターンにマッチするファイルを検索" #: ../src/main.cc:134 msgid "PATTERN" msgstr "パターン" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "サブフォルダの中を再帰的に検索しない" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "隠しファイルも検索します" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "正規表現にマッチするテキストを検索" #: ../src/main.cc:140 msgid "REGEX" msgstr "正規表現" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "行内で最初にマッチするものだけを検索します" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "大文字/小文字を無視します" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "マッチした文字列をすべて置換" #: ../src/main.cc:146 msgid "STRING" msgstr "文字列" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "マッチした場所を標準出力に出力" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "自動的に検索を開始しない" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "いくつかのファイルが未だ保存されていません。\n" "とにかく終了しますか?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "いくつかのファイルがまだ保存されていません。\n" "とにかく続行しますか?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "ファイルの検索条件が間違っています。" #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "検索の実行中に次のエラーが発生しました:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "保存中に次のエラーが発生しました:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "" "相花 毅 \n" "佐藤 暁 \n" "日本GNOMEユーザー会 " #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" "エスケープ・シーケンス \\C を用いたシングル・バイトの検索はサポートしていませ" "ん。" #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "正規表現の条件式 “%1” (インデックス %2) でエラー:\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "正規表現の条件式の中でエラー:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "正規表現エンジンで再帰とバックトラッキングの上限に到達しました。" #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "エンコーディング “%1” が間違っています。" #: ../src/statusline.cc:263 msgid "Stop" msgstr "停止" #: ../src/statusline.cc:270 msgid "File:" msgstr "対象ファイル:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "マッチした数:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "実行中の検索をキャンセルします" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "ファイル名のパターンで SHELL で使用するものと同じです (文字の分類 [ab] と C-" "SHELL 式の括弧 {a,b} をサポートします)" #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Perl の文法を使った正規表現です" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "後方へ検索します" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "ファイルの後方" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "ファイルの後方を検索します" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "ファイル名のパターンにマッチする全てのファイルを検索します" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "正規表現にマッチするものを全て検索します" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "行内でマッチする可能性のあるものを全て検索します" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "ファイルの検索(_L)" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "フォルダ(_D):" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "前方" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "前方でマッチしたものへジャンプします" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "後方でマッチしたものへジャンプします" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "次にマッチするファイルへジャンプします" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "前にマッチしたファイルへジャンプします" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "パターン:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "プレビュー" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "置換した際のプレビューです" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "サブフォルダの中も再帰的に検索します" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "これを置換する(_C)" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "全てのファイルの中でマッチしたものを全て置換します" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "このファイルの中でマッチしたもの全てを置換します" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "現在、マッチしているものを置換します" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "全てのファイルを置換する(_A)" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "このファイルを置換する(_T)" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "置換:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "検索:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "新しく置き換える文字列です (Perl のように、$1、$2 などを使ってマッチする部分" "を参照することができます。あるいは $+、$&、$` と $' も使えます。演算子 \\l、" "\\u、\\L、\\U と \\E も同様にサポートしています)" #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "全てのファイル(_A)" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "編集(_E)" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "ファイル(_F)" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "ヘルプ(_H)" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "マッチ(_M)" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "次のファイル(_N)" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "前のファイル(_P)" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "置換(_R)" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "このファイル(_T)" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "隠しファイル" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "再帰的に実行する" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "現在マッチしたものの色(_U):" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "予備のエンコーディング(_E):" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "アイコンのみ\n" "ラベルのみ\n" "アイコンとラベル\n" "両方を水平配置" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "設定" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "現在利用しているロケールが指定するエンコーディング" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "ツールバーのスタイル(_B):" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "ファイルのアクセス" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "ルック&フィール" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "マッチするものの色(_M):" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "テキストの表示用フォント(_T):" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "regexxer は次の順番でエンコーディングを解決しながらファイルを読み込みます:" #~ msgid "_About" #~ msgstr "情報(_A)" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[オプション]...[フォルダ]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "より情報が欲しければ “regexxer --help” を試して下さい" #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "フォルダ名 “%1” には、ローカルで使用しているファイル・システムのエンコー" #~ "ディングを使って表現できない文字が含まれています。" #~ msgid "Select a folder" #~ msgstr "フォルダの選択" #~ msgid "About regexxer" #~ msgstr "regexxer について" #~ msgid "The application icon of regexxer" #~ msgstr "regexxer のアプリケーション・アイコン" #~ msgid "regexxer icon" #~ msgstr "regexxer のアイコン" #~ msgid "translated by" #~ msgstr "翻訳者" #~ msgid "written by" #~ msgstr "作者" #~ msgid "The directory to be searched" #~ msgstr "検索の対象となるフォルダです" regexxer-0.9/po/ne.po0000644000175000017500000004375710566140450011535 00000000000000# translation of regexxer.HEAD.ne.po to Neplai # translation of regexxer.HEAD.ne.po to Nepali # translation of regexxer.HEAD.po to Nepali # This file is distributed under the same license as the PACKAGE package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. # Pawan Chitrakar , 2005. # Jaydeep Bhusal , 2005. # Ganesh Ghimire , 2005. # Jyotshna Shrestha , 2005. # Mahesh subedi , 2006. # msgid "" msgstr "" "Project-Id-Version: regexxer.HEAD.ne\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2006-06-18 16:25+0545\n" "Last-Translator: Mahesh subedi \n" "Language-Team: Nepali \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.10.2\n" "Plural-Forms: nplurals=2;plural=(n!=1)\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "नियमित अभिव्यक्तिहरू प्रयोग गरेर खोजी गर्नुहोस् र बदल्नुहोस्" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "रेजेक्सर खोजी उपकरण" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "हालको-मिल्दो रङ" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "सङ्केतन पछाउनुहोस्" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "मिल्दो रङ" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "यदि फाइल हालको लोक्यालद्वारा वर्णन गरिएको UTF-8 वा सङ्केत सेटमा पढ्न योग्य छैन भने " "प्रयोग गर्न क्यारेक्टर सङ्केतनको नाम। संभावित मानहरूको पूर्ण सूचीका लागि “iconv --list” " "प्रयास गर्नुहोस्।" #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "पाठ दृश्य फन्ट" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "पृष्ठभूमि रङ खोजी अभिव्यक्तिको जोडाहरू हाइलाइट गर्न प्रयोग गर्दछ।" #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "पृष्ठभूमि रङ खोजी अभिव्यक्तिको हालै चयन गरिएको जोडा हाइलाइट गर्न प्रयोग गर्दछ।" #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "फन्ट फाइल सम्पादकमा प्रयोग गरिन्छ।" #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "अनुप्रयोगको उपकरणपट्टीको शैली। संभावित मानहरू “icons”, “text”, “both”, र “both-" "horiz” हुन्।" #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "उपकरणपट्टी शैली" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "फाइल पढ्न सकिएन:" #: ../src/filetree.cc:80 msgid "File" msgstr "फाइल" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "फाइल “%1” बचत गर्न असफल: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” बाइनरी फाइल जस्तो देखिन्छ" #: ../src/main.cc:77 msgid "Save _all" msgstr "सबै बचत गर्नुहोस्" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "पाठहरूसँग मिल्दो बाँन्की फेला पार्नुहोस्" #: ../src/main.cc:134 msgid "PATTERN" msgstr "बाँन्की" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "उपडाइरेक्टरीहरू भित्र पुनरावृत नगर्नुहोस्" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "लुकेका फाइलहरू पनि फेला पार्नुहोस्" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "पाठसँग मिल्दो रेजेक्स फेला पार्नुहोस्" #: ../src/main.cc:140 msgid "REGEX" msgstr "रेजेक्स" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "हरफमा पहिलो मिल्दो मात्र फेला पार्नुहोस्" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "केस असंवेदनशील जोडा मिलाउनुहोस्" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "स्ट्रिङसँग जोडाहरू बदल्नुहोस्" #: ../src/main.cc:146 msgid "STRING" msgstr "स्ट्रिङ" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "मानक प्रतिफलमा मिल्दो स्थान मुद्रण गर्नुहोस्" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "स्वचालित तरिकाले खोजी सुरु नगर्नुहोस्" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "केही फाइलहरू अझै पनि बचत गरिएको छैन।\n" "जे भए पनि बन्द गर्नुहुन्छ ?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "केही फाइलहरू अझै बचत भईसकेको छैन।\n" "जे भए पनि जारि राख्नुहुन्छ ?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "फाइल खोजी बाँन्की अवैध छ।" #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "खोजि अवधिमा निम्न त्रुटिहरू रह्यो:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "बचत अवधिमा निम्न त्रुटिहरू रह्यो:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "ज्योत्सना श्रेष्ठ Mahesh Subedi" #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "एकल बाइटसँग जोडा मिलाउनका लागि \\C निकास अनुक्रमको प्रयोग समर्थित छैन।" #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "“%1” (अनुक्रमणिका %2) मा नियमित अभिव्यक्ति भित्र त्रुटि:\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "नियमित अभिव्यक्ति भित्र त्रुटि:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "नियमित अभिव्यक्ति इन्जिनको पुनरावृतिक र ब्याकट्र्याकिंग सीमा सम्म पुग्यो।" #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” वैध सङ्केतन होइन।" #: ../src/statusline.cc:263 msgid "Stop" msgstr "रोक्नुहोस्" #: ../src/statusline.cc:270 msgid "File:" msgstr "फाइल:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "मिल्दो:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "चलिरहेको खोजी रद्द गर्दछ" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "शेलद्वारा प्रयोग गरिएको जस्तो फाइलनाम बाँन्की। क्यारेक्टर तहहरू [ab] र csh शैली जुँगे " "कोष्ठक अभिव्यक्तिहरू {a,b} समर्थित छन्।" #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "पर्ल वाक्य संरचनामा नियमित अभिव्यक्ति" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "पछिल्तिर" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "पछिल्तिर फाइल गर्नुहोस्" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "अघिल्तिर फाइल गर्नुहोस्" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "फाइलनाम बाँन्कीसँग मिल्दो सबै फाइलहरू फेला पार्नुहोस्" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "नियमित अभिव्यक्तिका सबै जोडाहरू फेला पार्नुहोस्" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "हरफ भित्र सबै संभावित जोडाहरू फेला पार्नुहोस्" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "फाइलहरू फेला पार्नुहोस्" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "फोल्डर" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "अघिल्तिर" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "अर्को जोडामा जानुहोस्" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "अघिल्लो जोडामा जानुहोस्" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "अर्को मिल्दो फाइलमा जानुहोस्" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "अघिल्लो मिल्दो फाइलमा जानुहोस्" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "बाँन्की:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "पूर्वावलोकन" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "प्रतिस्थापनको पूर्वावलोकन" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "उपडाइरेक्टरीहरू भित्र पुनरागमन गर्नुहोस्" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "हालको बदल्नुहोस्" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "सबै फाइलहरूमा सबै जोडाहरू बदल्नुहोस्" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "हालको फाइलमा सबै जोडाहरू बदल्नुहोस्" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "हालको जोडा बदल्नुहोस्" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "सबै फाइलहरूमा बदल्नुहोस्" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "यस फाइलमा बदल्नुहोस्" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "बदल्नुहोस्:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "खोजी गर्नुहोस्:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "प्रतिस्थापन गर्न नयाँ स्ट्रिङ। पर्लमा जस्तै, $१, $२, आदि. वा $+, $&, $` र $' प्रयोग " "गरेर जोडाको भागहरूमा तपाईँले सुपुर्द गर्न सक्नुहुन्छ। सञ्चालकहरू \\l, \\u, \\L, \\U र \\E " "हरू पनि समर्थित छन्।" #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "सबै फाइलहरू" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "सम्पादन" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "फाइल" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "मद्दत" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "मिल्दो" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "अर्को फाइल" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "अघिल्लो फाइल" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "बदल्नुहोस्" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "यो फाइल" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "लुकेको" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "पुनरावृतिक" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "१." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "२." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "३." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "हालको मिल्दो रङ:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "सङ्केतन पछाउनुहोस्" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "प्रतीमाहरू मात्र\n" "पाठ मात्र\n" "प्रतीमाहरू र पाठ\n" "दुवै तेर्सो" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "प्राथमिकताहरू" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "हालको लोक्यालद्वारा वर्णन गरिएको सङ्केतन" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "उपकरणपट्टी शैली:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "फाइल पँहुच" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "हेर्नुहोस् र अनुभव गर्नुहोस्" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "मिल्दो रङ:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "पाठ दृश्य फन्ट:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "छोड्नु भन्दा पहिले निम्न सङ्केतनहरूमा रेजेक्सरले फाइल पढ्ने प्रयास गर्दछ:" #~ msgid "_About" #~ msgstr "बारेमा" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[विकल्प]... [फोल्डर]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "अरू सूचनाका लागि “regexxer --help” प्रयास गर्नुहोस्" #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "फोल्डर नाम “%1” समावेश भएका क्यारेक्टरहरू स्थानीय फाइल प्रणालीको सङ्केतनमा " #~ "प्रतिनिधित्व गर्न लायकको छैन।" #~ msgid "Select a folder" #~ msgstr "एउटा फोल्डर चयन गर्नुहोस्" #~ msgid "About regexxer" #~ msgstr "रेजेक्सरका बारेमा" #~ msgid "The application icon of regexxer" #~ msgstr "रेजेक्सरको अनुप्रयोग प्रतीमा" #~ msgid "regexxer icon" #~ msgstr "रेजेक्सर प्रतीमा" #~ msgid "translated by" #~ msgstr "अनुवाद" #~ msgid "written by" #~ msgstr "द्वारा लिखित" #~ msgid "The directory to be searched" #~ msgstr "खोजी गरिनुपर्ने डाइरेक्टरी" regexxer-0.9/po/nl.po0000644000175000017500000003307010566140450011527 00000000000000# Dutch translation of regexxer. # Copyright (C) 2004 The Free Software Foundation # This file is distributed under the same license as the regexxer package. # Tino Meinen , 2004. # # match - overeenkomst of resultaat/zoekresultaat ? # msgid "" msgstr "" "Project-Id-Version: Head\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2004-08-29 10:32+0200\n" "Last-Translator: Tino Meinen \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Zoeken en vervangen door reguliere expressies" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "regexxer zoekmachine" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Huidige overeenkomst kleur" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Terugvallen tekenset" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Overeenkomst kleur" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Naam van de te gebruiken tekenset indien een bestand niet leesbaar is in " "ofwel UTF-8 of de tekenset gespecificeerd door de huidige locale. Probeer " "“iconv --list” voor een volledige lijst met mogelijke waarden." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Tekstweergave lettertype" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "" "De achtergrondkleur voor het oplichten van de overeenkomsten van de zoekterm." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "De achtergrondkleur voor het oplichten van de huidige overeenkomst van de " "zoekterm." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "Het gebruikte lettertype in de bestandseditor." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "De werkbalkstijl van de toepassing. Mogelijke waarden zijn “icons”, “text”, " "“both”, en “both-horiz”." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Werkbalkstijl" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Kan bestand niet lezen:" #: ../src/filetree.cc:80 msgid "File" msgstr "Bestand" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Opslaan van bestand “%1” is mislukt: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” is blijkbaar een binair bestand." #: ../src/main.cc:77 msgid "Save _all" msgstr "_Alles opslaan" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Bestanden zoeken volgensPATROON" #: ../src/main.cc:134 msgid "PATTERN" msgstr "PATROON" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Submappen niet doorzoeken" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Ook verborgen bestanden zoeken" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Tekst zoeken volgens REGEX" #: ../src/main.cc:140 msgid "REGEX" msgstr "REGEX" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Alleen de eerste overeenkomst in een regel zoeken" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Hoofdletterongevoelig zoeken" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Bij overeenkomst vervangen door TEKENREEKS" #: ../src/main.cc:146 msgid "STRING" msgstr "TEKENREEKS" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Locatie van overeenkomst tonen op de standaard-uitvoer" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Niet automatisch beginnen met zoeken" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" # bepaalde bestanden #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Sommige bestanden zijn nog niet opgeslagen.\n" "Toch afsluiten?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Sommige bestanden zijn nog niet opgeslagen.\n" "Toch doorgaan?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "Het bestandszoekpatroon is ongeldig." # gedurende het zoeken #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "De volgende fouten traden op gedurende de zoekopdracht:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "De volgende fouten traden op tijden opslaan:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "Tino Meinen " #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" "Het gebruik van het ontsnappingsteken \\C voor de overeenkomst met een " "enkele byte wordt niet ondersteund." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Fout in reguliere expressie bij “%1” (index %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Fout in reguliere extressie:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "De recursie- en 'backtracing'-limiet van de reguliere expressie motor is " "bereikt." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” is geen geldige tekenset." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Stoppen" #: ../src/statusline.cc:270 msgid "File:" msgstr "Bestand:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Overeenkomst:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Annuleert de huidige zoekopdracht" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Eem bestandsnaam-patroon dat gebruikt wordt door de shell (opdrachtregel). " "Tekenklassen [ab] en csh-stijl haakjes {a,b} worden ondersteund." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Een reguliere experssie in Perl syntax" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Achterwaards" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Bestand achterwaards" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Bestand voorwaards" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "Alle bestanden zoeken die overeenkomen met het bestandsnaampatroon" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Alle overeenkomsten van de reguliere expressie zoeken" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Alle mogelijke overeenkomsten in een regel zoeken" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Alle _bestanden zoeken" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "_Map:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Voorwaards" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Ga naar volgende overeenkomst" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Ga naar vorige overeenkomst" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Ga naar de volgende bestandsovereenkomst" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Ga naar de vorige bestandsovereenkomst" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Patroon:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Voorbeeld" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Voorbeeld van de substitutie" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Ook submappen doorzoeken" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Huidige _vervangen" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Alle overeenkomsten in alle bestanden vervangen" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Alle overeenkomsten in het huidige bestand vervangen" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Huidige overeenkomst vervangen" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "In _alle bestanden vervangen" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "In _dit bestand vervangen" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Vervangen:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Zoeken:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "De nieuwe tekenreeks om te vervangen. Net als in Perl kunt u verwijzen naar " "delen van de overeenkomst door $1, $2, enz. of zelfs $+, $` en $'. De " "operators \\l, \\u, \\L, \\U en \\E worden ook ondersteund." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_Alle bestanden" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "Be_werken" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Bestand" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "_Hulp" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Overeenkomst" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "V_orig bestand" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "_Volgend bestand" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Vervangen" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "_Dit bestand" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "verborgen" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "recursief" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "H_uidige overeenkomst kleur:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "_Terugval tekenset:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Alleen pictogrammen\n" "Alleen tekst\n" "Pictogrammen en tekst\n" "Beide horizontaal" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Voorkeuren" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "De tekenset gespecificeerd door de huidige locale" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "_Werkbalkstijl:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "_Bestandstoegang" # wat is een goede vertaling? #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Look’n’feel" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "_Overeenkomst kleur:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "_Tekstweergave lettertype:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "regexxer probeert een bestand te lezen in de volgende tekensets voordat hij " "opgeeft:" #~ msgid "_About" #~ msgstr "I_nfo" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[OPTIE]... [MAP]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "Probeer “regexxer --help” voor meer informatie." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "De mapnaam “%1” bevat tekens die niet kunnen worden weergegeven in de " #~ "tekenset van het lokale bestandsyssteem." # een map selecteren #~ msgid "Select a folder" #~ msgstr "Selecteer een map" #~ msgid "About regexxer" #~ msgstr "Over regexxer" #~ msgid "The application icon of regexxer" #~ msgstr "Het pictogram van regexxer" #~ msgid "regexxer icon" #~ msgstr "regexxer pictogram" #~ msgid "translated by" #~ msgstr "vertaald door" #~ msgid "written by" #~ msgstr "geschreven door" #~ msgid "The directory to be searched" #~ msgstr "De te doorzoeken map" #~ msgid "Ignore case distinctions" #~ msgstr "Hoofdletterongevoelig" #~ msgid "" #~ "If enabled, the text direction of the file editor, preview area, and all " #~ "file-related entry boxes is always set to left-to-right no matter what " #~ "the locale's default direction is." #~ msgstr "" #~ "Indien ingeschakeld wordt de tekstrichting in de bestands-editor, " #~ "voorbeeld-ruimte, en alle bestands-gerelateerde invoervelden altijd van " #~ "links-naar-rechts ingesteld, ongeacht de standaard richting die bij de " #~ "locale hoort." #~ msgid "Override text direction" #~ msgstr "Geen acht slaan op tekstrichting" #~ msgid "*" #~ msgstr "*" #~ msgid "_Ignore the text direction of the locale" #~ msgstr "De _tekstrichting van de locale negeren" regexxer-0.9/po/pa.po0000644000175000017500000002430410566140450011516 00000000000000# translation of pa.po to Punjabi # This file is distributed under the same license as the PACKAGE package. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER. # Amanpreet Singh Alam , 2004. # msgid "" msgstr "" "Project-Id-Version: pa\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2004-10-05 18:14+0530\n" "Last-Translator: Amanpreet Singh Alam \n" "Language-Team: Punjabi \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.3.1\n" "Plural-Forms: Plural-Forms: Plural-Forms: nplurals=2; plural=(n != 1);\n" "\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "ਮੇਲ ਰੰਗ" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "ਪਾਠ ਦਰਿਸ਼ ਫੋਂਟ" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "" #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "" #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "ਸੰਦ-ਪੱਟੀ ਸ਼ੈਲੀ" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "ਫਾਇਲ ਨੂੰ ਪੜਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ:" #: ../src/filetree.cc:80 msgid "File" msgstr "ਫਾਇਲ" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "" #: ../src/main.cc:77 msgid "Save _all" msgstr "_ਸਭ ਸੰਭਾਲੋ" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "" #: ../src/main.cc:134 msgid "PATTERN" msgstr "" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "" #: ../src/main.cc:140 msgid "REGEX" msgstr "" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "" #: ../src/main.cc:146 msgid "STRING" msgstr "ਸਤਰ" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "" #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "ਅਮਨਪ੍ਰੀਤ ਸਿੰਘ ਆਲਮ" #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "" #: ../src/statusline.cc:263 msgid "Stop" msgstr "ਰੋਕੋ" #: ../src/statusline.cc:270 msgid "File:" msgstr "ਫਾਇਲ:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "ਮੇਲ:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "ਜਾਰੀ ਖੋਜ ਨੂੰ ਰੱਦ ਕਰੋ" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "ਪਿੱਛੇ" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "ਫਾਇਲ ਪਿੱਛੇ" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "ਫਾਇਲ ਅੱਗੇ" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "ਫਾਇ_ਲਾਂ ਖੋਜ" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "ਫੋਲ_ਡਰ:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "ਅੱਗੇ" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "ਤਰਤੀਬ:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "ਨਮੂਨਾ" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "ਮੌਜੂ_ਦਾ ਤਬਦੀਲ" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "ਮੌਜੂਦਾ ਮੇਲ ਵਿੱਚ ਤਬਦੀਲ" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "_ਸਾਰੀਆਂ ਫਾਇਲਾਂ ਵਿੱਚ ਤਬਦੀਲ" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "_ਇਸ ਫਾਇਲ ਵਿੱਚ ਤਬਦੀਲ" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "ਤਬਦੀਲ:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "ਖੋਜ:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_ਸਾਰੀਆਂ ਫਾਇਲਾਂ" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_ਸੋਧ" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_ਫਾਇਲ" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "_ਸਹਾਇਤਾ" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_ਮੇਲ" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "_ਅੱਗੇ ਫਾਇਲ" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "_ਪਿੱਛੇ ਫਾਇਲ" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_ਤਬਦੀਲ" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "_ਇਹ ਫਾਇਲ" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "ਓਹਲੇ" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "ਮੌਜੂ_ਦਾ ਮੇਲ ਰੰਗ:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "ਸਿਰਫ ਆਈਕਾਨ\n" "ਸਿਰਫ ਪਾਠ\n" "ਆਈਕਾਨ ਤੇ ਪਾਠ\n" "ਦੋਵੇਂ ਖਿਤਿਜੀ" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "ਮੇਰੀ ਪਸੰਦ" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "ਸੰਦ-ਪੱਟੀ _ਸ਼ੈਲੀ:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "_ਫਾਇਲ ਪਹੁੰਚ" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "_ਮੇਲ ਰੰਗ:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "_ਪਾਠ ਦਰਿਸ਼ ਫੋਂਟ:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" #~ msgid "_About" #~ msgstr "_ਇਸ ਬਾਰੇ" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[OPTION]... [FOLDER]" #~ msgid "Select a folder" #~ msgstr "ਇੱਕ ਫੋਲਡਰ ਚੁਣੋ" #~ msgid "About regexxer" #~ msgstr "regexxer ਬਾਰੇ" #~ msgid "regexxer icon" #~ msgstr "regexxer ਆਈਕਾਨ" #~ msgid "translated by" #~ msgstr "ਅਨੁਵਾਦਕ" #~ msgid "written by" #~ msgstr "ਲਿਖਿਆ ਹੈ" regexxer-0.9/po/pl.po0000644000175000017500000003221610566140450011532 00000000000000# Copyright (C) 2001-2004 Free Software Foundation, Inc. # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Aktualną wersję tego pliku możesz odnaleźć w repozytorium cvs.gnome.pl # (:pserver:anonymous@cvs.gnome.pl:/gnomepl, puste hasło) # Jeśli masz jakiekolwiek uwagi odnoszące się do tłumaczenia lub chcesz # pomóc w jego rozwijaniu i pielęgnowaniu, napisz do nas na adres: # translators@gnome.pl # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- msgid "" msgstr "" "Project-Id-Version: regexxer\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2004-09-21 20:47+02000\n" "Last-Translator: GNOME PL Team \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Wyszukuje i zastępuje przy użyciu wyrażeń regularnych" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "regexxer - narzędzie do wyszukiwania" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Kolor bieżącego dopasowania" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Kodowanie zastępcze" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Kolor dopasowania" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Nazwa zestawu kodowania znaków używana, gdy pliku nie można odczytać zarówno " "w UTF-8 jak i zestawie znaków zdefiniowanym przez bieżące ustawienia locale. " "Spróbuj “iconv --list” aby uzyskać listę dostępnych wartości." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Czcionka wyświetlania tekstu" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "Kolor tła używany do wyróżniania dopasowań wyszukiwanego wyrażenia." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "Kolor tła używany do wyróżniania obecnie zaznaczonych dopasowań " "wyszukiwanego wyrażenia." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "Czcionka używana w edytorze plików." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "Styl paska narzędziowego aplikacji. Dopuszczalne wartości to " "“icons” (ikony), “text” (tekst), “both” (ikony i tekst) oraz “both-" "horiz” (tekst i ikony poziomo)." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Styl paska narzędziowego" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Nie można odczytać pliku:" #: ../src/filetree.cc:80 msgid "File" msgstr "Plik" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Nie można zapisać pliku “%1”: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” wygląda na plik binarny." #: ../src/main.cc:77 msgid "Save _all" msgstr "Zapisz _wszystko" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Wyszukuje pliki pasujące do WZORCA" #: ../src/main.cc:134 msgid "PATTERN" msgstr "WZORZEC" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Bez podkatalogów" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Wyszukiwanie również ukrytych plików" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Wyszukuje tekst pasujący do WYRAŻENIA REGULARNEGO" #: ../src/main.cc:140 msgid "REGEX" msgstr "WYRAŻENIE REGULARNE" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Wyszukiwanie tylko pierwszego dopasowania w linii" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Wyszukiwanie niezależne od wielkości liter" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Zastępuje dopasowania CIĄGIEM" #: ../src/main.cc:146 msgid "STRING" msgstr "CIĄG" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Wypisuje położenie dopasowania na standardowe wyjście" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Bez automatycznego uruchamiania wyszukiwania" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Część plików nie została jeszcze zapisana.\n" "Czy mimo to wyjść?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Część plików nie została jeszcze zapisana.\n" "Czy mimo to kontynuować?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "Wzorzec wyszukiwania pliku nie jest poprawny." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "Podczas wyszukiwania wystąpiły następujące błędy:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "Podczas zapisu wystąpiły następujące błędy:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "GNOME PL Team " #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" "Używanie sekwencji sterującej \\C do dopasowania pojednyczego bajtu nie jest " "obsługiwane." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Błąd w wyrażeniu regularnym w “%1” (indeks %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Błąd w wyrażeniu regularnym:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "Osiągnięto ograniczenie rekurencji i powrotu mechanizmu obsługi wyrażenia " "regularnego." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” nie jest poprawnym kodowaniem." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Stop" #: ../src/statusline.cc:270 msgid "File:" msgstr "Plik:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Dopasowanie:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Przerywa uruchomine wyszukiwanie" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Wzorzec nazwy pliku taki jak używany przez powłokę. Obsługiwane są klasy " "znaków [ab] oraz wyrażenia klamrowe w stylu csh {a,b}." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Wyrażenie regularne w składni Perla" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Wstecz" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Plik wstecz" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Plik naprzód" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "Wyszukanie wszystkich plików pasujących do wzorca" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Wyszukanie wszystkich dopasowań wyrażenia regularnego" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Wyszukanie wszystkich możliwych dopasowań w linii" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Znajdź p_liki" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "Fol_der:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Naprzód" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Przechodzi do następnego dopasowania" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Przechodzi do poprzedniefo dopasowania" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Przechodzi do następnego pasującego pliku" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Przechodzi do poprzedniego pasującego pliku" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Wzorzec:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Podgląd" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Podgląd przypisania" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Z podkatalogami" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Zastąp bieżą_ce" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Zastępuje wszystkie dopasowania we wszystkich plikach" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Zastępuje wszystkie dopasowania w bieżącym pliku" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Zastępuje bieżące dopasowanie" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Z_astąp we wszystkich plikach" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Zastąp w _tym pliku" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Zastąp:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Wyszukaj:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "Nowy ciąg do przypisania. Tak jak w Perlu, można się odwoływać do części " "pasujących przy pomocy $1, $2, itd. lub nawet $+, $&, $` i $'. Operatory " "\\l, \\u, \\L, \\U i \\E są również obsługiwane." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_Wszystkie pliki" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_Edycja" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Plik" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "P_omoc" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Dopasowanie" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "_Następny plik" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "_Poprzedni plik" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Zastąp" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "_Ten plik" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "ukryte" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "rekursywnie" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "Kolor _bieżącego dopasowania:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "_Kodowanie zastępcze:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Tylko ikony\n" "Tylko napisy\n" "Ikony i napisy\n" "Napisy i ikony poziomo" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Preferencje" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "Kodowanie określone przez bieżące ustawienia lokalne" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "Styl p_aska narzędziowego:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "_Dostęp plików" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Wygląd i zachowanie" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "Kolor _dopasowania:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "Czcionka wyświetlania _tekstu:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "Program regexxer będzie próbował odczytać plik w następujących kodowaniach " "zanim się podda:" #~ msgid "_About" #~ msgstr "_O programie" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[OPCJA]... [FOLDER]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "Spróbuj “regexxer --help” aby uzyskać więcej informacji." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "Nazwa folderu “%1” zawiera znaki, które nie występują w kodowaniu " #~ "lokalnego systemu plików." #~ msgid "Select a folder" #~ msgstr "Wybór folderu" #~ msgid "About regexxer" #~ msgstr "Informacje o regexxer" #~ msgid "The application icon of regexxer" #~ msgstr "Ikona aplikacji regexxer" #~ msgid "regexxer icon" #~ msgstr "ikona regexxer" #~ msgid "translated by" #~ msgstr "tłumaczenie" #~ msgid "written by" #~ msgstr "napisany przez" #~ msgid "The directory to be searched" #~ msgstr "Przeszukiwany katalog" regexxer-0.9/po/pt.po0000644000175000017500000003345110566140450011544 00000000000000# regexxer's Portuguese translation. # Copyright © 2004 regexxer # This file is distributed under the same license as the regexxer package. # Duarte Loreto , 2004. # msgid "" msgstr "" "Project-Id-Version: 2.8\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2004-08-09 00:40+0000\n" "Last-Translator: Duarte Loreto \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Procurar e substituir utilizando expressões regulares" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "Ferramenta de Procura regexxer" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Cor de coincidência-actual" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Codificação de recurso" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Cor de coincidências" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Nome da codificação de caracteres a utilizar se um ficheiro não for legível " "em UTF-8 nem na codificação especificada pelo local actual. Tente “iconv --" "list” para obter uma lista completa dos valores possíveis." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Fonte da vista de texto" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "" "A cor de fundo utilizada para realçar as coincidências da expressão " "procurada." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "A cor de fundo utilizada para realçar a coincidência actualmente " "seleccionada de entre as obtidas pela expressão de procura." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "A fonte utilizada no editor de ficheiros." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "O estilo da barra de ferramentas da aplicação. Valores possíveis são " "“icons”, “text”, “both”, e “both-horiz”." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Estilo da barra de ferramentas" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Incapaz de ler o ficheiro:" #: ../src/filetree.cc:80 msgid "File" msgstr "Ficheiro" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Falha ao gravar o ficheiro “%1”. %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” parece ser um ficheiro binário." #: ../src/main.cc:77 msgid "Save _all" msgstr "Gravar _todos" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Procurar ficheiros com um PADRÃO coincidente" #: ../src/main.cc:134 msgid "PATTERN" msgstr "PADRÃO" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Não efectuar recursividade sobre os subdirectórios" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Também procurar ficheiros escondidos" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Procurar texto que coincida com a EXPREG" #: ../src/main.cc:140 msgid "REGEX" msgstr "EXPREG" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Procurar apenas a primeira coincidência numa linha" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Efectuar coincidências insensíveis à capitalização" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Substituir as coincidências por EXPRESSÃO" #: ../src/main.cc:146 msgid "STRING" msgstr "EXPRESSÃO" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Imprimir a localização da coincidência para a consola" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Não iniciar a procura automaticamente" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Alguns ficheiros ainda não foram gravados.\n" "Ainda assim terminar?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Alguns ficheiros ainda não foram gravados.\n" "Ainda assim prosseguir?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "O padrão de procura de ficheiros é inválido." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "Ocorreram os seguintes erros durante a procura:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "Ocorreram os seguintes erros durante a gravação:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "Duarte Loreto " #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" "A utilização da sequência de escape \\C para coincidir um único byte não é " "suportada." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Erro na expressão regular em “%1” (índice %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Erro na expressão regular:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "Atingido o limite de recursividade e retrocesso do motor de expressões " "regulares." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” não é uma codificação válida." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Parar" #: ../src/statusline.cc:270 msgid "File:" msgstr "Ficheiro:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Coincidência:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Cancela a procura em execução" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Um padrão de nome de ficheiro tal como o utilizado pela consola. São " "suportadas classes de caracteres [ab] e expressões estilo csh como {a,b}." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Uma expressão regular em sintaxe Perl" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Retroceder" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Retroceder no ficheiro" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Avançar no ficheiro" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "" "Procurar todos os ficheiros que coincidam com o padrão de nome de ficheiro" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Procurar todas as coincidências da expressão regular" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Procurar todas as coincidências possíveis numa linha" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Procurar fic_heiros" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "_Pasta:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Avançar" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Ir para a coincidência seguinte" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Ir para a coincidência anterior" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Ir para o ficheiro coincidente seguinte" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Ir para o ficheiro coincidente anterior" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Padrão:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Antever" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Antever a substituição" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Recursividade sobre os subdirectórios" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Substituir a a_ctual" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Substituir todas as coincidências em todos os ficheiros" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Substituir todas as coincidências no ficheiro actual" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Substituir a coincidência actual" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Substituir em _todos os ficheiros" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Substituir _neste ficheiro" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Substituir:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Procurar:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "A nova expressão a substituir. Tal como no Perl, pode referir-se a partes da " "coincidência utilizando $1, $2, etc. ou mesmo $+, $&, $` e $'. Também são " "suportados os operadores \\l, \\u, \\L, \\U e \\E." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_Todos os ficheiros" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_Editar" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Ficheiro" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "_Ajuda" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Coincidir" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "Ficheiro _seguinte" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "Ficheiro _anterior" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Substituir" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "_Este ficheiro" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "escondido" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "recursivo" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "Cor de coincidência act_ual:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "Codificação de _recurso:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Apenas ícones\n" "Apenas texto\n" "Ícones e texto\n" "Ambas horizontais" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Preferências" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "A codificação especificada pelo local actual" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "Estilo da _barra de ferramentas:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "Acesso de _ficheiros" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Aparência" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "_Cor de coincidência:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "Fonte da vista de _texto:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "regexxer tentará ler um ficheiro nas seguintes codificações, antes de " "desistir:" #~ msgid "_About" #~ msgstr "_Sobre" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[OPǺÃO]... [PASTA]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "Tente “regexxer --help” para mais informações." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "A pasta de nome “%1” contém caracteres sem representação na codificação " #~ "do sistema de ficheiros local." #~ msgid "Select a folder" #~ msgstr "Seleccione uma pasta" #~ msgid "About regexxer" #~ msgstr "Sobre o regexxer" #~ msgid "The application icon of regexxer" #~ msgstr "O ícone da aplicação regexxer" #~ msgid "regexxer icon" #~ msgstr "ícone do regexxer" #~ msgid "translated by" #~ msgstr "traduzido por" #~ msgid "written by" #~ msgstr "escrito por" #~ msgid "The directory to be searched" #~ msgstr "O directório onde procurar" #~ msgid "" #~ "If enabled, the text direction of the file editor, preview area, and all " #~ "file-related entry boxes is always set to left-to-right no matter what " #~ "the locale's default direction is." #~ msgstr "" #~ "Se activo, a direcção do texto do editor de ficheiro, área de antevisão e " #~ "todas as caixas de entrada relacionadas com ficheiros será sempre da " #~ "esquerda para a direita, independentemente de qual é a direcção por " #~ "omissão do local." #~ msgid "Override text direction" #~ msgstr "Redefinir a direcção do texto" #~ msgid "*" #~ msgstr "*" #~ msgid "_Ignore the text direction of the locale" #~ msgstr "_Ignorar a direcção de texto do local" #~ msgid "Debian package by" #~ msgstr "Pacote Debian por" #~ msgid "Color Selection" #~ msgstr "Selecção de Cor" regexxer-0.9/po/pt_BR.po0000644000175000017500000003321410566140450012124 00000000000000# Brazilian Portuguese translation of regexxer. # Copyright (C) 2004 Free Software Foundation, Inc. # This file is distributed under the same license as the regexxer package. # João Paulo Gomes Vanzuita , 2004. # Raphael Higino , 2004. # msgid "" msgstr "" "Project-Id-Version: regexxer\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2004-07-15 22:58-0300\n" "Last-Translator: Raphael Higino \n" "Language-Team: Brazilian Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Procure e substitua usando expressões regulares" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "regexxer - Ferramenta de Busca" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Cor do resultado atual" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Codificação secundária" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Cor do resultado" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Nome da codificação de caractere para usar se um arquivo não for legível em " "UTF-8 nem na codificação especificada pelo local atual. Tente “iconv --list” " "para uma lista completa de possíveis valores." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Fonte de visualização do texto" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "" "A cor de fundo usada para destacar os resultados da expressão de busca." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "A cor de fundo usada para destacar o resultado atualmente selecionado da " "expressão de busca." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "A fonte usada no editor de arquivo." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "O estilo da barra de ferramentas da aplicação. Valores possíveis são " "“icons”, “text”, “both” e “both-horiz”." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Estilo da barra de ferramentas" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Impossível ler o arquivo:" #: ../src/filetree.cc:80 msgid "File" msgstr "Arquivo" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Falha ao salvar o arquivo “%1”: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” parece ser um arquivo binário." #: ../src/main.cc:77 msgid "Save _all" msgstr "Salvar _tudo" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Encontrar arquivos que coincidem com PADRÃO" #: ../src/main.cc:134 msgid "PATTERN" msgstr "PADRÃO" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Não descer nos sub-diretórios" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Procurar arquivos ocultos também" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Encontrar texto que coincida com EXREG" #: ../src/main.cc:140 msgid "REGEX" msgstr "EXREG" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Procurar apenas o primeiro resultado em uma linha" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Diferenciar maiúsc./minúsc. na busca" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Substituir resultados com EXPRESSÃO" #: ../src/main.cc:146 msgid "STRING" msgstr "EXPRESSÃO" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Imprimir a localização do resultado na saída padrão" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Não iniciar buscas automaticamente" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Alguns arquivos ainda não foram salvos.\n" "Sair mesmo assim?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Alguns arquivos ainda não foram salvos.\n" "Continuar mesmo assim?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "O padrão de busca de arquivos é invalido." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "Os seguintes erros ocorreram durante a busca:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "Os seguintes erros ocorreram durante a gravação:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "" "João Paulo Gomes Vanzuita \n" "Raphael Higino " #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" "O uso da sequência de escape \\C para coincidir um único byte não é " "suportado." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Erro na expressão regular em “%1” (índice %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Erro na expressão regular:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "Atingido o limite de recursividade e de retrocesso do mecanismo de " "expressões regulares." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” não é uma codificação valida." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Parar" #: ../src/statusline.cc:270 msgid "File:" msgstr "Arquivo:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Parâmetro:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Cancela a busca atual" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Um exemplo de nome de arquivo tal como usado pelo console. São suportadas " "classes de caracteres [ab] e expressões no estilo csh como {a,b}." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "A expressão regular na sintaxe Perl" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Recuar" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Recuar no arquivo" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Avançar no arquivo" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "" "Procura todos os arquivos que coincidem com o padrão de nome de arquivo" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Procura todas as coincidências da expressão regular" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Procura todas as possíveis coincidências em uma linha" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Procurar _arquivos" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "_Pasta:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Para frente" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Vai para o próximo resultado" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Vai para o resultado anterior" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Vai para o próximo arquivo correspondente" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Vai para o arquivo correspondente anterior" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Padrão:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Prévia" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Prévia da substituição" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Descer nos sub-diretórios" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Substituir _atual" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Substitui todos os resultados em todos os arquivos" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Substitui todos os resultados no arquivo atual" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Substitui o resultado atual" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Substituir em todos os _arquivos" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Substituir nes_te arquivo" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Substituir:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Procurar:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "A nova expressão para substituir. Assim como em Perl, você pode referir-se a " "partes do resultado usando $1, $2, etc. ou mesmo $+, $& $` e $'. Também são " "suportados os operadores \\l, \\u, \\L, \\U e \\E." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "Todos os _arquivos" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_Editar" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Arquivo" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "Aj_uda" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Resultado" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "_Próximo arquivo" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "_Arquivo anterior" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Substituir" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "_Este arquivo" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "oculto" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "recursivo" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "Cor do resultado at_ual:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "Codificação s_ecundária:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Apenas ícones\n" "Apenas texto\n" "Texto e ícones\n" "Ambos horizontais" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Preferências" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "A codificação especificada pelo local atual" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "Estilo da _barra de ferramentas:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "Acesso de ar_quivo" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Aparência" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "Cor do _resultado:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "Fonte de visualização do _texto:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "O regexxer tentará ler um arquivo nas seguintes codificações antes de " "desistir:" #~ msgid "_About" #~ msgstr "_Sobre" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[OPÇÕES]... [PASTA]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "Tente “regexxer --help” para mais informações." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "O nome da pasta %1 contém caracteres que não podem ser representados na " #~ "codificação do sistema de arquivos local." #~ msgid "Select a folder" #~ msgstr "Selecione uma pasta" #~ msgid "About regexxer" #~ msgstr "Sobre o regexxer" #~ msgid "The application icon of regexxer" #~ msgstr "O ícone de aplicação do regexxer" #~ msgid "regexxer icon" #~ msgstr "ícone do regexxer" #~ msgid "translated by" #~ msgstr "traduzido por" #~ msgid "written by" #~ msgstr "escrito por" #~ msgid "The directory to be searched" #~ msgstr "O diretório no qual procurar" #~ msgid "" #~ "If enabled, the text direction of the file editor, preview area, and all " #~ "file-related entry boxes is always set to left-to-right no matter what " #~ "the locale's default direction is." #~ msgstr "" #~ "Se ativo a direção do texto do edtitor de arquivo, area prévia, e todas " #~ "as caixas de entrada relacionadas do arquivo será sempre da esquerda para " #~ "a direita independente de qual é a direção padrão." #~ msgid "Override text direction" #~ msgstr "Substituir direção do texto" #~ msgid "*" #~ msgstr "*" #~ msgid "_Ignore the text direction of the locale" #~ msgstr "_Ignorar direção de texto do local" regexxer-0.9/po/rw.po0000644000175000017500000003543210566140450011552 00000000000000# translation of regexxer to Kinyarwanda. # Copyright (C) 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the regexxer package. # Steve Murphy , 2005 # Steve performed initial rough translation from compendium built from translations provided by the following translators: # Philibert Ndandali , 2005. # Viateur MUGENZI , 2005. # Noëlla Mupole , 2005. # Carole Karema , 2005. # JEAN BAPTISTE NGENDAHAYO , 2005. # Augustin KIBERWA , 2005. # Donatien NSENGIYUMVA , 2005.. # msgid "" msgstr "" "Project-Id-Version: regexxer HEAD\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2005-03-31 20:55-0700\n" "Last-Translator: Steve Murphy \n" "Language-Team: Kinyarwanda \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "ULL NAME \n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 #, fuzzy msgid "Search and replace using regular expressions" msgstr "Na Gusimbura ikoresha Ibisanzwe" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "" #: ../ui/regexxer.schemas.in.h:1 #, fuzzy msgid "Current-match color" msgstr "BIHUYE Ibara" #: ../ui/regexxer.schemas.in.h:2 #, fuzzy msgid "Fallback encoding" msgstr "Imisobekere:" #: ../ui/regexxer.schemas.in.h:3 #, fuzzy msgid "Match color" msgstr "Ibara" #: ../ui/regexxer.schemas.in.h:4 #, fuzzy msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Bya i Inyuguti Imisobekere: Kuri Gukoresha NIBA a IDOSIYE ni OYA in 8 " "Cyangwa i ku i KIGEZWEHO Umwanya Urutonde kugirango a Byuzuye Urutonde Bya " "Uduciro" #: ../ui/regexxer.schemas.in.h:5 #, fuzzy msgid "Text view font" msgstr "Kureba Intego- nyuguti" #: ../ui/regexxer.schemas.in.h:6 #, fuzzy msgid "" "The background color used to highlight matches of the search expression." msgstr "Mbuganyuma Ibara Kuri garagaza cyane Bya i Gushaka imvugo" #: ../ui/regexxer.schemas.in.h:7 #, fuzzy msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "Mbuganyuma Ibara Kuri garagaza cyane i Byahiswemo BIHUYE Bya i Gushaka imvugo" #: ../ui/regexxer.schemas.in.h:8 #, fuzzy msgid "The font used in the file editor." msgstr "Intego- nyuguti in i IDOSIYE Muhinduzi" #: ../ui/regexxer.schemas.in.h:9 #, fuzzy msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "IMISUSIRE Bya i Umwanyabikoresho Uduciro Udushushondanga Umwandiko Byombi Na " "Byombi" #: ../ui/regexxer.schemas.in.h:10 #, fuzzy msgid "Toolbar style" msgstr "IMISUSIRE" #: ../src/filebuffer.cc:198 #, fuzzy msgid "Can’t read file:" msgstr "Gusoma IDOSIYE" # sc/source\ui\src\scfuncs.src:RID_SC_FUNCTION_DESCRIPTIONS2.SC_OPCODE_DDE.4.text #: ../src/filetree.cc:80 msgid "File" msgstr "Idosiye" # sw/source\ui\index\cnttab.src:TP_TOX_ENTRY.WIN_TOKEN.STR_TOKEN_PAGE_NUMS.text #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, fuzzy, qt-format msgid "Failed to save file “%1”: %2" msgstr "Kuri Kubika IDOSIYE" #: ../src/filetree.cc:946 #, fuzzy, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1”Kuri a Nyabibiri IDOSIYE" # sfx2/sdi\sfxslots.src:SID_SAVEDOCS.text #: ../src/main.cc:77 #, fuzzy msgid "Save _all" msgstr "Gushyingura Byose" #: ../src/main.cc:134 #, fuzzy msgid "Find files matching PATTERN" msgstr "Idosiye" # sc/source\ui\src\autofmt.src:RID_SCDLG_AUTOFORMAT.BTN_PATTERN.text #: ../src/main.cc:134 #, fuzzy msgid "PATTERN" msgstr "Ishusho" #: ../src/main.cc:136 #, fuzzy msgid "Do not recurse into subdirectories" msgstr "OYA Ububiko bwungirije" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 #, fuzzy msgid "Also find hidden files" msgstr "Gushaka gihishwe Idosiye" #: ../src/main.cc:140 #, fuzzy msgid "Find text matching REGEX" msgstr "Umwandiko" #: ../src/main.cc:140 msgid "REGEX" msgstr "" #: ../src/main.cc:142 #, fuzzy msgid "Find only the first match in a line" msgstr "i Itangira BIHUYE in a Umurongo" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "" #: ../src/main.cc:146 #, fuzzy msgid "Replace matches with STRING" msgstr "Na:" # svx/source\options\optcolor.src:RID_SVXPAGE_COLORCONFIG.CT_COLORCONFIG.WN_SCROLL.FT_BASICSTRING.text #: ../src/main.cc:146 #, fuzzy msgid "STRING" msgstr "Ikurikiranyanyuguti" #: ../src/main.cc:148 #, fuzzy msgid "Print match location to standard output" msgstr "BIHUYE Ahantu Kuri Bisanzwe Ibisohoka" #: ../src/main.cc:150 #, fuzzy msgid "Do not automatically start search" msgstr "OYA ku buryo bwikora Gutangira Gushaka" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 #, fuzzy msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "Idosiye" #: ../src/mainwindow.cc:427 #, fuzzy msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "Wapfagukomeza." #: ../src/mainwindow.cc:455 #, fuzzy msgid "The file search pattern is invalid." msgstr "IDOSIYE Gushaka Ishusho ni Sibyo" #: ../src/mainwindow.cc:461 #, fuzzy msgid "The following errors occurred during search:" msgstr "Amakosa Gushaka" #: ../src/mainwindow.cc:708 #, fuzzy msgid "The following errors occurred during save:" msgstr "Amakosa Kubika" #: ../src/mainwindow.cc:854 #, fuzzy msgid "translator-credits" msgstr "Umusemuzi" #: ../src/pcreshell.cc:62 #, fuzzy msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "i Kuri BIHUYE a UMWE Bayite ni OYA" #: ../src/pcreshell.cc:84 #, fuzzy, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "in Ibisanzwe imvugo ku Umubarendanga" #: ../src/pcreshell.cc:89 #, fuzzy, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "in Ibisanzwe imvugo" #: ../src/pcreshell.cc:171 #, fuzzy msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "i Na Bya i Ibisanzwe imvugo" #: ../src/prefdialog.cc:249 #, fuzzy, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1”ni OYA a Byemewe Imisobekere:" # basctl/source\basicide\basidesh.src:RID_BASICIDE_OBJECTBAR.SID_BASICSTOP.text #: ../src/statusline.cc:263 msgid "Stop" msgstr "Guhagarara" # sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_LINKERRORFILE.text #: ../src/statusline.cc:270 msgid "File:" msgstr "Idosiye:" # sc/source\core\src\compiler.src:RID_SC_FUNCTION_NAMES.SC_OPCODE_MATCH.text #: ../src/statusline.cc:273 #, fuzzy msgid "Match:" msgstr "BIHUYE" #: ../src/statusline.cc:284 #, fuzzy msgid "Cancels the running search" msgstr "i Gushaka" #: ../ui/mainwindow.glade.h:1 #, fuzzy msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "A Izina ry'idosiye: Ishusho Nka ku i Igikonoshwa Inzego Na IMISUSIRE a B" #: ../ui/mainwindow.glade.h:2 #, fuzzy msgid "A regular expression in Perl syntax" msgstr "A Ibisanzwe imvugo in" # 505 #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "subira inyuma" #: ../ui/mainwindow.glade.h:6 #, fuzzy msgid "File backward" msgstr "Idosiye subira inyuma" #: ../ui/mainwindow.glade.h:7 #, fuzzy msgid "File forward" msgstr "Idosiye Imbere" #: ../ui/mainwindow.glade.h:8 #, fuzzy msgid "Find all files that match the filename pattern" msgstr "Byose Idosiye BIHUYE i Izina ry'idosiye: Ishusho" #: ../ui/mainwindow.glade.h:9 #, fuzzy msgid "Find all matches of the regular expression" msgstr "Byose Bya i Ibisanzwe imvugo" #: ../ui/mainwindow.glade.h:10 #, fuzzy msgid "Find all possible matches in a line" msgstr "Byose in a Umurongo" # 2308 #: ../ui/mainwindow.glade.h:11 #, fuzzy msgid "Find fi_les" msgstr "shaka amadosiye" #: ../ui/mainwindow.glade.h:12 #, fuzzy msgid "Fol_der:" msgstr "Ububiko..." # sch/sdi\schslots.src:SID_ROW_MOREFRONT.text #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Imbere" #: ../ui/mainwindow.glade.h:14 #, fuzzy msgid "Go to next match" msgstr "Kuri Komeza>> BIHUYE" #: ../ui/mainwindow.glade.h:15 #, fuzzy msgid "Go to previous match" msgstr "Kuri Ibanjirije BIHUYE" #: ../ui/mainwindow.glade.h:16 #, fuzzy msgid "Go to the next matching file" msgstr "Kuri i Komeza>> IDOSIYE" #: ../ui/mainwindow.glade.h:17 #, fuzzy msgid "Go to the previous matching file" msgstr "Kuri i Ibanjirije IDOSIYE" # sc/source\ui\src\autofmt.src:RID_SCDLG_AUTOFORMAT.BTN_PATTERN.text #: ../ui/mainwindow.glade.h:18 #, fuzzy msgid "Pattern:" msgstr "Ishusho" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Igaragazambere" #: ../ui/mainwindow.glade.h:20 #, fuzzy msgid "Preview of the substitution" msgstr "Bya i" #: ../ui/mainwindow.glade.h:21 #, fuzzy msgid "Recurse into subdirectories" msgstr "Ububiko bwungirije" #: ../ui/mainwindow.glade.h:22 #, fuzzy msgid "Replace _current" msgstr "KIGEZWEHO" #: ../ui/mainwindow.glade.h:23 #, fuzzy msgid "Replace all matches in all files" msgstr "Byose in Byose Idosiye" #: ../ui/mainwindow.glade.h:24 #, fuzzy msgid "Replace all matches in the current file" msgstr "Byose in i KIGEZWEHO IDOSIYE" #: ../ui/mainwindow.glade.h:25 #, fuzzy msgid "Replace current match" msgstr "KIGEZWEHO BIHUYE" #: ../ui/mainwindow.glade.h:26 #, fuzzy msgid "Replace in _all files" msgstr "in Byose Idosiye" #: ../ui/mainwindow.glade.h:27 #, fuzzy msgid "Replace in _this file" msgstr "in iyi IDOSIYE" #: ../ui/mainwindow.glade.h:28 #, fuzzy msgid "Replace:" msgstr "Gusimbura:" # #-#-#-#-# so3.pot (PACKAGE VERSION) #-#-#-#-# # so3/src\svuidlg.src:MD_INSERT_OLEOBJECT.BTN_FILEPATH.text # #-#-#-#-# so3.pot (PACKAGE VERSION) #-#-#-#-# # so3/src\svuidlg.src:MD_INSERT_OBJECT_APPLET.BTN_CLASS.text #: ../ui/mainwindow.glade.h:29 #, fuzzy msgid "Search:" msgstr "Gushakisha..." #: ../ui/mainwindow.glade.h:30 #, fuzzy msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "Gishya Ikurikiranyanyuguti Kuri GUSIMBURANYA in Kuri Bya i BIHUYE ikoresha " "Cyangwa ATARIIGIHARWE Na Mukoresha Na Nka" # 146 #: ../ui/mainwindow.glade.h:31 #, fuzzy msgid "_All files" msgstr "amadosiye yose" # #-#-#-#-# basctl.pot (PACKAGE VERSION) #-#-#-#-# # basctl/source\basicide\basidesh.src:RID_BASICMENU.MN_EDIT.text # #-#-#-#-# basctl.pot (PACKAGE VERSION) #-#-#-#-# # basctl/source\basicide\basidesh.src:RID_BASICPLUGINMENU.MN_PLEDIT.text # #-#-#-#-# basctl.pot (PACKAGE VERSION) #-#-#-#-# # basctl/source\basicide\macrodlg.src:RID_MACROCHOOSER.RID_PB_EDIT.text # #-#-#-#-# basctl.pot (PACKAGE VERSION) #-#-#-#-# # basctl/source\basicide\moduldlg.src:RID_TP_MODULS.RID_PB_EDIT.text # #-#-#-#-# basctl.pot (PACKAGE VERSION) #-#-#-#-# # basctl/source\basicide\moduldlg.src:RID_TP_LIBS.RID_PB_EDIT.text #: ../ui/mainwindow.glade.h:32 #, fuzzy msgid "_Edit" msgstr "Guhindura" # sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_HFCMD_FILE.text #: ../ui/mainwindow.glade.h:33 #, fuzzy msgid "_File" msgstr "IDOSIYE" #: ../ui/mainwindow.glade.h:34 #, fuzzy msgid "_Help" msgstr "Ifashayobora" # sc/source\core\src\compiler.src:RID_SC_FUNCTION_NAMES.SC_OPCODE_MATCH.text #: ../ui/mainwindow.glade.h:35 #, fuzzy msgid "_Match" msgstr "BIHUYE" #: ../ui/mainwindow.glade.h:36 #, fuzzy msgid "_Next file" msgstr "IDOSIYE" #: ../ui/mainwindow.glade.h:37 #, fuzzy msgid "_Previous file" msgstr "IDOSIYE" # offmgr/source\offapp\dialog\autocdlg.src:RID_OFA_AUTOCORR_DLG.1.RID_OFAPAGE_AUTOCORR_REPLACE.text #: ../ui/mainwindow.glade.h:38 #, fuzzy msgid "_Replace" msgstr "Gusimbura" #: ../ui/mainwindow.glade.h:39 #, fuzzy msgid "_This file" msgstr "IDOSIYE" # sc/source\ui\navipi\navipi.src:RID_SCDLG_NAVIGATOR.STR_HIDDEN.text #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "gihishwe" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Wizard.Letter.Elements.Element3.Text.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Wizard.Fax.Elements.Element3.Text.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Wizard.Memo.Elements.Element3.Text.text #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 #, fuzzy msgid "C_urrent match color:" msgstr "BIHUYE Ibara" #: ../ui/prefdialog.glade.h:5 #, fuzzy msgid "Fallback _encoding:" msgstr "Imisobekere:" #: ../ui/prefdialog.glade.h:6 #, fuzzy msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "Na Gitambitse" # extracted from content/PrefsWindow.xul # LOCALIZATION NOTE : FILE UI for the outer parts of the Prefs dialog #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Ibyahisemo" #: ../ui/prefdialog.glade.h:11 #, fuzzy msgid "The encoding specified by the current locale" msgstr "Imisobekere: ku i KIGEZWEHO Umwanya" #: ../ui/prefdialog.glade.h:12 #, fuzzy msgid "Tool_bar style:" msgstr "IMISUSIRE" #: ../ui/prefdialog.glade.h:13 #, fuzzy msgid "UTF-8" msgstr "8" #: ../ui/prefdialog.glade.h:14 #, fuzzy msgid "_File access" msgstr "Idosiye" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "" #: ../ui/prefdialog.glade.h:16 #, fuzzy msgid "_Match color:" msgstr "Ibara" #: ../ui/prefdialog.glade.h:17 #, fuzzy msgid "_Text view font:" msgstr "Kureba Intego- nyuguti" #: ../ui/prefdialog.glade.h:18 #, fuzzy msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "Kuri Gusoma a IDOSIYE in i Mbere Hejuru" #, fuzzy #~ msgid "_About" #~ msgstr "Bigyanye" #, fuzzy #~ msgid "Try “regexxer --help” for more information." #~ msgstr "Ifashayobora kugirango Birenzeho Ibisobanuro" #, fuzzy #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "Ububiko Izina: Kirimo Inyuguti OYA in i Imisobekere: Bya i IDOSIYE " #~ "Sisitemu" #, fuzzy #~ msgid "Select a folder" #~ msgstr "a Ububiko" #, fuzzy #~ msgid "The application icon of regexxer" #~ msgstr "Porogaramu Agashushondanga Bya" #, fuzzy #~ msgid "regexxer icon" #~ msgstr "Agashushondanga" #, fuzzy #~ msgid "translated by" #~ msgstr "ku" #, fuzzy #~ msgid "written by" #~ msgstr "ku" #, fuzzy #~ msgid "The directory to be searched" #~ msgstr "bushyinguro Kuri" regexxer-0.9/po/sl.po0000644000175000017500000003105710566140450011537 00000000000000# Slovenian translation of regexxer. # Copyright (C) 2006-2007 Free Software Foundation, Inc. # This file is distributed under the same license as the regexxer package. # # Matej Urbančič , 2006, 2007. # msgid "" msgstr "" "Project-Id-Version: regexxer HEAD branch\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2007-01-23 07:32+0100\n" "Last-Translator: Matej Urbančič \n" "Language-Team: Slovenian GNOME Translation Team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" "%100==4 ? 2 : 3);\n" "X-Poedit-Country: SLOVENIA\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Išči in zamenjaj s pomočjo logičnih izrazov" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "regexxer orodje za iskanje" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Trenutna barva zadetka" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Povratni nabor" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Barva zadetka" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Ime znakovnega nabora, ki naj bo uporabljen, če datoteke ni možno prebrati v " "UTF-8 ali naboru določenem v sistemu. Vtipkajte “iconv --list” za celoten " "spisek možnih vrednosti." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Pisava besedila" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "Barva ozadja za označevanje zadetkov iskalnih izrazov." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "Barva ozadja za označitev trenutno izbranega zadetka iskalnega izraza." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "Pisava uporabljena v urejevalcu datotek." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "Stil orodne vrstice. Možne vrednosti so \"ikone\", \"besedilo\", \"oboje\", " "in \"oboje-vodoravno\"." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Stil orodne vrstice" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Ni mogoče prebrati datoteke:" #: ../src/filetree.cc:80 msgid "File" msgstr "Datoteka" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Napaka pri shranjevanju datoteke “%1”: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” izgleda kot binarna datoteka." #: ../src/main.cc:77 msgid "Save _all" msgstr "Shrani _vse" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Poišči datoteke primerljive z VZORCEM" #: ../src/main.cc:134 msgid "PATTERN" msgstr "VZOREC" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Ne pregleduj podmap" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Preišči tudi skrite datoteke" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Poišči besedilo primerljivo z IZRAZOM" #: ../src/main.cc:140 msgid "REGEX" msgstr "IZRAZ" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Poišči samo prvi zadetek v vrstici" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Pri primerjavi ne upoštevaj velikosti črk" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Zamenjaj zadetke z NIZOM" #: ../src/main.cc:146 msgid "STRING" msgstr "NIZ" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Izpiši položaj zadetka na standardni izhod." #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Ne začni samodejnega iskanja" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "[MAPA]" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Nekatere datoteke še niso shranjene.\n" "Vseeno zaključim?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Nekatere datoteke še niso shranjene.\n" "Vseeno nadaljujem?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "Vzorec za iskanje datotek je napačen." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "Napake, ki so nastale med iskanjem:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "Napake, ki so nastale med shranjevanjem:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "Matej Urbančič " #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" "Uporaba \\C izhodne sekvence za primerjanje enojnega bajta ni podprta." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Napaka v logičnem izrazu pri “%1” (indeks %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Napaka v logičnem izrazu:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "Dosežena je globina iskanja v podmapah in omejitev povratnega sledenja " "orodja logičnih izrazov." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” ni veljavni nabor znakov." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Ustavi" #: ../src/statusline.cc:270 msgid "File:" msgstr "Datoteka:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Zadetek:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Prekine trenutno iskanje" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Vzorec imena datoteke, kot je uporabljen v konzoli. Znakovni razredi [ab] in " "csh stil oklepajnih izrazov {a,b} so podprti." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Logični izrazi v Perl sintaksi" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Nazaj" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Predhodna datoteka" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Naslednja datoteka" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "Poišči vsa imena datotek, ki so primerljiva z vzorcem iskanja" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Poišči vse zadetke logičnih izrazov" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Poišči vse možne zadetke v vrstici" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Poišči _datoteke" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "_Mapa:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Naprej" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Pojdi na naslednji zadetek" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Pojdi na predhodni zadetek" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Pojdi na naslednjo datoteko primerljivo z vzorcem" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Pojdi na predhodno datoteko primerljivo z vzorcem" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Vzorec:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Predogled" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Predogled zamenjav" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Izvedi po strukturi map" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Zamenjaj _trenutno" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Zamenjaj vse zadetke v vseh datotekah" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Zamenjaj vse zadetke v trenutni datoteki" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Zamenjaj trenutni zadetek" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Zamenjaj v _vseh datotekah" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Zamenjaj v _tej datoteki" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Zamenjaj:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Poišči:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "Nov niz za zamenjavo. Kot v Perlu lahko določite dele zadetkov z uporabo $1, " "$2, itd. ali celo $+, $&, $` in $'. Operatorji \\l, \\u, \\L, \\U in \\E so " "prav tako podprti." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_Vsa datoteke" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_Uredi" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Datoteka" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "_Pomoč" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Zadetki" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "_Naslednja datoteka" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "_Predhodna datoteka" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Zamenjaj" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "_Ta datoteka" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "skrito" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "po strukturi map" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "Tren_utna barva zadetka:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "Povratni _nabor:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Samo ikone\n" "Samo besedilo\n" "Ikone in besedilo\n" "Oboje vodoravno" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Lastnosti" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "Kodni nabor določen s trenutnimi nastavitvami" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "_Stil orodne vrstice:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "_Dostop datotek" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Izgled in občutek" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "_Barva zadetka" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "_Pisava besedila:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "regexxer poskuša prebrati datoteko v privzetem kodiranju, preden prekine " "delovanje:" #~ msgid "_About" #~ msgstr "_O programu" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[MOŽNOST]... [MAPA]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "Vtipkajte “regexxer --help” za več informacij." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "Ime mape “%1” vsebuje znake, ki se jih ne da izpisati z uporabo " #~ "trenutnega nabora znakov datotečnega sistema." #~ msgid "Select a folder" #~ msgstr "Izberite mapo" #~ msgid "About regexxer" #~ msgstr "O programu regexxer" #~ msgid "The application icon of regexxer" #~ msgstr "Ikona programa regexxer" #~ msgid "regexxer icon" #~ msgstr "regexxer ikona" #~ msgid "translated by" #~ msgstr "prevedel" #~ msgid "written by" #~ msgstr "napisal" #~ msgid "The directory to be searched" #~ msgstr "Mapa, ki naj bo preiskana" regexxer-0.9/po/sr.po0000644000175000017500000003564110566140450011550 00000000000000# Serbian translation of regexxer # Courtesy of Prevod.org team (http://prevod.org/) -- 2004. # # This file is distributed under the same license as the regexxer package. # # Maintainer: Данило Шеган # msgid "" msgstr "" "Project-Id-Version: regexxer\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2004-09-06 13:16+0200\n" "Last-Translator: Данило Шеган \n" "Language-Team: Serbian (sr) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Претрага и замена помоћу регуларних израза" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "Алат за претрагу регизраз" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Боја текућег поклапања" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Резервно кодирање" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Боја за поклапање" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Име кодирања знакова које се користи ако датотека није УТФ-8 или скуп " "знакова који се користи у текућем локалитету. Пробајте „iconv --list“ за " "потпун списак допуштених вредности." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Фонт за текстуални преглед" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "Боја позадине за истицање поклапања са траженим изразом." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "Боја позадине за истицање текућег поклапања са траженим изразом." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "Фонт који се користи у уређивачу датотека." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "Стил траке алатки у програму. Допуштене вредности су „icons“, „text“, " "„both“, и „both-horiz“." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Стил алатки" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Не могу да учитам датотеку:" #: ../src/filetree.cc:80 msgid "File" msgstr "Датотека" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Неуспешно чување датотеке „%1“: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "Чини се да је „%1“ бинарна датотека." #: ../src/main.cc:77 msgid "Save _all" msgstr "Сачувај с_ве" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Нађи датотеке које одговарају ОБРАСЦУ" #: ../src/main.cc:134 msgid "PATTERN" msgstr "ОБРАЗАЦ" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Не улази у поддиректроијуме" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Нађи и сакривене датотеке" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Нађи текст који одговара РЕГИЗУ" #: ../src/main.cc:140 msgid "REGEX" msgstr "РЕГИЗ" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Нађи само прво поклапање у реду" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Тражи независно од величине слова" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Замени нађено са НИСКОМ" #: ../src/main.cc:146 msgid "STRING" msgstr "НИСКА" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Испиши положај поклапања на стандардни излаз" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Не почињи претрагу сам" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Неке датотеке још увек нису сачуване.\n" "Ипак затворити?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Неке датотеке још увек нису сачуване.\n" "Ипак наставити?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "Образац за тражење датотека је неисправан." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "Догодиле су се наредне грешке при претрази:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "Догодиле су се наредне грешке при чувању:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "" "Данило Шеган \n" "\n" "Prevod.org — превод на српски језик." #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "Употреба нарочитог низа \\C за тражење једног бајта није подржана." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Грешка у регуларном изразу „%1“ (индекс %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Грешка у регуларном изразу:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "Достигнуто је ограничење броја рекурзија и самопозивања библиотеке за " "регуларне изразе." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "„%1“ не представља исправно кодирање." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Заустави" #: ../src/statusline.cc:270 msgid "File:" msgstr "Датотека:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Поклапање:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Обуставља текућу претрагу" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Образац имена датотека се користи у љусци. Класе знакова [аб] и изрази у " "витичастим заградама у csh-стилу {а,б} су подржани." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Регуларни израз у Перл синтакси" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Назад" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Датотека уназад" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Датотека унапред" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "Нађи све датотеке чије име одговара обрасцу" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Нађи сва поклапања са регуларним изразом" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Нађи сва могућа поклапања у реду" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Нађи да_тотеке" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "_Директоријум:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Напред" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Иди на следеће поклапање" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Иди на претходно поклапање" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Иди на следећу нађену датотеку" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Иди на претходну нађену датотеку" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Образац:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Преглед" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Преглед замене" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Уђи у поддиректоријуме" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Замени _текући" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Замени сва поклапања у свим датотекама" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Замени сва поклапања у текућој датотеци" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Замени текуће поклапање" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Замени у _свим датотекама" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Замени у _овој датотеци" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Замени:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Тражи:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "Нова ниском којом заменити. Као у Перлу, можете се позвати на делове " "поклапања помоћу $1, $2, итд. а чак и $+, $&, $` и $'. Оператори \\l, \\u, " "\\L, \\U и \\E су такође подржани." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_Све датотеке" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_Уређивање" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Датотека" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "_Помоћ" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "По_клапање" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "С_ледећа датотека" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "П_ретходна датотека" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Замени" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "_Ова датотека" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "сакривени" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "рекурзивно" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "Боја текућег _поклапања:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "_Резервно кодирање:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Само иконе\n" "Само текст\n" "Иконе и текст\n" "Оба водоравно" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Поставке" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "Кодирање из текућег локалитета" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "Стил _алатки:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "УТФ-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "_Приступ датотеци" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Изглед и понашање" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "_Боја поклапања:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "Фонт за _текст:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "регизраз покушава да учита датотеку у наредним кодирањима пре него што " "одустане:" #~ msgid "_About" #~ msgstr "_О програму" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[ОПЦИЈА]... [ДИРЕКТОРИЈУМ]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "Пробајте „regexxer --help“ за детаље." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "Име директоријума „%1“ садржи знакове који се не могу представити у " #~ "кодирању локалног система датотека." #~ msgid "Select a folder" #~ msgstr "Изаберите директоријум" #~ msgid "About regexxer" #~ msgstr "О регизразу" #~ msgid "The application icon of regexxer" #~ msgstr "Икона програма регизраз" #~ msgid "regexxer icon" #~ msgstr "икона регизраза" #~ msgid "translated by" #~ msgstr "превео" #~ msgid "written by" #~ msgstr "написао" #~ msgid "The directory to be searched" #~ msgstr "Који директоријум претраживати:" regexxer-0.9/po/sr@Latn.po0000644000175000017500000003077510566140450012472 00000000000000# Serbian translation of regexxer # Courtesy of Prevod.org team (http://prevod.org/) -- 2004. # # This file is distributed under the same license as the regexxer package. # # Maintainer: Danilo Šegan # msgid "" msgstr "" "Project-Id-Version: regexxer\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2004-09-06 13:16+0200\n" "Last-Translator: Danilo Šegan \n" "Language-Team: Serbian (sr) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Pretraga i zamena pomoću regularnih izraza" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "Alat za pretragu regizraz" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Boja tekućeg poklapanja" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Rezervno kodiranje" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Boja za poklapanje" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Ime kodiranja znakova koje se koristi ako datoteka nije UTF-8 ili skup " "znakova koji se koristi u tekućem lokalitetu. Probajte „iconv --list“ za " "potpun spisak dopuštenih vrednosti." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Font za tekstualni pregled" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "Boja pozadine za isticanje poklapanja sa traženim izrazom." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "Boja pozadine za isticanje tekućeg poklapanja sa traženim izrazom." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "Font koji se koristi u uređivaču datoteka." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "Stil trake alatki u programu. Dopuštene vrednosti su „icons“, „text“, " "„both“, i „both-horiz“." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Stil alatki" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Ne mogu da učitam datoteku:" #: ../src/filetree.cc:80 msgid "File" msgstr "Datoteka" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Neuspešno čuvanje datoteke „%1“: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "Čini se da je „%1“ binarna datoteka." #: ../src/main.cc:77 msgid "Save _all" msgstr "Sačuvaj s_ve" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Nađi datoteke koje odgovaraju OBRASCU" #: ../src/main.cc:134 msgid "PATTERN" msgstr "OBRAZAC" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Ne ulazi u poddirektroijume" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Nađi i sakrivene datoteke" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Nađi tekst koji odgovara REGIZU" #: ../src/main.cc:140 msgid "REGEX" msgstr "REGIZ" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Nađi samo prvo poklapanje u redu" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Traži nezavisno od veličine slova" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Zameni nađeno sa NISKOM" #: ../src/main.cc:146 msgid "STRING" msgstr "NISKA" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Ispiši položaj poklapanja na standardni izlaz" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Ne počinji pretragu sam" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Neke datoteke još uvek nisu sačuvane.\n" "Ipak zatvoriti?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Neke datoteke još uvek nisu sačuvane.\n" "Ipak nastaviti?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "Obrazac za traženje datoteka je neispravan." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "Dogodile su se naredne greške pri pretrazi:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "Dogodile su se naredne greške pri čuvanju:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "" "Danilo Šegan \n" "\n" "Prevod.org — prevod na srpski jezik." #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "Upotreba naročitog niza \\C za traženje jednog bajta nije podržana." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Greška u regularnom izrazu „%1“ (indeks %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Greška u regularnom izrazu:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "Dostignuto je ograničenje broja rekurzija i samopozivanja biblioteke za " "regularne izraze." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "„%1“ ne predstavlja ispravno kodiranje." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Zaustavi" #: ../src/statusline.cc:270 msgid "File:" msgstr "Datoteka:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Poklapanje:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Obustavlja tekuću pretragu" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Obrazac imena datoteka se koristi u ljusci. Klase znakova [ab] i izrazi u " "vitičastim zagradama u csh-stilu {a,b} su podržani." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Regularni izraz u Perl sintaksi" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Nazad" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Datoteka unazad" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Datoteka unapred" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "Nađi sve datoteke čije ime odgovara obrascu" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Nađi sva poklapanja sa regularnim izrazom" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Nađi sva moguća poklapanja u redu" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Nađi da_toteke" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "_Direktorijum:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Napred" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Idi na sledeće poklapanje" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Idi na prethodno poklapanje" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Idi na sledeću nađenu datoteku" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Idi na prethodnu nađenu datoteku" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Obrazac:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Pregled" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Pregled zamene" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Uđi u poddirektorijume" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Zameni _tekući" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Zameni sva poklapanja u svim datotekama" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Zameni sva poklapanja u tekućoj datoteci" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Zameni tekuće poklapanje" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Zameni u _svim datotekama" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Zameni u _ovoj datoteci" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Zameni:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Traži:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "Nova niskom kojom zameniti. Kao u Perlu, možete se pozvati na delove " "poklapanja pomoću $1, $2, itd. a čak i $+, $&, $` i $'. Operatori \\l, \\u, " "\\L, \\U i \\E su takođe podržani." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_Sve datoteke" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_Uređivanje" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Datoteka" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "_Pomoć" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "Po_klapanje" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "S_ledeća datoteka" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "P_rethodna datoteka" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Zameni" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "_Ova datoteka" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "sakriveni" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "rekurzivno" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "Boja tekućeg _poklapanja:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "_Rezervno kodiranje:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Samo ikone\n" "Samo tekst\n" "Ikone i tekst\n" "Oba vodoravno" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Postavke" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "Kodiranje iz tekućeg lokaliteta" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "Stil _alatki:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "_Pristup datoteci" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Izgled i ponašanje" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "_Boja poklapanja:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "Font za _tekst:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "regizraz pokušava da učita datoteku u narednim kodiranjima pre nego što " "odustane:" #~ msgid "_About" #~ msgstr "_O programu" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[OPCIJA]... [DIREKTORIJUM]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "Probajte „regexxer --help“ za detalje." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "Ime direktorijuma „%1“ sadrži znakove koji se ne mogu predstaviti u " #~ "kodiranju lokalnog sistema datoteka." #~ msgid "Select a folder" #~ msgstr "Izaberite direktorijum" #~ msgid "About regexxer" #~ msgstr "O regizrazu" #~ msgid "The application icon of regexxer" #~ msgstr "Ikona programa regizraz" #~ msgid "regexxer icon" #~ msgstr "ikona regizraza" #~ msgid "translated by" #~ msgstr "preveo" #~ msgid "written by" #~ msgstr "napisao" #~ msgid "The directory to be searched" #~ msgstr "Koji direktorijum pretraživati:" regexxer-0.9/po/sv.po0000644000175000017500000003155710566140450011556 00000000000000# Swedish messages for regexxer. # Copyright (C) 2004 Free Software Foundation, Inc. # Daniel Nylander , 2006. # Christian Rose , 2004. # # $Id: sv.po,v 1.5 2006/03/01 09:27:16 dnylande Exp $ # msgid "" msgstr "" "Project-Id-Version: regexxer\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2007-01-09 23:30+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Sök och ersätt med hjälp av reguljära uttryck" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "Sökverktyget regexxer" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Färg för aktuell träff" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Teckenkodning att falla tillbaka på" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Matchningsfärg" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Namn på teckenkodning att använda om en fil inte är läsbar i varken UTF-8 " "eller teckenuppsättningen som angivits av aktuell lokal. Försök med “iconv --" "list” för en komplett lista av möjliga värden." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Typsnitt för textvy" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "" "Bakgrundsfärgen som används för att framhäva träffar från sökuttrycket." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "Bakgrundsfärgen som används för att framhäva aktuellt markerad träff från " "sökuttrycket." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "Typsnittet som används i filredigeraren." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "Stilen för programmets verktygsrad. Möjliga värden är “icons”, “text”, " "“both”, och “both-horiz”." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Stil på verktygsrad" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Kan inte läsa fil:" #: ../src/filetree.cc:80 msgid "File" msgstr "Fil" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Misslyckades med att spara filen “%1”: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” verkar vara en binärfil." #: ../src/main.cc:77 msgid "Save _all" msgstr "Spara _alla" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Hitta filer som matchar MÖNSTER" #: ../src/main.cc:134 msgid "PATTERN" msgstr "MÖNSTER" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Gå inte rekursivt in i underkataloger" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Hitta även dolda filer" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Hitta text som matchar REGUTR" #: ../src/main.cc:140 msgid "REGEX" msgstr "REGUTR" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Hitta endast första träffen på en rad" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Utför skiftlägesokänslig matchning" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Ersätt träffar med STRÄNG" #: ../src/main.cc:146 msgid "STRING" msgstr "STRÄNG" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Skriv ut träffplats till standard ut" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Starta inte sökningen automatiskt" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "[MAPP]" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Vissa filer har inte sparats ännu.\n" "Avsluta ändå?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Vissa filer har inte sparats ännu.\n" "Fortsätta ändå?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "Filsökmönstret är ogiltigt." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "Följande fel inträffade under sökningen:" # Sparandet? #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "Följande fel inträffade under sparning:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "" "Daniel Nylander\n" "Christian Rose\n" "\n" "Skicka synpunkter på översättningen till\n" "tp-sv@listor.tp-sv.se" #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "Använd specialsekvens \\C för att matcha en enstaka byte stöds inte." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Fel i reguljärt utrryck vid “%1” (index %2):\n" "%3" # SUN NEW TRANSLATION #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Fel i reguljärt uttryck:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" "Nådde gräns för rekursion och bakspårning för reguljära uttrycksmotorn." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” är inte en giltig teckenkodning." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Stopp" #: ../src/statusline.cc:270 msgid "File:" msgstr "Fil:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Träff:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Avbryter den körande sökningen" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Ett filnamnsmönster som används av skalet. Teckenklasser [ab] och csh-" "liknande klammerparentesuttryck {a,b} stöds." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Ett reguljärt uttryck i Perl-syntax" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Baklänges" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Fil _baklänges" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Fil framåt" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "Hitta alla filer som matchar filnamnsmönstret" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Hitta alla som matchar det reguljära uttrycket" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Hitta alla möjliga träffar på en rad" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Sök fi_ler" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "Ma_pp:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Framåt" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Gå till nästa träff" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Gå till föregående träff" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Gå till nästa matchande fil" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Gå till föregående matchande fil" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Mönster:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Förhandsvisning" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Förhandsvisning av ersättningen" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Gå rekursivt in i underkataloger" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Ersätt _aktuell" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Ersätt alla träffar i alla filer" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Ersätt alla träffar i den aktuella filen" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Ersätt aktuell träff" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Ersätt i _alla filer" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Ersätt i _denna fil" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Ersätt:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Sök:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "Den nya strängen att ersätta. Precis som i Perl, kan du referera till delar " "av träffen med $1, $2, etc. eller även $+, $&, $` och $'. Operanderna \\l, " "\\u, \\L, \\U och \\E stöds också." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_Alla filer" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_Redigera" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Arkiv" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "_Hjälp" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Träff" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "_Nästa fil" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "_Föregående fil" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Ersätt" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "_Denna fil" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "dold" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "rekursiv" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "Aktuell _matchande färg:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "Teckenkodning att falla tillbaka på:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Endast ikoner\n" "Endast text\n" "Ikoner och text\n" "Båda horisontellt" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Inställningar" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "Teckenkodningen som angivits av aktuell lokal" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "Verktygsradsstil:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "_Filåtkomst" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Utseende och känsla" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "Mat_chningsfärg:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "_Typsnitt för textvyn:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "regexxer försöker att läsa en fil i följande teckenkodningar före den ger " "upp:" #~ msgid "_About" #~ msgstr "_Om" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[FLAGGA]... [MAPP]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "Försök med “regexxer --help” för mer information." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "Mappnamnet “%1” innehåller tecken som inte finns representerade i " #~ "teckenkodningen för det lokala filsystemet." #~ msgid "Select a folder" #~ msgstr "Välj en mapp" #~ msgid "About regexxer" #~ msgstr "Om regexxer" #~ msgid "The application icon of regexxer" #~ msgstr "Programikonen för regexxer" #~ msgid "regexxer icon" #~ msgstr "regexxer-ikon" #~ msgid "translated by" #~ msgstr "Översatt av" #~ msgid "written by" #~ msgstr "skrivet av" #~ msgid "The directory to be searched" #~ msgstr "Katalogen som ska sökas i" #~ msgid "Override text direction" #~ msgstr "Åsidosätt textriktning" #~ msgid "*" #~ msgstr "*" #~ msgid "_Ignore the text direction of the locale" #~ msgstr "_Ignorera lokalens textriktning" #~ msgid "Debian package by" #~ msgstr "Debian-paket av" regexxer-0.9/po/uk.po0000644000175000017500000003634110566140450011541 00000000000000# Ukrainian translation to regexxer. # Copyright (C) 2004 Free Software Foundation, Inc # This file is distributed under the same license as the PACKAGE package. # Maxim Dziumanenko , 2004. # msgid "" msgstr "" "Project-Id-Version: regexxer\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2004-09-25 HO:MI+ZONE\n" "Last-Translator: Maxim Dziumanenko \n" "Language-Team: Ukrainian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Пошук та заміна з використанням регулярних виразів" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "Утиліта пошуку regexxer" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Колір поточної відповідності" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Запасне кодування" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Колір відповідності" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Назва кодування символів, що використовується якщо файл неможливо прочитати " "у UTF-8 або кодуванні поточної локалі. Перелік можливих значень можна " "переглянути виконавши “iconv --list”." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Шрифт текстової області" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "" "Колір тла, що використовується для підсвічення відповідностей пошуковому " "виразу." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "Колір тла, що використовується для підсвічення поточної вибраної " "відповідності пошуковому виразу." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "Шрифт, що використовується у редакторі файлів." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "Стиль панелі інструментів програми. Можливі значення: “icons” (значки), " "“text” (текст), “both” (значки та текст), та “both-horiz” (значки та текст " "горизонтально)." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Стиль панелі інструментів" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Не вдається прочитати файл:" #: ../src/filetree.cc:80 msgid "File" msgstr "Файл" #: ../src/filetree.cc:99 msgid "#" msgstr "№" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Не вдається зберегти файл “%1”: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” схожий на двійковий файл." #: ../src/main.cc:77 msgid "Save _all" msgstr "Зберегти вс_е" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Знайти файли, що відповідають ШАБЛОНУ" #: ../src/main.cc:134 msgid "PATTERN" msgstr "ШАБЛОН" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Не враховувати підкаталоги" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Також шукати у прихованих файлах" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Знайти текст, що відповідає РЕГВИРАЗУ" #: ../src/main.cc:140 msgid "REGEX" msgstr "РЕГВИРАЗ" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Шукати лише першу відповідність у рядку" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Не враховувати регістр при порівнянні" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Замінювати знайдені відповідності на РЯДОК" #: ../src/main.cc:146 msgid "STRING" msgstr "РЯДОК" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "Виводити позиції відповідностей у стандартний вивід" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Не починати пошук автоматично" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Деякі файли ще не були збережені.\n" "Все одно вийти?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Деякі файли ще не були збережені.\n" "Все одно продовжувати?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "Неправильний шаблон пошуку файлів." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "При пошуку виникли наступні помилки:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "При збереженні виникли наступні помилки:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "Максим Дзюманенко " #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" "Використання escape-послідовності \\C для відповідності одному байтові не " "підтримується." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Помилка у регулярному виразі у “%1” (індекс %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Помилка у регулярному виразі \n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "Досягнуто межу кількості рекурсій та повернень у регулярному виразі." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” не є правильним кодуванням." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Зупинити" #: ../src/statusline.cc:270 msgid "File:" msgstr "Файл:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Відповідність:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Скасовує процес пошуку" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Шаблон назви файлу у форматі оболонки. Підтримуються класи символів [ab] та " "вирази з дужками {a,b} у стилі csh." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Регулярний вираз із синтаксисом у стилі Perl" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Назад" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Файл назад" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Файл вперед" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "Знайти усі файли, які відповідають шаблону файлу" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Знайти усі відповідності регулярному виразу" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Знайти усі можливі відповідності у рядку" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Знайти ф_айли" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "_Тека:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Вперед" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Перейти до наступної відповідності" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Перейти до попередньої відповідності" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Перейти до наступного відповідного файлу" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Перейти до попереднього відповідного файлу" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Шаблон:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Попередній перегляд" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Попередній перегляд заміни" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Перевіряти підкаталоги" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Замінити _поточну" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Замінити усі відповідності в усіх файлах" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Замінити усі відповідності у поточному файлі" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Замінити поточну відповідність" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Замінити в _усіх файлах" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Замінити у _цьому файлі" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Замінити:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Шукати:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "Новий рядок для заміни. Як у Perl, ви можете посилатись на частини " "відповідності використовуючи $1, $2, тощо. Або навіть $+, $&, $` та $'. " "Також підтримуються оператори \\l, \\u, \\L, \\U та \\E." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_Усі файли" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_Правка" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Файл" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "_Довідка" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Відповідність" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "_Наступний файл" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "_Попередній файл" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "За_мінити" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "_Цей файл" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "приховані" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "рекурсивно" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "Колір _поточної відповідності:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "Запасне _кодування:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Лише значки\n" "Лише текст\n" "Значки та текст\n" "Значки та текст гориз." #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Параметри" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "Кодування вказане у поточній локалі" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "Стиль панелі _інструментів:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "Доступ до _файлів" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Вигляд" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "Колір _відповідностей:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "Шрифт _текстової області:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "regexxer намагається прочитати файл у наступних кодуваннях, перш ніж " "закінчить:" #~ msgid "_About" #~ msgstr "_Про програму" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[ПАРАМЕТР]... [ТЕКА]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "Додаткову інформацію дивіться у “regexxer --help”." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "Назва теки “%1” містить символи, які неможливо представити у кодуванні " #~ "локальної системи." #~ msgid "Select a folder" #~ msgstr "Виберіть теку" #~ msgid "About regexxer" #~ msgstr "Про програму regexxer" #~ msgid "The application icon of regexxer" #~ msgstr "Значок програми regexxer" #~ msgid "regexxer icon" #~ msgstr "значок regexxer" #~ msgid "translated by" #~ msgstr "переклад" #~ msgid "written by" #~ msgstr "автор" #~ msgid "The directory to be searched" #~ msgstr "Каталог пошуку" regexxer-0.9/po/vi.po0000644000175000017500000003273710566140450011545 00000000000000# Vietnamese Translation for regexxer.HEAD. # Copyright (C) 2005 Free Software Foundation, Inc. # Clytie Siddall , 2005. # msgid "" msgstr "" "Project-Id-Version: regexxer.HEAD\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2005-03-09 22:31+1000\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "Tìm kiếm và thay thế bằng sử dụng biểu thức chính quy" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "Công cụ Tìm kiếm regexxer" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "Màu cho điều khớp hiện có" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "Mã dự trữ" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "Màu cho điều khớp" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "Sử dụng mã ký tự này nếu không đọc được một tập tin nào đó bằng UTF-8 hay " "bằng bộ mã được ghi rõ cho miền địa phương hiện có. Hãy thử lệnh “iconv --" "list” để tìm thấy một danh sách các giá trị co thể." #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "Phông chữ khi xem câu" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "Màu nền được sử dụng để nổi bật điều khớp với biểu thức tìm kiếm." #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" "Màu nền được sử dụng để nổi bật điều đã chọn hiện có mà khớp với biểu thức " "tìm kiếm." #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "Phông chữ được sử dụng trong bộ hiệu chỉnh tập tin." #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "Kiểu thanh công cụ của ứng dụng. Những giá trị có thể là “icons” (biểu " "tượng), “text” (chữ), “both” (cả hai), and “both-horiz” (cả hai, ngang)." #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "Kiểu thanh công cụ" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "Không đọc được tập tin:" #: ../src/filetree.cc:80 msgid "File" msgstr "Tập tin" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "Không lưu được tập tin “%1”: %2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "Hình như “%1” là một tập tin nhị phân." #: ../src/main.cc:77 msgid "Save _all" msgstr "Lưu tất _cả" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "Tìm mọi tập tin khớp với MẪU" #: ../src/main.cc:134 msgid "PATTERN" msgstr "MẪU" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "Không đệ qui vào thư mục con" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "Cũng tìm mọi tập tin bị ẩn" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "Tìm mọi câu khớp với BIỂU THỨC CHÍNH QUY" #: ../src/main.cc:140 msgid "REGEX" msgstr "BIỂU THỨC CHÍNH QUY" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "Tìm chỉ điều khớp đầu trong mọi dòng thôi" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "Khi khớp thì bỏ qua hoa/thường" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "Chèn CHUỖI để thay thế mọi điều khớp" #: ../src/main.cc:146 msgid "STRING" msgstr "CHUỖI" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "In vị trí của điều khớp ra thiết bị xuất chuẩn" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "Không tự động bắt đầu tìm kiếm" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "Chưa lưu một số tập tin.\n" "Còn thoát không?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "Chưa lưu một số tập tin.\n" "Còn thoát không?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "Mẫu tìm kiếm tập tin ấy không hợp lệ." #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "Gặp những lỗi theo đây trong khi tìm kiếm:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "Gặp những lỗi theo đây trong khi lưu:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "Clytie Siddall " #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "Không hô trợ sử dụng dãy thoát \\C để khớp với một byte riêng lẻ." #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "Gặp lỗi trong biểu thức chính quy tại “%1” (chỉ mục %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "Gặp lỗi trong biểu thức chính quy:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "Đã đến giới hạn đệ qui và rút lui của dụng cụ biểu thức chính quy." #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” không phải là mã hợp lệ." #: ../src/statusline.cc:263 msgid "Stop" msgstr "Ngừng" #: ../src/statusline.cc:270 msgid "File:" msgstr "Tập tin:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "Khớp:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "Thôi việc tìm kiếm đang chạy" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "Một mẫu tên tập tin như được sử dụng bởi hệ vỏ. Hỗ trợ hạng ký tự [ab] và " "biểu thức dấu nháy kép kiểu csh [a,b]." #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Một biểu thức chính quy bằng cú pháp Perl" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "Ngược" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "Tập tin ngược" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "Tập tin tiếp" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "Tìm mọi tập tin khớp với mẫu tên tập tin" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "Tìm mọi điều khớp với biểu thức chính quy ấy" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "Tìm mọi điều khớp có thể trong một dòng nào đó" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "Tìm _tập tin" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "Danh _mục:" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "Tiếp" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "Tiếp đến điều khớp sau" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "Trở về điều khớp trước" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "Tiếp đến tập tin khớp sau" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "Trở về tập tin khớp trước" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "Mẫu:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "Xem trước" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "Xem trước điều thay thế" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "Đệ qui vào thư mục con" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "Thay thế _hiện có" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "Thay thế mọi điều khớp trong mọi tập tin" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "Thay thế mọi điều khớp trong tập tin hiện có" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "Thay thế điều khớp hiện có" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "Thay thế trong _mọi tập tin" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "Thay thế trong tập tin _này" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "Thay thế:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "Tìm kiếm:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "Chèn chuỗi mới này khi thay thế. Giống như bằng ngôn ngữ Perl, bạn có thể " "tra cứu phần điều khớp bằng sử dụng biến $1, $2, v.v., hay ngay cả biến $+, " "$&, $` và $'. Cũng hỗ trợ những toán tử \\l, \\u, \\L, \\U và \\E." #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "_Mọi tập tin" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "_Hiệu chỉnh" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "_Tập tin" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "Trợ _giúp" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "_Khớp" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "Tập tin _sau" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "Tập tin _trước" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "_Thay thế" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "Tập tin _này" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "bị ẩn" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "đệ qui" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "Màu cho điều khớp hiện có:" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "Mã hóa _dự trữ:" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "Chỉ biểu tượng thôi\n" "Chỉ chữ thôi\n" "Cả hai biểu tượng và chữ\n" "Cả hai ngang" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "Sở thích" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "Mã hóa được ghi rõ cho miền địa phương hiện có" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "Kiểu thanh _công cụ:" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "_Truy cập tập tin" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "_Hình thức và cảm giác" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "Màu _khớp:" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "Phông chữ khi xem _câu:" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" "Trình regexxer sẽ cố đọc một tập tin nào đó bằng những mã hóa theo đây trước " "khi thoát:" #~ msgid "_About" #~ msgstr "_Về trình..." #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[TÙY_CHỌN]... [DANH_MỤC]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "" #~ "Hãy thử lệnh “regexxer --help” (help = trợ giúp) để tìm kiếm thông tin " #~ "thêm." #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "" #~ "Tên danh mục “%1” bao gồm ký tự không thể được miêu tả bằng mã của hệ " #~ "thống tập tin địa phương." #~ msgid "Select a folder" #~ msgstr "Hãy chọn danh mục" #~ msgid "About regexxer" #~ msgstr "Về trinh regexxer" #~ msgid "The application icon of regexxer" #~ msgstr "Biểu tượng ứng dụng của regexxer" #~ msgid "regexxer icon" #~ msgstr "biểu tượng regexxer" #~ msgid "translated by" #~ msgstr "người dịch" #~ msgid "written by" #~ msgstr "tác giả" #~ msgid "The directory to be searched" #~ msgstr "Tìm kiếm thư mục này" regexxer-0.9/po/zh_CN.po0000644000175000017500000002521710566140450012123 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Funda Wang , 2004. # msgid "" msgstr "" "Project-Id-Version: regexxer HEAD\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2004-11-29 19:03+0800\n" "Last-Translator: Funda Wang \n" "Language-Team: zh_CN \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "使用正则表达式搜索并替换" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "regexxer 搜索工具" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "当前匹配的颜色" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "默认编码" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "匹配颜色" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "文本视图颜色" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "" #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "" #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "" #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "工具栏样式" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "无法读取文件:" #: ../src/filetree.cc:80 msgid "File" msgstr "文件" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "保存文件“%1”失败:%2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1”似乎是二进制文件。" #: ../src/main.cc:77 msgid "Save _all" msgstr "全部保存(_A)" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "查找与[模式]匹配的文件" #: ../src/main.cc:134 msgid "PATTERN" msgstr "模式" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "不进入子目录" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "也查找隐藏文件" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "查找与[正则表达式]匹配的文本" #: ../src/main.cc:140 msgid "REGEX" msgstr "正则表达式" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "" #: ../src/main.cc:146 msgid "STRING" msgstr "" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "某些文件尚未保存。仍然退出吗?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "某些文件尚未保存。\n" "仍然继续吗?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "" #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "搜索时发生了下列错误:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "" "开源软件国际化之 GNOME 简体中文组\n" "\thttp://i18n.linux.net.cn" #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "" #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "正则表达式有错:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "" #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1”不是有效的编码。" #: ../src/statusline.cc:263 msgid "Stop" msgstr "停止" #: ../src/statusline.cc:270 msgid "File:" msgstr "文件:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "匹配:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "取消运行中的搜索" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Perl 语法的正则表达式" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "查找文件(_L)" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "文件夹(_D):" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "转到下次匹配" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "转到上次匹配" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "转到匹配的下个文件" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "转到匹配的上个文件" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "模式:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "预览" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "递归进入子目录" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "替换当前(_C)" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "替换全部文件中的全部匹配" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "替换当前匹配" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "在全部文件中替换(_A)" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "在此文件中替换(_T)" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "替换:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "搜索:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "全部文件(_A)" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "编辑(_E)" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "文件(_F)" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "帮助(_H)" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "匹配(_M)" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "下个文件(_N)" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "上个文件(_P)" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "替换(_R)" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "此文件(_T)" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "隐藏" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "递归" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "当前匹配颜色(_U):" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "默认编码(_E):" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "只有图标\n" "只有文字\n" "图标和文字\n" "两者水平排列" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "首选项" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "当前语系指定的编码" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "工具栏样式(_B):" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "文件访问(_F)" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "观感(_L)" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "匹配颜色(_M):" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "文本视图字体(_T):" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "" #~ msgid "_About" #~ msgstr "关于(_A)" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[选项]... [文件夹]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "输入“regexxer --help”可获得更新信息。" #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "文件夹名称“%1”包含本地文件系统编码无法表示的字符。" #~ msgid "Select a folder" #~ msgstr "选择一个文件夹" #~ msgid "About regexxer" #~ msgstr "关于 regexxer" #~ msgid "The application icon of regexxer" #~ msgstr "regexxer 的应用程序图标" #~ msgid "regexxer icon" #~ msgstr "regexxer 图标" #~ msgid "translated by" #~ msgstr "翻译者" #~ msgid "written by" #~ msgstr "编写者" #~ msgid "The directory to be searched" #~ msgstr "要搜索的目录" regexxer-0.9/po/zh_HK.po0000644000175000017500000003041110566140450012115 00000000000000# Chinese (Hong Kong) translation of regexxer # Copyright (C) 2003, 05 Free Software Foundation, Inc. # Chao-Hsiung Liao , 2005. # msgid "" msgstr "" "Project-Id-Version: regexxer 0.8\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2006-10-17 02:36+0800\n" "Last-Translator: Chao-Hsiung Liao \n" "Language-Team: Chinese (Hong Kong) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "使用正規表示式搜尋或取代檔案內容" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "regexxer 搜尋工具" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "表示目前符合的色彩" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "備用編碼" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "符合色彩" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "在檔案無法以 UTF-8 或目前的地區所指定的編碼讀取時使用的字符編碼名稱。使用 " "“iconv --list” 可以查看所有可使用編碼的清單。" #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "純文字檢視字型" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "用來突顯搜尋表示式比對結果的背景顏色。" #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "用來突顯目前選擇的搜尋表示式比對結果的背景顏色。" #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "在檔案編輯器中使用的字型。" #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "應用程式的工具列風格。可用的數值有 “圖示”、“文字”、“兩者” 與 “兩者(水平)”。" #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "工具列風格" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "無法讀取檔案:" #: ../src/filetree.cc:80 msgid "File" msgstr "檔案" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "儲存檔案 “%1” 時失敗:%2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” 似乎是二元檔。" #: ../src/main.cc:77 msgid "Save _all" msgstr "全部儲存(_A)" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "尋找符合 PATTERN 的檔案" #: ../src/main.cc:134 msgid "PATTERN" msgstr "PATTERN" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "不搜尋子目錄" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "同時尋找隱藏的檔案" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "尋找符合 REGEX 的文字" #: ../src/main.cc:140 msgid "REGEX" msgstr "REGEX" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "只尋找一行中第一個符合的地方" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "進行區分大小寫的比對" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "以 STRING 取代符合的項目" #: ../src/main.cc:146 msgid "STRING" msgstr "STRING" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "在標準輸出顯示符合的位置" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "不要自動開始搜尋" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "某些檔案尚未儲存。\n" "無論如何都要離開?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "某些檔案尚未儲存。\n" "無論如何都要繼續?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "檔案搜尋樣式無效。" #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "在搜尋時發生下列錯誤:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "在儲存過程中發生了下列錯誤:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "" "如對翻譯有任何意見,請送一封電子郵件給\n" "以下地址,GNOME 翻譯隊伍會盡快回覆你:\n" "community@linuxhall.org\n" "\n" "Chao-Hsiung Liao , 2005" #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "不支援使用 \\C 逸出字符以符合某一個字符。" #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "正規表示式發生錯誤於“%1” (索引 %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "正規表示式發生錯誤:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "已到達正規表示式引擎循環與返回的極限。" #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” 不是有效的編碼。" #: ../src/statusline.cc:263 msgid "Stop" msgstr "停止" #: ../src/statusline.cc:270 msgid "File:" msgstr "檔案:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "符合:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "取消正在執行的搜尋" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "以 shell 方式表示的檔案名稱樣式。支援字符類別 [ab] 與 csh 式括弧表示式 {a," "b} 。" #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Perl 語法的正規表示式" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "向後" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "檔案向後" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "檔案向前" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "尋找所有符合檔案名稱樣式的檔案" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "尋找所有符合的正規表示式" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "尋找一行中所有可能符合的項目" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "尋找檔案(_L)" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "資料夾(_D):" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "向前" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "移至下個符合的項目" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "移至上個符合的項目" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "移至下個符合的檔案" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "移至上個符合的檔案" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "樣式:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "預覽" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "取代後的預覽" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "循環至子目錄" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "取代目前項目(_C)" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "取代所有檔案中所有符合的項目" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "取代目前檔案中所有符合的項目" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "取代目前符合的項目" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "取代所有檔案(_A)" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "只取代這個檔案(_T)" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "取代:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "搜尋:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "要用來替換的字串。像 Perl 一樣,你可以使用 $1、$2 等甚至 $+ 、 $&、 %` 和 $' " "來代表符合項目的一部分。同時也支授 \\l 、 \\u 、 \\L 與 \\E 。" #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "所有檔案(_A)" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "編輯 (_E)" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "檔案(_F)" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "說明(_H)" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "符合(_M)" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "下個檔案(_N)" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "上個檔案(_P)" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "取代(_R)" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "這個檔案(_T)" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "隱藏" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "同時搜尋子目錄" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "目前符合項目的色彩(_U):" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "備用編碼(_E):" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "只有圖示\n" "只有文字\n" "圖示與文字\n" "兩者(水平)" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "偏好設定" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "依目前地區設定指定的編碼" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "工具列風格(_B):" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "檔案存取(_F)" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "外觀與感覺(_L)" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "符合項目色彩(_M):" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "文字檢視字型(_T):" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "regexxer 在放棄前會嘗試以下列編碼來讀取檔案:" #~ msgid "_About" #~ msgstr "關於(_A)" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[選項]... [資料夾]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "使用 “regexxer --help” 以獲得更多資訊。" #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "資料夾名稱“%1”包含本地檔案系統編碼中沒有出現的字符。" #~ msgid "Select a folder" #~ msgstr "選擇資料夾" #~ msgid "About regexxer" #~ msgstr "關於 regexxer" #~ msgid "The application icon of regexxer" #~ msgstr "regexxer 的應用程式圖示" #~ msgid "regexxer icon" #~ msgstr "regexxer 圖示" #~ msgid "translated by" #~ msgstr "翻譯者:" #~ msgid "written by" #~ msgstr "作者:" #~ msgid "The directory to be searched" #~ msgstr "要搜尋的目錄" regexxer-0.9/po/zh_TW.po0000644000175000017500000003041310566140450012147 00000000000000# traditional Chinese translation of regexxer # Copyright (C) 2003, 05 Free Software Foundation, Inc. # Chao-Hsiung Liao , 2005. # msgid "" msgstr "" "Project-Id-Version: regexxer 0.8\n" "Report-Msgid-Bugs-To: http://regexxer.sourceforge.net/bugs\n" "POT-Creation-Date: 2007-02-18 22:12+0100\n" "PO-Revision-Date: 2006-10-17 02:36+0800\n" "Last-Translator: Chao-Hsiung Liao \n" "Language-Team: Chinese (traditional) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../ui/regexxer.desktop.in.h:1 ../src/mainwindow.cc:849 msgid "Search and replace using regular expressions" msgstr "使用正規表示式搜尋或取代檔案內容" #: ../ui/regexxer.desktop.in.h:2 msgid "regexxer Search Tool" msgstr "regexxer 搜尋工具" #: ../ui/regexxer.schemas.in.h:1 msgid "Current-match color" msgstr "表示目前符合的色彩" #: ../ui/regexxer.schemas.in.h:2 msgid "Fallback encoding" msgstr "備用編碼" #: ../ui/regexxer.schemas.in.h:3 msgid "Match color" msgstr "符合色彩" #: ../ui/regexxer.schemas.in.h:4 msgid "" "Name of the character encoding to use if a file is not readable in either " "UTF-8 or the codeset specified by the current locale. Try “iconv --list” for " "a complete list of possible values." msgstr "" "在檔案無法以 UTF-8 或目前的地區所指定的編碼讀取時使用的字元編碼名稱。使用 " "“iconv --list” 可以查看所有可使用編碼的清單。" #: ../ui/regexxer.schemas.in.h:5 msgid "Text view font" msgstr "純文字檢視字型" #: ../ui/regexxer.schemas.in.h:6 msgid "" "The background color used to highlight matches of the search expression." msgstr "用來突顯搜尋表示式比對結果的背景顏色。" #: ../ui/regexxer.schemas.in.h:7 msgid "" "The background color used to highlight the currently selected match of the " "search expression." msgstr "用來突顯目前選擇的搜尋表示式比對結果的背景顏色。" #: ../ui/regexxer.schemas.in.h:8 msgid "The font used in the file editor." msgstr "在檔案編輯器中使用的字型。" #: ../ui/regexxer.schemas.in.h:9 msgid "" "The style of the application’s toolbar. Possible values are “icons”, “text”, " "“both”, and “both-horiz”." msgstr "" "應用程式的工具列風格。可用的數值有 “圖示”、“文字”、“兩者” 與 “兩者(水平)”。" #: ../ui/regexxer.schemas.in.h:10 msgid "Toolbar style" msgstr "工具列風格" #: ../src/filebuffer.cc:198 msgid "Can’t read file:" msgstr "無法讀取檔案:" #: ../src/filetree.cc:80 msgid "File" msgstr "檔案" #: ../src/filetree.cc:99 msgid "#" msgstr "#" #: ../src/filetree.cc:530 #, qt-format msgid "Failed to save file “%1”: %2" msgstr "儲存檔案 “%1” 時失敗:%2" #: ../src/filetree.cc:946 #, qt-format msgid "“%1” seems to be a binary file." msgstr "“%1” 似乎是二元檔。" #: ../src/main.cc:77 msgid "Save _all" msgstr "全部儲存(_A)" #: ../src/main.cc:134 msgid "Find files matching PATTERN" msgstr "尋找符合 PATTERN 的檔案" #: ../src/main.cc:134 msgid "PATTERN" msgstr "PATTERN" #: ../src/main.cc:136 msgid "Do not recurse into subdirectories" msgstr "不搜尋子目錄" #: ../src/main.cc:138 ../ui/mainwindow.glade.h:3 msgid "Also find hidden files" msgstr "同時尋找隱藏的檔案" #: ../src/main.cc:140 msgid "Find text matching REGEX" msgstr "尋找符合 REGEX 的文字" #: ../src/main.cc:140 msgid "REGEX" msgstr "REGEX" #: ../src/main.cc:142 msgid "Find only the first match in a line" msgstr "只尋找一行中第一個符合的地方" #: ../src/main.cc:144 ../ui/mainwindow.glade.h:5 msgid "Do case insensitive matching" msgstr "進行區分大小寫的比對" #: ../src/main.cc:146 msgid "Replace matches with STRING" msgstr "以 STRING 取代符合的項目" #: ../src/main.cc:146 msgid "STRING" msgstr "STRING" #: ../src/main.cc:148 msgid "Print match location to standard output" msgstr "在標準輸出顯示符合的位置" #: ../src/main.cc:150 msgid "Do not automatically start search" msgstr "不要自動開始搜尋" #: ../src/main.cc:152 msgid "[FOLDER]" msgstr "" #: ../src/mainwindow.cc:413 msgid "" "Some files haven’t been saved yet.\n" "Quit anyway?" msgstr "" "某些檔案尚未儲存。\n" "無論如何都要離開?" #: ../src/mainwindow.cc:427 msgid "" "Some files haven’t been saved yet.\n" "Continue anyway?" msgstr "" "某些檔案尚未儲存。\n" "無論如何都要繼續?" #: ../src/mainwindow.cc:455 msgid "The file search pattern is invalid." msgstr "檔案搜尋樣式無效。" #: ../src/mainwindow.cc:461 msgid "The following errors occurred during search:" msgstr "在搜尋時發生下列錯誤:" #: ../src/mainwindow.cc:708 msgid "The following errors occurred during save:" msgstr "在儲存過程中發生了下列錯誤:" #: ../src/mainwindow.cc:854 msgid "translator-credits" msgstr "" "如對翻譯有任何意見,請送一封電子郵件給\n" "以下地址,GNOME 翻譯團隊會盡快回覆您:\n" "community@linuxhall.org\n" "\n" "Chao-Hsiung Liao , 2005" #: ../src/pcreshell.cc:62 msgid "Using the \\C escape sequence to match a single byte is not supported." msgstr "不支援使用 \\C 逸出字元以符合某一個字元。" #: ../src/pcreshell.cc:84 #, qt-format msgid "" "Error in regular expression at “%1” (index %2):\n" "%3" msgstr "" "正規表示式發生錯誤於“%1” (索引 %2):\n" "%3" #: ../src/pcreshell.cc:89 #, qt-format msgid "" "Error in regular expression:\n" "%1" msgstr "" "正規表示式發生錯誤:\n" "%1" #: ../src/pcreshell.cc:171 msgid "" "Reached the recursion and backtracking limit of the regular expression " "engine." msgstr "已到達正規表示式引擎循環與返回的極限。" #: ../src/prefdialog.cc:249 #, qt-format msgid "“%1” is not a valid encoding." msgstr "“%1” 不是有效的編碼。" #: ../src/statusline.cc:263 msgid "Stop" msgstr "停止" #: ../src/statusline.cc:270 msgid "File:" msgstr "檔案:" #: ../src/statusline.cc:273 msgid "Match:" msgstr "符合:" #: ../src/statusline.cc:284 msgid "Cancels the running search" msgstr "取消正在執行的搜尋" #: ../ui/mainwindow.glade.h:1 msgid "" "A filename pattern as used by the shell. Character classes [ab] and csh " "style brace expressions {a,b} are supported." msgstr "" "以 shell 方式表示的檔案名稱樣式。支援字元類別 [ab] 與 csh 式括弧表示式 {a," "b} 。" #: ../ui/mainwindow.glade.h:2 msgid "A regular expression in Perl syntax" msgstr "Perl 語法的正規表示式" #: ../ui/mainwindow.glade.h:4 msgid "Backward" msgstr "向後" #: ../ui/mainwindow.glade.h:6 msgid "File backward" msgstr "檔案向後" #: ../ui/mainwindow.glade.h:7 msgid "File forward" msgstr "檔案向前" #: ../ui/mainwindow.glade.h:8 msgid "Find all files that match the filename pattern" msgstr "尋找所有符合檔案名稱樣式的檔案" #: ../ui/mainwindow.glade.h:9 msgid "Find all matches of the regular expression" msgstr "尋找所有符合的正規表示式" #: ../ui/mainwindow.glade.h:10 msgid "Find all possible matches in a line" msgstr "尋找一行中所有可能符合的項目" #: ../ui/mainwindow.glade.h:11 msgid "Find fi_les" msgstr "尋找檔案(_L)" #: ../ui/mainwindow.glade.h:12 msgid "Fol_der:" msgstr "資料夾(_D):" #: ../ui/mainwindow.glade.h:13 msgid "Forward" msgstr "向前" #: ../ui/mainwindow.glade.h:14 msgid "Go to next match" msgstr "移至下個符合的項目" #: ../ui/mainwindow.glade.h:15 msgid "Go to previous match" msgstr "移至上個符合的項目" #: ../ui/mainwindow.glade.h:16 msgid "Go to the next matching file" msgstr "移至下個符合的檔案" #: ../ui/mainwindow.glade.h:17 msgid "Go to the previous matching file" msgstr "移至上個符合的檔案" #: ../ui/mainwindow.glade.h:18 msgid "Pattern:" msgstr "樣式:" #: ../ui/mainwindow.glade.h:19 msgid "Preview" msgstr "預覽" #: ../ui/mainwindow.glade.h:20 msgid "Preview of the substitution" msgstr "取代後的預覽" #: ../ui/mainwindow.glade.h:21 msgid "Recurse into subdirectories" msgstr "循環至子目錄" #: ../ui/mainwindow.glade.h:22 msgid "Replace _current" msgstr "取代目前項目(_C)" #: ../ui/mainwindow.glade.h:23 msgid "Replace all matches in all files" msgstr "取代所有檔案中所有符合的項目" #: ../ui/mainwindow.glade.h:24 msgid "Replace all matches in the current file" msgstr "取代目前檔案中所有符合的項目" #: ../ui/mainwindow.glade.h:25 msgid "Replace current match" msgstr "取代目前符合的項目" #: ../ui/mainwindow.glade.h:26 msgid "Replace in _all files" msgstr "取代所有檔案(_A)" #: ../ui/mainwindow.glade.h:27 msgid "Replace in _this file" msgstr "只取代這個檔案(_T)" #: ../ui/mainwindow.glade.h:28 msgid "Replace:" msgstr "取代:" #: ../ui/mainwindow.glade.h:29 msgid "Search:" msgstr "搜尋:" #: ../ui/mainwindow.glade.h:30 msgid "" "The new string to substitute. As in Perl, you can refer to parts of the " "match using $1, $2, etc. or even $+, $&, $` and $'. The operators \\l, \\u, " "\\L, \\U and \\E are supported as well." msgstr "" "要用來替換的字串。像 Perl 一樣,您可以使用 $1、$2 等甚至 $+ 、 $&、 %` 和 $' " "來代表符合項目的一部分。同時也支授 \\l 、 \\u 、 \\L 與 \\E 。" #: ../ui/mainwindow.glade.h:31 msgid "_All files" msgstr "所有檔案(_A)" #: ../ui/mainwindow.glade.h:32 msgid "_Edit" msgstr "編輯 (_E)" #: ../ui/mainwindow.glade.h:33 msgid "_File" msgstr "檔案(_F)" #: ../ui/mainwindow.glade.h:34 msgid "_Help" msgstr "說明(_H)" #: ../ui/mainwindow.glade.h:35 msgid "_Match" msgstr "符合(_M)" #: ../ui/mainwindow.glade.h:36 msgid "_Next file" msgstr "下個檔案(_N)" #: ../ui/mainwindow.glade.h:37 msgid "_Previous file" msgstr "上個檔案(_P)" #: ../ui/mainwindow.glade.h:38 msgid "_Replace" msgstr "取代(_R)" #: ../ui/mainwindow.glade.h:39 msgid "_This file" msgstr "這個檔案(_T)" #: ../ui/mainwindow.glade.h:40 msgid "hidden" msgstr "隱藏" #: ../ui/mainwindow.glade.h:41 msgid "recursive" msgstr "同時搜尋子目錄" #: ../ui/prefdialog.glade.h:1 msgid "1." msgstr "1." #: ../ui/prefdialog.glade.h:2 msgid "2." msgstr "2." #: ../ui/prefdialog.glade.h:3 msgid "3." msgstr "3." #: ../ui/prefdialog.glade.h:4 msgid "C_urrent match color:" msgstr "目前符合項目的色彩(_U):" #: ../ui/prefdialog.glade.h:5 msgid "Fallback _encoding:" msgstr "備用編碼(_E):" #: ../ui/prefdialog.glade.h:6 msgid "" "Icons only\n" "Text only\n" "Icons and text\n" "Both horizontal" msgstr "" "只有圖示\n" "只有文字\n" "圖示與文字\n" "兩者(水平)" #: ../ui/prefdialog.glade.h:10 msgid "Preferences" msgstr "偏好設定" #: ../ui/prefdialog.glade.h:11 msgid "The encoding specified by the current locale" msgstr "依目前地區設定指定的編碼" #: ../ui/prefdialog.glade.h:12 msgid "Tool_bar style:" msgstr "工具列風格(_B):" #: ../ui/prefdialog.glade.h:13 msgid "UTF-8" msgstr "UTF-8" #: ../ui/prefdialog.glade.h:14 msgid "_File access" msgstr "檔案存取(_F)" #: ../ui/prefdialog.glade.h:15 msgid "_Look’n’feel" msgstr "外觀與感覺(_L)" #: ../ui/prefdialog.glade.h:16 msgid "_Match color:" msgstr "符合項目色彩(_M):" #: ../ui/prefdialog.glade.h:17 msgid "_Text view font:" msgstr "文字檢視字型(_T):" #: ../ui/prefdialog.glade.h:18 msgid "" "regexxer attempts to read a file in the following encodings before giving up:" msgstr "regexxer 在放棄前會嘗試以下列編碼來讀取檔案:" #~ msgid "_About" #~ msgstr "關於(_A)" #~ msgid "[OPTION]... [FOLDER]" #~ msgstr "[選項]... [資料夾]" #~ msgid "Try “regexxer --help” for more information." #~ msgstr "使用 “regexxer --help” 以獲得更多資訊。" #~ msgid "" #~ "The folder name “%1” contains characters not representable in the " #~ "encoding of the local file system." #~ msgstr "資料夾名稱“%1”包含本地檔案系統編碼中沒有出現的字元。" #~ msgid "Select a folder" #~ msgstr "選擇資料夾" #~ msgid "About regexxer" #~ msgstr "關於 regexxer" #~ msgid "The application icon of regexxer" #~ msgstr "regexxer 的應用程式圖示" #~ msgid "regexxer icon" #~ msgstr "regexxer 圖示" #~ msgid "translated by" #~ msgstr "翻譯者:" #~ msgid "written by" #~ msgstr "作者:" #~ msgid "The directory to be searched" #~ msgstr "要搜尋的目錄" regexxer-0.9/po/Makevars0000644000175000017500000000206010551035534012245 00000000000000## Copyright (c) 2007 Daniel Elstner ## ## This file is part of regexxer. ## ## regexxer 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. ## ## regexxer 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 regexxer; if not, write to the Free Software Foundation, Inc., ## 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA DOMAIN = $(PACKAGE) subdir = po top_builddir = .. # Only extract explicitely tagged comments into PO files. XGETTEXT_OPTIONS = --add-comments=TRANSLATORS --keyword=_ --keyword=N_ --keyword=translate --qt MSGID_BUGS_ADDRESS = http://regexxer.sourceforge.net/bugs regexxer-0.9/po/LINGUAS0000644000175000017500000000016410565742007011606 00000000000000ar bg ca cs de dz en_CA en_GB es eu fi fr hu it ja ne nl pa pl pt pt_BR rw sl sr sr@Latn sv uk vi zh_CN zh_HK zh_TW regexxer-0.9/src/0000777000175000017500000000000010566142352011013 500000000000000regexxer-0.9/src/exported-symbols0000644000175000017500000000015310547664025014176 00000000000000/* * List of dynamically exported symbols for libglade. */ { global: regexxer_create_*; local: *; }; regexxer-0.9/src/controller.cc0000644000175000017500000001364610547616660013442 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "controller.h" #include #include #include #include #include namespace Regexxer { /**** Regexxer::ControlItem ************************************************/ ControlItem::ControlItem(bool enable) : enabled_ (enable), group_enabled_ (true) {} ControlItem::~ControlItem() {} void ControlItem::activate() { if (enabled_ && group_enabled_) signal_activate_(); // emit } sigc::slot ControlItem::slot() { return sigc::mem_fun(*this, &ControlItem::activate); } void ControlItem::connect(const sigc::slot& slot_activated) { signal_activate_.connect(slot_activated); } void ControlItem::add_widget(Gtk::Widget& widget) { signal_set_sensitive_.connect(sigc::mem_fun(widget, &Gtk::Widget::set_sensitive)); widget.set_sensitive(enabled_ && group_enabled_); } void ControlItem::add_widgets(const Glib::RefPtr& xml, const char* menuitem_name, const char* button_name) { const sigc::slot slot_activate = slot(); Gtk::MenuItem* menuitem = 0; Gtk::Widget* widget = 0; if (menuitem_name && xml->get_widget(menuitem_name, menuitem)) { menuitem->signal_activate().connect(slot_activate); add_widget(*menuitem); } if (button_name && xml->get_widget(button_name, widget)) { if (Gtk::ToolButton *const button = dynamic_cast(widget)) button->signal_clicked().connect(slot_activate); else if (Gtk::Button *const button = dynamic_cast(widget)) button->signal_clicked().connect(slot_activate); else g_return_if_reached(); add_widget(*widget); } } void ControlItem::set_enabled(bool enable) { if (enable != enabled_) { enabled_ = enable; if (group_enabled_) signal_set_sensitive_(enabled_); // emit } } void ControlItem::set_group_enabled(bool enable) { if (enable != group_enabled_) { group_enabled_ = enable; if (enabled_) signal_set_sensitive_(group_enabled_); // emit } } bool ControlItem::is_enabled() const { return (enabled_ && group_enabled_); } /**** Regexxer::ControlGroup ***********************************************/ ControlGroup::ControlGroup(bool enable) : enabled_ (enable) {} ControlGroup::~ControlGroup() {} void ControlGroup::add(ControlItem& control) { signal_set_enabled_.connect(sigc::mem_fun(control, &ControlItem::set_group_enabled)); control.set_group_enabled(enabled_); } void ControlGroup::set_enabled(bool enable) { if (enable != enabled_) { enabled_ = enable; signal_set_enabled_(enabled_); // emit } } /**** Regexxer::Controller *************************************************/ Controller::Controller() : match_actions (true), edit_actions (false), save_file (false), save_all (false), undo (false), preferences (true), quit (true), about (true), find_files (false), find_matches (false), next_file (false), prev_file (false), next_match (false), prev_match (false), replace (false), replace_file (false), replace_all (false), cut (true), copy (true), paste (true), erase (true) { match_actions.add(undo); match_actions.add(find_files); match_actions.add(find_matches); match_actions.add(next_file); match_actions.add(prev_file); match_actions.add(next_match); match_actions.add(prev_match); match_actions.add(replace); match_actions.add(replace_file); match_actions.add(replace_all); edit_actions.add(cut); edit_actions.add(copy); edit_actions.add(paste); edit_actions.add(erase); } Controller::~Controller() {} void Controller::load_xml(const Glib::RefPtr& xml) { save_file .add_widgets(xml, "menuitem_save", "button_save"); save_all .add_widgets(xml, "menuitem_save_all", "button_save_all"); quit .add_widgets(xml, "menuitem_quit", "button_quit"); undo .add_widgets(xml, "menuitem_undo", "button_undo"); cut .add_widgets(xml, "menuitem_cut", 0); copy .add_widgets(xml, "menuitem_copy", 0); paste .add_widgets(xml, "menuitem_paste", 0); erase .add_widgets(xml, "menuitem_delete", 0); preferences .add_widgets(xml, "menuitem_preferences", 0); next_file .add_widgets(xml, "menuitem_next_file", "button_next_file"); prev_file .add_widgets(xml, "menuitem_prev_file", "button_prev_file"); next_match .add_widgets(xml, "menuitem_next_match", "button_next_match"); prev_match .add_widgets(xml, "menuitem_prev_match", "button_prev_match"); replace .add_widgets(xml, "menuitem_replace", "button_replace"); replace_file.add_widgets(xml, "menuitem_replace_file", "button_replace_file"); replace_all .add_widgets(xml, "menuitem_replace_all", "button_replace_all"); find_files .add_widgets(xml, 0, "button_find_files"); find_matches.add_widgets(xml, 0, "button_find_matches"); about .add_widgets(xml, "menuitem_about", 0); } } // namespace Regexxer regexxer-0.9/src/controller.h0000644000175000017500000000613310566103425013264 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef REGEXXER_CONTROLLER_H_INCLUDED #define REGEXXER_CONTROLLER_H_INCLUDED #include #include namespace Gtk { class MenuBar; class Toolbar; class Widget; } namespace Gnome { namespace Glade { class Xml; } } namespace Regexxer { class ControlItem : public sigc::trackable { public: explicit ControlItem(bool enable = false); virtual ~ControlItem(); void activate(); sigc::slot slot(); void connect(const sigc::slot& slot_activated); void add_widget(Gtk::Widget& widget); void add_widgets(const Glib::RefPtr& xml, const char* menuitem_name, const char* button_name); void set_enabled(bool enable); void set_group_enabled(bool enable); bool is_enabled() const; private: sigc::signal signal_activate_; sigc::signal signal_set_sensitive_; bool enabled_; bool group_enabled_; ControlItem(const ControlItem&); ControlItem& operator=(const ControlItem&); }; class ControlGroup { public: explicit ControlGroup(bool enable = false); ~ControlGroup(); void add(ControlItem& control); void set_enabled(bool enable); private: sigc::signal signal_set_enabled_; bool enabled_; ControlGroup(const ControlGroup&); ControlGroup& operator=(const ControlGroup&); }; class Controller { public: Controller(); virtual ~Controller(); // Group for all controls that could change matches // or require match information to operate. ControlGroup match_actions; ControlGroup edit_actions; ControlItem save_file; ControlItem save_all; ControlItem undo; ControlItem preferences; ControlItem quit; ControlItem about; ControlItem find_files; ControlItem find_matches; ControlItem next_file; ControlItem prev_file; ControlItem next_match; ControlItem prev_match; ControlItem replace; ControlItem replace_file; ControlItem replace_all; ControlItem cut; ControlItem copy; ControlItem paste; ControlItem erase; void load_xml(const Glib::RefPtr& xml); private: Controller(const Controller&); Controller& operator=(const Controller&); }; } // namespace Regexxer #endif /* REGEXXER_CONTROLLER_H_INCLUDED */ regexxer-0.9/src/filebuffer.cc0000644000175000017500000006232010566103425013350 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "filebuffer.h" #include "filebufferundo.h" #include "globalstrings.h" #include "miscutils.h" #include "pcreshell.h" #include "stringutils.h" #include "translation.h" #include #include #include #include #include namespace { enum { PULSE_INTERVAL = 128 }; class RegexxerTags : public Gtk::TextTagTable { public: typedef Glib::RefPtr TextTagPtr; // This is a global singleton shared by all FileBuffer instances. static Glib::RefPtr instance(); TextTagPtr error_message; TextTagPtr error_title; TextTagPtr match; TextTagPtr current; protected: RegexxerTags(); virtual ~RegexxerTags(); private: void on_conf_value_changed(const Glib::ustring& key, const Gnome::Conf::Value& value); }; RegexxerTags::RegexxerTags() : error_message (Gtk::TextTag::create("regexxer-error-message")), error_title (Gtk::TextTag::create("regexxer-error-title")), match (Gtk::TextTag::create("regexxer-match")), current (Gtk::TextTag::create("regexxer-current-match")) { error_message->property_wrap_mode() = Gtk::WRAP_WORD; error_message->property_justification() = Gtk::JUSTIFY_CENTER; error_message->property_pixels_above_lines() = 16; error_title->property_scale() = Pango::SCALE_X_LARGE; Gnome::Conf::Client::get_default_client()->signal_value_changed() .connect(sigc::mem_fun(*this, &RegexxerTags::on_conf_value_changed)); add(error_message); add(error_title); add(match); add(current); } RegexxerTags::~RegexxerTags() {} void RegexxerTags::on_conf_value_changed(const Glib::ustring& key, const Gnome::Conf::Value& value) { using namespace Regexxer; if (value.get_type() == Gnome::Conf::VALUE_STRING) { if (key.raw() == conf_key_match_color) match->property_background() = value.get_string(); else if (key.raw() == conf_key_current_match_color) current->property_background() = value.get_string(); } } // static Glib::RefPtr RegexxerTags::instance() { static Glib::RefPtr global_table (new RegexxerTags()); return global_table; } } // anonymous namespace namespace Regexxer { /**** Regexxer::FileBuffer::ScopedLock *************************************/ class FileBuffer::ScopedLock { private: FileBuffer& buffer_; ScopedLock(const FileBuffer::ScopedLock&); FileBuffer::ScopedLock& operator=(const FileBuffer::ScopedLock&); public: explicit ScopedLock(FileBuffer& buffer); ~ScopedLock(); }; FileBuffer::ScopedLock::ScopedLock(FileBuffer& buffer) : buffer_ (buffer) { g_return_if_fail(!buffer_.locked_); buffer_.locked_ = true; } FileBuffer::ScopedLock::~ScopedLock() { g_return_if_fail(buffer_.locked_); buffer_.locked_ = false; } /**** Regexxer::FileBuffer::ScopedUserAction *******************************/ class FileBuffer::ScopedUserAction { private: FileBuffer& buffer_; ScopedUserAction(const FileBuffer::ScopedUserAction&); FileBuffer::ScopedUserAction& operator=(const FileBuffer::ScopedUserAction&); public: explicit ScopedUserAction(FileBuffer& buffer) : buffer_ (buffer) { buffer_.begin_user_action(); } ~ScopedUserAction() { buffer_.end_user_action(); } }; /**** Regexxer::FileBuffer *************************************************/ FileBuffer::FileBuffer() : Gtk::TextBuffer (RegexxerTags::instance()), match_set_ (), current_match_ (match_set_.end()), user_action_stack_ (), weak_undo_stack_ (), match_count_ (0), original_match_count_ (0), stamp_modified_ (0), stamp_saved_ (0), cached_bound_state_ (BOUND_FIRST | BOUND_LAST), match_removed_ (false), locked_ (false) {} FileBuffer::~FileBuffer() {} // static Glib::RefPtr FileBuffer::create() { return Glib::RefPtr(new FileBuffer()); } // static Glib::RefPtr FileBuffer::create_with_error_message(const Glib::RefPtr& pixbuf, const Glib::ustring& message) { const Glib::RefPtr buffer (new FileBuffer()); const Glib::RefPtr tagtable = RegexxerTags::instance(); iterator pend = buffer->insert_pixbuf(buffer->end(), pixbuf); Glib::ustring title = "\302\240"; // U+00A0 NO-BREAK SPACE title += _("Can\342\200\231t read file:"); title += '\n'; pend = buffer->insert_with_tag(pend, title, tagtable->error_title); pend = buffer->insert(pend, message); if (!message.empty() && !Glib::Unicode::ispunct(*message.rbegin())) pend = buffer->insert(pend, "."); buffer->apply_tag(tagtable->error_message, buffer->begin(), pend); buffer->set_modified(false); return buffer; } // static void FileBuffer::pango_context_changed(const Glib::RefPtr& context) { const Pango::FontDescription font_description = context->get_font_description(); // This magic code calculates the height to raise the error message title, // so that it's displayed approximately in line with the error icon. By // default the text would appear at the bottom, and since the icon is // about 48 pixels tall this looks incredibly ugly. int font_size = font_description.get_size(); if (font_size <= 0) // urgh, fall back to some reasonable value font_size = 10 * Pango::SCALE; int icon_width = 0, icon_height = 0; Gtk::IconSize::lookup(Gtk::ICON_SIZE_DIALOG, icon_width, icon_height); g_return_if_fail(icon_height > 0); // the lookup should never fail for builtin icon sizes const int title_size = int(Pango::SCALE_X_LARGE * font_size); const int rise_height = (icon_height * Pango::SCALE - title_size) / 2; const Glib::RefPtr tagtable = RegexxerTags::instance(); tagtable->error_message->property_font_desc() = font_description; tagtable->error_title ->property_rise() = rise_height; } bool FileBuffer::is_freeable() const { return (!locked_ && match_count_ == 0 && stamp_modified_ == 0 && stamp_saved_ == 0); } bool FileBuffer::in_user_action() const { return (user_action_stack_ != 0); } /* * Apply pattern on all lines in the buffer and return the number of matches. * If multiple is false then every line is matched only once, otherwise * multiple matches per line will be found (like modifier /g in Perl). */ int FileBuffer::find_matches(Pcre::Pattern& pattern, bool multiple, const sigc::slot& feedback) { ScopedLock lock (*this); const Glib::RefPtr tagtable = RegexxerTags::instance(); notify_weak_undos(); forget_current_match(); remove_tag(tagtable->match, begin(), end()); while (!match_set_.empty()) delete_mark((*match_set_.begin())->mark); // triggers on_mark_deleted() g_return_val_if_fail(match_count_ == 0, 0); original_match_count_ = 0; unsigned int iteration = 0; for (iterator line = begin(); !line.is_end(); line.forward_line()) { iterator line_end = line; if (!line_end.ends_line()) line_end.forward_to_line_end(); const Glib::ustring subject = get_slice(line, line_end); int offset = 0; bool last_was_empty = false; do { if ((++iteration % PULSE_INTERVAL) == 0 && signal_pulse()) // emit { signal_match_count_changed(); // emit return match_count_; } const int capture_count = pattern.match(subject, offset, (last_was_empty) ? Pcre::ANCHORED | Pcre::NOT_EMPTY : Pcre::MatchOptions(0)); if (capture_count <= 0) { if (last_was_empty && unsigned(offset) < subject.bytes()) { const std::string::const_iterator pbegin = subject.begin().base(); Glib::ustring::const_iterator poffset (pbegin + offset); offset = (++poffset).base() - pbegin; // forward one UTF-8 character last_was_empty = false; continue; } break; } ++match_count_; ++original_match_count_; const std::pair bounds = pattern.get_substring_bounds(0); iterator start = line; iterator stop = line; start.set_line_index(bounds.first); stop .set_line_index(bounds.second); const MatchDataPtr match (new MatchData( original_match_count_, subject, pattern, capture_count)); match_set_.insert(match_set_.end(), match); match->install_mark(start); apply_tag(tagtable->match, start, stop); if (offset == 0 && feedback) feedback(line.get_line(), subject); last_was_empty = (bounds.first == bounds.second); offset = bounds.second; } while (multiple); } signal_match_count_changed(); // emit return match_count_; } int FileBuffer::get_match_count() const { return match_count_; } int FileBuffer::get_match_index() const { return (!match_removed_ && current_match_ != match_set_.end()) ? (*current_match_)->index : 0; } int FileBuffer::get_original_match_count() const { return original_match_count_; } /* * Move to the next match in the buffer. If there is a next match * its position will be returned, otherwise 0. */ Glib::RefPtr FileBuffer::get_next_match(bool move_forward) { remove_tag_current(); // If we're called just after a removal, then current_match_ already points // to the next match but it doesn't have the "current-match" tag set. So we // prevent moving forward since this would cause one match to be skipped. // Moving backward is OK though. if (move_forward && !match_removed_) { if (current_match_ != match_set_.end()) ++current_match_; else current_match_ = match_set_.begin(); } if (!move_forward) { if (current_match_ != match_set_.begin()) --current_match_; else current_match_ = match_set_.end(); } // See above; we can now safely reset this flag. match_removed_ = false; apply_tag_current(); update_bound_state(); return (current_match_ != match_set_.end()) ? (*current_match_)->mark : Glib::RefPtr(); } /* * Remove the highlight tag from the currently selected match and forget * about it. The next call to get_next_match() will start over at the * first respectively last match in the buffer. */ void FileBuffer::forget_current_match() { remove_tag_current(); current_match_ = match_set_.end(); match_removed_ = false; } BoundState FileBuffer::get_bound_state() { BoundState bound = BOUND_NONE; if (match_set_.empty()) { bound = BOUND_FIRST | BOUND_LAST; } else if (current_match_ != match_set_.end()) { if (current_match_ == match_set_.begin()) bound |= BOUND_FIRST; if (!match_removed_ && current_match_ == --match_set_.end()) bound |= BOUND_LAST; } cached_bound_state_ = bound; return bound; } /* * Replace the currently selected match with substitution. References * to captured substrings in substitution will be interpolated. This * method indirectly triggers emission of signal_match_count_changed() * and signal_preview_line_changed(). */ void FileBuffer::replace_current_match(const Glib::ustring& substitution) { if (!match_removed_ && current_match_ != match_set_.end()) { ScopedUserAction action (*this); replace_match(current_match_, substitution); } } void FileBuffer::replace_all_matches(const Glib::ustring& substitution) { ScopedLock lock (*this); ScopedUserAction action (*this); unsigned int iteration = 0; while (!match_set_.empty()) { replace_match(match_set_.begin(), substitution); if ((++iteration % PULSE_INTERVAL) == 0 && signal_pulse()) // emit break; } } /* * Build a preview of what replace_current_match() would do to the current * line if it were called with substitution as argument. References to * captured substrings in substitution will be interpolated. The result is * written to the output argument preview. The return value is a character * offset into preview pointing to the end of the replaced text. */ int FileBuffer::get_line_preview(const Glib::ustring& substitution, Glib::ustring& preview) { int position = -1; Glib::ustring result; if (!match_removed_ && current_match_ != match_set_.end()) { const MatchDataPtr match = *current_match_; // Get the start of the match. const iterator start = match->mark->get_iter(); // Find the end of the match. iterator stop = start; stop.forward_chars(match->length); // Find begin and end of the line containing the match. iterator line_begin = start; iterator line_end = stop; find_line_bounds(line_begin, line_end); // Construct the preview line: [line_begin,start) + substitution + [stop,line_end) result = get_text(line_begin, start); result += Util::substitute_references(substitution, match->subject, match->captures); position = result.length(); result += get_text(stop, line_end); } swap(result, preview); return position; } void FileBuffer::increment_stamp() { ++stamp_modified_; // No need to call set_modified() since the buffer has been modified // already by the action that caused the stamp to increment. } void FileBuffer::decrement_stamp() { g_return_if_fail(stamp_modified_ > 0); --stamp_modified_; set_modified(stamp_modified_ != stamp_saved_); } void FileBuffer::undo_remove_match(const MatchDataPtr& match, int offset) { const std::pair pos = match_set_.insert(match); g_return_if_fail(pos.second); const iterator start = get_iter_at_offset(offset); match->install_mark(start); if (match->length > 0) { const Glib::RefPtr tagtable = RegexxerTags::instance(); iterator stop = start; stop.forward_chars(match->length); apply_tag(tagtable->match, start, stop); } if (match_removed_ && Util::next(pos.first) == current_match_) { current_match_ = pos.first; match_removed_ = false; apply_tag_current(); } signal_preview_line_changed.queue(); ++match_count_; signal_match_count_changed(); // emit update_bound_state(); } /* * Unfortunately it turned out to be necessary to keep track of UndoActions * that reference MatchData objects, since find_matches() needs some way of * telling the UndoAction objects to drop their references. Omitting this * causes clashes between new matches and the obsolete ones which are still * assumed to be valid by the undo actions. (In short: if it doesn't crash, * it's still going to leak out memory like the Titanic leaked in water.) */ void FileBuffer::undo_add_weak(FileBufferActionRemoveMatch* ptr) { weak_undo_stack_.push(ptr); } void FileBuffer::undo_remove_weak(FileBufferActionRemoveMatch* ptr) { // Thanks to the strict LIFO semantics of UndoStack it's possible // to implement the weak references as stack too, thus reducing the // book-keeping overhead to a bare minimum. g_return_if_fail(weak_undo_stack_.top() == ptr); weak_undo_stack_.pop(); } /**** Regexxer::FileBuffer -- protected ************************************/ void FileBuffer::on_insert(const FileBuffer::iterator& pos, const Glib::ustring& text, int bytes) { if (!text.empty()) { if (!match_removed_ && current_match_ != match_set_.end()) { // Test whether pos is within the current match and push // signal_preview_line_changed() on the queue if true. iterator lbegin = (*current_match_)->mark->get_iter(); iterator lend = lbegin; find_line_bounds(lbegin, lend); if (pos.in_range(lbegin, lend)) signal_preview_line_changed.queue(); } const Glib::RefPtr tagtable = RegexxerTags::instance(); // If pos is within a match then remove this match. if (pos.has_tag(tagtable->match) && !is_match_start(pos)) { iterator start = pos; start.backward_to_tag_toggle(tagtable->match); remove_match_at_iter(start); } } if (user_action_stack_) { user_action_stack_->push(UndoActionPtr( new FileBufferActionInsert(*this, pos.get_offset(), text))); } Gtk::TextBuffer::on_insert(pos, text, bytes); } void FileBuffer::on_erase(const FileBuffer::iterator& rbegin, const FileBuffer::iterator& rend) { if (!match_removed_ && current_match_ != match_set_.end()) { // Test whether [rbegin,rend) overlaps with the current match // and push signal_preview_line_changed() on the queue if true. iterator lbegin = (*current_match_)->mark->get_iter(); iterator lend = lbegin; find_line_bounds(lbegin, lend); if (lbegin.in_range(rbegin, rend) || rbegin.in_range(lbegin, lend)) signal_preview_line_changed.queue(); } const Glib::RefPtr tag_match = RegexxerTags::instance()->match; if (!rbegin.starts_line() && rbegin.has_tag(tag_match)) { g_return_if_fail(!rbegin.ends_tag(tag_match)); // just to be sure... int backward_chars = 0; int match_length = -1; iterator pos = rbegin; do { ++backward_chars; --pos; typedef std::list< Glib::RefPtr > MarkList; const MarkList marks (const_cast(pos).get_marks()); // XXX for (MarkList::const_iterator pmark = marks.begin(); pmark != marks.end(); ++pmark) { if (const MatchDataPtr match_data = MatchData::get_from_mark(*pmark)) match_length = std::max(match_length, match_data->length); } } while (match_length < 0 && !pos.starts_line() && !pos.toggles_tag(tag_match)); if (match_length > backward_chars) remove_match_at_iter(pos); } for (iterator pos = rbegin; pos != rend; ++pos) remove_match_at_iter(pos); if (user_action_stack_) { user_action_stack_->push(UndoActionPtr( new FileBufferActionErase(*this, rbegin.get_offset(), get_slice(rbegin, rend)))); } Gtk::TextBuffer::on_erase(rbegin, rend); } void FileBuffer::on_mark_deleted(const Glib::RefPtr& mark) { Gtk::TextBuffer::on_mark_deleted(mark); // If a mark has been deleted we check whether it was one of our match // marks and if so, remove it from the list. Deletion of the current // match has to be special cased, but's also a bit faster this way since // it's the most common situation and we don't need to traverse the list. if (current_match_ != match_set_.end() && (*current_match_)->mark == mark) { const MatchSet::iterator pos = current_match_++; (*pos)->mark.clear(); match_set_.erase(pos); match_removed_ = true; --match_count_; signal_match_count_changed(); // emit update_bound_state(); } else if (const MatchDataPtr match_data = MatchData::get_from_mark(mark)) { const MatchSet::iterator pos = match_set_.find(match_data); if (pos != match_set_.end()) { (*pos)->mark.clear(); match_set_.erase(pos); --match_count_; signal_match_count_changed(); // emit update_bound_state(); } } } void FileBuffer::on_apply_tag(const Glib::RefPtr& tag, const FileBuffer::iterator& range_begin, const FileBuffer::iterator& range_end) { // Ignore tags when inserting text from the clipboard, to avoid confusion // caused by highlighting text as match which is not recorded as such // internally. Simply checking if a user action is currently in progress // does the trick. if (!in_user_action()) Gtk::TextBuffer::on_apply_tag(tag, range_begin, range_end); } void FileBuffer::on_modified_changed() { if (!get_modified()) stamp_saved_ = stamp_modified_; } void FileBuffer::on_begin_user_action() { g_return_if_fail(!user_action_stack_); user_action_stack_.reset(new UndoStack()); } void FileBuffer::on_end_user_action() { g_return_if_fail(user_action_stack_); UndoStackPtr undo_action; swap(undo_action, user_action_stack_); if (!undo_action->empty()) signal_undo_stack_push(undo_action); // emit } /**** Regexxer::FileBuffer -- private **************************************/ void FileBuffer::replace_match(MatchSet::const_iterator pos, const Glib::ustring& substitution) { const MatchDataPtr match = *pos; const Glib::ustring substituted_text = Util::substitute_references(substitution, match->subject, match->captures); // Get the start of the match. const iterator start = match->mark->get_iter(); if (match->length > 0) { // Find end of match. iterator stop = start; stop.forward_chars(match->length); // Replace match with new substituted text. insert(erase(start, stop), substituted_text); // triggers on_erase() and on_insert() } else // empty match { if (user_action_stack_) { user_action_stack_->push(UndoActionPtr( new FileBufferActionRemoveMatch(*this, start.get_offset(), match))); } // Manually remove match mark and insert the new text. delete_mark(match->mark); // triggers on_mark_deleted() if (!substituted_text.empty()) insert(start, substituted_text); // triggers on_insert() else // Do a dummy insert to avoid special case of empty-by-empty replace. on_insert(start, substituted_text, 0); } } /* * Remove the match at position start. The removal includes the match's * Mark object and the tags applied to it. */ void FileBuffer::remove_match_at_iter(const FileBuffer::iterator& start) { typedef std::list< Glib::RefPtr > MarkList; const MarkList marks (const_cast(start).get_marks()); // XXX for (MarkList::const_iterator pmark = marks.begin(); pmark != marks.end(); ++pmark) { const MatchDataPtr match = MatchData::get_from_mark(*pmark); if (!match) continue; // not a match mark if (user_action_stack_) { user_action_stack_->push(UndoActionPtr( new FileBufferActionRemoveMatch(*this, start.get_offset(), match))); } if (match->length > 0) { const Glib::RefPtr tagtable = RegexxerTags::instance(); iterator stop = start; stop.forward_chars(match->length); remove_tag(tagtable->match, start, stop); if (start.begins_tag(tagtable->current)) remove_tag(tagtable->current, start, stop); } delete_mark(*pmark); // triggers on_mark_deleted() } } void FileBuffer::remove_tag_current() { // If we're called just after a removal, then current_match_ already points // to the next match but it doesn't have the "current-match" tag set. So we // skip removal of the "current-match" tag since it doesn't exist anymore. if (!match_removed_ && current_match_ != match_set_.end()) { const Glib::RefPtr tagtable = RegexxerTags::instance(); // Get the start position of the current match. const iterator start = (*current_match_)->mark->get_iter(); const int match_length = (*current_match_)->length; if (match_length > 0) { // Find the end position of the current match. iterator stop = start; stop.forward_chars(match_length); remove_tag(tagtable->current, start, stop); } else // empty match { (*current_match_)->mark->set_visible(false); } signal_preview_line_changed.queue(); } } void FileBuffer::apply_tag_current() { if (!match_removed_ && current_match_ != match_set_.end()) { const Glib::RefPtr tagtable = RegexxerTags::instance(); // Get the start position of the match. const iterator start = (*current_match_)->mark->get_iter(); const int match_length = (*current_match_)->length; if (match_length > 0) { // Find the end position of the match. iterator stop = start; stop.forward_chars(match_length); apply_tag(tagtable->current, start, stop); } else // empty match { (*current_match_)->mark->set_visible(true); } place_cursor(start); signal_preview_line_changed.queue(); } } // static bool FileBuffer::is_match_start(const iterator& where) { typedef std::list< Glib::RefPtr > MarkList; const MarkList marks (const_cast(where).get_marks()); // XXX return (std::find_if(marks.begin(), marks.end(), &MatchData::is_match_mark) != marks.end()); } // static void FileBuffer::find_line_bounds(FileBuffer::iterator& line_begin, FileBuffer::iterator& line_end) { line_begin.set_line_index(0); if (!line_end.ends_line()) line_end.forward_to_line_end(); } void FileBuffer::update_bound_state() { const BoundState old_bound_state = cached_bound_state_; if (get_bound_state() != old_bound_state) signal_bound_state_changed(); // emit } void FileBuffer::notify_weak_undos() { while (!weak_undo_stack_.empty()) { FileBufferActionRemoveMatch *const ptr = weak_undo_stack_.top(); weak_undo_stack_.pop(); ptr->weak_notify(); } } } // namespace Regexxer regexxer-0.9/src/filebuffer.h0000644000175000017500000001021310566103153013202 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef REGEXXER_FILEBUFFER_H_INCLUDED #define REGEXXER_FILEBUFFER_H_INCLUDED #include "fileshared.h" #include "signalutils.h" #include "undostack.h" #include #include #include namespace Regexxer { class FileBufferActionRemoveMatch; class FileBuffer : public Gtk::TextBuffer { public: static Glib::RefPtr create(); static Glib::RefPtr create_with_error_message( const Glib::RefPtr& pixbuf, const Glib::ustring& message); static void pango_context_changed(const Glib::RefPtr& context); virtual ~FileBuffer(); bool is_freeable() const; bool in_user_action() const; int find_matches(Pcre::Pattern& pattern, bool multiple, const sigc::slot& feedback); int get_match_count() const; int get_match_index() const; int get_original_match_count() const; Glib::RefPtr get_next_match(bool move_forward); void forget_current_match(); BoundState get_bound_state(); void replace_current_match(const Glib::ustring& substitution); void replace_all_matches(const Glib::ustring& substitution); int get_line_preview(const Glib::ustring& substitution, Glib::ustring& preview); // Special API for the FileBufferAction classes. void increment_stamp(); void decrement_stamp(); void undo_remove_match(const MatchDataPtr& match, int offset); void undo_add_weak(FileBufferActionRemoveMatch* ptr); void undo_remove_weak(FileBufferActionRemoveMatch* ptr); sigc::signal signal_match_count_changed; sigc::signal signal_bound_state_changed; Util::QueuedSignal signal_preview_line_changed; sigc::signal signal_pulse; sigc::signal signal_undo_stack_push; protected: FileBuffer(); virtual void on_insert(const iterator& pos, const Glib::ustring& text, int bytes); virtual void on_erase(const iterator& rbegin, const iterator& rend); virtual void on_mark_deleted(const Glib::RefPtr& mark); virtual void on_apply_tag(const Glib::RefPtr& tag, const iterator& range_begin, const iterator& range_end); virtual void on_modified_changed(); virtual void on_begin_user_action(); virtual void on_end_user_action(); private: class ScopedLock; class ScopedUserAction; typedef std::set MatchSet; typedef std::stack WeakUndoStack; MatchSet match_set_; MatchSet::iterator current_match_; UndoStackPtr user_action_stack_; WeakUndoStack weak_undo_stack_; int match_count_; int original_match_count_; unsigned long stamp_modified_; unsigned long stamp_saved_; BoundState cached_bound_state_; bool match_removed_; bool locked_; void replace_match(MatchSet::const_iterator pos, const Glib::ustring& substitution); void remove_match_at_iter(const iterator& start); void remove_tag_current(); void apply_tag_current(); static bool is_match_start(const iterator& where); static void find_line_bounds(iterator& line_begin, iterator& line_end); void update_bound_state(); void notify_weak_undos(); }; } // namespace Regexxer #endif /* REGEXXER_FILEBUFFER_H_INCLUDED */ regexxer-0.9/src/filebufferundo.cc0000644000175000017500000000626110547616660014251 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "filebufferundo.h" #include "filebuffer.h" #include namespace Regexxer { /**** Regexxer::FileBufferActionInsert *************************************/ FileBufferActionInsert::FileBufferActionInsert(FileBuffer& filebuffer, int offset, const Glib::ustring& text) : FileBufferAction(filebuffer), text_ (text), offset_ (offset) { buffer().increment_stamp(); } FileBufferActionInsert::~FileBufferActionInsert() {} bool FileBufferActionInsert::do_undo(const sigc::slot&) { g_return_val_if_fail(!buffer().in_user_action(), false); const FileBuffer::iterator text_begin = buffer().get_iter_at_offset(offset_); FileBuffer::iterator text_end = text_begin; text_end.forward_chars(text_.length()); text_end = buffer().erase(text_begin, text_end); buffer().place_cursor(text_end); buffer().decrement_stamp(); return false; } /**** Regexxer::FileBufferActionErase **************************************/ FileBufferActionErase::FileBufferActionErase(FileBuffer& filebuffer, int offset, const Glib::ustring& text) : FileBufferAction(filebuffer), text_ (text), offset_ (offset) { buffer().increment_stamp(); } FileBufferActionErase::~FileBufferActionErase() {} bool FileBufferActionErase::do_undo(const sigc::slot&) { g_return_val_if_fail(!buffer().in_user_action(), false); FileBuffer::iterator pos = buffer().get_iter_at_offset(offset_); pos = buffer().insert(pos, text_); buffer().place_cursor(pos); buffer().decrement_stamp(); return false; } /**** Regexxer::FileBufferActionRemoveMatch ********************************/ FileBufferActionRemoveMatch::FileBufferActionRemoveMatch( FileBuffer& filebuffer, int offset, const MatchDataPtr& match) : FileBufferAction(filebuffer), match_ (match), offset_ (offset) { if (match_) buffer().undo_add_weak(this); } FileBufferActionRemoveMatch::~FileBufferActionRemoveMatch() { if (match_) buffer().undo_remove_weak(this); } void FileBufferActionRemoveMatch::weak_notify() { match_.reset(); } bool FileBufferActionRemoveMatch::do_undo(const sigc::slot&) { if (match_) { g_return_val_if_fail(!buffer().in_user_action(), true); buffer().undo_remove_match(match_, offset_); } return true; } } // namespace Regexxer regexxer-0.9/src/filebufferundo.h0000644000175000017500000000431310547616660014107 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef REGEXXER_FILEBUFFERUNDO_H_INCLUDED #define REGEXXER_FILEBUFFERUNDO_H_INCLUDED #include "undostack.h" #include "fileshared.h" namespace Regexxer { class FileBuffer; class FileBufferAction : public UndoAction { protected: explicit FileBufferAction(FileBuffer& filebuffer) : buffer_ (filebuffer) {} FileBuffer& buffer() { return buffer_; } private: FileBuffer& buffer_; }; class FileBufferActionInsert : public FileBufferAction { public: FileBufferActionInsert(FileBuffer& filebuffer, int offset, const Glib::ustring& text); virtual ~FileBufferActionInsert(); private: Glib::ustring text_; int offset_; virtual bool do_undo(const sigc::slot& pulse); }; class FileBufferActionErase : public FileBufferAction { public: FileBufferActionErase(FileBuffer& filebuffer, int offset, const Glib::ustring& text); virtual ~FileBufferActionErase(); private: Glib::ustring text_; int offset_; virtual bool do_undo(const sigc::slot& pulse); }; class FileBufferActionRemoveMatch : public FileBufferAction { public: FileBufferActionRemoveMatch(FileBuffer& filebuffer, int offset, const MatchDataPtr& match); virtual ~FileBufferActionRemoveMatch(); void weak_notify(); private: MatchDataPtr match_; int offset_; virtual bool do_undo(const sigc::slot& pulse); }; } // namespace Regexxer #endif /* REGEXXER_FILEBUFFERUNDO_H_INCLUDED */ regexxer-0.9/src/fileio.cc0000644000175000017500000001106110551752613012505 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "fileio.h" #include "filebuffer.h" #include "miscutils.h" #include "stringutils.h" #include #include #include namespace { using Regexxer::FileBuffer; enum { BUFSIZE = 4096 }; static Glib::RefPtr load_iochannel(const Glib::RefPtr& input) { const Glib::RefPtr text_buffer = FileBuffer::create(); FileBuffer::iterator text_end = text_buffer->end(); const Util::ScopedArray inbuf (new char[BUFSIZE]); gsize bytes_read = 0; while (input->read(inbuf.get(), BUFSIZE, bytes_read) == Glib::IO_STATUS_NORMAL) { if (std::memchr(inbuf.get(), '\0', bytes_read)) // binary file? throw Regexxer::ErrorBinaryFile(); text_end = text_buffer->insert(text_end, inbuf.get(), inbuf.get() + bytes_read); } g_assert(bytes_read == 0); return text_buffer; } static void save_iochannel(const Glib::RefPtr& output, const Glib::RefPtr& buffer) { FileBuffer::iterator stop = buffer->begin(); for (FileBuffer::iterator start = stop; start; start = stop) { stop.forward_chars(BUFSIZE); // inaccurate, but doesn't matter const Glib::ustring chunk = buffer->get_slice(start, stop); gsize bytes_written = 0; const Glib::IOStatus status = output->write(chunk.data(), chunk.bytes(), bytes_written); // These conditions really must hold true at this point // since any error should have caused an exception. g_assert(status == Glib::IO_STATUS_NORMAL); g_assert(bytes_written == chunk.bytes()); } } static Glib::RefPtr load_try_encoding(const std::string& filename, const std::string& encoding) { const Glib::RefPtr channel = Glib::IOChannel::create_from_file(filename, "r"); channel->set_buffer_size(BUFSIZE); try { channel->set_encoding(encoding); return load_iochannel(channel); } catch (const Glib::ConvertError&) {} return Glib::RefPtr(); } } // anonymous namespace namespace Regexxer { /**** Regexxer::FileInfoBase ***********************************************/ FileInfoBase::~FileInfoBase() {} /**** Regexxer::DirInfo ****************************************************/ DirInfo::DirInfo() : file_count (0), modified_count (0) {} DirInfo::~DirInfo() {} /**** Regexxer::FileInfo ***************************************************/ FileInfo::FileInfo(const std::string& fullname_) : fullname (fullname_), load_failed (false) {} FileInfo::~FileInfo() {} /**** Regexxer -- file I/O functions ***************************************/ void load_file(const FileInfoPtr& fileinfo, const std::string& fallback_encoding) { fileinfo->load_failed = true; std::string encoding = "UTF-8"; Glib::RefPtr buffer = load_try_encoding(fileinfo->fullname, encoding); if (!buffer && !Glib::get_charset(encoding)) // locale charset is _not_ UTF-8 { buffer = load_try_encoding(fileinfo->fullname, encoding); } if (!buffer && !Util::encodings_equal(encoding, fallback_encoding)) { encoding = fallback_encoding; buffer = load_try_encoding(fileinfo->fullname, encoding); } if (!buffer) throw ErrorBinaryFile(); buffer->set_modified(false); fileinfo->encoding = encoding; fileinfo->buffer = buffer; fileinfo->load_failed = false; } void save_file(const FileInfoPtr& fileinfo) { const Glib::RefPtr channel = Glib::IOChannel::create_from_file(fileinfo->fullname, "w"); channel->set_buffer_size(BUFSIZE); channel->set_encoding(fileinfo->encoding); save_iochannel(channel, fileinfo->buffer); // Explicitely close() the buffer at this point so that // we get an exception if closing the file fails. channel->close(); fileinfo->buffer->set_modified(false); } } // namespace Regexxer regexxer-0.9/src/fileio.h0000644000175000017500000000353010547616660012357 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef REGEXXER_FILEIO_H_INCLUDED #define REGEXXER_FILEIO_H_INCLUDED #include "sharedptr.h" #include #include namespace Regexxer { class FileBuffer; class FileInfoBase : public Util::SharedObject { public: virtual ~FileInfoBase() = 0; }; struct DirInfo : public FileInfoBase { int file_count; int modified_count; DirInfo(); virtual ~DirInfo(); }; struct FileInfo : public FileInfoBase { std::string fullname; std::string encoding; Glib::RefPtr buffer; bool load_failed; explicit FileInfo(const std::string& fullname_); virtual ~FileInfo(); }; typedef Util::SharedPtr FileInfoBasePtr; typedef Util::SharedPtr DirInfoPtr; typedef Util::SharedPtr FileInfoPtr; class ErrorBinaryFile {}; // exception type void load_file(const FileInfoPtr& fileinfo, const std::string& fallback_encoding); void save_file(const FileInfoPtr& fileinfo); } // namespace Regexxer #endif /* REGEXXER_FILEIO_H_INCLUDED */ regexxer-0.9/src/fileshared.cc0000644000175000017500000000571710566103425013354 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "fileshared.h" #include "pcreshell.h" #include #include namespace { static const Glib::Quark& file_buffer_match_quark() { // Regexxer::FileBuffer uses anonymous Gtk::TextMark objects to remember // the position of matches. This quark is used to identify a match mark, // in order to be able to distinguish it from other anonymous marks. static Glib::Quark quark ("regexxer-file-buffer-match-quark"); return quark; } static int calculate_match_length(const Glib::ustring& subject, const std::pair& bounds) { const std::string::const_iterator begin = subject.begin().base(); const Glib::ustring::const_iterator start (begin + bounds.first); const Glib::ustring::const_iterator stop (begin + bounds.second); return std::distance(start, stop); } } // anonymous namespace namespace Regexxer { /**** Regexxer::MatchData **************************************************/ MatchData::MatchData(int match_index, const Glib::ustring& line, const Pcre::Pattern& pattern, int capture_count) : index (match_index), subject (line) { captures.reserve(capture_count); for (int i = 0; i < capture_count; ++i) captures.push_back(pattern.get_substring_bounds(i)); length = calculate_match_length(subject, captures.front()); } MatchData::~MatchData() { // We *should* be the only one holding a reference to the Mark apart from // the Gtk::TextBuffer itself. Nonetheless, let's better be extra careful // and invalidate the reference. if (mark) mark->steal_data(file_buffer_match_quark()); } void MatchData::install_mark(const Gtk::TextBuffer::iterator& pos) { g_return_if_fail(!mark); mark = pos.get_buffer()->create_mark(pos, false); // right gravity mark->set_data(file_buffer_match_quark(), this); } // static bool MatchData::is_match_mark(const Glib::RefPtr& textmark) { return (textmark->get_data(file_buffer_match_quark()) != 0); } // static Util::SharedPtr MatchData::get_from_mark(const Glib::RefPtr& textmark) { return MatchDataPtr(static_cast(textmark->get_data(file_buffer_match_quark()))); } } // namespace Regexxer regexxer-0.9/src/fileshared.h0000644000175000017500000000730010566103425013204 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef REGEXXER_FILESHARED_H_INCLUDED #define REGEXXER_FILESHARED_H_INCLUDED #include "sharedptr.h" #include #include #include #include namespace Pcre { class Pattern; } namespace Regexxer { enum BoundState { BOUND_NONE = 0, BOUND_FIRST = 1 << 0, BOUND_LAST = 1 << 1 }; inline BoundState operator|(BoundState a, BoundState b) { return static_cast(static_cast(a) | static_cast(b)); } inline BoundState operator&(BoundState a, BoundState b) { return static_cast(static_cast(a) & static_cast(b)); } inline BoundState operator^(BoundState a, BoundState b) { return static_cast(static_cast(a) ^ static_cast(b)); } inline BoundState operator~(BoundState flags) { return static_cast(~static_cast(flags)); } inline BoundState& operator|=(BoundState& a, BoundState b) { return (a = static_cast(static_cast(a) | static_cast(b))); } inline BoundState& operator&=(BoundState& a, BoundState b) { return (a = static_cast(static_cast(a) & static_cast(b))); } inline BoundState& operator^=(BoundState& a, BoundState b) { return (a = static_cast(static_cast(a) ^ static_cast(b))); } /* * This struct holds all the information that's necessary to locate a * match's position in the buffer and to substitute captured substrings * into a replacement string. The latter is achieved by storing the whole * subject string (i.e. the line in the buffer) together with a table of * indices into it. This arrangement should consume less memory than the * alternative of storing a vector of captured substrings since we want * to support $&, $`, $' too. */ struct MatchData : public Util::SharedObject { int index; int length; Glib::ustring subject; std::vector< std::pair > captures; Glib::RefPtr mark; MatchData(int match_index, const Glib::ustring& line, const Pcre::Pattern& pattern, int capture_count); ~MatchData(); void install_mark(const Gtk::TextBuffer::iterator& pos); static bool is_match_mark(const Glib::RefPtr& textmark); static Util::SharedPtr get_from_mark(const Glib::RefPtr& textmark); private: MatchData(const MatchData&); MatchData& operator=(const MatchData&); }; typedef Util::SharedPtr MatchDataPtr; /* * Sort predicate for use with std::set<>. */ struct MatchDataLess : public std::binary_function { bool operator()(const MatchDataPtr& a, const MatchDataPtr& b) const { return (a->index < b->index); } }; } // namespace Regexxer #endif /* REGEXXER_FILESHARED_H_INCLUDED */ regexxer-0.9/src/filetree.cc0000644000175000017500000007126210553053207013041 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "filetree.h" #include "filetreeprivate.h" #include "globalstrings.h" #include "pcreshell.h" #include "stringutils.h" #include "translation.h" #include #include #include #include #include /* * Custom widget creation function for libglade. */ extern "C" G_MODULE_EXPORT GtkWidget* regexxer_create_file_tree(char*, char*, char*, int, int) { try { Gtk::Widget *const widget = new Regexxer::FileTree(); widget->show(); return Gtk::manage(widget)->gobj(); } catch (...) { g_return_val_if_reached(0); } } namespace Regexxer { using namespace Regexxer::FileTreePrivate; /**** Regexxer::FileTree ***************************************************/ FileTree::FileTree() : treestore_ (Gtk::TreeStore::create(FileTreeColumns::instance())), color_modified_ ("#DF421E"), // accent red sum_matches_ (0) { using namespace Gtk; using sigc::mem_fun; set_model(treestore_); const FileTreeColumns& model_columns = FileTreeColumns::instance(); treestore_->set_default_sort_func(&default_sort_func); treestore_->set_sort_func(model_columns.collatekey, &collatekey_sort_func); treestore_->set_sort_column(TreeStore::DEFAULT_SORT_COLUMN_ID, SORT_ASCENDING); treestore_->signal_rows_reordered() .connect(mem_fun(*this, &FileTree::on_treestore_rows_reordered)); { Column *const column = new Column(_("File")); append_column(*manage(column)); CellRendererPixbuf *const cell_icon = new CellRendererPixbuf(); column->pack_start(*manage(cell_icon), false); CellRendererText *const cell_filename = new CellRendererText(); column->pack_start(*manage(cell_filename)); column->add_attribute(cell_filename->property_text(), model_columns.filename); column->set_cell_data_func(*cell_icon, mem_fun(*this, &FileTree::icon_cell_data_func)); column->set_cell_data_func(*cell_filename, mem_fun(*this, &FileTree::text_cell_data_func)); column->set_resizable(true); column->set_expand(true); column->set_sort_column(model_columns.collatekey); } { Column *const column = new Column(_("#")); append_column(*manage(column)); CellRendererText *const cell_matchcount = new CellRendererText(); column->pack_start(*manage(cell_matchcount)); column->add_attribute(cell_matchcount->property_text(), model_columns.matchcount); column->set_cell_data_func(*cell_matchcount, mem_fun(*this, &FileTree::text_cell_data_func)); column->set_alignment(1.0); cell_matchcount->property_xalign() = 1.0; column->set_sort_column(model_columns.matchcount); } set_search_column(model_columns.filename); const Glib::RefPtr selection = get_selection(); selection->set_select_function(&FileTree::select_func); selection->signal_changed().connect(mem_fun(*this, &FileTree::on_selection_changed)); Gnome::Conf::Client::get_default_client() ->signal_value_changed().connect(mem_fun(*this, &FileTree::on_conf_value_changed)); } FileTree::~FileTree() {} void FileTree::find_files(const std::string& dirname, Pcre::Pattern& pattern, bool recursive, bool hidden) { FindData find_data (pattern, recursive, hidden); const bool modified_count_changed = (toplevel_.modified_count != 0); treestore_->clear(); toplevel_.file_count = 0; toplevel_.modified_count = 0; sum_matches_ = 0; signal_bound_state_changed(); // emit signal_match_count_changed(); // emit if (modified_count_changed) signal_modified_count_changed(); // emit find_recursively(dirname, find_data); // Work around a strange misbehavior: the tree is kept sorted while the // file search is in progress, which causes the scroll offset to change // slightly. This in turn confuses TreeView::set_cursor() -- the first // call after the tree was completely filled just doesn't scroll. if (toplevel_.file_count > 0) scroll_to_row(Gtk::TreeModel::Path(1u, 0)); signal_bound_state_changed(); // emit if (!find_data.error_list->empty()) throw Error(find_data.error_list); } int FileTree::get_file_count() const { g_return_val_if_fail(toplevel_.file_count >= 0, 0); return toplevel_.file_count; } void FileTree::save_current_file() { if (const Gtk::TreeModel::iterator selected = get_selection()->get_selected()) { Util::SharedPtr error_list (new MessageList()); { Util::ScopedBlock block (conn_modified_changed_); save_file_at_iter(selected, error_list); } if (!error_list->empty()) throw Error(error_list); } } void FileTree::save_all_files() { Util::SharedPtr error_list (new MessageList()); { Util::ScopedBlock block (conn_modified_changed_); treestore_->foreach_iter(sigc::bind( sigc::mem_fun(*this, &FileTree::save_file_at_iter), sigc::ref(error_list))); } if (!error_list->empty()) throw Error(error_list); } void FileTree::select_first_file() { if (sum_matches_ > 0) expand_and_select(path_match_first_); } bool FileTree::select_next_file(bool move_forward) { if (Gtk::TreeModel::iterator iter = get_selection()->get_selected()) { Gtk::TreeModel::Path collapse; if ((move_forward) ? next_match_file(iter, &collapse) : prev_match_file(iter, &collapse)) { if (!collapse.empty()) collapse_row(collapse); expand_and_select(Gtk::TreeModel::Path(iter)); return true; } } return false; } BoundState FileTree::get_bound_state() { BoundState bound = BOUND_FIRST | BOUND_LAST; if (sum_matches_ > 0) { if (const Gtk::TreeModel::iterator iter = get_selection()->get_selected()) { Gtk::TreeModel::Path path (iter); if (path > path_match_first_) bound &= ~BOUND_FIRST; if (path < path_match_last_) bound &= ~BOUND_LAST; } } return bound; } void FileTree::find_matches(Pcre::Pattern& pattern, bool multiple) { { Util::ScopedBlock block_conn (conn_match_count_); ScopedBlockSorting block_sort (*this); FindMatchesData find_data (pattern, multiple); treestore_->foreach(sigc::bind( sigc::mem_fun(*this, &FileTree::find_matches_at_path_iter), sigc::ref(find_data))); } signal_bound_state_changed(); // emit } long FileTree::get_match_count() const { g_return_val_if_fail(sum_matches_ >= 0, 0); return sum_matches_; } void FileTree::replace_all_matches(const Glib::ustring& substitution) { { Util::ScopedBlock block_match_count (conn_match_count_); Util::ScopedBlock block_modified_changed (conn_modified_changed_); Util::ScopedBlock block_undo_stack_push (conn_undo_stack_push_); ScopedBlockSorting block_sort (*this); ReplaceMatchesData replace_data (*this, substitution); treestore_->foreach(sigc::bind( sigc::mem_fun(*this, &FileTree::replace_matches_at_path_iter), sigc::ref(replace_data))); // Adjust the boundary range if the operation has been interrupted. if (sum_matches_ > 0) { Gtk::TreeModel::iterator first = treestore_->get_iter(path_match_first_); if ((*first)[FileTreeColumns::instance().matchcount] == 0 && next_match_file(first)) path_match_first_ = first; } signal_undo_stack_push(replace_data.undo_stack); // emit } signal_bound_state_changed(); // emit } int FileTree::get_modified_count() const { g_return_val_if_fail(toplevel_.modified_count >= 0, 0); return toplevel_.modified_count; } /**** Regexxer::FileTree -- protected **************************************/ void FileTree::on_style_changed(const Glib::RefPtr& previous_style) { const Glib::ustring detail = "regexxer-filetree"; pixbuf_directory_ = render_icon(Gtk::Stock::DIRECTORY, Gtk::ICON_SIZE_MENU, detail); pixbuf_file_ = render_icon(Gtk::Stock::FILE, Gtk::ICON_SIZE_MENU, detail); pixbuf_load_failed_ = render_icon(Gtk::Stock::MISSING_IMAGE, Gtk::ICON_SIZE_MENU, detail); color_load_failed_ = get_style()->get_text(Gtk::STATE_INSENSITIVE); Gtk::TreeView::on_style_changed(previous_style); } /**** Regexxer::FileTree -- private ****************************************/ void FileTree::icon_cell_data_func(Gtk::CellRenderer* cell, const Gtk::TreeModel::iterator& iter) { Gtk::CellRendererPixbuf& renderer = dynamic_cast(*cell); const FileInfoBasePtr infobase = (*iter)[FileTreeColumns::instance().fileinfo]; if (const FileInfoPtr fileinfo = shared_dynamic_cast(infobase)) { renderer.property_pixbuf() = (fileinfo->load_failed) ? pixbuf_load_failed_ : pixbuf_file_; } else if (shared_dynamic_cast(infobase)) { renderer.property_pixbuf() = pixbuf_directory_; } else { renderer.property_pixbuf().reset_value(); } } void FileTree::text_cell_data_func(Gtk::CellRenderer* cell, const Gtk::TreeModel::iterator& iter) { Gtk::CellRendererText& renderer = dynamic_cast(*cell); const FileInfoBasePtr infobase = (*iter)[FileTreeColumns::instance().fileinfo]; const Gdk::Color* color = 0; if (const FileInfoPtr fileinfo = shared_dynamic_cast(infobase)) { if (fileinfo->load_failed) color = &color_load_failed_; else if (fileinfo->buffer && fileinfo->buffer->get_modified()) color = &color_modified_; } else if (const DirInfoPtr dirinfo = shared_dynamic_cast(infobase)) { if (dirinfo->modified_count > 0) color = &color_modified_; } if (color) renderer.property_foreground_gdk() = *color; else renderer.property_foreground_gdk().reset_value(); if (color == &color_modified_) renderer.property_style() = Pango::STYLE_OBLIQUE; else renderer.property_style().reset_value(); } // static bool FileTree::select_func(const Glib::RefPtr& model, const Gtk::TreeModel::Path& path, bool) { // Don't allow selection of directory nodes. return (get_fileinfo_from_iter(model->get_iter(path)) != 0); } void FileTree::find_recursively(const std::string& dirname, FindData& find_data) { using namespace Glib; try { int file_count = 0; Dir dir (dirname); for (Dir::iterator pos = dir.begin(); pos != dir.end(); ++pos) { if (signal_pulse()) // emit break; const std::string filename = *pos; if (!find_data.hidden && *filename.begin() == '.') continue; const std::string fullname = build_filename(dirname, filename); if (file_test(fullname, FILE_TEST_IS_SYMLINK)) continue; // ignore symbolic links if (find_data.recursive && file_test(fullname, FILE_TEST_IS_DIR)) { // Put the directory name on the stack instead of creating a new node // immediately. The corresponding node will be created on demand if // there's actually a matching file in the directory or one of its // subdirectories. ScopedPushDir pushdir (find_data.dirstack, fullname); find_recursively(fullname, find_data); // recurse } else if (file_test(fullname, FILE_TEST_IS_REGULAR)) { const ustring basename = Glib::filename_display_basename(fullname); if (find_data.pattern.match(basename) > 0) { find_add_file(basename, fullname, find_data); ++file_count; } } } find_increment_file_count(find_data, file_count); } catch (const FileError& error) { // Collect errors but don't interrupt the search. find_data.error_list->push_back(error.what()); } } void FileTree::find_add_file(const Glib::ustring& basename, const std::string& fullname, FindData& find_data) { // Build the collate key with a leading '1' so that directories always // come first (they have a leading '0'). This is simpler and faster // than explicitely checking for directories in the sort function. std::string collate_key (1, '1'); collate_key += basename.collate_key(); const FileInfoBasePtr fileinfo (new FileInfo(fullname)); Gtk::TreeModel::Row row; if (find_data.dirstack.empty()) { row = *treestore_->prepend(); // new toplevel node } else { if (!find_data.dirstack.back().second) find_fill_dirstack(find_data); // build all directory nodes in the stack row = *treestore_->prepend(find_data.dirstack.back().second->children()); } const FileTreeColumns& columns = FileTreeColumns::instance(); row[columns.filename] = basename; row[columns.collatekey] = collate_key; row[columns.fileinfo] = fileinfo; } void FileTree::find_fill_dirstack(FindData& find_data) { const FileTreeColumns& columns = FileTreeColumns::instance(); const DirStack::iterator pend = find_data.dirstack.end(); DirStack::iterator pprev = pend; for (DirStack::iterator pdir = find_data.dirstack.begin(); pdir != pend; pprev = pdir++) { if (pdir->second) // node already created continue; const Glib::ustring dirname = Glib::filename_display_basename(pdir->first); // Build the collate key with a leading '0' so that directories always // come first. This is simpler and faster than explicitely checking for // directories in the sort function. std::string collate_key (1, '0'); collate_key += dirname.collate_key(); const FileInfoBasePtr dirinfo (new DirInfo()); if (pprev == pend) pdir->second = treestore_->prepend(); // new toplevel node else pdir->second = treestore_->prepend(pprev->second->children()); Gtk::TreeModel::Row row = *pdir->second; row[columns.filename] = dirname; row[columns.collatekey] = collate_key; row[columns.fileinfo] = dirinfo; } } void FileTree::find_increment_file_count(FindData& find_data, int file_count) { if (file_count <= 0) return; const FileTreeColumns& columns = FileTreeColumns::instance(); const DirStack::iterator pbegin = find_data.dirstack.begin(); DirStack::iterator pdir = find_data.dirstack.end(); while (pdir != pbegin) { const FileInfoBasePtr base = (*(--pdir)->second)[columns.fileinfo]; shared_polymorphic_cast(base)->file_count += file_count; } toplevel_.file_count += file_count; signal_file_count_changed(); // emit } bool FileTree::save_file_at_iter(const Gtk::TreeModel::iterator& iter, const Util::SharedPtr& error_list) { const FileInfoPtr fileinfo = get_fileinfo_from_iter(iter); if (fileinfo && fileinfo->buffer && fileinfo->buffer->get_modified()) { try { save_file(fileinfo); } catch (const Glib::Error& error) { error_list->push_back(Util::compose(_("Failed to save file \342\200\234%1\342\200\235: %2"), Glib::filename_display_basename(fileinfo->fullname), error.what())); } if (!fileinfo->buffer->get_modified()) propagate_modified_change(iter, false); if (fileinfo != last_selected_ && fileinfo->buffer->is_freeable()) fileinfo->buffer.clear(); // reduce memory footprint } return false; } bool FileTree::find_matches_at_path_iter(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter, FindMatchesData& find_data) { if (signal_pulse()) // emit return true; if (const FileInfoPtr fileinfo = get_fileinfo_from_iter(iter)) { if (!fileinfo->buffer) load_file_with_fallback(iter, fileinfo); if (fileinfo->load_failed) return false; // continue const Glib::RefPtr buffer = fileinfo->buffer; g_assert(buffer); Util::ScopedConnection conn (buffer->signal_pulse.connect(signal_pulse.make_slot())); const int old_match_count = buffer->get_match_count(); // Optimize the common case and construct the feedback slot only if there // are actually any handlers connected to the signal. find_matches() can // then check whether the slot is empty to avoid providing arguments that // are never going to be used. const int new_match_count = buffer->find_matches(find_data.pattern, find_data.multiple, (signal_feedback.empty()) ? sigc::slot() : sigc::bind(signal_feedback.make_slot(), fileinfo)); if (new_match_count > 0) { if (!find_data.path_match_first_set) { find_data.path_match_first_set = true; path_match_first_ = path; } path_match_last_ = path; } if (new_match_count != old_match_count) propagate_match_count_change(iter, new_match_count - old_match_count); if (fileinfo != last_selected_ && buffer->is_freeable()) fileinfo->buffer.clear(); // reduce memory footprint } return false; } bool FileTree::replace_matches_at_path_iter(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter, ReplaceMatchesData& replace_data) { if (signal_pulse()) // emit return true; const FileInfoPtr fileinfo = get_fileinfo_from_iter(iter); if (fileinfo && fileinfo->buffer) { const Glib::RefPtr buffer = fileinfo->buffer; const int match_count = buffer->get_match_count(); if (match_count > 0) { path_match_first_ = path; if (fileinfo != last_selected_) replace_data.row_reference.reset(new TreeRowRef(treestore_, path)); else replace_data.row_reference = last_selected_rowref_; const bool was_modified = buffer->get_modified(); { // Redirect the buffer's signal_undo_stack_push() in order to create // a single user action object for all replacements in all buffers. // Note that the caller must block conn_undo_stack_push_ to avoid // double notification. Util::ScopedConnection conn1 (buffer->signal_undo_stack_push .connect(replace_data.slot_undo_stack_push)); Util::ScopedConnection conn2 (buffer->signal_pulse.connect(signal_pulse.make_slot())); buffer->replace_all_matches(replace_data.substitution); } const bool is_modified = buffer->get_modified(); if (was_modified != is_modified) propagate_modified_change(iter, is_modified); propagate_match_count_change(iter, buffer->get_match_count() - match_count); } } return false; } void FileTree::expand_and_select(const Gtk::TreeModel::Path& path) { expand_to_path(path); set_cursor(path); } void FileTree::on_treestore_rows_reordered(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter, int*) { if (sum_matches_ > 0) { const FileTreeColumns& columns = FileTreeColumns::instance(); bool bounds_changed = false; if (path.is_ancestor(path_match_first_)) { Gtk::TreeModel::iterator first = iter->children().begin(); while (first->children() && (*first)[columns.matchcount] > 0) first = first->children().begin(); if ((*first)[columns.matchcount] == 0) { const bool found_first = next_match_file(first); g_return_if_fail(found_first); } path_match_first_ = first; bounds_changed = true; } if (path.is_ancestor(path_match_last_)) { Gtk::TreeModel::iterator last = iter->children()[iter->children().size() - 1]; while (last->children() && (*last)[columns.matchcount] > 0) last = last->children()[last->children().size() - 1]; if ((*last)[columns.matchcount] == 0) { const bool found_last = prev_match_file(last); g_return_if_fail(found_last); } path_match_last_ = last; bounds_changed = true; } if (bounds_changed) signal_bound_state_changed(); // emit } } void FileTree::on_selection_changed() { last_selected_rowref_.reset(); conn_match_count_ .disconnect(); conn_modified_changed_.disconnect(); conn_undo_stack_push_ .disconnect(); FileInfoPtr fileinfo; int file_index = 0; if (const Gtk::TreeModel::iterator iter = get_selection()->get_selected()) { const FileInfoBasePtr base = (*iter)[FileTreeColumns::instance().fileinfo]; fileinfo = shared_polymorphic_cast(base); file_index = calculate_file_index(iter) + 1; if (!fileinfo->buffer) load_file_with_fallback(iter, fileinfo); if (!fileinfo->load_failed) { conn_match_count_ = fileinfo->buffer->signal_match_count_changed. connect(sigc::mem_fun(*this, &FileTree::on_buffer_match_count_changed)); conn_modified_changed_ = fileinfo->buffer->signal_modified_changed(). connect(sigc::mem_fun(*this, &FileTree::on_buffer_modified_changed)); conn_undo_stack_push_ = fileinfo->buffer->signal_undo_stack_push. connect(sigc::mem_fun(*this, &FileTree::on_buffer_undo_stack_push)); } last_selected_rowref_.reset(new TreeRowRef(treestore_, Gtk::TreeModel::Path(iter))); } if (last_selected_ && last_selected_ != fileinfo && last_selected_->buffer && last_selected_->buffer->is_freeable()) { last_selected_->buffer.clear(); // reduce memory footprint } last_selected_ = fileinfo; signal_switch_buffer(fileinfo, file_index); // emit signal_bound_state_changed(); // emit } void FileTree::on_buffer_match_count_changed() { const FileTreeColumns& columns = FileTreeColumns::instance(); // There has to be a selection since we receive signal_match_count_changed() // from the currently selected FileBuffer. Gtk::TreeModel::iterator iter = get_selection()->get_selected(); g_return_if_fail(iter); const FileInfoBasePtr base = (*iter)[columns.fileinfo]; const FileInfoPtr fileinfo = shared_polymorphic_cast(base); g_return_if_fail(fileinfo->buffer); const int match_count = fileinfo->buffer->get_match_count(); const int old_match_count = (*iter)[columns.matchcount]; if (match_count == old_match_count) return; // spurious emission -- do nothing const long old_sum_matches = sum_matches_; propagate_match_count_change(iter, match_count - old_match_count); if (old_sum_matches == 0) { path_match_first_ = iter; path_match_last_ = path_match_first_; } else if ((sum_matches_ > 0) && (old_match_count == 0 || match_count == 0)) { // OK, this nightmarish-looking code below is all about adjusting the // [path_match_first_,path_match_last_] range. Adjustment is necessary // if either a) match_count was previously 0 and iter is not already // in the range, or b) match_count dropped to 0 and iter is a boundary // of the range. // // Preconditions we definitely know at this point: // 1) old_sum_matches > 0 // 2) sum_matches != old_sum_matches && sum_matches > 0 // 3) old_match_count == 0 || match_count == 0 // 4) old_match_count != match_count g_assert(old_sum_matches > 0); g_assert(old_match_count != match_count); // The range should've been set up already since old_sum_matches > 0. g_return_if_fail(path_match_first_ <= path_match_last_); Gtk::TreeModel::Path path (iter); if (old_match_count == 0) { g_assert(match_count > 0); g_return_if_fail(path != path_match_first_ && path != path_match_last_); // Expand the range if necessary. if (path < path_match_first_) path_match_first_ = path; else if (path > path_match_last_) path_match_last_ = path; } else { g_assert(match_count == 0); g_return_if_fail(path >= path_match_first_ && path <= path_match_last_); if (path == path_match_first_) { // Find the new start boundary of the range. const bool found_next = next_match_file(iter); g_return_if_fail(found_next); path_match_first_ = iter; } else if (path == path_match_last_) { // Find the new end boundary of the range. const bool found_prev = prev_match_file(iter); g_return_if_fail(found_prev); path_match_last_ = iter; } } signal_bound_state_changed(); // emit } } void FileTree::on_buffer_modified_changed() { const Gtk::TreeModel::iterator selected = get_selection()->get_selected(); g_return_if_fail(selected); const FileInfoBasePtr base = (*selected)[FileTreeColumns::instance().fileinfo]; const FileInfoPtr fileinfo = shared_polymorphic_cast(base); g_return_if_fail(fileinfo == last_selected_); g_return_if_fail(fileinfo->buffer); propagate_modified_change(selected, fileinfo->buffer->get_modified()); } void FileTree::on_buffer_undo_stack_push(UndoActionPtr undo_action) { g_return_if_fail(last_selected_rowref_); const UndoActionPtr action_shell (new BufferActionShell(*this, last_selected_rowref_, undo_action)); signal_undo_stack_push(action_shell); // emit } int FileTree::calculate_file_index(const Gtk::TreeModel::iterator& pos) { int index = 0; Gtk::TreeModel::iterator iter = pos->parent(); if (iter) // calculate the parent's index first if there is one index = calculate_file_index(iter); // recurse const FileTreeColumns& columns = FileTreeColumns::instance(); for (iter = iter->children().begin(); iter != pos; ++iter) { const FileInfoBasePtr base = (*iter)[columns.fileinfo]; g_return_val_if_fail(base, index); if (const DirInfoPtr dirinfo = shared_dynamic_cast(base)) index += dirinfo->file_count; // count whole directory in one step else ++index; // single file } return index; } void FileTree::propagate_match_count_change(const Gtk::TreeModel::iterator& pos, int difference) { const FileTreeColumns& columns = FileTreeColumns::instance(); for (Gtk::TreeModel::iterator iter = pos; iter; iter = iter->parent()) { const int match_count = (*iter)[columns.matchcount]; (*iter)[columns.matchcount] = match_count + difference; } sum_matches_ += difference; signal_match_count_changed(); // emit } void FileTree::propagate_modified_change(const Gtk::TreeModel::iterator& pos, bool modified) { const int difference = (modified) ? 1 : -1; const FileTreeColumns& columns = FileTreeColumns::instance(); Gtk::TreeModel::Path path (pos); treestore_->row_changed(path, pos); for (Gtk::TreeModel::iterator iter = pos->parent(); iter && path.up(); iter = iter->parent()) { const FileInfoBasePtr base = (*iter)[columns.fileinfo]; const DirInfoPtr dirinfo = shared_polymorphic_cast(base); dirinfo->modified_count += difference; // Update the view only if the count flipped from 0 to 1 or vice versa. if (dirinfo->modified_count == int(modified)) treestore_->row_changed(path, iter); } toplevel_.modified_count += difference; signal_modified_count_changed(); // emit } void FileTree::load_file_with_fallback(const Gtk::TreeModel::iterator& iter, const FileInfoPtr& fileinfo) { g_return_if_fail(!fileinfo->buffer); const bool old_load_failed = fileinfo->load_failed; try { load_file(fileinfo, fallback_encoding_); } catch (const Glib::Error& error) { fileinfo->buffer = FileBuffer::create_with_error_message( render_icon(Gtk::Stock::DIALOG_ERROR, Gtk::ICON_SIZE_DIALOG), error.what()); } catch (const ErrorBinaryFile&) { const Glib::ustring filename = (*iter)[FileTreeColumns::instance().filename]; fileinfo->buffer = FileBuffer::create_with_error_message( render_icon(Gtk::Stock::DIALOG_ERROR, Gtk::ICON_SIZE_DIALOG), Util::compose(_("\342\200\234%1\342\200\235 seems to be a binary file."), filename)); } if (old_load_failed != fileinfo->load_failed) { // Trigger signal_row_changed() because the value of fileinfo->load_failed // changed, which means we have to change icon and color of the row. treestore_->row_changed(Gtk::TreeModel::Path(iter), iter); } } void FileTree::on_conf_value_changed(const Glib::ustring& key, const Gnome::Conf::Value& value) { if (value.get_type() == Gnome::Conf::VALUE_STRING) { if (key.raw() == conf_key_fallback_encoding) fallback_encoding_ = value.get_string(); } } } // namespace Regexxer regexxer-0.9/src/filetree.h0000644000175000017500000001402210566103034012670 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef REGEXXER_FILETREE_H_INCLUDED #define REGEXXER_FILETREE_H_INCLUDED #include "filebuffer.h" #include "fileio.h" #include "signalutils.h" #include "undostack.h" #include #include #include #include #include namespace Gtk { class TreeStore; } namespace Pcre { class Pattern; } namespace Gnome { namespace Conf { class Value; } } namespace Regexxer { class FileTree : public Gtk::TreeView { public: class Error; // exception class FileTree(); virtual ~FileTree(); void find_files(const std::string& dirname, Pcre::Pattern& pattern, bool recursive, bool hidden); int get_file_count() const; void save_current_file(); void save_all_files(); void select_first_file(); bool select_next_file(bool move_forward); BoundState get_bound_state(); void find_matches(Pcre::Pattern& pattern, bool multiple); long get_match_count() const; void replace_all_matches(const Glib::ustring& substitution); int get_modified_count() const; sigc::signal signal_switch_buffer; sigc::signal signal_bound_state_changed; sigc::signal signal_file_count_changed; sigc::signal signal_match_count_changed; sigc::signal signal_modified_count_changed; sigc::signal signal_pulse; sigc::signal signal_undo_stack_push; // Provide line number, subject and file info for match location output. sigc::signal signal_feedback; protected: virtual void on_style_changed(const Glib::RefPtr& previous_style); private: class TreeRowRef; class MessageList; class ScopedBlockSorting; class BufferActionShell; struct FindData; struct FindMatchesData; struct ReplaceMatchesData; typedef Util::SharedPtr TreeRowRefPtr; typedef Util::SharedPtr BufferActionShellPtr; Glib::RefPtr treestore_; Glib::RefPtr pixbuf_directory_; Glib::RefPtr pixbuf_file_; Glib::RefPtr pixbuf_load_failed_; Gdk::Color color_modified_; Gdk::Color color_load_failed_; TreeRowRefPtr last_selected_rowref_; FileInfoPtr last_selected_; DirInfo toplevel_; long sum_matches_; Util::AutoConnection conn_match_count_; Util::AutoConnection conn_modified_changed_; Util::AutoConnection conn_undo_stack_push_; Gtk::TreeModel::Path path_match_first_; Gtk::TreeModel::Path path_match_last_; std::string fallback_encoding_; void icon_cell_data_func(Gtk::CellRenderer* cell, const Gtk::TreeModel::iterator& iter); void text_cell_data_func(Gtk::CellRenderer* cell, const Gtk::TreeModel::iterator& iter); static bool select_func(const Glib::RefPtr& model, const Gtk::TreeModel::Path& path, bool currently_selected); void find_recursively(const std::string& dirname, FindData& find_data); void find_add_file(const Glib::ustring& basename, const std::string& fullname, FindData& find_data); void find_fill_dirstack(FindData& find_data); void find_increment_file_count(FindData& find_data, int file_count); bool save_file_at_iter(const Gtk::TreeModel::iterator& iter, const Util::SharedPtr& error_list); bool find_matches_at_path_iter(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter, FindMatchesData& find_data); bool replace_matches_at_path_iter(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter, ReplaceMatchesData& replace_data); void expand_and_select(const Gtk::TreeModel::Path& path); void on_treestore_rows_reordered(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter, int* order); void on_selection_changed(); void on_buffer_match_count_changed(); void on_buffer_modified_changed(); void on_buffer_undo_stack_push(UndoActionPtr undo_action); int calculate_file_index(const Gtk::TreeModel::iterator& pos); void propagate_match_count_change(const Gtk::TreeModel::iterator& pos, int difference); void propagate_modified_change(const Gtk::TreeModel::iterator& pos, bool modified); void load_file_with_fallback(const Gtk::TreeModel::iterator& iter, const FileInfoPtr& fileinfo); void on_conf_value_changed(const Glib::ustring& key, const Gnome::Conf::Value& value); }; class FileTree::Error { public: explicit Error(const Util::SharedPtr& error_list); virtual ~Error(); Error(const FileTree::Error& other); FileTree::Error& operator=(const FileTree::Error& other); const std::list& get_error_list() const; private: Util::SharedPtr error_list_; }; } // namespace Regexxer #endif /* REGEXXER_FILETREE_H_INCLUDED */ regexxer-0.9/src/filetreeprivate.cc0000644000175000017500000001720210566070155014433 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "filetreeprivate.h" #include #include namespace Regexxer { namespace FileTreePrivate { // static const FileTreeColumns& FileTreeColumns::instance() { static FileTreeColumns column_record; return column_record; } int default_sort_func(const Gtk::TreeModel::iterator& a, const Gtk::TreeModel::iterator& b) { const FileTreeColumns& columns = FileTreeColumns::instance(); const std::string a_key = (*a)[columns.collatekey]; const std::string b_key = (*b)[columns.collatekey]; return a_key.compare(b_key); } int collatekey_sort_func(const Gtk::TreeModel::iterator& a, const Gtk::TreeModel::iterator& b) { typedef std::string::difference_type diff_type; const FileTreeColumns& columns = FileTreeColumns::instance(); const std::string a_key = (*a)[columns.collatekey]; const std::string b_key = (*b)[columns.collatekey]; if (a_key.size() > 1 && b_key.size() > 1) return a_key.compare(1, std::string::npos, b_key, 1, std::string::npos); else return diff_type(a_key.size()) - diff_type(b_key.size()); } bool next_match_file(Gtk::TreeModel::iterator& iter, Gtk::TreeModel::Path* collapse) { g_return_val_if_fail(iter, false); const FileTreeColumns& columns = FileTreeColumns::instance(); Gtk::TreeModel::iterator parent = iter->parent(); ++iter; for (;;) { if (iter) { if ((*iter)[columns.matchcount] > 0) { if (const Gtk::TreeModel::Children& children = iter->children()) // directory? { parent = iter; iter = children.begin(); continue; } return true; } } else if (parent) { iter = parent; parent = iter->parent(); if (collapse) *collapse = iter; } else break; ++iter; } return false; } bool prev_match_file(Gtk::TreeModel::iterator& iter, Gtk::TreeModel::Path* collapse) { g_return_val_if_fail(iter, false); const FileTreeColumns& columns = FileTreeColumns::instance(); Gtk::TreeModel::iterator parent = iter->parent(); Gtk::TreeModel::Path path (iter); for (;;) { if (path.prev()) { iter = parent->children()[path.back()]; if ((*iter)[columns.matchcount] > 0) { if (const Gtk::TreeModel::Children& children = iter->children()) // directory? { parent = iter; path.push_back(children.size()); // one beyond the last child continue; } return true; } } else if (parent) { parent = parent->parent(); path.up(); if (collapse) *collapse = path; } else break; } return false; } } // namespace FileTreePrivate /**** Regexxer::FileTree::TreeRowRef ***************************************/ FileTree::TreeRowRef::TreeRowRef(const Glib::RefPtr& model, const Gtk::TreeModel::Path& path) : Gtk::TreeRowReference(model, path) {} FileTree::TreeRowRef::~TreeRowRef() {} /**** Regexxer::FileTree::MessageList **************************************/ FileTree::MessageList::MessageList() {} FileTree::MessageList::~MessageList() {} /**** Regexxer::FileTree::Error ********************************************/ FileTree::Error::Error(const Util::SharedPtr& error_list) : error_list_ (error_list) {} FileTree::Error::~Error() {} FileTree::Error::Error(const FileTree::Error& other) : error_list_ (other.error_list_) {} FileTree::Error& FileTree::Error::operator=(const FileTree::Error& other) { error_list_ = other.error_list_; return *this; } const std::list& FileTree::Error::get_error_list() const { return *error_list_; } /**** Regexxer::FileTree::FindData *****************************************/ FileTree::FindData::FindData(Pcre::Pattern& pattern_, bool recursive_, bool hidden_) : pattern (pattern_), recursive (recursive_), hidden (hidden_), error_list (new FileTree::MessageList()) {} FileTree::FindData::~FindData() {} /**** Regexxer::FileTree::FindMatchesData **********************************/ FileTree::FindMatchesData::FindMatchesData(Pcre::Pattern& pattern_, bool multiple_) : pattern (pattern_), multiple (multiple_), path_match_first_set (false) {} /**** Regexxer::FileTree::ReplaceMatchesData *******************************/ FileTree::ReplaceMatchesData::ReplaceMatchesData(FileTree& filetree_, const Glib::ustring& substitution_) : filetree (filetree_), substitution (substitution_), undo_stack (new UndoStack()), slot_undo_stack_push (sigc::mem_fun(*this, &FileTree::ReplaceMatchesData::undo_stack_push)) {} FileTree::ReplaceMatchesData::~ReplaceMatchesData() {} void FileTree::ReplaceMatchesData::undo_stack_push(UndoActionPtr undo_action) { g_return_if_fail(row_reference); undo_stack->push(UndoActionPtr(new BufferActionShell(filetree, row_reference, undo_action))); } /**** Regexxer::FileTree::ScopedBlockSorting *******************************/ FileTree::ScopedBlockSorting::ScopedBlockSorting(FileTree& filetree) : filetree_ (filetree), sort_column_ (Gtk::TreeStore::DEFAULT_SORT_COLUMN_ID), sort_order_ (Gtk::SORT_ASCENDING) { filetree_.set_headers_clickable(false); filetree_.treestore_->get_sort_column_id(sort_column_, sort_order_); // If we're currently sorting on the match count column, we have to switch // temporarily to the default sort column because changes to the match count // could cause reordering of the model. Gtk::TreeModel::foreach() won't // like that at all, and that's precisely why this utility class exists. // if (sort_column_ == FileTreePrivate::FileTreeColumns::instance().matchcount.index()) filetree_.treestore_->set_sort_column(Gtk::TreeStore::DEFAULT_SORT_COLUMN_ID, sort_order_); } FileTree::ScopedBlockSorting::~ScopedBlockSorting() { filetree_.treestore_->set_sort_column(sort_column_, sort_order_); filetree_.set_headers_clickable(true); } /**** Regexxer::FileTree::BufferActionShell ********************************/ FileTree::BufferActionShell::BufferActionShell(FileTree& filetree, const FileTree::TreeRowRefPtr& row_reference, const UndoActionPtr& buffer_action) : filetree_ (filetree), row_reference_ (row_reference), buffer_action_ (buffer_action) {} FileTree::BufferActionShell::~BufferActionShell() {} bool FileTree::BufferActionShell::do_undo(const sigc::slot& pulse) { g_return_val_if_fail(row_reference_->is_valid(), false); const Gtk::TreeModel::Path path = row_reference_->get_path(); if (!filetree_.last_selected_rowref_ || filetree_.last_selected_rowref_->get_path() != path) { filetree_.expand_and_select(path); } return buffer_action_->undo(pulse); } } // namespace Regexxer regexxer-0.9/src/filetreeprivate.h0000644000175000017500000001362110566103425014273 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef REGEXXER_FILETREEPRIVATE_H_INCLUDED #define REGEXXER_FILETREEPRIVATE_H_INCLUDED #include "filetree.h" #include #include #include namespace Regexxer { /* * This namespace contains all types and functions which are used exclusively by * the FileTree implementation, but aren't members of class Regexxer::FileTree. */ namespace FileTreePrivate { // Normally I don't like global using declarations, but it's // reasonable to make an exception for the smart pointer casts. using Util::shared_dynamic_cast; using Util::shared_polymorphic_cast; struct FileTreeColumns : public Gtk::TreeModel::ColumnRecord { Gtk::TreeModelColumn filename; Gtk::TreeModelColumn collatekey; Gtk::TreeModelColumn matchcount; Gtk::TreeModelColumn fileinfo; static const FileTreeColumns& instance(); private: FileTreeColumns() { add(filename); add(collatekey); add(matchcount); add(fileinfo); } }; inline FileInfoPtr get_fileinfo_from_iter(const Gtk::TreeModel::iterator& iter) { const FileInfoBasePtr base ((*iter)[FileTreeColumns::instance().fileinfo]); return shared_dynamic_cast(base); } int default_sort_func (const Gtk::TreeModel::iterator& a, const Gtk::TreeModel::iterator& b); int collatekey_sort_func(const Gtk::TreeModel::iterator& a, const Gtk::TreeModel::iterator& b); bool next_match_file(Gtk::TreeModel::iterator& iter, Gtk::TreeModel::Path* collapse = 0); bool prev_match_file(Gtk::TreeModel::iterator& iter, Gtk::TreeModel::Path* collapse = 0); typedef std::pair DirNodePair; typedef std::list DirStack; class ScopedPushDir { private: DirStack& dirstack_; ScopedPushDir(const ScopedPushDir&); ScopedPushDir& operator=(const ScopedPushDir&); public: ScopedPushDir(DirStack& dirstack, const std::string& dirname) : dirstack_ (dirstack) { dirstack_.push_back(DirNodePair(dirname, Gtk::TreeModel::iterator())); } ~ScopedPushDir() { dirstack_.pop_back(); } }; } // namespace FileTreePrivate /* This is just a Gtk::TreeRowReference wrapper that can be used with Util::SharedPtr<>. */ class FileTree::TreeRowRef : public Util::SharedObject, public Gtk::TreeRowReference { public: TreeRowRef(const Glib::RefPtr& model, const Gtk::TreeModel::Path& path); ~TreeRowRef(); private: TreeRowRef(const FileTree::TreeRowRef&); FileTree::TreeRowRef& operator=(const FileTree::TreeRowRef&); }; /* This is just a std::list<> wrapper that can be used with Util::SharedPtr<>. */ class FileTree::MessageList : public Util::SharedObject, public std::list { public: MessageList(); ~MessageList(); private: MessageList(const FileTree::MessageList&); FileTree::MessageList& operator=(const FileTree::MessageList&); }; struct FileTree::FindData { FindData(Pcre::Pattern& pattern_, bool recursive_, bool hidden_); ~FindData(); Pcre::Pattern& pattern; const bool recursive; const bool hidden; FileTreePrivate::DirStack dirstack; Util::SharedPtr error_list; private: FindData(const FileTree::FindData&); FileTree::FindData& operator=(const FileTree::FindData&); }; struct FileTree::FindMatchesData { FindMatchesData(Pcre::Pattern& pattern_, bool multiple_); Pcre::Pattern& pattern; const bool multiple; bool path_match_first_set; private: FindMatchesData(const FileTree::FindMatchesData&); FileTree::FindMatchesData& operator=(const FileTree::FindMatchesData&); }; struct FileTree::ReplaceMatchesData { ReplaceMatchesData(FileTree& filetree_, const Glib::ustring& substitution_); ~ReplaceMatchesData(); FileTree& filetree; const Glib::ustring substitution; FileTree::TreeRowRefPtr row_reference; UndoStackPtr undo_stack; const sigc::slot slot_undo_stack_push; void undo_stack_push(UndoActionPtr undo_action); private: ReplaceMatchesData(const FileTree::ReplaceMatchesData&); FileTree::ReplaceMatchesData& operator=(const FileTree::ReplaceMatchesData&); }; class FileTree::ScopedBlockSorting { public: explicit ScopedBlockSorting(FileTree& filetree); ~ScopedBlockSorting(); private: FileTree& filetree_; int sort_column_; Gtk::SortType sort_order_; ScopedBlockSorting(const FileTree::ScopedBlockSorting&); FileTree::ScopedBlockSorting& operator=(const FileTree::ScopedBlockSorting&); }; class FileTree::BufferActionShell : public UndoAction { public: BufferActionShell(FileTree& filetree, const FileTree::TreeRowRefPtr& row_reference, const UndoActionPtr& buffer_action); virtual ~BufferActionShell(); private: FileTree& filetree_; FileTree::TreeRowRefPtr row_reference_; UndoActionPtr buffer_action_; virtual bool do_undo(const sigc::slot& pulse); }; } // namespace Regexxer #endif /* REGEXXER_FILETREEPRIVATE_H_INCLUDED */ regexxer-0.9/src/globalstrings.h0000644000175000017500000000413010552047363013751 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef REGEXXER_GLOBALSTRINGS_H_INCLUDED #define REGEXXER_GLOBALSTRINGS_H_INCLUDED #include /* for G_DIR_SEPARATOR_S */ namespace Regexxer { /* * Thanks to the GNU compiler/linker, these namespaced string constants * are no less efficient than string literals or preprocessor #defines. * The final executable contains exactly one copy of each string literal, * so there's no need to define them in a separate object file. */ const char *const conf_dir_application = "/apps/regexxer"; const char *const conf_key_textview_font = "/apps/regexxer/textview_font"; const char *const conf_key_match_color = "/apps/regexxer/match_color"; const char *const conf_key_current_match_color = "/apps/regexxer/current_match_color"; const char *const conf_key_toolbar_style = "/apps/regexxer/toolbar_style"; const char *const conf_key_fallback_encoding = "/apps/regexxer/fallback_encoding"; const char *const glade_mainwindow_filename = REGEXXER_PKGDATADIR G_DIR_SEPARATOR_S "mainwindow.glade"; const char *const glade_prefdialog_filename = REGEXXER_PKGDATADIR G_DIR_SEPARATOR_S "prefdialog.glade"; } // namespace Regexxer #endif /* REGEXXER_GLOBALSTRINGS_H_INCLUDED */ regexxer-0.9/src/main.cc0000644000175000017500000001750110560467704012173 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "globalstrings.h" #include "mainwindow.h" #include "miscutils.h" #include "translation.h" #include #include /* for gtk_window_set_default_icon_name() */ #include #include #include #include #include #include #include #include #include #include #include #include #include namespace { /* * Include inlined raw pixbuf data generated by gdk-pixbuf-csource. */ #include struct StockIconData { const guint8* data; int length; Gtk::BuiltinIconSize size; }; struct StockItemData { const char* id; const StockIconData* icons; int n_icons; const char* label; }; static const StockIconData stock_icon_save_all[] = { { stock_save_all_16, sizeof(stock_save_all_16), Gtk::ICON_SIZE_MENU }, { stock_save_all_24, sizeof(stock_save_all_24), Gtk::ICON_SIZE_SMALL_TOOLBAR } }; static const StockItemData regexxer_stock_items[] = { { "regexxer-save-all", stock_icon_save_all, G_N_ELEMENTS(stock_icon_save_all), N_("Save _all") } }; class RegexxerOptions { private: Regexxer::InitState init_state_; Glib::OptionGroup group_; Glib::OptionContext context_; static Glib::OptionEntry entry(const char* long_name, char short_name, const char* description, const char* arg_description = 0); RegexxerOptions(); public: static std::auto_ptr create(); ~RegexxerOptions(); Glib::OptionContext& context() { return context_; } Regexxer::InitState& init_state() { return init_state_; } }; // static Glib::OptionEntry RegexxerOptions::entry(const char* long_name, char short_name, const char* description, const char* arg_description) { Glib::OptionEntry option_entry; option_entry.set_long_name(long_name); option_entry.set_short_name(short_name); if (description) option_entry.set_description(description); if (arg_description) option_entry.set_arg_description(arg_description); return option_entry; } RegexxerOptions::RegexxerOptions() : init_state_ (), group_ (PACKAGE_TARNAME, Glib::ustring()), context_ () {} RegexxerOptions::~RegexxerOptions() {} // static std::auto_ptr RegexxerOptions::create() { std::auto_ptr options (new RegexxerOptions()); Glib::OptionGroup& group = options->group_; Regexxer::InitState& init = options->init_state_; group.add_entry(entry("pattern", 'p', N_("Find files matching PATTERN"), N_("PATTERN")), init.pattern); group.add_entry(entry("no-recursion", 'R', N_("Do not recurse into subdirectories")), init.no_recursive); group.add_entry(entry("hidden", 'h', N_("Also find hidden files")), init.hidden); group.add_entry(entry("regex", 'e', N_("Find text matching REGEX"), N_("REGEX")), init.regex); group.add_entry(entry("no-global", 'G', N_("Find only the first match in a line")), init.no_global); group.add_entry(entry("ignore-case", 'i', N_("Do case insensitive matching")), init.ignorecase); group.add_entry(entry("substitution", 's', N_("Replace matches with STRING"), N_("STRING")), init.substitution); group.add_entry(entry("line-number", 'n', N_("Print match location to standard output")), init.feedback); group.add_entry(entry("no-autorun", 'A', N_("Do not automatically start search")), init.no_autorun); group.add_entry_filename(entry(G_OPTION_REMAINING, '\0', 0, N_("[FOLDER]")), init.folder); group.set_translation_domain(PACKAGE_TARNAME); options->context_.set_main_group(group); return options; } static void register_stock_items() { const Glib::RefPtr factory = Gtk::IconFactory::create(); const Glib::ustring domain = PACKAGE_TARNAME; for (unsigned int item = 0; item < G_N_ELEMENTS(regexxer_stock_items); ++item) { const StockItemData& stock = regexxer_stock_items[item]; Gtk::IconSet icon_set; for (int icon = 0; icon < stock.n_icons; ++icon) { const StockIconData& icon_data = stock.icons[icon]; Gtk::IconSource source; source.set_pixbuf(Gdk::Pixbuf::create_from_inline(icon_data.length, icon_data.data)); source.set_size(icon_data.size); // Unset wildcarded for all but the the last icon. source.set_size_wildcarded(icon == stock.n_icons - 1); icon_set.add_source(source); } const Gtk::StockID stock_id (stock.id); factory->add(stock_id, icon_set); Gtk::Stock::add(Gtk::StockItem(stock_id, stock.label, Gdk::ModifierType(0), 0, domain)); } factory->add_default(); } static void trap_gconf_exceptions() { try { throw; // re-throw current exception } catch (const Gnome::Conf::Error&) { // Ignore GConf exceptions thrown from GObject signal handlers. // GConf itself is going print the warning message for us // since we set the error handling mode to CLIENT_HANDLE_ALL. } } static void initialize_configuration() { using namespace Gnome::Conf; Glib::add_exception_handler(&trap_gconf_exceptions); const Glib::RefPtr client = Client::get_default_client(); client->set_error_handling(CLIENT_HANDLE_ALL); client->add_dir(Regexxer::conf_dir_application, CLIENT_PRELOAD_ONELEVEL); const std::list entries = client->all_entries(Regexxer::conf_dir_application); // Issue an artificial value_changed() signal for each entry in /apps/regexxer. // Reusing the signal handlers this way neatly avoids the need for separate // startup-initialization routines. for (std::list::const_iterator p = entries.begin(); p != entries.end(); ++p) { client->value_changed(p->get_key(), p->get_value()); } } } // anonymous namespace int main(int argc, char** argv) { try { Util::initialize_gettext(PACKAGE_TARNAME, REGEXXER_LOCALEDIR); Gnome::Conf::init(); std::auto_ptr options = RegexxerOptions::create(); Gtk::Main main_instance (argc, argv, options->context()); Glib::set_application_name(PACKAGE_NAME); register_stock_items(); gtk_window_set_default_icon_name(PACKAGE_TARNAME); Regexxer::MainWindow window; initialize_configuration(); window.initialize(options->init_state()); options.reset(); Gtk::Main::run(*window.get_window()); return 0; } catch (const Glib::OptionError& error) { const Glib::ustring what = error.what(); g_printerr("%s: %s\n", g_get_prgname(), what.c_str()); } catch (const Glib::Error& error) { const Glib::ustring what = error.what(); g_error("unhandled exception: %s", what.c_str()); } catch (const std::exception& ex) { g_error("unhandled exception: %s", ex.what()); } catch (...) { g_error("unhandled exception: (type unknown)"); } return 1; } regexxer-0.9/src/mainwindow.cc0000644000175000017500000006612210565174324013424 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "mainwindow.h" #include "filetree.h" #include "globalstrings.h" #include "pcreshell.h" #include "prefdialog.h" #include "statusline.h" #include "stringutils.h" #include "translation.h" #include #include #include #include #include #include #include #include namespace { enum { BUSY_GUI_UPDATE_INTERVAL = 16 }; typedef Glib::RefPtr FileBufferPtr; static const char *const selection_clipboard = "CLIPBOARD"; /* * List of authors to be displayed in the about dialog. */ static const char *const program_authors[] = { "Daniel Elstner ", "Murray Cumming ", 0 }; static const char *const program_license = "regexxer 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.\n" "\n" "regexxer 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.\n" "\n" "You should have received a copy of the GNU General Public License " "along with regexxer; if not, write to the Free Software Foundation, " "Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n"; class FileErrorDialog : public Gtk::MessageDialog { public: FileErrorDialog(Gtk::Window& parent, const Glib::ustring& message, Gtk::MessageType type, const Regexxer::FileTree::Error& error); virtual ~FileErrorDialog(); }; FileErrorDialog::FileErrorDialog(Gtk::Window& parent, const Glib::ustring& message, Gtk::MessageType type, const Regexxer::FileTree::Error& error) : Gtk::MessageDialog(parent, message, false, type, Gtk::BUTTONS_OK, true) { using namespace Gtk; const Glib::RefPtr buffer = TextBuffer::create(); TextBuffer::iterator buffer_end = buffer->end(); typedef std::list ErrorList; const ErrorList& error_list = error.get_error_list(); for (ErrorList::const_iterator perr = error_list.begin(); perr != error_list.end(); ++perr) buffer_end = buffer->insert(buffer_end, *perr + '\n'); Box& box = *get_vbox(); Frame *const frame = new Frame(); box.pack_start(*manage(frame), PACK_EXPAND_WIDGET); frame->set_border_width(6); // HIG spacing frame->set_shadow_type(SHADOW_IN); ScrolledWindow *const scrollwin = new ScrolledWindow(); frame->add(*manage(scrollwin)); scrollwin->set_policy(POLICY_AUTOMATIC, POLICY_AUTOMATIC); TextView *const textview = new TextView(buffer); scrollwin->add(*manage(textview)); textview->set_editable(false); textview->set_cursor_visible(false); textview->set_wrap_mode(WRAP_WORD); textview->set_pixels_below_lines(8); set_default_size(400, 250); frame->show_all(); } FileErrorDialog::~FileErrorDialog() {} static void print_location(int linenumber, const Glib::ustring& subject, Regexxer::FileInfoPtr fileinfo) { std::cout << fileinfo->fullname << ':' << linenumber + 1 << ':'; std::string charset; if (Glib::get_charset(charset)) std::cout << subject.raw(); // charset is UTF-8 else std::cout << Glib::convert_with_fallback(subject.raw(), charset, "UTF-8"); std::cout << std::endl; } } // anonymous namespace namespace Regexxer { /**** Regexxer::InitState **************************************************/ InitState::InitState() : folder (), pattern (), regex (), substitution (), no_recursive (false), hidden (false), no_global (false), ignorecase (false), feedback (false), no_autorun (false) {} InitState::~InitState() {} /**** Regexxer::MainWindow::BusyAction *************************************/ class MainWindow::BusyAction { private: MainWindow& object_; BusyAction(const BusyAction&); BusyAction& operator=(const BusyAction&); public: explicit BusyAction(MainWindow& object) : object_ (object) { object_.busy_action_enter(); } ~BusyAction() { object_.busy_action_leave(); } }; /**** Regexxer::MainWindow *************************************************/ MainWindow::MainWindow() : toolbar_ (0), button_folder_ (0), entry_pattern_ (0), button_recursive_ (0), button_hidden_ (0), entry_regex_ (0), entry_substitution_ (0), button_multiple_ (0), button_caseless_ (0), filetree_ (0), textview_ (0), entry_preview_ (0), statusline_ (0), busy_action_running_ (false), busy_action_cancel_ (false), busy_action_iteration_ (0), undo_stack_ (new UndoStack()) { load_xml(); textview_->set_buffer(FileBuffer::create()); window_->set_title(PACKAGE_NAME); connect_signals(); } MainWindow::~MainWindow() {} void MainWindow::initialize(const InitState& init) { std::string folder; if (!init.folder.empty()) folder = init.folder.front(); if (!Glib::path_is_absolute(folder)) folder = Glib::build_filename(Glib::get_current_dir(), folder); const bool folder_exists = button_folder_->set_current_folder(folder); entry_pattern_->set_text((init.pattern.empty()) ? Glib::ustring(1, '*') : init.pattern); entry_regex_ ->set_text(init.regex); entry_substitution_->set_text(init.substitution); button_recursive_->set_active(!init.no_recursive); button_hidden_ ->set_active(init.hidden); button_multiple_ ->set_active(!init.no_global); button_caseless_ ->set_active(init.ignorecase); if (init.feedback) filetree_->signal_feedback.connect(&print_location); // Strangely, folder_exists seems to be always true, probably because the // file chooser works asynchronously but the GLib main loop isn't running // yet. As a work-around, explicitely check whether the directory exists // on the file system as well. if (folder_exists && !init.no_autorun && !init.folder.empty() && !init.pattern.empty() && Glib::file_test(folder, Glib::FILE_TEST_IS_DIR)) { Glib::signal_idle().connect(sigc::mem_fun(*this, &MainWindow::autorun_idle)); } } /**** Regexxer::MainWindow -- private **************************************/ void MainWindow::load_xml() { using Gnome::Glade::Xml; const Glib::RefPtr xml = Xml::create(glade_mainwindow_filename); Gtk::Window* mainwindow = 0; window_.reset(xml->get_widget("mainwindow", mainwindow)); xml->get_widget("toolbar", toolbar_); xml->get_widget("button_folder", button_folder_); xml->get_widget("button_recursive", button_recursive_); xml->get_widget("button_hidden", button_hidden_); xml->get_widget("entry_regex", entry_regex_); xml->get_widget("entry_substitution", entry_substitution_); xml->get_widget("button_multiple", button_multiple_); xml->get_widget("button_caseless", button_caseless_); xml->get_widget("filetree", filetree_); xml->get_widget("textview", textview_); xml->get_widget("entry_preview", entry_preview_); xml->get_widget("statusline", statusline_); xml->get_widget("combo_pattern_entry", entry_pattern_); controller_.load_xml(xml); } void MainWindow::connect_signals() { using sigc::bind; using sigc::mem_fun; window_->signal_hide ().connect(mem_fun(*this, &MainWindow::on_hide)); window_->signal_style_changed().connect(mem_fun(*this, &MainWindow::on_style_changed)); window_->signal_delete_event ().connect(mem_fun(*this, &MainWindow::on_delete_event)); entry_pattern_->signal_activate().connect(controller_.find_files.slot()); entry_pattern_->signal_changed ().connect(mem_fun(*this, &MainWindow::on_entry_pattern_changed)); entry_regex_ ->signal_activate().connect(controller_.find_matches.slot()); entry_substitution_->signal_activate().connect(controller_.find_matches.slot()); entry_substitution_->signal_changed ().connect(mem_fun(*this, &MainWindow::update_preview)); controller_.save_file .connect(mem_fun(*this, &MainWindow::on_save_file)); controller_.save_all .connect(mem_fun(*this, &MainWindow::on_save_all)); controller_.undo .connect(mem_fun(*this, &MainWindow::on_undo)); controller_.cut .connect(mem_fun(*this, &MainWindow::on_cut)); controller_.copy .connect(mem_fun(*this, &MainWindow::on_copy)); controller_.paste .connect(mem_fun(*this, &MainWindow::on_paste)); controller_.erase .connect(mem_fun(*this, &MainWindow::on_erase)); controller_.preferences .connect(mem_fun(*this, &MainWindow::on_preferences)); controller_.quit .connect(mem_fun(*this, &MainWindow::on_quit)); controller_.about .connect(mem_fun(*this, &MainWindow::on_about)); controller_.find_files .connect(mem_fun(*this, &MainWindow::on_find_files)); controller_.find_matches.connect(mem_fun(*this, &MainWindow::on_exec_search)); controller_.next_file .connect(bind(mem_fun(*this, &MainWindow::on_go_next_file), true)); controller_.prev_file .connect(bind(mem_fun(*this, &MainWindow::on_go_next_file), false)); controller_.next_match .connect(bind(mem_fun(*this, &MainWindow::on_go_next), true)); controller_.prev_match .connect(bind(mem_fun(*this, &MainWindow::on_go_next), false)); controller_.replace .connect(mem_fun(*this, &MainWindow::on_replace)); controller_.replace_file.connect(mem_fun(*this, &MainWindow::on_replace_file)); controller_.replace_all .connect(mem_fun(*this, &MainWindow::on_replace_all)); Gnome::Conf::Client::get_default_client() ->signal_value_changed().connect(mem_fun(*this, &MainWindow::on_conf_value_changed)); statusline_->signal_cancel_clicked.connect( mem_fun(*this, &MainWindow::on_busy_action_cancel)); filetree_->signal_switch_buffer.connect( mem_fun(*this, &MainWindow::on_filetree_switch_buffer)); filetree_->signal_bound_state_changed.connect( mem_fun(*this, &MainWindow::on_bound_state_changed)); filetree_->signal_file_count_changed.connect( mem_fun(*this, &MainWindow::on_filetree_file_count_changed)); filetree_->signal_match_count_changed.connect( mem_fun(*this, &MainWindow::on_filetree_match_count_changed)); filetree_->signal_modified_count_changed.connect( mem_fun(*this, &MainWindow::on_filetree_modified_count_changed)); filetree_->signal_pulse.connect( mem_fun(*this, &MainWindow::on_busy_action_pulse)); filetree_->signal_undo_stack_push.connect( mem_fun(*this, &MainWindow::on_undo_stack_push)); } bool MainWindow::autorun_idle() { controller_.find_files.activate(); if (!busy_action_cancel_ && entry_regex_->get_text_length() > 0) controller_.find_matches.activate(); return false; } void MainWindow::on_hide() { on_busy_action_cancel(); // Kill the dialogs if they're mapped right now. This isn't strictly // necessary since they'd be deleted in the destructor anyway. But if we // have to do a lot of cleanup the dialogs would stay open for that time, // which doesn't look neat. { // Play safe and transfer ownership, and let the dtor do the delete. const std::auto_ptr temp (about_dialog_); } { const std::auto_ptr temp (pref_dialog_); } } void MainWindow::on_style_changed(const Glib::RefPtr&) { FileBuffer::pango_context_changed(window_->get_pango_context()); } bool MainWindow::on_delete_event(GdkEventAny*) { return !confirm_quit_request(); } void MainWindow::on_cut() { if (const Glib::RefPtr buffer = textview_->get_buffer()) buffer->cut_clipboard(textview_->get_clipboard(selection_clipboard), textview_->get_editable()); } void MainWindow::on_copy() { if (const Glib::RefPtr buffer = textview_->get_buffer()) buffer->copy_clipboard(textview_->get_clipboard(selection_clipboard)); } void MainWindow::on_paste() { if (const Glib::RefPtr buffer = textview_->get_buffer()) buffer->paste_clipboard(textview_->get_clipboard(selection_clipboard), textview_->get_editable()); } void MainWindow::on_erase() { if (const Glib::RefPtr buffer = textview_->get_buffer()) buffer->erase_selection(true, textview_->get_editable()); } void MainWindow::on_quit() { if (confirm_quit_request()) window_->hide(); } bool MainWindow::confirm_quit_request() { if (filetree_->get_modified_count() == 0) return true; Gtk::MessageDialog dialog (*window_, _("Some files haven\342\200\231t been saved yet.\nQuit anyway?"), false, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_NONE, true); dialog.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); dialog.add_button(Gtk::Stock::QUIT, Gtk::RESPONSE_OK); return (dialog.run() == Gtk::RESPONSE_OK); } void MainWindow::on_find_files() { if (filetree_->get_modified_count() > 0) { Gtk::MessageDialog dialog (*window_, _("Some files haven\342\200\231t been saved yet.\nContinue anyway?"), false, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_OK_CANCEL, true); if (dialog.run() != Gtk::RESPONSE_OK) return; } std::string folder = button_folder_->get_filename(); if (folder.empty()) folder = Glib::get_current_dir(); g_return_if_fail(Glib::path_is_absolute(folder)); undo_stack_clear(); BusyAction busy (*this); try { Pcre::Pattern pattern (Util::shell_pattern_to_regex(entry_pattern_->get_text()), Pcre::DOTALL); filetree_->find_files(folder, pattern, button_recursive_->get_active(), button_hidden_->get_active()); } catch (const Pcre::Error&) { Gtk::MessageDialog dialog (*window_, _("The file search pattern is invalid."), false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true); dialog.run(); } catch (const FileTree::Error& error) { FileErrorDialog dialog (*window_, _("The following errors occurred during search:"), Gtk::MESSAGE_WARNING, error); dialog.run(); } statusline_->set_file_count(filetree_->get_file_count()); } void MainWindow::on_exec_search() { BusyAction busy (*this); const Glib::ustring regex = entry_regex_->get_text(); const bool caseless = button_caseless_->get_active(); const bool multiple = button_multiple_->get_active(); try { Pcre::Pattern pattern (regex, (caseless) ? Pcre::CASELESS : Pcre::CompileOptions(0)); filetree_->find_matches(pattern, multiple); } catch (const Pcre::Error& error) { Gtk::MessageDialog dialog (*window_, error.what(), false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true); dialog.run(); const int offset = error.offset(); if (offset >= 0 && offset < entry_regex_->get_text_length()) { entry_regex_->grab_focus(); entry_regex_->select_region(offset, offset + 1); } return; } if (const FileBufferPtr buffer = FileBufferPtr::cast_static(textview_->get_buffer())) { statusline_->set_match_count(buffer->get_original_match_count()); statusline_->set_match_index(buffer->get_match_index()); } if (filetree_->get_match_count() > 0) { // Scrolling has to be post-poned after the redraw, otherwise we might // not end up where we want to. So do that by installing an idle handler. Glib::signal_idle().connect( sigc::mem_fun(*this, &MainWindow::after_exec_search), Glib::PRIORITY_HIGH_IDLE + 25); // slightly less than redraw (+20) } } bool MainWindow::after_exec_search() { filetree_->select_first_file(); on_go_next(true); return false; } void MainWindow::on_filetree_switch_buffer(FileInfoPtr fileinfo, int file_index) { const FileBufferPtr old_buffer = FileBufferPtr::cast_static(textview_->get_buffer()); if (fileinfo && fileinfo->buffer == old_buffer) return; if (old_buffer) { std::for_each(buffer_connections_.begin(), buffer_connections_.end(), std::mem_fun_ref(&sigc::connection::disconnect)); buffer_connections_.clear(); old_buffer->forget_current_match(); } if (fileinfo) { const FileBufferPtr buffer = fileinfo->buffer; g_return_if_fail(buffer); textview_->set_buffer(buffer); textview_->set_editable(!fileinfo->load_failed); textview_->set_cursor_visible(!fileinfo->load_failed); if (!fileinfo->load_failed) { buffer_connections_.push_back(buffer->signal_modified_changed(). connect(sigc::mem_fun(*this, &MainWindow::on_buffer_modified_changed))); buffer_connections_.push_back(buffer->signal_bound_state_changed. connect(sigc::mem_fun(*this, &MainWindow::on_bound_state_changed))); buffer_connections_.push_back(buffer->signal_preview_line_changed. connect(sigc::mem_fun(*this, &MainWindow::update_preview))); } set_title_filename(fileinfo->fullname); controller_.replace_file.set_enabled(buffer->get_match_count() > 0); controller_.save_file.set_enabled(buffer->get_modified()); controller_.edit_actions.set_enabled(!fileinfo->load_failed); statusline_->set_match_count(buffer->get_original_match_count()); statusline_->set_match_index(buffer->get_match_index()); statusline_->set_file_encoding(fileinfo->encoding); } else { textview_->set_buffer(FileBuffer::create()); textview_->set_editable(false); textview_->set_cursor_visible(false); window_->set_title(PACKAGE_NAME); controller_.replace_file.set_enabled(false); controller_.save_file.set_enabled(false); controller_.edit_actions.set_enabled(false); statusline_->set_match_count(0); statusline_->set_match_index(0); statusline_->set_file_encoding(""); } statusline_->set_file_index(file_index); update_preview(); } void MainWindow::on_bound_state_changed() { BoundState bound = filetree_->get_bound_state(); controller_.prev_file.set_enabled((bound & BOUND_FIRST) == 0); controller_.next_file.set_enabled((bound & BOUND_LAST) == 0); if (const FileBufferPtr buffer = FileBufferPtr::cast_static(textview_->get_buffer())) bound &= buffer->get_bound_state(); controller_.prev_match.set_enabled((bound & BOUND_FIRST) == 0); controller_.next_match.set_enabled((bound & BOUND_LAST) == 0); } void MainWindow::on_filetree_file_count_changed() { const int file_count = filetree_->get_file_count(); statusline_->set_file_count(file_count); controller_.find_matches.set_enabled(file_count > 0); } void MainWindow::on_filetree_match_count_changed() { controller_.replace_all.set_enabled(filetree_->get_match_count() > 0); if (const FileBufferPtr buffer = FileBufferPtr::cast_static(textview_->get_buffer())) controller_.replace_file.set_enabled(buffer->get_match_count() > 0); } void MainWindow::on_filetree_modified_count_changed() { controller_.save_all.set_enabled(filetree_->get_modified_count() > 0); } void MainWindow::on_buffer_modified_changed() { controller_.save_file.set_enabled(textview_->get_buffer()->get_modified()); } void MainWindow::on_go_next_file(bool move_forward) { filetree_->select_next_file(move_forward); on_go_next(move_forward); } void MainWindow::on_go_next(bool move_forward) { if (const FileBufferPtr buffer = FileBufferPtr::cast_static(textview_->get_buffer())) { if (const Glib::RefPtr mark = buffer->get_next_match(move_forward)) { textview_->scroll_to(mark, 0.125); statusline_->set_match_index(buffer->get_match_index()); return; } } if (filetree_->select_next_file(move_forward)) { on_go_next(move_forward); // recursive call } } void MainWindow::on_replace() { if (const FileBufferPtr buffer = FileBufferPtr::cast_static(textview_->get_buffer())) { buffer->replace_current_match(entry_substitution_->get_text()); on_go_next(true); } } void MainWindow::on_replace_file() { if (const FileBufferPtr buffer = FileBufferPtr::cast_static(textview_->get_buffer())) { buffer->replace_all_matches(entry_substitution_->get_text()); statusline_->set_match_index(0); } } void MainWindow::on_replace_all() { BusyAction busy (*this); filetree_->replace_all_matches(entry_substitution_->get_text()); statusline_->set_match_index(0); } void MainWindow::on_save_file() { try { filetree_->save_current_file(); } catch (const FileTree::Error& error) { const std::list& error_list = error.get_error_list(); g_assert(error_list.size() == 1); Gtk::MessageDialog dialog (*window_, error_list.front(), false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true); dialog.run(); } } void MainWindow::on_save_all() { try { filetree_->save_all_files(); } catch (const FileTree::Error& error) { FileErrorDialog dialog (*window_, _("The following errors occurred during save:"), Gtk::MESSAGE_ERROR, error); dialog.run(); } } void MainWindow::on_undo_stack_push(UndoActionPtr action) { undo_stack_->push(action); controller_.undo.set_enabled(true); } void MainWindow::on_undo() { BusyAction busy (*this); undo_stack_->undo_step(sigc::mem_fun(*this, &MainWindow::on_busy_action_pulse)); controller_.undo.set_enabled(!undo_stack_->empty()); } void MainWindow::undo_stack_clear() { controller_.undo.set_enabled(false); undo_stack_.reset(new UndoStack()); } void MainWindow::on_entry_pattern_changed() { controller_.find_files.set_enabled(entry_pattern_->get_text_length() > 0); } void MainWindow::update_preview() { if (const FileBufferPtr buffer = FileBufferPtr::cast_static(textview_->get_buffer())) { Glib::ustring preview; const int pos = buffer->get_line_preview(entry_substitution_->get_text(), preview); entry_preview_->set_text(preview); controller_.replace.set_enabled(pos >= 0); // Beware, strange code ahead! // // The goal is to scroll the preview entry so that it shows the entire // replaced text if possible. In order to do that we first move the cursor // to 0, forcing scrolling to the left boundary. Then we set the cursor to // the end of the replaced text, thus forcing the entry widget to scroll // again. The replacement should then be entirely visible provided that it // fits into the entry. // // The problem is that Gtk::Entry doesn't update its scroll position // immediately but in an idle handler, thus any calls to set_position() // but the last one have no effect at all. // // To workaround that, we install an idle handler that's executed just // after the entry updated its scroll position, but before redrawing is // done. entry_preview_->set_position(0); if (pos > 0) { using namespace sigc; Glib::signal_idle().connect( bind_return(bind(mem_fun(*entry_preview_, &Gtk::Editable::set_position), pos), false), Glib::PRIORITY_HIGH_IDLE + 17); // between scroll update (+ 15) and redraw (+ 20) } } } void MainWindow::set_title_filename(const std::string& filename) { Glib::ustring title = Glib::filename_display_basename(filename); title += " ("; title += Util::filename_short_display_name(Glib::path_get_dirname(filename)); title += ") \342\200\223 " PACKAGE_NAME; // U+2013 EN DASH window_->set_title(title); } void MainWindow::busy_action_enter() { g_return_if_fail(!busy_action_running_); controller_.match_actions.set_enabled(false); statusline_->pulse_start(); busy_action_running_ = true; busy_action_cancel_ = false; busy_action_iteration_ = 0; } void MainWindow::busy_action_leave() { g_return_if_fail(busy_action_running_); busy_action_running_ = false; statusline_->pulse_stop(); controller_.match_actions.set_enabled(true); } bool MainWindow::on_busy_action_pulse() { g_return_val_if_fail(busy_action_running_, true); if (!busy_action_cancel_ && (++busy_action_iteration_ % BUSY_GUI_UPDATE_INTERVAL) == 0) { statusline_->pulse(); const Glib::RefPtr context = Glib::MainContext::get_default(); do {} while (context->iteration(false) && !busy_action_cancel_); } return busy_action_cancel_; } void MainWindow::on_busy_action_cancel() { if (busy_action_running_) busy_action_cancel_ = true; } void MainWindow::on_about() { if (about_dialog_.get()) { about_dialog_->present(); } else { std::auto_ptr dialog (new Gtk::AboutDialog()); dialog->set_version(PACKAGE_VERSION); dialog->set_logo_icon_name(PACKAGE_TARNAME); dialog->set_comments(_("Search and replace using regular expressions")); dialog->set_copyright("Copyright \302\251 2002-2007 Daniel Elstner"); dialog->set_website("http://regexxer.sourceforge.net/"); dialog->set_authors(program_authors); dialog->set_translator_credits(_("translator-credits")); dialog->set_license(program_license); dialog->set_wrap_license(true); dialog->set_transient_for(*window_); dialog->show(); dialog->signal_response().connect(sigc::mem_fun(*this, &MainWindow::on_about_dialog_response)); about_dialog_ = dialog; } } void MainWindow::on_about_dialog_response(int) { // Play safe and transfer ownership, and let the dtor do the delete. const std::auto_ptr temp (about_dialog_); } void MainWindow::on_preferences() { if (pref_dialog_.get()) { pref_dialog_->get_dialog()->present(); } else { std::auto_ptr dialog (new PrefDialog(*window_)); dialog->get_dialog()->signal_hide() .connect(sigc::mem_fun(*this, &MainWindow::on_pref_dialog_hide)); dialog->get_dialog()->show(); pref_dialog_ = dialog; } } void MainWindow::on_pref_dialog_hide() { // Play safe and transfer ownership, and let the dtor do the delete. const std::auto_ptr temp (pref_dialog_); } void MainWindow::on_conf_value_changed(const Glib::ustring& key, const Gnome::Conf::Value& value) { if (value.get_type() == Gnome::Conf::VALUE_STRING) { if (key.raw() == conf_key_textview_font) { const Pango::FontDescription font (value.get_string()); textview_ ->modify_font(font); entry_preview_->modify_font(font); } else if (key.raw() == conf_key_toolbar_style) { toolbar_->set_toolbar_style(Util::enum_from_nick(value.get_string())); } } } } // namespace Regexxer regexxer-0.9/src/mainwindow.h0000644000175000017500000001074010552030257013251 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef REGEXXER_MAINWINDOW_H_INCLUDED #define REGEXXER_MAINWINDOW_H_INCLUDED #include "controller.h" #include "filebuffer.h" #include "sharedptr.h" #include #include #include #include #include #include namespace Gtk { class Button; class CheckButton; class Dialog; class Entry; class FileChooser; class TextView; class Toolbar; class Window; } namespace Gnome { namespace Conf { class Value; } } namespace Regexxer { class FileTree; class PrefDialog; class StatusLine; struct FileInfo; struct InitState { std::vector folder; Glib::ustring pattern; Glib::ustring regex; Glib::ustring substitution; bool no_recursive; bool hidden; bool no_global; bool ignorecase; bool feedback; bool no_autorun; InitState(); ~InitState(); }; class MainWindow : public sigc::trackable { public: MainWindow(); virtual ~MainWindow(); void initialize(const InitState& init); Gtk::Window* get_window() { return window_.get(); } private: class BusyAction; std::auto_ptr window_; Controller controller_; Gtk::Toolbar* toolbar_; Gtk::FileChooser* button_folder_; Gtk::Entry* entry_pattern_; Gtk::CheckButton* button_recursive_; Gtk::CheckButton* button_hidden_; Gtk::Entry* entry_regex_; Gtk::Entry* entry_substitution_; Gtk::CheckButton* button_multiple_; Gtk::CheckButton* button_caseless_; FileTree* filetree_; Gtk::TextView* textview_; Gtk::Entry* entry_preview_; StatusLine* statusline_; bool busy_action_running_; bool busy_action_cancel_; unsigned int busy_action_iteration_; UndoStackPtr undo_stack_; std::list buffer_connections_; std::auto_ptr about_dialog_; std::auto_ptr pref_dialog_; void load_xml(); void connect_signals(); bool autorun_idle(); void on_hide(); void on_style_changed(const Glib::RefPtr& previous_style); bool on_delete_event(GdkEventAny* event); void on_cut(); void on_copy(); void on_paste(); void on_erase(); void on_quit(); bool confirm_quit_request(); void on_find_files(); void on_exec_search(); bool after_exec_search(); void on_filetree_switch_buffer(Util::SharedPtr fileinfo, int file_index); void on_filetree_file_count_changed(); void on_filetree_match_count_changed(); void on_filetree_modified_count_changed(); void on_bound_state_changed(); void on_buffer_modified_changed(); void on_go_next_file(bool move_forward); void on_go_next(bool move_forward); void on_replace(); void on_replace_file(); void on_replace_all(); void on_save_file(); void on_save_all(); void on_undo_stack_push(UndoActionPtr action); void on_undo(); void undo_stack_clear(); void on_entry_pattern_changed(); void update_preview(); void set_title_filename(const std::string& filename); void busy_action_enter(); void busy_action_leave(); bool on_busy_action_pulse(); void on_busy_action_cancel(); void on_about(); void on_about_dialog_response(int); void on_preferences(); void on_pref_dialog_hide(); void on_conf_value_changed(const Glib::ustring& key, const Gnome::Conf::Value& value); }; } // namespace Regexxer #endif /* REGEXXER_MAINWINDOW_H_INCLUDED */ regexxer-0.9/src/miscutils.h0000644000175000017500000000273010547616660013125 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef REGEXXER_MISCUTILS_H_INCLUDED #define REGEXXER_MISCUTILS_H_INCLUDED namespace Util { template class ScopedArray { private: T* array_; ScopedArray(const ScopedArray&); ScopedArray& operator=(const ScopedArray&); public: explicit ScopedArray(T* array) : array_ (array) {} ~ScopedArray() { delete[] array_; } T* get() const { return array_; } }; /* next() and prior(): Idea shamelessly stolen from boost. */ template inline Iterator next(Iterator pos) { return ++pos; } template inline Iterator prior(Iterator pos) { return --pos; } } // namespace Util #endif /* REGEXXER_MISCUTILS_H_INCLUDED */ regexxer-0.9/src/pcreshell.cc0000644000175000017500000001332710566103425013223 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "pcreshell.h" #include "miscutils.h" #include "stringutils.h" #include "translation.h" #include #include #include #include namespace { static int byte_to_char_offset(Glib::ustring::const_iterator start, int byte_offset) { return std::distance(start, Glib::ustring::const_iterator(start.base() + byte_offset)); } /* * Explicitely forbid any usage of the \C escape to match a single byte. * Having Pcre::Pattern::match() return matches on partial UTF-8 characters * would make regexxer crash faster than you can say "illegal sequence!" */ static void check_for_single_byte_escape(const Glib::ustring& regex) { using std::string; string::size_type index = 0; while ((index = regex.raw().find("\\C", index, 2)) != string::npos) { // Find the first of a sequence of backslashes preceding 'C'. string::size_type rewind = regex.raw().find_last_not_of('\\', index); rewind = (rewind != string::npos) ? rewind + 1 : 0; // The \C we found is a real \C escape only if preceded by an even number // of backslashes. If this holds true, let's stage a right little tantrum. if ((index - rewind) % 2 == 0) { throw Pcre::Error(_("Using the \\C escape sequence to match a single byte is not supported."), byte_to_char_offset(regex.begin(), index + 1)); } index += 2; } } static void throw_regex_error(const Glib::ustring&, int, const char*) G_GNUC_NORETURN; static void throw_regex_error(const Glib::ustring& regex, int byte_offset, const char* message) { using Glib::ustring; const ustring what = (message) ? Glib::locale_to_utf8(message) : Glib::ustring(); if (byte_offset >= 0 && unsigned(byte_offset) < regex.raw().size()) { const int offset = byte_to_char_offset(regex.begin(), byte_offset); const gunichar error_char = *ustring::const_iterator(regex.raw().begin() + byte_offset); throw Pcre::Error(Util::compose( _("Error in regular expression at \342\200\234%1\342\200\235 (index %2):\n%3"), ustring(1, error_char), Util::int_to_string(offset + 1), what), offset); } else { throw Pcre::Error(Util::compose(_("Error in regular expression:\n%1"), what)); } } } // anonymous namespace namespace Pcre { /**** Pcre::Error **********************************************************/ Error::Error(const Glib::ustring& message, int offset) : message_ (message), offset_ (offset) {} Error::~Error() {} Error::Error(const Error& other) : message_ (other.message_), offset_ (other.offset_) {} Error& Error::operator=(const Error& other) { // Note that this is exception safe because only the first assignment below // could throw. If that changes the copy-and-swap technique should be used // instead. message_ = other.message_; offset_ = other.offset_; return *this; } /**** Pcre::Pattern ********************************************************/ Pattern::Pattern(const Glib::ustring& regex, CompileOptions options) : pcre_ (0), ovector_ (0), ovecsize_ (0) { check_for_single_byte_escape(regex); const char* error_message = 0; int error_offset = -1; pcre_ = pcre_compile(regex.c_str(), options | PCRE_UTF8, &error_message, &error_offset, 0); if (!pcre_) throw_regex_error(regex, error_offset, error_message); int capture_count = 0; const int result G_GNUC_UNUSED = pcre_fullinfo(static_cast(pcre_), 0, PCRE_INFO_CAPTURECOUNT, &capture_count); g_assert(result == 0); g_assert(capture_count >= 0); ovecsize_ = 3 * (capture_count + 1); ovector_ = g_new0(int, ovecsize_); } Pattern::~Pattern() { g_free(ovector_); (*pcre_free)(pcre_); } int Pattern::match(const Glib::ustring& subject, int offset, MatchOptions options) { const int captures = pcre_exec(static_cast(pcre_), 0, subject.raw().data(), subject.raw().size(), offset, options, ovector_, ovecsize_); if (captures >= 0 || captures == PCRE_ERROR_NOMATCH) return captures; // Of all possible error conditions pcre_exec() might return, hitting // the match limit is the only one that could be triggered by user input. if (captures == PCRE_ERROR_MATCHLIMIT) throw Error(_("Reached the recursion and backtracking limit of the regular expression engine.")); g_return_val_if_reached(captures); } std::pair Pattern::get_substring_bounds(int index) const { g_return_val_if_fail(index >= 0 && 3 * index < ovecsize_, std::make_pair(-1, -1)); return std::make_pair(ovector_[2 * index], ovector_[2 * index + 1]); } Glib::ustring Pattern::get_substring(const Glib::ustring& subject, int index) const { const std::pair bounds = get_substring_bounds(index); if (bounds.first >= 0 && bounds.first < bounds.second) { const char *const data = subject.data(); return Glib::ustring(data + bounds.first, data + bounds.second); } return Glib::ustring(); } } // namespace Pcre regexxer-0.9/src/pcreshell.h0000644000175000017500000001161210566103425013060 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef REGEXXER_PCRESHELL_H_INCLUDED #define REGEXXER_PCRESHELL_H_INCLUDED #include #include namespace Pcre { /* * The numeric values are copied from pcre.h. This is quite safe * because they cannot be changed without breaking ABI. */ enum CompileOptions { CASELESS = 0x0001, MULTILINE = 0x0002, DOTALL = 0x0004, EXTENDED = 0x0008, DOLLAR_ENDONLY = 0x0020, EXTRA = 0x0040, UNGREEDY = 0x0200 }; inline CompileOptions operator|(CompileOptions lhs, CompileOptions rhs) { return static_cast(static_cast(lhs) | static_cast(rhs)); } inline CompileOptions operator&(CompileOptions lhs, CompileOptions rhs) { return static_cast(static_cast(lhs) & static_cast(rhs)); } inline CompileOptions operator^(CompileOptions lhs, CompileOptions rhs) { return static_cast(static_cast(lhs) ^ static_cast(rhs)); } inline CompileOptions operator~(CompileOptions flags) { return static_cast(~static_cast(flags)); } inline CompileOptions& operator|=(CompileOptions& lhs, CompileOptions rhs) { return (lhs = static_cast(static_cast(lhs) | static_cast(rhs))); } inline CompileOptions& operator&=(CompileOptions& lhs, CompileOptions rhs) { return (lhs = static_cast(static_cast(lhs) & static_cast(rhs))); } inline CompileOptions& operator^=(CompileOptions& lhs, CompileOptions rhs) { return (lhs = static_cast(static_cast(lhs) ^ static_cast(rhs))); } /* * The numeric values are copied from pcre.h. This is quite safe * because they cannot be changed without breaking ABI. */ enum MatchOptions { ANCHORED = 0x0010, NOT_BOL = 0x0080, NOT_EOL = 0x0100, NOT_EMPTY = 0x0400 }; inline MatchOptions operator|(MatchOptions lhs, MatchOptions rhs) { return static_cast(static_cast(lhs) | static_cast(rhs)); } inline MatchOptions operator&(MatchOptions lhs, MatchOptions rhs) { return static_cast(static_cast(lhs) & static_cast(rhs)); } inline MatchOptions operator^(MatchOptions lhs, MatchOptions rhs) { return static_cast(static_cast(lhs) ^ static_cast(rhs)); } inline MatchOptions operator~(MatchOptions flags) { return static_cast(~static_cast(flags)); } inline MatchOptions& operator|=(MatchOptions& lhs, MatchOptions rhs) { return (lhs = static_cast(static_cast(lhs) | static_cast(rhs))); } inline MatchOptions& operator&=(MatchOptions& lhs, MatchOptions rhs) { return (lhs = static_cast(static_cast(lhs) & static_cast(rhs))); } inline MatchOptions& operator^=(MatchOptions& lhs, MatchOptions rhs) { return (lhs = static_cast(static_cast(lhs) ^ static_cast(rhs))); } class Error { public: explicit Error(const Glib::ustring& message, int offset = -1); virtual ~Error(); Error(const Error& other); Error& operator=(const Error& other); Glib::ustring what() const { return message_; } int offset() const { return offset_; } // in characters private: Glib::ustring message_; int offset_; }; /* * Pcre::Pattern represents a compiled regular expression. * Note that all offset values are in bytes, not characters. */ class Pattern { public: explicit Pattern(const Glib::ustring& regex, CompileOptions options = CompileOptions(0)); virtual ~Pattern(); // takes byte offset int match(const Glib::ustring& subject, int offset = 0, MatchOptions options = MatchOptions(0)); // returns byte offsets std::pair get_substring_bounds(int index) const; Glib::ustring get_substring(const Glib::ustring& subject, int index) const; private: void* pcre_; int* ovector_; int ovecsize_; Pattern(const Pattern&); Pattern& operator=(const Pattern&); }; } // namespace Pcre #endif /* REGEXXER_PCRESHELL_H_INCLUDED */ regexxer-0.9/src/prefdialog.cc0000644000175000017500000001711610552055056013357 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "prefdialog.h" #include "globalstrings.h" #include "stringutils.h" #include "translation.h" #include #include #include #include #include #include namespace { static const Gtk::ToolbarStyle toolbar_style_values[] = { Gtk::TOOLBAR_ICONS, Gtk::TOOLBAR_TEXT, Gtk::TOOLBAR_BOTH, Gtk::TOOLBAR_BOTH_HORIZ }; static int get_toolbar_style_index(const Glib::ustring& value) { const Gtk::ToolbarStyle toolbar_style = Util::enum_from_nick(value); for (unsigned int i = 0; i < G_N_ELEMENTS(toolbar_style_values); ++i) { if (toolbar_style_values[i] == toolbar_style) return i; } g_return_val_if_reached(-1); } } // anonymous namespace namespace Regexxer { /**** Regexxer::PrefDialog *************************************************/ PrefDialog::PrefDialog(Gtk::Window& parent) : dialog_ (), button_textview_font_ (0), button_match_color_ (0), button_current_color_ (0), combo_toolbar_style_ (0), entry_fallback_ (0), entry_fallback_changed_ (false) { load_xml(); dialog_->set_transient_for(parent); initialize_configuration(); connect_signals(); } PrefDialog::~PrefDialog() {} void PrefDialog::load_xml() { using namespace Gtk; using Gnome::Glade::Xml; const Glib::RefPtr xml = Xml::create(glade_prefdialog_filename); Dialog* prefdialog = 0; dialog_.reset(xml->get_widget("prefdialog", prefdialog)); xml->get_widget("button_textview_font", button_textview_font_); xml->get_widget("button_match_color", button_match_color_); xml->get_widget("button_current_color", button_current_color_); xml->get_widget("combo_toolbar_style", combo_toolbar_style_); xml->get_widget("entry_fallback", entry_fallback_); const Glib::RefPtr size_group = SizeGroup::create(SIZE_GROUP_VERTICAL); size_group->add_widget(*xml->get_widget("label_utf8")); size_group->add_widget(*xml->get_widget("label_locale")); size_group->add_widget(*xml->get_widget("box_fallback")); } void PrefDialog::connect_signals() { dialog_->signal_response().connect( sigc::mem_fun(*this, &PrefDialog::on_response)); button_textview_font_->signal_font_set().connect( sigc::mem_fun(*this, &PrefDialog::on_textview_font_set)); button_match_color_->signal_color_set().connect( sigc::mem_fun(*this, &PrefDialog::on_match_color_set)); button_current_color_->signal_color_set().connect( sigc::mem_fun(*this, &PrefDialog::on_current_color_set)); conn_toolbar_style_ = combo_toolbar_style_->signal_changed().connect( sigc::mem_fun(*this, &PrefDialog::on_option_toolbar_style_changed)); entry_fallback_->signal_changed().connect( sigc::mem_fun(*this, &PrefDialog::on_entry_fallback_changed)); entry_fallback_->signal_activate().connect( sigc::mem_fun(*this, &PrefDialog::on_entry_fallback_activate)); } void PrefDialog::on_response(int) { if (entry_fallback_changed_) entry_fallback_->activate(); Gnome::Conf::Client::get_default_client()->suggest_sync(); dialog_->hide(); } /* * Note that it isn't strictly required to block the change notification * as done below for the "toolbar_style" setting. GConf doesn't emit * "value_changed" if the new value is identical to the old one. If, however, * the value was reset to the schema default, the following change notification * would again detach the schema. This won't look neat, and I like neat. */ void PrefDialog::on_conf_value_changed(const Glib::ustring& key, const Gnome::Conf::Value& value) { if (value.get_type() == Gnome::Conf::VALUE_STRING) { if (key.raw() == conf_key_textview_font) { button_textview_font_->set_font_name(value.get_string()); } else if (key.raw() == conf_key_match_color) { button_match_color_->set_color(Gdk::Color(value.get_string())); } else if (key.raw() == conf_key_current_match_color) { button_current_color_->set_color(Gdk::Color(value.get_string())); } else if (key.raw() == conf_key_toolbar_style) { Util::ScopedBlock block (conn_toolbar_style_); combo_toolbar_style_->set_active(get_toolbar_style_index(value.get_string())); } else if (key.raw() == conf_key_fallback_encoding) { entry_fallback_->set_text(value.get_string()); entry_fallback_changed_ = false; } } } void PrefDialog::initialize_configuration() { using namespace Gnome::Conf; const Glib::RefPtr client = Client::get_default_client(); const std::list entries (client->all_entries(conf_dir_application)); for (std::list::const_iterator p = entries.begin(); p != entries.end(); ++p) { on_conf_value_changed(p->get_key(), p->get_value()); } client->signal_value_changed().connect( sigc::mem_fun(*this, &PrefDialog::on_conf_value_changed)); } void PrefDialog::on_textview_font_set() { const Glib::ustring value = button_textview_font_->get_font_name(); Gnome::Conf::Client::get_default_client()->set(conf_key_textview_font, value); } void PrefDialog::on_match_color_set() { const Glib::ustring value = Util::color_to_string(button_match_color_->get_color()); Gnome::Conf::Client::get_default_client()->set(conf_key_match_color, value); } void PrefDialog::on_current_color_set() { const Glib::ustring value = Util::color_to_string(button_current_color_->get_color()); Gnome::Conf::Client::get_default_client()->set(conf_key_current_match_color, value); } void PrefDialog::on_option_toolbar_style_changed() { const int index = combo_toolbar_style_->get_active_row_number(); if (index >= 0) { g_return_if_fail(unsigned(index) < G_N_ELEMENTS(toolbar_style_values)); const Glib::ustring value = Util::enum_to_nick(toolbar_style_values[index]); Gnome::Conf::Client::get_default_client()->set(conf_key_toolbar_style, value); } } void PrefDialog::on_entry_fallback_changed() { // On dialog close, write back to the GConf database only if the user // actually did something with the entry widget. This prevents GConf from // detaching the key's Schema each time the preferences dialog is closed. entry_fallback_changed_ = true; } void PrefDialog::on_entry_fallback_activate() { const Glib::ustring fallback_encoding = entry_fallback_->get_text(); if (Util::validate_encoding(fallback_encoding.raw())) { Gnome::Conf::Client::get_default_client() ->set(conf_key_fallback_encoding, fallback_encoding.uppercase()); entry_fallback_changed_ = false; } else { const Glib::ustring message = Util::compose(_("\342\200\234%1\342\200\235 is not a valid encoding."), fallback_encoding); Gtk::MessageDialog error_dialog (*dialog_, message, false, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true); error_dialog.run(); } } } // namespace Regexxer regexxer-0.9/src/prefdialog.h0000644000175000017500000000437010547616660013227 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef REGEXXER_PREFDIALOG_H_INCLUDED #define REGEXXER_PREFDIALOG_H_INCLUDED #include "signalutils.h" #include #include #include namespace Gtk { class CheckButton; class ColorButton; class ComboBox; class Dialog; class Entry; class FontButton; class Widget; class Window; } namespace Gnome { namespace Conf { class Value; } } namespace Regexxer { class PrefDialog : public sigc::trackable { public: explicit PrefDialog(Gtk::Window& parent); virtual ~PrefDialog(); Gtk::Dialog* get_dialog() { return dialog_.get(); } private: std::auto_ptr dialog_; Gtk::FontButton* button_textview_font_; Gtk::ColorButton* button_match_color_; Gtk::ColorButton* button_current_color_; Gtk::ComboBox* combo_toolbar_style_; Gtk::Entry* entry_fallback_; Util::AutoConnection conn_toolbar_style_; bool entry_fallback_changed_; void load_xml(); void connect_signals(); void on_response(int response_id); void on_conf_value_changed(const Glib::ustring& key, const Gnome::Conf::Value& value); void initialize_configuration(); void on_textview_font_set(); void on_match_color_set(); void on_current_color_set(); void on_option_toolbar_style_changed(); void on_entry_fallback_changed(); void on_entry_fallback_activate(); }; } // namespace Regexxer #endif /* REGEXXER_PREFDIALOG_H_INCLUDED */ regexxer-0.9/src/sharedptr.h0000644000175000017500000001437510552324277013111 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef REGEXXER_SHAREDPTR_H_INCLUDED #define REGEXXER_SHAREDPTR_H_INCLUDED #include namespace Util { template class SharedPtr; /* * Common base class of objects managed by SharedPtr<>. */ class SharedObject { protected: inline SharedObject(); // initial reference count is 0 inline ~SharedObject(); private: mutable long refcount_; // noncopyable SharedObject(const SharedObject&); SharedObject& operator=(const SharedObject&); template friend class SharedPtr; }; /* * Intrusive smart pointer implementation. It requires the managed types * to be derived from class SharedObject, in order to do reference counting * as efficient as possible. * * The intrusive approach also simplifies the implementation, particularly * with regards to exception safety. A non-intrusive smart pointer like * boost::shared_ptr<> would have to allocate memory to hold the reference * count -- this is tricky not only because of the 'new' which could throw, * but it also complicates the implementation of the cast templates like * shared_dynamic_cast<> etc. * * The cast template functions use the same syntax as in boost: * * shared_static_cast returns static_cast(pointer) * shared_dynamic_cast returns dynamic_cast(pointer) * shared_polymorphic_cast returns &dynamic_cast(*pointer) * * I didn't implement shared_polymorphic_downcast because it seems to be * just a debug check for those who don't want to ship with debugging enabled. * This would be silly IMHO, considering that the dynamic_cast<> overhead is * negligible in a GUI application like regexxer. * * About operator const void*() const: * * This operator fulfills the same task operator bool() would, but safer. * A SharedPtr<> will never be implicitely converted to an integer type, * which is particularly important in the context of overload resolution. * An additional advantage is that operator const void*() gets us equality * and non-equality tests for free. * * Note that boost is using an operator that converts to a PMF (pointer to * member function) for this purpose. However, I consider this solution * to be somewhat over the top. */ template class SharedPtr { public: inline SharedPtr(); inline ~SharedPtr(); explicit inline SharedPtr(T* ptr); // obtains reference inline SharedPtr(const SharedPtr& other); inline SharedPtr& operator=(const SharedPtr& other); template inline SharedPtr(const SharedPtr& other); template inline SharedPtr& operator=(const SharedPtr& other); inline void swap(SharedPtr& other); inline void reset(T* ptr = 0); // obtains reference inline T* get() const; inline T* operator->() const; inline T& operator*() const; inline operator const void*() const; private: T* ptr_; }; /* * Explicitely forbid the usage of a generic SharedPtr * because class SharedObject doesn't have a virtual destructor. */ template <> class SharedPtr {}; template <> class SharedPtr {}; inline SharedObject::SharedObject() : refcount_ (0) {} inline SharedObject::~SharedObject() {} template inline SharedPtr::SharedPtr() : ptr_ (0) {} template inline SharedPtr::~SharedPtr() { if (ptr_ && --ptr_->refcount_ <= 0) delete ptr_; } template inline SharedPtr::SharedPtr(T* ptr) : ptr_ (ptr) { if (ptr_) ++ptr_->refcount_; } /* * Note that reset() and get() are defined here and not in declaration order * on purpose -- defining them before their first use is required with some * compilers for for maximum inlining. */ template inline void SharedPtr::swap(SharedPtr& other) { std::swap(ptr_, other.ptr_); } template inline void SharedPtr::reset(T* ptr) { // Note that SharedPtr<>::reset() obtains a reference. SharedPtr temp (ptr); std::swap(ptr_, temp.ptr_); } template inline T* SharedPtr::get() const { return ptr_; } template inline SharedPtr::SharedPtr(const SharedPtr& other) : ptr_ (other.ptr_) { if (ptr_) ++ptr_->refcount_; } template inline SharedPtr& SharedPtr::operator=(const SharedPtr& other) { this->reset(other.ptr_); return *this; } template template inline SharedPtr::SharedPtr(const SharedPtr& other) : ptr_ (other.get()) { if (ptr_) ++ptr_->refcount_; } template template inline SharedPtr& SharedPtr::operator=(const SharedPtr& other) { this->reset(other.get()); return *this; } template inline T* SharedPtr::operator->() const { return ptr_; } template inline T& SharedPtr::operator*() const { return *ptr_; } template inline SharedPtr::operator const void*() const { return ptr_; } template inline void swap(SharedPtr& a, SharedPtr& b) { a.swap(b); } template inline SharedPtr shared_static_cast(const SharedPtr& other) { return SharedPtr(static_cast(other.get())); } template inline SharedPtr shared_dynamic_cast(const SharedPtr& other) { return SharedPtr(dynamic_cast(other.get())); } template inline SharedPtr shared_polymorphic_cast(const SharedPtr& other) { return SharedPtr(&dynamic_cast(*other)); // may throw std::bad_cast } } // namespace Util #endif /* REGEXXER_SHAREDPTR_H_INCLUDED */ regexxer-0.9/src/signalutils.cc0000644000175000017500000000436110547616660013607 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "signalutils.h" namespace Util { /**** Util::QueuedSignal ***************************************************/ QueuedSignal::QueuedSignal(int priority) : signal_ (), priority_ (priority), queued_ (false) {} QueuedSignal::~QueuedSignal() {} sigc::connection QueuedSignal::connect(const sigc::slot& slot) { return signal_.connect(slot); } void QueuedSignal::queue() { if (!queued_) { Glib::signal_idle().connect(sigc::mem_fun(*this, &QueuedSignal::idle_handler), priority_); queued_ = true; } } bool QueuedSignal::idle_handler() { queued_ = false; signal_(); // emit return false; // disconnect idle handler } /**** Util::AutoConnection *************************************************/ AutoConnection::AutoConnection() : connection_ (), blocked_ (false) {} AutoConnection::AutoConnection(const sigc::connection& connection) : connection_ (connection), blocked_ (connection_.blocked()) {} AutoConnection::~AutoConnection() { connection_.disconnect(); } void AutoConnection::block() { connection_.block(); blocked_ = true; } void AutoConnection::unblock() { connection_.unblock(); blocked_ = false; } AutoConnection& AutoConnection::operator=(const sigc::connection& connection) { AutoConnection temp (connection_); connection_ = connection; connection_.block(blocked_); return *this; } void AutoConnection::disconnect() { connection_.disconnect(); } } // namespace Util regexxer-0.9/src/signalutils.h0000644000175000017500000000523610547616660013453 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef REGEXXER_SIGNALUTILS_H_INCLUDED #define REGEXXER_SIGNALUTILS_H_INCLUDED #include namespace Util { class QueuedSignal : public sigc::trackable { public: explicit QueuedSignal(int priority = Glib::PRIORITY_HIGH_IDLE); virtual ~QueuedSignal(); sigc::connection connect(const sigc::slot& slot); void queue(); void operator()() { queue(); } private: sigc::signal signal_; int priority_; bool queued_; QueuedSignal(const QueuedSignal&); QueuedSignal& operator=(const QueuedSignal&); bool idle_handler(); }; class AutoConnection { private: sigc::connection connection_; bool blocked_; AutoConnection(const AutoConnection&); AutoConnection& operator=(const AutoConnection&); public: AutoConnection(); explicit AutoConnection(const sigc::connection& connection); ~AutoConnection(); void block(); void unblock(); bool blocked() const { return blocked_; } AutoConnection& operator=(const sigc::connection& connection); void disconnect(); sigc::connection& base() { return connection_; } const sigc::connection& base() const { return connection_; } }; class ScopedConnection { private: sigc::connection connection_; ScopedConnection(const ScopedConnection&); ScopedConnection& operator=(const ScopedConnection&); public: explicit ScopedConnection(const sigc::connection& connection) : connection_ (connection) {} ~ScopedConnection() { connection_.disconnect(); } }; class ScopedBlock { private: AutoConnection& connection_; ScopedBlock(const ScopedBlock&); ScopedBlock& operator=(const ScopedBlock&); public: explicit ScopedBlock(AutoConnection& connection) : connection_ (connection) { connection_.block(); } ~ScopedBlock() { connection_.unblock(); } }; } // namespace Util #endif /* REGEXXER_SIGNALUTILS_H_INCLUDED */ regexxer-0.9/src/statusline.cc0000644000175000017500000002205010566117542013433 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "statusline.h" #include "stringutils.h" #include "translation.h" #include #include #include #include #include #include /* * Custom widget creation function for libglade. */ extern "C" G_MODULE_EXPORT GtkWidget* regexxer_create_status_line(char*, char*, char*, int, int) { try { Gtk::Widget *const widget = new Regexxer::StatusLine(); widget->show(); return Gtk::manage(widget)->gobj(); } catch (...) { g_return_val_if_reached(0); } } namespace Regexxer { /**** Regexxer::CounterBox *************************************************/ class CounterBox : public Gtk::Frame { public: explicit CounterBox(const Glib::ustring& label); virtual ~CounterBox(); void set_index(int index); void set_count(int count); private: enum { MIN_RANGE = 100 }; Gtk::Label* label_index_; Gtk::Label* label_count_; int digits_range_; int widest_digit_; int second_widest_digit_; std::wostringstream stringstream_; Glib::ustring number_to_string(int number); void recalculate_label_width(); void on_label_style_changed(const Glib::RefPtr& previous_style); }; CounterBox::CounterBox(const Glib::ustring& label) : label_index_ (0), label_count_ (0), digits_range_ (MIN_RANGE), widest_digit_ (0), second_widest_digit_ (9) { using namespace Gtk; set_shadow_type(SHADOW_ETCHED_IN); Box *const paddingbox = new HBox(false, 0); add(*manage(paddingbox)); Box *const box = new HBox(false, 0); paddingbox->pack_start(*manage(box), PACK_SHRINK, 2); box->pack_start(*manage(new Label(label + ' ')), PACK_SHRINK); label_index_ = new Label("", 1.0, 0.5); box->pack_start(*manage(label_index_), PACK_SHRINK); box->pack_start(*manage(new Label("/")), PACK_SHRINK, 2); label_count_ = new Label("", 0.0, 0.5); box->pack_start(*manage(label_count_), PACK_SHRINK); label_index_->set_single_line_mode(true); label_count_->set_single_line_mode(true); label_index_->signal_style_changed().connect( sigc::mem_fun(*this, &CounterBox::on_label_style_changed)); try // don't abort if the user-specified locale doesn't exist { stringstream_.imbue(std::locale("")); } catch (const std::runtime_error& error) { g_warning("%s", error.what()); } set_index(0); set_count(0); paddingbox->show_all(); } CounterBox::~CounterBox() {} void CounterBox::set_index(int index) { label_index_->set_text(number_to_string(index)); // Work around a bug in GTK+ that causes right-aligned labels to be // cut off at the end. Forcing resize seems to solve the problem. check_resize(); } void CounterBox::set_count(int count) { int range = digits_range_; while (range <= count) range *= 10; while (range > MIN_RANGE && range / 10 > count) range /= 10; if (range != digits_range_) { digits_range_ = range; recalculate_label_width(); } label_count_->set_text(number_to_string(count)); } Glib::ustring CounterBox::number_to_string(int number) { stringstream_.str(std::wstring()); stringstream_ << number; return Util::wstring_to_utf8(stringstream_.str()); } /* * This tricky piece of code calculates the optimal label width for any * number < digits_range_. It does assume the decimal system is used, * but it relies neither on the string representation of the digits nor * on the font of the label. */ void CounterBox::recalculate_label_width() { int widest_number = 0; if (widest_digit_ != 0) { // E.g. range 1000 becomes 222 if '2' is the widest digit of the font. widest_number = ((digits_range_ - 1) / 9) * widest_digit_; } else // eeeks, 0 has to be special-cased { g_assert(second_widest_digit_ != 0); // E.g. range 1000 becomes 900 if '9' is the 2nd-widest digit. widest_number = (digits_range_ / 10) * second_widest_digit_; } int width = 0, height = 0, xpad = 0, ypad = 0; const Glib::ustring text = number_to_string(widest_number); label_index_->create_pango_layout(text)->get_pixel_size(width, height); label_index_->get_padding(xpad, ypad); label_index_->set_size_request(width + 2 * xpad, -1); label_count_->get_padding(xpad, ypad); label_count_->set_size_request(width + 2 * xpad, -1); } /* * The code relies on both labels having the same style. * I think that's a quite safe assumption to make ;) */ void CounterBox::on_label_style_changed(const Glib::RefPtr&) { const Glib::RefPtr layout = label_index_->create_pango_layout(""); widest_digit_ = 0; second_widest_digit_ = 9; int max_width = 0; int second_max_width = 0; int width = 0; int height = 0; for (int digit = 0; digit <= 9; ++digit) { layout->set_text(number_to_string(digit)); layout->get_pixel_size(width, height); if (width > max_width) { max_width = width; widest_digit_ = digit; } else if (width > second_max_width) { second_max_width = width; second_widest_digit_ = digit; } } recalculate_label_width(); } /**** Regexxer::StatusLine *************************************************/ StatusLine::StatusLine() : Gtk::HBox(false, 3), stop_button_ (0), progressbar_ (0), file_counter_ (0), match_counter_ (0), statusbar_ (0) { using namespace Gtk; // The statusbar looks ugly if the stop button gets its default size, // so let's reduce the button's size request to a reasonable amount. RC::parse_string("style \"regexxer-stop-button-style\"\n" "{\n" " ythickness = 0\n" " GtkWidget::interior_focus = 0\n" " GtkWidget::focus_padding = 0\n" "}\n" "widget \"*.regexxer-stop-button\" style \"regexxer-stop-button-style\"\n"); stop_button_ = new Button(_("Stop")); pack_start(*manage(stop_button_), PACK_SHRINK); stop_button_->set_name("regexxer-stop-button"); progressbar_ = new ProgressBar(); pack_start(*manage(progressbar_), PACK_SHRINK); file_counter_ = new CounterBox(_("File:")); pack_start(*manage(file_counter_), PACK_SHRINK); match_counter_ = new CounterBox(_("Match:")); pack_start(*manage(match_counter_), PACK_SHRINK); statusbar_ = new Statusbar(); pack_start(*manage(statusbar_), PACK_EXPAND_WIDGET); stop_button_->set_sensitive(false); stop_button_->signal_clicked().connect(signal_cancel_clicked.make_slot()); progressbar_->set_pulse_step(0.025); stop_button_->get_accessible()->set_description(_("Cancels the running search")); show_all_children(); } StatusLine::~StatusLine() {} void StatusLine::set_file_index(int file_index) { file_counter_->set_index(file_index); } void StatusLine::set_file_count(int file_count) { file_counter_->set_count(file_count); } void StatusLine::set_match_index(int match_index) { match_counter_->set_index(match_index); } void StatusLine::set_match_count(int match_count) { match_counter_->set_count(match_count); } void StatusLine::set_file_encoding(const std::string& file_encoding) { statusbar_->pop(); const Glib::ustring encoding = file_encoding; g_return_if_fail(encoding.is_ascii()); statusbar_->push(encoding); // Work around a bug in GTK+ that causes right-aligned labels (note that // the status bar text is right-aligned in RTL locales) to be cut off at // the end. Forcing resize seems to solve the problem. statusbar_->check_resize(); } void StatusLine::pulse_start() { stop_button_->set_sensitive(true); } void StatusLine::pulse() { progressbar_->pulse(); } void StatusLine::pulse_stop() { progressbar_->set_fraction(0.0); stop_button_->set_sensitive(false); } void StatusLine::on_hierarchy_changed(Gtk::Widget* previous_toplevel) { if (Gtk::Window *const window = dynamic_cast(previous_toplevel)) { stop_button_->remove_accelerator( window->get_accel_group(), GDK_Escape, Gdk::ModifierType(0)); } Gtk::HBox::on_hierarchy_changed(previous_toplevel); if (Gtk::Window *const window = dynamic_cast(get_toplevel())) { stop_button_->add_accelerator( "activate", window->get_accel_group(), GDK_Escape, Gdk::ModifierType(0), Gtk::AccelFlags(0)); } } } // namespace Regexxer regexxer-0.9/src/statusline.h0000644000175000017500000000342310547616660013304 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef REGEXXER_STATUSLINE_H_INCLUDED #define REGEXXER_STATUSLINE_H_INCLUDED #include #include namespace Gtk { class Button; class ProgressBar; class Statusbar; } namespace Regexxer { class CounterBox; class StatusLine : public Gtk::HBox { public: StatusLine(); virtual ~StatusLine(); void set_file_index(int file_index); void set_file_count(int file_count); void set_match_index(int match_index); void set_match_count(int match_count); void set_file_encoding(const std::string& file_encoding); void pulse_start(); void pulse(); void pulse_stop(); sigc::signal signal_cancel_clicked; protected: virtual void on_hierarchy_changed(Gtk::Widget* previous_toplevel); private: Gtk::Button* stop_button_; Gtk::ProgressBar* progressbar_; CounterBox* file_counter_; CounterBox* match_counter_; Gtk::Statusbar* statusbar_; }; } // namespace Regexxer #endif /* REGEXXER_STATUSLINE_H_INCLUDED */ regexxer-0.9/src/stringutils.cc0000644000175000017500000004307210566117524013636 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "stringutils.h" #include #include #include #include #include #include #include #include #include #include #include namespace { typedef std::pair ModPos; class ScopedTypeClass { private: void* class_; ScopedTypeClass(const ScopedTypeClass&); ScopedTypeClass& operator=(const ScopedTypeClass&); public: explicit ScopedTypeClass(GType type) : class_ (g_type_class_ref(type)) {} ~ScopedTypeClass() { g_type_class_unref(class_); } void* get() const { return class_; } }; static inline bool is_significant_encoding_char(char c) { switch (c) { case ' ': case '-': case '_': case '.': case ':': return false; } return true; } static inline unsigned int scale_to_8bit(unsigned int value) { return (value & 0xFF00) >> 8; } static inline bool ascii_isodigit(char c) { return (c >= '0' && c <= '7'); } static std::string apply_modifiers(const std::string& subject, const std::vector& modifiers) { std::string result; result.reserve(subject.size()); int idx = 0; const std::vector::const_iterator pend = modifiers.end(); std::vector::const_iterator p = modifiers.begin(); while (p != pend) { const int start = p->first; result.append(subject, idx, start - idx); idx = start; const char mod = p->second; ++p; switch (mod) { case 'L': case 'U': { while (p != pend && (p->second == 'l' || p->second == 'u')) ++p; const int stop = (p == pend) ? subject.size() : p->first; const Glib::ustring slice (subject.begin() + start, subject.begin() + stop); const Glib::ustring str = (mod == 'L') ? slice.lowercase() : slice.uppercase(); result.append(str.raw()); idx = stop; break; } case 'l': case 'u': // TODO: Simplify. This code is way too complicated. { if (unsigned(start) < subject.size()) { while (p != pend && p->first == start && p->second != 'L' && p->second != 'U') ++p; if (p != pend && p->first == start) { const char submod = p->second; do ++p; while (p != pend && (p->second == 'l' || p->second == 'u')); const int stop = (p == pend) ? subject.size() : p->first; const Glib::ustring slice (subject.begin() + start, subject.begin() + stop); const Glib::ustring str = (submod == 'L') ? slice.lowercase() : slice.uppercase(); if (!str.empty()) { Glib::ustring::const_iterator cpos = str.begin(); gunichar uc = *cpos++; uc = (mod == 'l') ? Glib::Unicode::tolower(uc) : Glib::Unicode::totitle(uc); if (Glib::Unicode::validate(uc)) result.append(Glib::ustring(1, uc).raw()); result.append(cpos.base(), str.end().base()); } idx = stop; } else { Glib::ustring::const_iterator cpos (subject.begin() + start); gunichar uc = *cpos++; uc = (mod == 'l') ? Glib::Unicode::tolower(uc) : Glib::Unicode::totitle(uc); if (Glib::Unicode::validate(uc)) result.append(Glib::ustring(1, uc).raw()); idx = cpos.base() - subject.begin(); } } break; } case 'E': { break; } default: { g_assert_not_reached(); break; } } } result.append(subject, idx, std::string::npos); return result; } static void parse_control_char(std::string::const_iterator& p, std::string::const_iterator pend, std::string& dest) { const std::string::const_iterator pnext = p + 1; if (pnext != pend && (static_cast(*pnext) & 0x80U) == 0) { p = pnext; // Flip bit 6 of the upcased character. const char c = static_cast(Glib::Ascii::toupper(*pnext)) ^ 0x40U; // TextBuffer can't handle NUL; interpret it as empty string instead. if (c != '\0') dest += c; } else dest += 'c'; } static void parse_hex_unichar(std::string::const_iterator& p, std::string::const_iterator pend, std::string& dest) { using namespace Glib; std::string::const_iterator pstart = p + 1; if (pstart != pend) { if (*pstart == '{') { const std::string::const_iterator pstop = std::find(++pstart, pend, '}'); if (pstop != pend) { p = pstop; gunichar uc = 0; for (; pstart != pstop; ++pstart) { if (!Ascii::isxdigit(*pstart)) return; uc *= 0x10; uc += Ascii::xdigit_value(*pstart); } if (uc != 0 && Unicode::validate(uc)) dest += ustring(1, uc).raw(); return; } } else if (pstart + 1 != pend && Ascii::isxdigit(pstart[0]) && Ascii::isxdigit(pstart[1])) { p = pstart + 1; const gunichar uc = 0x10 * Ascii::xdigit_value(pstart[0]) + Ascii::xdigit_value(pstart[1]); if (uc != 0 && Unicode::validate(uc)) dest += ustring(1, uc).raw(); return; } } dest += 'x'; } static void parse_oct_unichar(std::string::const_iterator& p, std::string::const_iterator pend, std::string& dest) { gunichar uc = 0; std::string::const_iterator pnum = p; for (; pnum != pend && (pnum - p) < 3; ++pnum) { if (!ascii_isodigit(*pnum)) break; uc *= 010; uc += Glib::Ascii::digit_value(*pnum); } if (pnum > p) { p = pnum - 1; if (uc != 0 && Glib::Unicode::validate(uc)) dest += Glib::ustring(1, uc).raw(); } else dest += *p; } /* * On entry, p _must_ point to either a digit or a starting bracket '{'. Also, * if p points to '{' the closing bracket '}' is assumed to follow before pend. */ static int parse_capture_index(std::string::const_iterator& p, std::string::const_iterator pend) { std::string::const_iterator pnum = p; if (*pnum == '{' && *++pnum == '}') { p = pnum; return -1; } int result = 0; while (pnum != pend && Glib::Ascii::isdigit(*pnum)) { result *= 10; result += Glib::Ascii::digit_value(*pnum++); } if (*p != '{') // case "$digits": set position to last digit { p = pnum - 1; } else if (*pnum == '}') // case "${digits}": set position to '}' { p = pnum; } else // case "${invalid}": return -1 but still skip until '}' { p = std::find(pnum, pend, '}'); return -1; } return result; } } // anonymous namespace /* * Convert the content of an std::wstring to UTF-8. Using wide strings is * necessary when dealing with localized stream formatting, for the reasons * outlined here: http://bugzilla.gnome.org/show_bug.cgi?id=399216 * * Direct use of wide strings in regexxer is a temporary measure. Thus, * this function should be removed once Glib::compose() and Glib::format() * are available in glibmm. */ Glib::ustring Util::wstring_to_utf8(const std::wstring& str) { class ScopedCharArray { private: char* ptr_; ScopedCharArray(const ScopedCharArray&); ScopedCharArray& operator=(const ScopedCharArray&); public: explicit ScopedCharArray(char* ptr) : ptr_ (ptr) {} ~ScopedCharArray() { g_free(ptr_); } char* get() const { return ptr_; } }; GError* error = 0; #ifdef __STDC_ISO_10646__ // Avoid going through iconv if wchar_t always contains UCS-4. glong n_bytes = 0; const ScopedCharArray buf (g_ucs4_to_utf8(reinterpret_cast(str.data()), str.size(), 0, &n_bytes, &error)); #else gsize n_bytes = 0; const ScopedCharArray buf (g_convert(reinterpret_cast(str.data()), str.size() * sizeof(std::wstring::value_type), "UTF-8", "WCHAR_T", 0, &n_bytes, &error)); #endif /* !__STDC_ISO_10646__ */ if (G_UNLIKELY(error)) { g_warning("%s", error->message); g_error_free(error); return Glib::ustring(); } return Glib::ustring(buf.get(), buf.get() + n_bytes); } bool Util::validate_encoding(const std::string& encoding) { // GLib just ignores some characters that aren't used in encoding names, // so we have to parse the string for invalid characters ourselves. if (encoding.empty() || !Glib::Ascii::isalnum(*encoding.begin()) || !Glib::Ascii::isalnum(*encoding.rbegin())) return false; for (std::string::const_iterator p = encoding.begin() + 1; p != encoding.end(); ++p) { if (!Glib::Ascii::isalnum(*p) && is_significant_encoding_char(*p)) return false; } // Better don't try to call Glib::convert() with identical input and output // encodings. I heard the iconv on Solaris doesn't like that idea at all. if (!Util::encodings_equal(encoding, "UTF-8")) try { Glib::convert(std::string(), "UTF-8", encoding); } catch (const Glib::ConvertError& error) { if (error.code() == Glib::ConvertError::NO_CONVERSION) return false; throw; } return true; } /* * Test lhs and rhs for equality while ignoring case * and several separation characters used in encoding names. */ bool Util::encodings_equal(const std::string& lhs, const std::string& rhs) { typedef std::string::const_iterator Iterator; Iterator lhs_pos = lhs.begin(); Iterator rhs_pos = rhs.begin(); const Iterator lhs_end = lhs.end(); const Iterator rhs_end = rhs.end(); for (;;) { while (lhs_pos != lhs_end && !is_significant_encoding_char(*lhs_pos)) ++lhs_pos; while (rhs_pos != rhs_end && !is_significant_encoding_char(*rhs_pos)) ++rhs_pos; if (lhs_pos == lhs_end || rhs_pos == rhs_end) break; if (Glib::Ascii::toupper(*lhs_pos) != Glib::Ascii::toupper(*rhs_pos)) return false; ++lhs_pos; ++rhs_pos; } return (lhs_pos == lhs_end && rhs_pos == rhs_end); } Glib::ustring Util::shell_pattern_to_regex(const Glib::ustring& pattern) { // Don't use Glib::ustring to accumulate the result since we might append // partial UTF-8 characters during processing. Although this would work with // the current Glib::ustring implementation, it's definitely not a good idea. std::string result; result.reserve(std::max(32, 2 * pattern.raw().size())); result.append("\\A", 2); int brace_level = 0; const std::string::const_iterator pend = pattern.raw().end(); std::string::const_iterator p = pattern.raw().begin(); std::string::const_iterator pcc = pend; // start of character class for (; p != pend; ++p) { if (*p == '\\') { // Always escape a single trailing '\' to avoid mangling the "\z" // terminator. Never escape multi-byte or alpha-numeric characters. if (p + 1 == pend || Glib::Ascii::ispunct(*++p)) result += '\\'; result += *p; } else if (pcc == pend) { switch (*p) { case '*': result.append(".*", 2); break; case '?': result += '.'; break; case '[': result += '['; pcc = p + 1; break; case '{': result.append("(?:", 3); ++brace_level; break; case '}': result += ')'; --brace_level; break; case ',': result += (brace_level > 0) ? '|' : ','; break; case '^': case '$': case '.': case '+': case '(': case ')': case '|': result += '\\'; // fallthrough default: result += *p; break; } } else // pcc != pend { switch (*p) { case ']': result += ']'; if (p != pcc && !(p == pcc + 1 && (*pcc == '!' || *pcc == '^'))) pcc = pend; break; case '!': result += (p == pcc) ? '^' : '!'; break; default: result += *p; break; } } } result.append("\\z", 2); return result; } Glib::ustring Util::substitute_references(const Glib::ustring& substitution, const Glib::ustring& subject, const CaptureVector& captures) { std::string result; result.reserve(2 * std::max(substitution.raw().size(), subject.raw().size())); std::vector modifiers; const std::string::const_iterator pend = substitution.raw().end(); std::string::const_iterator p = substitution.raw().begin(); for (; p != pend; ++p) { if (*p == '\\' && p + 1 != pend) { switch (*++p) { case 'L': case 'U': case 'l': case 'u': case 'E': modifiers.push_back(ModPos(result.size(), *p)); break; case 'a': result += '\a'; break; case 'e': result += '\033'; break; case 'f': result += '\f'; break; case 'n': result += '\n'; break; case 'r': result += '\r'; break; case 't': result += '\t'; break; case 'c': parse_control_char(p, pend, result); break; case 'x': parse_hex_unichar(p, pend, result); break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': parse_oct_unichar(p, pend, result); break; default: result += *p; break; } } else if (*p == '$' && p + 1 != pend) { std::pair bounds; if (Glib::Ascii::isdigit(*++p) || (*p == '{' && std::find(p + 1, pend, '}') != pend)) { const int index = parse_capture_index(p, pend); if (index >= 0 && unsigned(index) < captures.size()) bounds = captures[index]; else continue; } else switch (*p) { case '+': if (captures.size() > 1) bounds = captures.back(); break; case '&': bounds = captures.front(); break; case '`': bounds.first = 0; bounds.second = captures.front().first; break; case '\'': bounds.first = captures.front().second; bounds.second = subject.raw().size(); break; default: result += '$'; result += *p; continue; } if (bounds.first >= 0 && bounds.second > bounds.first) result.append(subject.raw(), bounds.first, bounds.second - bounds.first); } else // (*p != '\\' && *p != '$') || (p + 1 == pend) { result += *p; } } if (!modifiers.empty()) result = apply_modifiers(result, modifiers); return result; } Glib::ustring Util::int_to_string(int number) { std::wostringstream output; try // don't abort if the user-specified locale doesn't exist { output.imbue(std::locale("")); } catch (const std::runtime_error& error) { g_warning("%s", error.what()); } output << number; return Util::wstring_to_utf8(output.str()); } Glib::ustring Util::filename_short_display_name(const std::string& filename) { const std::string homedir = Glib::get_home_dir(); const std::string::size_type len = homedir.length(); if (filename.length() >= len && (filename.length() == len || G_IS_DIR_SEPARATOR(filename[len])) && filename.compare(0, len, homedir) == 0) { std::string short_name (1, '~'); short_name.append(filename, len, std::string::npos); return Glib::filename_display_name(short_name); } return Glib::filename_display_name(filename); } Glib::ustring Util::color_to_string(const Gdk::Color& color) { std::ostringstream output; output.imbue(std::locale::classic()); output.setf(std::ios::hex, std::ios::basefield); output.setf(std::ios::uppercase); output.fill('0'); output << '#' << std::setw(2) << scale_to_8bit(color.get_red()) << std::setw(2) << scale_to_8bit(color.get_green()) << std::setw(2) << scale_to_8bit(color.get_blue()); return output.str(); } int Util::enum_from_nick_impl(GType type, const Glib::ustring& nick) { const ScopedTypeClass type_class (type); GEnumClass *const enum_class = G_ENUM_CLASS(type_class.get()); GEnumValue *const enum_value = g_enum_get_value_by_nick(enum_class, nick.c_str()); g_return_val_if_fail(enum_value != 0, enum_class->minimum); return enum_value->value; } Glib::ustring Util::enum_to_nick_impl(GType type, int value) { const ScopedTypeClass type_class (type); GEnumClass *const enum_class = G_ENUM_CLASS(type_class.get()); GEnumValue *const enum_value = g_enum_get_value(enum_class, value); g_return_val_if_fail(enum_value != 0, ""); return enum_value->value_nick; } regexxer-0.9/src/stringutils.h0000644000175000017500000000424710566104413013472 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef REGEXXER_STRINGUTILS_H_INCLUDED #define REGEXXER_STRINGUTILS_H_INCLUDED #include #include #include #include namespace Gdk { class Color; } namespace Util { typedef std::vector< std::pair > CaptureVector; Glib::ustring wstring_to_utf8(const std::wstring& str); bool validate_encoding(const std::string& encoding); bool encodings_equal(const std::string& lhs, const std::string& rhs); Glib::ustring shell_pattern_to_regex(const Glib::ustring& pattern); Glib::ustring substitute_references(const Glib::ustring& substitution, const Glib::ustring& subject, const CaptureVector& captures); Glib::ustring filename_short_display_name(const std::string& filename); Glib::ustring int_to_string(int number); Glib::ustring color_to_string(const Gdk::Color& color); int enum_from_nick_impl(GType type, const Glib::ustring& nick); Glib::ustring enum_to_nick_impl(GType type, int value); template inline T enum_from_nick(const Glib::ustring& nick) { return static_cast(Util::enum_from_nick_impl(Glib::Value::value_type(), nick)); } template inline Glib::ustring enum_to_nick(T value) { return Util::enum_to_nick_impl(Glib::Value::value_type(), value); } } // namespace Util #endif /* REGEXXER_STRINGUTILS_H_INCLUDED */ regexxer-0.9/src/translation.cc0000644000175000017500000000525410560467704013607 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include #if ENABLE_NLS # include #endif #include "translation.h" #include #include #include #if ENABLE_NLS void Util::initialize_gettext(const char* domain, const char* localedir) { bindtextdomain(domain, localedir); # if HAVE_BIND_TEXTDOMAIN_CODESET bind_textdomain_codeset(domain, "UTF-8"); # endif textdomain(domain); } #else void Util::initialize_gettext(const char*, const char*) {} #endif /* !ENABLE_NLS */ const char* Util::translate(const char* msgid) { #if ENABLE_NLS return gettext(msgid); #else return msgid; #endif } Glib::ustring Util::compose_argv(const char* format, int argc, const Glib::ustring *const * argv) { const std::string::size_type format_size = std::strlen(format); std::string::size_type result_size = format_size; // Guesstimate the final string size. for (int i = 0; i < argc; ++i) result_size += argv[i]->raw().size(); std::string result; result.reserve(result_size); const char* start = format; while (const char* stop = std::strchr(start, '%')) { if (stop[1] == '%') { result.append(start, stop - start + 1); start = stop + 2; } else { const int index = Glib::Ascii::digit_value(stop[1]) - 1; if (index >= 0 && index < argc) { result.append(start, stop - start); result += argv[index]->raw(); start = stop + 2; } else { const char *const next = (stop[1] != '\0') ? g_utf8_next_char(stop + 1) : (stop + 1); // Copy invalid substitutions literally to the output. result.append(start, next - start); g_warning("invalid substitution \"%s\" in format string \"%s\"", result.c_str() + result.size() - (next - stop), format); start = next; } } } result.append(start, format + format_size - start); return result; } regexxer-0.9/src/translation.h0000644000175000017500000000476310560467704013455 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef REGEXXER_TRANSLATION_H_INCLUDED #define REGEXXER_TRANSLATION_H_INCLUDED #include #include #ifndef gettext_noop # define gettext_noop(s) (s) #endif #define _(s) ::Util::translate(s) #define N_(s) gettext_noop(s) namespace Util { void initialize_gettext(const char* domain, const char* localedir); const char* translate(const char* msgid) G_GNUC_FORMAT(1); Glib::ustring compose_argv(const char* format, int argc, const Glib::ustring *const * argv); /* * The compose functions substitute placeholders in a format string with * the referenced arguments. The template string should be in qt-format, * that is "%1", "%2", ..., "%9" are used as placeholders and "%%" denotes * a literal "%". Substitutions may be reordered. * * Note that the format argument is of type const char* because the format * should generally not be computed. It should be either a literal string * or the result of a call to Util::translate(). */ inline Glib::ustring compose(const char* format, const Glib::ustring& s1) { const Glib::ustring *const argv[] = { &s1 }; return compose_argv(format, G_N_ELEMENTS(argv), argv); } inline Glib::ustring compose(const char* format, const Glib::ustring& s1, const Glib::ustring& s2) { const Glib::ustring *const argv[] = { &s1, &s2 }; return compose_argv(format, G_N_ELEMENTS(argv), argv); } inline Glib::ustring compose(const char* format, const Glib::ustring& s1, const Glib::ustring& s2, const Glib::ustring& s3) { const Glib::ustring *const argv[] = { &s1, &s2, &s3 }; return compose_argv(format, G_N_ELEMENTS(argv), argv); } } // namespace Util #endif /* REGEXXER_TRANSLATION_H_INCLUDED */ regexxer-0.9/src/undostack.cc0000644000175000017500000000424410547616660013244 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include "undostack.h" #include namespace { enum { PULSE_INTERVAL = 8 }; class StopUndo {}; } // anonymous namespace namespace Regexxer { /**** Regexxer::UndoAction *************************************************/ UndoAction::~UndoAction() {} bool UndoAction::undo(const sigc::slot& pulse) { return do_undo(pulse); } /**** Regexxer::UndoStack **************************************************/ UndoStack::UndoStack() {} UndoStack::~UndoStack() { // Ensure LIFO order on destruction too. while (!actions_.empty()) actions_.pop(); } void UndoStack::push(const UndoActionPtr& action) { actions_.push(action); } bool UndoStack::empty() const { return actions_.empty(); } void UndoStack::undo_step(const sigc::slot& pulse) { try { bool skip = false; do { g_return_if_fail(!actions_.empty()); skip = actions_.top()->undo(pulse); actions_.pop(); } while (skip); } catch (const StopUndo&) {} } bool UndoStack::do_undo(const sigc::slot& pulse) { unsigned int iteration = 0; bool skip = true; while (!actions_.empty()) { const bool skip_this = actions_.top()->undo(pulse); actions_.pop(); if (!skip_this) { skip = false; if ((++iteration % PULSE_INTERVAL) == 0 && pulse()) throw StopUndo(); } } return skip; } } // namespace Regexxer regexxer-0.9/src/undostack.h0000644000175000017500000000334610547616660013110 00000000000000/* * Copyright (c) 2002-2007 Daniel Elstner * * This file is part of regexxer. * * regexxer 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. * * regexxer 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 regexxer; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef REGEXXER_UNDOSTACK_H_INCLUDED #define REGEXXER_UNDOSTACK_H_INCLUDED #include "sharedptr.h" #include #include namespace Regexxer { class UndoAction : public Util::SharedObject { public: UndoAction() {} virtual ~UndoAction() = 0; bool undo(const sigc::slot& pulse); private: UndoAction(const UndoAction&); UndoAction& operator=(const UndoAction&); virtual bool do_undo(const sigc::slot& pulse) = 0; }; typedef Util::SharedPtr UndoActionPtr; class UndoStack : public UndoAction { public: UndoStack(); virtual ~UndoStack(); void push(const UndoActionPtr& action); bool empty() const; void undo_step(const sigc::slot& pulse); private: std::stack actions_; virtual bool do_undo(const sigc::slot& pulse); }; typedef Util::SharedPtr UndoStackPtr; } // namespace Regexxer #endif /* REGEXXER_UNDOSTACK_H_INCLUDED */ regexxer-0.9/ui/0000777000175000017500000000000010566142352010641 500000000000000regexxer-0.9/ui/regexxer.png0000644000175000017500000000763010547316006013120 00000000000000PNG  IHDR00WbKGDMIDATxil]usEM۲\/";p@ kh]'p" 4h:-EQ#i@Q7h]duډZeɔdY(DR"ERfZ6 ޻3?9s.7{1įINp/N3^@V1o}ߘ=>cqI XBV+iY=0~_f!ɱ{l•r ( ( *3ch"gݝ'ork|λ'F`CEY( l$KqjssԐ=éҿ PU2"g/=_@pd^:T2^_`E.3D37] [(; E47XDcc#ia %%BL:Sd~!} P~ 0n;N9W-B(JR D; %gӼ]7H!ɲ Xbt /|/'N\Aȶ@,r( eȀ@*_N8n c`pxs*( <|ҿB!T*!Ȧ͛fs˼޽/yVvFH$=N kGY֖(=J%nz x]pdcyʎİL \\!(|ߧpuu]W>O~&SS.J60q'KfPyLNM0@J"sKϺpQw#7,ζ[6fW*Y|@3G.4rr22Rfwٲe ׭cCg.hiQr@4E˲abHBKPo/|//TW:9 Ntu$P i1<||Cj*eK } >'P lB4$a8.AD8x ˧UWI ޴]lmi]SX_̺2@&(!P{-d0-IěI&D#Q! C4-  mFw40_%؀2A* Գ1u{ &\Y7oX{[o&2홙)f'(rVX,E |F ͛n[ \w\Dzl0`jN=.18{g<&bixO&fǎabAp/œaÆ":|^FFXmk8  e AյX<DQ}%s?8|P:J\%O"$eDNإD뻯c 7lXe  <ܹJ,wbgú tYLy2s>>>sSS-Z7cp=$ Pb1 $"ab( %U'O`jzsΥN\xϋJ 8$Pҗ2Wi *xP,ֶH4su ʹ00E($O5caLP.063##7O9Bˎ?h|O[hha!&u\T3/m],a[5;;}ݏmJljil$|z=Μ/g O_r٬}mz_4N:dCp}:\qyVp!UWZ'=4zG{GT DSˉE"q0B!4o>w`}fӕJ}K+ݫݣvQ@.w'2탃oO=v.7NYkzMp5 .GgV%RM-+2a",c(?{{ d=˞W:+|zOqB٬@vigºRGx8|-~ҥ}?|D2;=F\d reoztA eVٺfn~2kC{&&~=/_N^Kne%}GW{p(ɦXiht26~LkՎ@.VM#ЬttzXJ^k׹5^Ђnƺs{;7 ^fA+ jluWܥZWHOHL]\ҿ_ZZO4Zg:廰]N]-PsFX-a/^͢@ܤk] fiZ~/\g9 ]5Cr6$_RE]@׆eNw:Nf%-,ajl'SuJzZKدOhe7u Gm@ZU^Մz>2%WuJDNPIENDB`regexxer-0.9/ui/stock_save_all_16.png0000644000175000017500000000133610547316030014560 00000000000000PNG  IHDRabKGD pHYs  ~tIME  ;`˫kIDATxmKhQ>>Gl+Fъ n Uԅ.D.KPʍtXH1N6L"\8?GC} $ )%lZxֽ\ BQ,Dk[It(tzy&']<(E`mYR^Ph@4tY.޸5*W P˂UJ'W!Uz#:Kp&^W#RqT|Ag[7 \ 7 ) {>mh*~c$ "~0n:[(!, 41MHACcKK"2cg[u1Wɦd:H]eq ny pɛmciPg;GVڿL?h#J>5*>ޏ=6="IiL* in^=G,#WO&EAǩԦtWDHpw㯙NٽDJV _Qȷ_8{P(DǞnTm]@SR?U{N0WT\3IENDB`regexxer-0.9/ui/stock_save_all_24.png0000644000175000017500000000167610547316051014571 00000000000000PNG  IHDRw=bKGD pHYs @StIME aKIDATxŕKlEk;RDHC 0 87(B 'TTE$$P\ZDꍄ TPHxH\I+ihCK!JPҒz1pzg 9'V3ogA@*Jg~XY`qۋnԳd\^+ '5_KNWH̰Wff?X5KBT44]#Od(!$e^)пe<ϿF.'=<6Z#R\)Eoo/upˢ#]a}RJlۦT*S1|4qqll  'Gx,qxJt'ZI;].7Z6ڠ)-37LnZ׉PR2{ -J)5R}~YbT\.ǹi>/>Zw6hƻmۤR>JoƎ`&dՍu~۰x6yy(ݻ!~4D"HA7t"u մ8>NσDbXS,!h:e#?k"+d26MjrVIѦ5z5SZ\%,R*Tq,Cpm\]n_mxҲxfUb,2_'l_\eIENDB`regexxer-0.9/ui/regexxer.desktop.in0000644000175000017500000000031710547552222014407 00000000000000[Desktop Entry] Version=1.0 Type=Application _Name=regexxer Search Tool _Comment=Search and replace using regular expressions Exec=regexxer Icon=regexxer StartupNotify=true Categories=GTK;GNOME;Development; regexxer-0.9/ui/regexxer.schemas.in0000644000175000017500000000423310550467300014356 00000000000000 /schemas/apps/regexxer/textview_font /apps/regexxer/textview_font regexxer string Monospace 10 Text view font The font used in the file editor. /schemas/apps/regexxer/match_color /apps/regexxer/match_color regexxer string #9DB8D2 Match color The background color used to highlight matches of the search expression. /schemas/apps/regexxer/current_match_color /apps/regexxer/current_match_color regexxer string #EED680 Current-match color The background color used to highlight the currently selected match of the search expression. /schemas/apps/regexxer/toolbar_style /apps/regexxer/toolbar_style regexxer string both-horiz Toolbar style The style of the application’s toolbar. Possible values are “icons”, “text”, “both”, and “both-horiz”. /schemas/apps/regexxer/fallback_encoding /apps/regexxer/fallback_encoding regexxer string ISO-8859-15 Fallback encoding Name of the character encoding to use if a file is not readable in either UTF-8 or the codeset specified by the current locale. Try “iconv --list” for a complete list of possible values. regexxer-0.9/ui/mainwindow.glade0000644000175000017500000014767710550471447013760 00000000000000 GTK_WINDOW_TOPLEVEL False 640 480 True False GDK_WINDOW_TYPE_HINT_NORMAL True True False 0 True GTK_PACK_DIRECTION_LTR GTK_PACK_DIRECTION_LTR True _File True True gtk-save True True regexxer-save-all True True True gtk-quit True True _Edit True True gtk-undo True True True gtk-cut True True gtk-copy True True gtk-paste True True gtk-delete True True True gtk-preferences True True _Match True True _Previous file True True gtk-goto-first 1 0.5 0.5 0 0 True gtk-go-back True True gtk-go-forward True True _Next file True True gtk-goto-last 1 0.5 0.5 0 0 True True Replace _current True True gtk-convert 1 0.5 0.5 0 0 True Replace in _this file True True gtk-convert 1 0.5 0.5 0 0 True Replace in _all files True True gtk-convert 1 0.5 0.5 0 0 True _Help True True gtk-about True 0 False False True GTK_ORIENTATION_HORIZONTAL GTK_TOOLBAR_BOTH_HORIZ True True True gtk-save True True True False True True regexxer-save-all True True True False True True True True True False False True gtk-undo True True True False True True True True True False False True gtk-quit True True True False True 0 False False 6 True False 0 True True 6 True False 6 True 3 2 False 6 6 True Pattern: False False GTK_JUSTIFY_LEFT False False 0 0.5 0 0 0 1 1 2 fill True False 9 True False 3 True Recurse into subdirectories True recursive True GTK_RELIEF_NORMAL True True False True 0 False False True Also find hidden files True hidden True GTK_RELIEF_NORMAL True False False True 0 False False 0 False False True 1 1 0 0 0 0 0 0 True Find all files that match the filename pattern True GTK_RELIEF_NORMAL True True 0.5 0.5 0 0 0 0 0 0 True False 2 True gtk-find 4 0.5 0.5 0 0 0 False False True Find fi_les True False GTK_JUSTIFY_LEFT False False 0.5 0.5 0 0 0 False False 0 False False GTK_PACK_END 0 2 2 3 True Fol_der: True False GTK_JUSTIFY_LEFT False False 0 0.5 0 0 button_folder 0 1 0 1 fill True True True GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER True False False -1 True 1 2 0 1 True *.[ch] *.{c,cc,cpp,cxx,c++,C,h,hh,hpp,hxx,h++} *.{ccg,hg} *.idl *.{java,jsp} *.{pl,pm,cgi} *.py *.php3 *.{html,htm,shtml,js,wml} *.{xml,xsl,css,dtd,xsd} False True True A filename pattern as used by the shell. Character classes [ab] and csh style brace expressions {a,b} are supported. 1 2 1 2 0 False False True 0 0.5 GTK_SHADOW_ETCHED_IN True True GTK_POLICY_AUTOMATIC GTK_POLICY_ALWAYS GTK_SHADOW_NONE GTK_CORNER_TOP_LEFT True regexxer_create_file_tree 0 0 Mon, 10 May 2004 15:52:38 GMT 0 True True False True 6 True False 6 True 2 3 False 6 6 True Search: False False GTK_JUSTIFY_LEFT False False 0 0.5 0 0 entry_regex 0 1 0 1 fill True Replace: False False GTK_JUSTIFY_LEFT False False 0 0.5 0 0 entry_substitution 0 1 1 2 fill True A regular expression in Perl syntax True True True 0 True False 1 2 0 1 True The new string to substitute. As in Perl, you can refer to parts of the match using $1, $2, etc. or even $+, $&, $` and $'. The operators \l, \u, \L, \U and \E are supported as well. True True True 0 True False 1 2 1 2 True False 6 True Find all possible matches in a line True /g GTK_RELIEF_NORMAL True True False True 0 False False True Do case insensitive matching True /i GTK_RELIEF_NORMAL True False False True 0 False False 2 3 0 1 fill True Find all matches of the regular expression True gtk-find True GTK_RELIEF_NORMAL True 2 3 1 2 fill 0 False False True 0 0.5 GTK_SHADOW_ETCHED_IN True False 3 True True GTK_POLICY_ALWAYS GTK_POLICY_ALWAYS GTK_SHADOW_NONE GTK_CORNER_TOP_LEFT True True False False True GTK_JUSTIFY_LEFT GTK_WRAP_NONE False 0 0 0 0 0 0 0 True True True False Preview of the substitution False True 0 False False Preview 0 False False 0 True True False True 0 True True 2 True False 10 True True 6 True True GTK_RELIEF_NORMAL True Replace current match True 0.5 0.5 0 0 0 0 0 0 True False 2 True gtk-convert 4 0.5 0.5 0 0 0 False False True _Replace True False GTK_JUSTIFY_LEFT False False 0.5 0.5 0 0 0 False False 0 False True True True GTK_RELIEF_NORMAL True Replace all matches in the current file True 0.5 0.5 0 0 0 0 0 0 True False 2 True gtk-convert 4 0.5 0.5 0 0 0 False False True _This file True False GTK_JUSTIFY_LEFT False False 0.5 0.5 0 0 0 False False 0 False True True True GTK_RELIEF_NORMAL True Replace all matches in all files True 0.5 0.5 0 0 0 0 0 0 True False 2 True gtk-convert 4 0.5 0.5 0 0 0 False False True _All files True False GTK_JUSTIFY_LEFT False False 0.5 0.5 0 0 0 False False 0 False True 0 False False GTK_PACK_END True True 6 True True GTK_RELIEF_NORMAL True File backward Go to the previous matching file True gtk-goto-first 4 0.5 0.5 0 0 0 False True True True GTK_RELIEF_NORMAL True Backward Go to previous match True gtk-go-back 4 0.5 0.5 0 0 0 False True True True GTK_RELIEF_NORMAL True Forward Go to next match True gtk-go-forward 4 0.5 0.5 0 0 0 False True True True GTK_RELIEF_NORMAL True File forward Go to the next matching file True gtk-goto-last 4 0.5 0.5 0 0 0 False True 0 False False GTK_PACK_END 0 False False 0 True True True regexxer_create_status_line 0 0 Mon, 10 May 2004 13:18:30 GMT 0 False False regexxer-0.9/ui/prefdialog.glade0000644000175000017500000005166210551327417013702 00000000000000 Preferences GTK_WINDOW_TOPLEVEL False True False GDK_WINDOW_TYPE_HINT_DIALOG True False True False 0 True GTK_BUTTONBOX_END True True True True gtk-close True GTK_RELIEF_NORMAL True -7 0 False True GTK_PACK_END True True True True GTK_POS_TOP False False 10 True 4 2 False 12 12 True _Text view font: True False GTK_JUSTIFY_LEFT False False 0 0.5 0 0 button_textview_font 0 1 0 1 fill expand True _Match color: True False GTK_JUSTIFY_LEFT False False 0 0.5 0 0 button_match_color 0 1 1 2 fill expand True C_urrent match color: True False GTK_JUSTIFY_LEFT False False 0 0.5 0 0 button_current_color 0 1 2 3 fill expand True Tool_bar style: True False GTK_JUSTIFY_LEFT False False 0 0.5 0 0 combo_toolbar_style 0 1 3 4 fill expand True True False True 1 2 2 3 True True False True 1 2 1 2 True True True True True False True 1 2 0 1 True Icons only Text only Icons and text Both horizontal 1 2 3 4 fill fill False True True False 2 True gtk-preferences 1 0.5 0.5 0 0 0 False False True _Look’n’feel True False GTK_JUSTIFY_LEFT False False 0.5 0.5 0 0 0 False False tab 10 True False 12 True regexxer attempts to read a file in the following encodings before giving up: False False GTK_JUSTIFY_LEFT True False 0 0.5 0 0 0 True False True 3 2 False 0 3 True 3. False False GTK_JUSTIFY_LEFT False False 1 0.5 0 0 0 1 2 3 fill fill True 2. False False GTK_JUSTIFY_LEFT False False 1 0.5 0 0 0 1 1 2 fill fill True 1. False False GTK_JUSTIFY_LEFT False False 1 0.5 0 0 0 1 0 1 fill fill True UTF-8 False False GTK_JUSTIFY_LEFT False False 0 0.5 0 0 1 2 0 1 fill fill True False 6 True Fallback _encoding: True False GTK_JUSTIFY_LEFT False False 0 0.5 0 0 entry_fallback 0 False False True True True True 0 True False 0 True True 1 2 2 3 fill fill True The encoding specified by the current locale False False GTK_JUSTIFY_LEFT False False 0 0.5 0 0 1 2 1 2 fill fill 0 True False False True True False 2 True gtk-properties 1 0.5 0.5 0 0 0 False False True _File access True False GTK_JUSTIFY_LEFT False False 0.5 0.5 0 0 0 False False tab 0 True True regexxer-0.9/README0000644000175000017500000000101110547624251011013 00000000000000What's this? ============ regexxer is a nifty search/replace tool for the desktop user. It features recursive search through directory trees and Perl-style regular expressions (using libpcre). regexxer is written in C++ and uses gtkmm (the C++ wrapper for GTK+) for the GUI. The user interface is similar to the project-wide search/replace dialog in the Sniff+ IDE, but regexxer aims to surpass it. The primary audience of this tool are Linux/Unix users who are tired of typing find/grep/sed/awk/perl command lines. regexxer-0.9/configure.ac0000644000175000017500000000472610561754004012435 00000000000000## Copyright (c) 2004-2007 Daniel Elstner ## ## This file is part of regexxer. ## ## regexxer 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. ## ## regexxer 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 regexxer; if not, write to the Free Software Foundation, Inc., ## 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA AC_INIT([regexxer], [0.9], [http://regexxer.sourceforge.net/bugs], [regexxer]) AC_PREREQ([2.58]) AC_CONFIG_SRCDIR([ui/regexxer.desktop.in]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADERS([config.h]) AM_INIT_AUTOMAKE([1.8 -Wall gnu no-define nostdinc check-news]) AC_ARG_VAR([ACLOCAL_FLAGS], [aclocal flags, e.g. -I ]) AC_PROG_CC() AC_PROG_CXX() IT_PROG_INTLTOOL([0.35]) AC_SUBST([GETTEXT_PACKAGE], [regexxer]) AM_GLIB_GNU_GETTEXT() # gmodule-export-2.0 adds -Wl,--export-dynamic to the linker flags # so that libglade can get at the custom widget creation functions. PKG_CHECK_MODULES([REGEXXER_MODULES], [gmodule-export-2.0 >= 2.6.1 gtkmm-2.4 >= 2.6.0 libglademm-2.4 >= 2.4.0 gconfmm-2.6 >= 2.6.1 libpcre >= 5.0]) DK_PKG_PATH_PROG([GDK_PIXBUF_CSOURCE], [gdk-pixbuf-2.0], [gdk-pixbuf-csource]) DK_PKG_PATH_PROG([GTK_UPDATE_ICON_CACHE], [gtk+-2.0], [gtk-update-icon-cache]) DK_PKG_PATH_PROG([GCONFTOOL], [gconf-2.0], [gconftool-2]) AM_GCONF_SOURCE_2() AC_LANG([C++]) # If the linker supports it, use a version script to limit the effect # of --export-dynamic to the functions which need to be exported. DK_LINK_VERSION_SCRIPT([REGEXXER_VERSION_SCRIPT], [src/exported-symbols]) # Disabling -Wnon-virtual-dtor is nasty, but unfortunately required due to # a bug in gconfmm that triggers this warning. Not disabling this warning # would make --enable-warnings=fatal unusable. DK_ARG_ENABLE_WARNINGS([REGEXXER_WARNING_FLAGS], [-Wall -w1 -Wno-non-virtual-dtor], [-pedantic -Wall -Wextra -w1 -Wno-non-virtual-dtor], [GLIBMM GTKMM]) AC_CONFIG_FILES([Makefile po/Makefile.in]) AC_OUTPUT() regexxer-0.9/aclocal.m40000644000175000017500000014247410566140566012021 00000000000000# generated automatically by aclocal 1.9.6 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. dnl AM_GCONF_SOURCE_2 dnl Defines GCONF_SCHEMA_CONFIG_SOURCE which is where you should install schemas dnl (i.e. pass to gconftool-2 dnl Defines GCONF_SCHEMA_FILE_DIR which is a filesystem directory where dnl you should install foo.schemas files dnl AC_DEFUN([AM_GCONF_SOURCE_2], [ if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source` else GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE fi AC_ARG_WITH(gconf-source, [ --with-gconf-source=sourceaddress Config database for installing schema files.],GCONF_SCHEMA_CONFIG_SOURCE="$withval",) AC_SUBST(GCONF_SCHEMA_CONFIG_SOURCE) AC_MSG_RESULT([Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation]) if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas' fi AC_ARG_WITH(gconf-schema-file-dir, [ --with-gconf-schema-file-dir=dir Directory for installing schema files.],GCONF_SCHEMA_FILE_DIR="$withval",) AC_SUBST(GCONF_SCHEMA_FILE_DIR) AC_MSG_RESULT([Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files]) AC_ARG_ENABLE(schemas-install, [ --disable-schemas-install Disable the schemas installation], [case ${enableval} in yes|no) ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-schemas-install) ;; esac]) AM_CONDITIONAL([GCONF_SCHEMAS_INSTALL], [test "$enable_schemas_install" != no]) ]) # Copyright (C) 1995-2002 Free Software Foundation, Inc. # Copyright (C) 2001-2003,2004 Red Hat, Inc. # # This file is free software, distributed under the terms of the GNU # General Public License. As a special exception to the GNU General # Public License, this file may be distributed as part of a program # that contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU Public License # but which still want to provide support for the GNU gettext functionality. # # Macro to add for using GNU gettext. # Ulrich Drepper , 1995, 1996 # # Modified to never use included libintl. # Owen Taylor , 12/15/1998 # # Major rework to remove unused code # Owen Taylor , 12/11/2002 # # Added better handling of ALL_LINGUAS from GNU gettext version # written by Bruno Haible, Owen Taylor 5/30/3002 # # Modified to require ngettext # Matthias Clasen 08/06/2004 # # We need this here as well, since someone might use autoconf-2.5x # to configure GLib then an older version to configure a package # using AM_GLIB_GNU_GETTEXT AC_PREREQ(2.53) dnl dnl We go to great lengths to make sure that aclocal won't dnl try to pull in the installed version of these macros dnl when running aclocal in the glib directory. dnl m4_copy([AC_DEFUN],[glib_DEFUN]) m4_copy([AC_REQUIRE],[glib_REQUIRE]) dnl dnl At the end, if we're not within glib, we'll define the public dnl definitions in terms of our private definitions. dnl # GLIB_LC_MESSAGES #-------------------- glib_DEFUN([GLIB_LC_MESSAGES], [AC_CHECK_HEADERS([locale.h]) if test $ac_cv_header_locale_h = yes; then AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi fi]) # GLIB_PATH_PROG_WITH_TEST #---------------------------- dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], [# Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in /*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) # GLIB_WITH_NLS #----------------- glib_DEFUN([GLIB_WITH_NLS], dnl NLS is obligatory [USE_NLS=yes AC_SUBST(USE_NLS) gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= AC_CHECK_HEADER(libintl.h, [gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, [AC_TRY_LINK([ #include ], [return !ngettext ("","", 1)], gt_cv_func_ngettext_libc=yes, gt_cv_func_ngettext_libc=no) ]) if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, [AC_TRY_LINK([ #include ], [return !dgettext ("","")], gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no) ]) fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then AC_CHECK_FUNCS(bind_textdomain_codeset) fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then AC_CHECK_LIB(intl, bindtextdomain, [AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dgettext, gt_cv_func_dgettext_libintl=yes)])]) if test "$gt_cv_func_dgettext_libintl" != "yes" ; then AC_MSG_CHECKING([if -liconv is needed to use gettext]) AC_MSG_RESULT([]) AC_CHECK_LIB(intl, ngettext, [AC_CHECK_LIB(intl, dcgettext, [gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv], :,-liconv)], :,-liconv) fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset AC_CHECK_FUNCS(bind_textdomain_codeset) LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then AC_DEFINE(HAVE_GETTEXT,1, [Define if the GNU gettext() function is already present or preinstalled.]) GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" AC_CHECK_FUNCS(dcgettext) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr], [CATOBJEXT=.gmo DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share and dnl and CATOBJEXT=.gmo in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [CATOBJEXT=.gmo DATADIRNAME=share], [CATOBJEXT=.mo DATADIRNAME=lib]) ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac]) LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi ]) if test "$gt_cv_have_gettext" = "yes" ; then AC_DEFINE(ENABLE_NLS, 1, [always defined to indicate that i18n is enabled]) fi dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is not GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po AC_OUTPUT_COMMANDS( [case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac]) dnl These rules are solely for the distribution goal. While doing this dnl we only have to keep exactly one list of the available catalogs dnl in configure.in. for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done dnl Make all variables we use known to autoconf. AC_SUBST(CATALOGS) AC_SUBST(CATOBJEXT) AC_SUBST(DATADIRNAME) AC_SUBST(GMOFILES) AC_SUBST(INSTOBJEXT) AC_SUBST(INTLLIBS) AC_SUBST(PO_IN_DATADIR_TRUE) AC_SUBST(PO_IN_DATADIR_FALSE) AC_SUBST(POFILES) AC_SUBST(POSUB) ]) # AM_GLIB_GNU_GETTEXT # ------------------- # Do checks necessary for use of gettext. If a suitable implementation # of gettext is found in either in libintl or in the C library, # it will set INTLLIBS to the libraries needed for use of gettext # and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable # gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() # on various variables needed by the Makefile.in.in installed by # glib-gettextize. dnl glib_DEFUN([GLIB_GNU_GETTEXT], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_HEADER_STDC])dnl GLIB_LC_MESSAGES GLIB_WITH_NLS if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else AC_MSG_CHECKING(for catalogs to be installed) NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS AC_MSG_RESULT($LINGUAS) fi dnl Construct list of names of catalog files to be constructed. if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but ($top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) dnl Generate list of files to be processed by xgettext which will dnl be included in po/Makefile. test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES ]) # AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) # ------------------------------- # Define VARIABLE to the location where catalog files will # be installed by po/Makefile. glib_DEFUN([GLIB_DEFINE_LOCALEDIR], [glib_REQUIRE([GLIB_GNU_GETTEXT])dnl glib_save_prefix="$prefix" glib_save_exec_prefix="$exec_prefix" test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix=$prefix if test "x$CATOBJEXT" = "x.mo" ; then localedir=`eval echo "${libdir}/locale"` else localedir=`eval echo "${datadir}/locale"` fi prefix="$glib_save_prefix" exec_prefix="$glib_save_exec_prefix" AC_DEFINE_UNQUOTED($1, "$localedir", [Define the location where the catalogs will be installed]) ]) dnl dnl Now the definitions that aclocal will find dnl ifdef(glib_configure_in,[],[ AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) ])dnl # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # # Copyright © 2004 Scott James Remnant . # # 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 of the License, 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 this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # # Similar to PKG_CHECK_MODULES, make sure that the first instance of # this or PKG_CHECK_MODULES is called, or make sure to call # PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_ifval([$2], [$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$PKG_CONFIG"; then if test -n "$$1"; then pkg_cv_[]$1="$$1" else PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) fi else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` else $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD ifelse([$4], , [AC_MSG_ERROR(dnl [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT ])], [$4]) elif test $pkg_failed = untried; then ifelse([$4], , [AC_MSG_FAILURE(dnl [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])], [$4]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) ifelse([$3], , :, [$3]) fi[]dnl ])# PKG_CHECK_MODULES # Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.9.6])]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 7 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE]) AC_SUBST([$1_FALSE]) if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH]) ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 3 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 12 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.58])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl ]) ]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $1 | $1:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl install_sh=${install_sh-"$am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. # # Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories # created by `make install' are always world readable, even if the # installer happens to have an overly restrictive umask (e.g. 077). # This was a mistake. There are at least two reasons why we must not # use `-m 0755': # - it causes special bits like SGID to be ignored, # - it may be too restrictive (some setups expect 775 directories). # # Do not use -m 0755 and let people choose whatever they expect by # setting umask. # # We cannot accept any implementation of `mkdir' that recognizes `-p'. # Some implementations (such as Solaris 8's) are not thread-safe: if a # parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' # concurrently, both version can detect that a/ is missing, but only # one can create it and the other will error out. Consequently we # restrict ourselves to GNU make (using the --version option ensures # this.) AC_DEFUN([AM_PROG_MKDIR_P], [if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi AC_SUBST([mkdir_p])]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/dk-export.m4]) m4_include([m4/dk-feature.m4]) m4_include([m4/dk-pkgprog.m4]) m4_include([m4/dk-warn.m4]) m4_include([m4/intltool.m4]) regexxer-0.9/intltool-extract.in0000644000175000017500000005373510566140564014024 00000000000000#!@INTLTOOL_PERL@ -w # -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*- # # The Intltool Message Extractor # # Copyright (C) 2000-2001, 2003 Free Software Foundation. # # Intltool 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. # # Intltool 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 this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # # Authors: Kenneth Christiansen # Darin Adler # ## Release information my $PROGRAM = "intltool-extract"; my $PACKAGE = "intltool"; my $VERSION = "0.35.0"; ## Loaded modules use strict; use File::Basename; use Getopt::Long; ## Scalars used by the option stuff my $TYPE_ARG = "0"; my $LOCAL_ARG = "0"; my $HELP_ARG = "0"; my $VERSION_ARG = "0"; my $UPDATE_ARG = "0"; my $QUIET_ARG = "0"; my $SRCDIR_ARG = "."; my $FILE; my $OUTFILE; my $gettext_type = ""; my $input; my %messages = (); my %loc = (); my %count = (); my %comments = (); my $strcount = 0; my $XMLCOMMENT = ""; ## Use this instead of \w for XML files to handle more possible characters. my $w = "[-A-Za-z0-9._:]"; ## Always print first $| = 1; ## Handle options GetOptions ( "type=s" => \$TYPE_ARG, "local|l" => \$LOCAL_ARG, "help|h" => \$HELP_ARG, "version|v" => \$VERSION_ARG, "update" => \$UPDATE_ARG, "quiet|q" => \$QUIET_ARG, "srcdir=s" => \$SRCDIR_ARG, ) or &error; &split_on_argument; ## Check for options. ## This section will check for the different options. sub split_on_argument { if ($VERSION_ARG) { &version; } elsif ($HELP_ARG) { &help; } elsif ($LOCAL_ARG) { &place_local; &extract; } elsif ($UPDATE_ARG) { &place_normal; &extract; } elsif (@ARGV > 0) { &place_normal; &message; &extract; } else { &help; } } sub place_normal { $FILE = $ARGV[0]; $OUTFILE = "$FILE.h"; } sub place_local { $FILE = $ARGV[0]; $OUTFILE = fileparse($FILE, ()); if (!-e "tmp/") { system("mkdir tmp/"); } $OUTFILE = "./tmp/$OUTFILE.h" } sub determine_type { if ($TYPE_ARG =~ /^gettext\/(.*)/) { $gettext_type=$1 } } ## Sub for printing release information sub version{ print <<_EOF_; ${PROGRAM} (${PACKAGE}) $VERSION Copyright (C) 2000, 2003 Free Software Foundation, Inc. Written by Kenneth Christiansen, 2000. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. _EOF_ exit; } ## Sub for printing usage information sub help { print <<_EOF_; Usage: ${PROGRAM} [OPTION]... [FILENAME] Generates a header file from an XML source file. It grabs all strings between <_translatable_node> and its end tag in XML files. Read manpage (man ${PROGRAM}) for more info. --type=TYPE Specify the file type of FILENAME. Currently supports: "gettext/glade", "gettext/ini", "gettext/keys" "gettext/rfc822deb", "gettext/schemas", "gettext/scheme", "gettext/xml" -l, --local Writes output into current working directory (conflicts with --update) --update Writes output into the same directory the source file reside (conflicts with --local) --srcdir Root of the source tree -v, --version Output version information and exit -h, --help Display this help and exit -q, --quiet Quiet mode Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE") or send email to . _EOF_ exit; } ## Sub for printing error messages sub error{ print STDERR "Try `${PROGRAM} --help' for more information.\n"; exit; } sub message { print "Generating C format header file for translation.\n" unless $QUIET_ARG; } sub extract { &determine_type; &convert; open OUT, ">$OUTFILE"; binmode (OUT) if $^O eq 'MSWin32'; &msg_write; close OUT; print "Wrote $OUTFILE\n" unless $QUIET_ARG; } sub convert { ## Reading the file { local (*IN); local $/; #slurp mode open (IN, "<$SRCDIR_ARG/$FILE") || die "can't open $SRCDIR_ARG/$FILE: $!"; $input = ; } &type_ini if $gettext_type eq "ini"; &type_keys if $gettext_type eq "keys"; &type_xml if $gettext_type eq "xml"; &type_glade if $gettext_type eq "glade"; &type_scheme if $gettext_type eq "scheme"; &type_schemas if $gettext_type eq "schemas"; &type_rfc822deb if $gettext_type eq "rfc822deb"; } sub entity_decode_minimal { local ($_) = @_; s/'/'/g; # ' s/"/"/g; # " s/&/&/g; return $_; } sub entity_decode { local ($_) = @_; s/'/'/g; # ' s/"/"/g; # " s/&/&/g; s/<//g; return $_; } sub escape_char { return '\"' if $_ eq '"'; return '\n' if $_ eq "\n"; return '\\' if $_ eq '\\'; return $_; } sub escape { my ($string) = @_; return join "", map &escape_char, split //, $string; } sub type_ini { ### For generic translatable desktop files ### while ($input =~ /^_.*=(.*)$/mg) { $messages{$1} = []; } } sub type_keys { ### For generic translatable mime/keys files ### while ($input =~ /^\s*_\w+=(.*)$/mg) { $messages{$1} = []; } } sub type_xml { ### For generic translatable XML files ### my $tree = readXml($input); parseTree(0, $tree); } sub print_var { my $var = shift; my $vartype = ref $var; if ($vartype =~ /ARRAY/) { my @arr = @{$var}; print "[ "; foreach my $el (@arr) { print_var($el); print ", "; } print "] "; } elsif ($vartype =~ /HASH/) { my %hash = %{$var}; print "{ "; foreach my $key (keys %hash) { print "$key => "; print_var($hash{$key}); print ", "; } print "} "; } else { print $var; } } # Same syntax as getAttributeString in intltool-merge.in.in, similar logic (look for ## differences comment) sub getAttributeString { my $sub = shift; my $do_translate = shift || 1; my $language = shift || ""; my $translate = shift; my $result = ""; foreach my $e (reverse(sort(keys %{ $sub }))) { my $key = $e; my $string = $sub->{$e}; my $quote = '"'; $string =~ s/^[\s]+//; $string =~ s/[\s]+$//; if ($string =~ /^'.*'$/) { $quote = "'"; } $string =~ s/^['"]//g; $string =~ s/['"]$//g; ## differences from intltool-merge.in.in if ($key =~ /^_/) { $comments{entity_decode($string)} = $XMLCOMMENT if $XMLCOMMENT; $messages{entity_decode($string)} = []; $$translate = 2; } ## differences end here from intltool-merge.in.in $result .= " $key=$quote$string$quote"; } return $result; } # Verbatim copy from intltool-merge.in.in sub getXMLstring { my $ref = shift; my $spacepreserve = shift || 0; my @list = @{ $ref }; my $result = ""; my $count = scalar(@list); my $attrs = $list[0]; my $index = 1; $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); while ($index < $count) { my $type = $list[$index]; my $content = $list[$index+1]; if (! $type ) { # We've got CDATA if ($content) { # lets strip the whitespace here, and *ONLY* here $content =~ s/\s+/ /gs if (!$spacepreserve); $result .= $content; } } elsif ( "$type" ne "1" ) { # We've got another element $result .= "<$type"; $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements if ($content) { my $subresult = getXMLstring($content, $spacepreserve); if ($subresult) { $result .= ">".$subresult . ""; } else { $result .= "/>"; } } else { $result .= "/>"; } } $index += 2; } return $result; } # Verbatim copy from intltool-merge.in.in, except for MULTIPLE_OUTPUT handling removed # Translate list of nodes if necessary sub translate_subnodes { my $fh = shift; my $content = shift; my $language = shift || ""; my $singlelang = shift || 0; my $spacepreserve = shift || 0; my @nodes = @{ $content }; my $count = scalar(@nodes); my $index = 0; while ($index < $count) { my $type = $nodes[$index]; my $rest = $nodes[$index+1]; traverse($fh, $type, $rest, $language, $spacepreserve); $index += 2; } } # Based on traverse() in intltool-merge.in.in sub traverse { my $fh = shift; # unused, to allow us to sync code between -merge and -extract my $nodename = shift; my $content = shift; my $language = shift || ""; my $spacepreserve = shift || 0; if ($nodename && "$nodename" eq "1") { $XMLCOMMENT = $content; } elsif ($nodename) { # element my @all = @{ $content }; my $attrs = shift @all; my $translate = 0; my $outattr = getAttributeString($attrs, 1, $language, \$translate); if ($nodename =~ /^_/) { $translate = 1; $nodename =~ s/^_//; } my $lookup = ''; $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); if ($translate) { $lookup = getXMLstring($content, $spacepreserve); if (!$spacepreserve) { $lookup =~ s/^\s+//s; $lookup =~ s/\s+$//s; } if ($lookup && $translate != 2) { $comments{$lookup} = $XMLCOMMENT if $XMLCOMMENT; $messages{$lookup} = []; } elsif ($translate == 2) { translate_subnodes($fh, \@all, $language, 1, $spacepreserve); } } else { $XMLCOMMENT = ""; my $count = scalar(@all); if ($count > 0) { my $index = 0; while ($index < $count) { my $type = $all[$index]; my $rest = $all[$index+1]; traverse($fh, $type, $rest, $language, $spacepreserve); $index += 2; } } } $XMLCOMMENT = ""; } } # Verbatim copy from intltool-merge.in.in, $fh for compatibility sub parseTree { my $fh = shift; my $ref = shift; my $language = shift || ""; my $name = shift @{ $ref }; my $cont = shift @{ $ref }; while (!$name || "$name" eq "1") { $name = shift @{ $ref }; $cont = shift @{ $ref }; } my $spacepreserve = 0; my $attrs = @{$cont}[0]; $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); traverse($fh, $name, $cont, $language, $spacepreserve); } # Verbatim copy from intltool-merge.in.in sub intltool_tree_comment { my $expat = shift; my $data = $expat->original_string(); my $clist = $expat->{Curlist}; my $pos = $#$clist; $data =~ s/^$//s; push @$clist, 1 => $data; } # Verbatim copy from intltool-merge.in.in sub intltool_tree_cdatastart { my $expat = shift; my $clist = $expat->{Curlist}; my $pos = $#$clist; push @$clist, 0 => $expat->original_string(); } # Verbatim copy from intltool-merge.in.in sub intltool_tree_cdataend { my $expat = shift; my $clist = $expat->{Curlist}; my $pos = $#$clist; $clist->[$pos] .= $expat->original_string(); } # Verbatim copy from intltool-merge.in.in sub intltool_tree_char { my $expat = shift; my $text = shift; my $clist = $expat->{Curlist}; my $pos = $#$clist; # Use original_string so that we retain escaped entities # in CDATA sections. # if ($pos > 0 and $clist->[$pos - 1] eq '0') { $clist->[$pos] .= $expat->original_string(); } else { push @$clist, 0 => $expat->original_string(); } } # Verbatim copy from intltool-merge.in.in sub intltool_tree_start { my $expat = shift; my $tag = shift; my @origlist = (); # Use original_string so that we retain escaped entities # in attribute values. We must convert the string to an # @origlist array to conform to the structure of the Tree # Style. # my @original_array = split /\x/, $expat->original_string(); my $source = $expat->original_string(); # Remove leading tag. # $source =~ s|^\s*<\s*(\S+)||s; # Grab attribute key/value pairs and push onto @origlist array. # while ($source) { if ($source =~ /^\s*([\w:-]+)\s*[=]\s*["]/) { $source =~ s|^\s*([\w:-]+)\s*[=]\s*["]([^"]*)["]||s; push @origlist, $1; push @origlist, '"' . $2 . '"'; } elsif ($source =~ /^\s*([\w:-]+)\s*[=]\s*[']/) { $source =~ s|^\s*([\w:-]+)\s*[=]\s*[']([^']*)[']||s; push @origlist, $1; push @origlist, "'" . $2 . "'"; } else { last; } } my $ol = [ { @origlist } ]; push @{ $expat->{Lists} }, $expat->{Curlist}; push @{ $expat->{Curlist} }, $tag => $ol; $expat->{Curlist} = $ol; } # Copied from intltool-merge.in.in and added comment handler. sub readXml { my $xmldoc = shift || return; my $ret = eval 'require XML::Parser'; if(!$ret) { die "You must have XML::Parser installed to run $0\n\n"; } my $xp = new XML::Parser(Style => 'Tree'); $xp->setHandlers(Char => \&intltool_tree_char); $xp->setHandlers(Start => \&intltool_tree_start); $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart); $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend); ## differences from intltool-merge.in.in $xp->setHandlers(Comment => \&intltool_tree_comment); ## differences end here from intltool-merge.in.in my $tree = $xp->parse($xmldoc); #print_var($tree); # Hello thereHowdydo # would be: # [foo, [{}, 1, "comment", head, [{id => "a"}, 0, "Hello ", em, [{}, 0, "there"]], bar, # [{}, 0, "Howdy", ref, [{}]], 0, "do" ] ] return $tree; } sub type_schemas { ### For schemas XML files ### # FIXME: We should handle escaped < (less than) while ($input =~ / \s* (\s*(?:\s*)?(.*?)\s*<\/default>\s*)? (\s*(?:\s*)?(.*?)\s*<\/short>\s*)? (\s*(?:\s*)?(.*?)\s*<\/long>\s*)? <\/locale> /sgx) { my @totranslate = ($3,$6,$9); my @eachcomment = ($2,$5,$8); foreach (@totranslate) { my $currentcomment = shift @eachcomment; next if !$_; s/\s+/ /g; $messages{entity_decode_minimal($_)} = []; $comments{entity_decode_minimal($_)} = $currentcomment if (defined($currentcomment)); } } } sub type_rfc822deb { ### For rfc822-style Debian configuration files ### my $lineno = 1; my $type = ''; while ($input =~ /\G(.*?)(^|\n)(_+)([^:]+):[ \t]*(.*?)(?=\n\S|$)/sg) { my ($pre, $newline, $underscore, $tag, $text) = ($1, $2, $3, $4, $5); while ($pre =~ m/\n/g) { $lineno ++; } $lineno += length($newline); my @str_list = rfc822deb_split(length($underscore), $text); for my $str (@str_list) { $strcount++; $messages{$str} = []; $loc{$str} = $lineno; $count{$str} = $strcount; my $usercomment = ''; while($pre =~ s/(^|\n)#([^\n]*)$//s) { $usercomment = "\n" . $2 . $usercomment; } $comments{$str} = $tag . $usercomment; } $lineno += ($text =~ s/\n//g); } } sub rfc822deb_split { # Debian defines a special way to deal with rfc822-style files: # when a value contain newlines, it consists of # 1. a short form (first line) # 2. a long description, all lines begin with a space, # and paragraphs are separated by a single dot on a line # This routine returns an array of all paragraphs, and reformat # them. # When first argument is 2, the string is a comma separated list of # values. my $type = shift; my $text = shift; $text =~ s/^[ \t]//mg; return (split(/, */, $text, 0)) if $type ne 1; return ($text) if $text !~ /\n/; $text =~ s/([^\n]*)\n//; my @list = ($1); my $str = ''; for my $line (split (/\n/, $text)) { chomp $line; if ($line =~ /^\.\s*$/) { # New paragraph $str =~ s/\s*$//; push(@list, $str); $str = ''; } elsif ($line =~ /^\s/) { # Line which must not be reformatted $str .= "\n" if length ($str) && $str !~ /\n$/; $line =~ s/\s+$//; $str .= $line."\n"; } else { # Continuation line, remove newline $str .= " " if length ($str) && $str !~ /\n$/; $str .= $line; } } $str =~ s/\s*$//; push(@list, $str) if length ($str); return @list; } sub type_glade { ### For translatable Glade XML files ### my $tags = "label|title|text|format|copyright|comments|preview_text|tooltip|message"; while ($input =~ /<($tags)>([^<]+)<\/($tags)>/sg) { # Glade sometimes uses tags that normally mark translatable things for # little bits of non-translatable content. We work around this by not # translating strings that only includes something like label4 or window1. $messages{entity_decode($2)} = [] unless $2 =~ /^(window|label|dialog)[0-9]+$/; } while ($input =~ /(..[^<]*)<\/items>/sg) { for my $item (split (/\n/, $1)) { $messages{entity_decode($item)} = []; } } ## handle new glade files while ($input =~ /<(property|atkproperty)\s+[^>]*translatable\s*=\s*"yes"(?:\s+[^>]*comments\s*=\s*"([^"]*)")?[^>]*>([^<]+)<\/\1>/sg) { $messages{entity_decode($3)} = [] unless $3 =~ /^(window|label)[0-9]+$/; if (defined($2) and !($3 =~ /^(window|label)[0-9]+$/)) { $comments{entity_decode($3)} = entity_decode($2) ; } } while ($input =~ /]*)"\s+description="([^>]+)"\/>/sg) { $messages{entity_decode_minimal($2)} = []; } } sub type_scheme { my ($line, $i, $state, $str, $trcomment, $char); for $line (split(/\n/, $input)) { $i = 0; $state = 0; # 0 - nothing, 1 - string, 2 - translatable string while ($i < length($line)) { if (substr($line,$i,1) eq "\"") { if ($state == 2) { $comments{$str} = $trcomment if ($trcomment); $messages{$str} = []; $str = ''; $state = 0; $trcomment = ""; } elsif ($state == 1) { $str = ''; $state = 0; $trcomment = ""; } else { $state = 1; $str = ''; if ($i>0 && substr($line,$i-1,1) eq '_') { $state = 2; } } } elsif (!$state) { if (substr($line,$i,1) eq ";") { $trcomment = substr($line,$i+1); $trcomment =~ s/^;*\s*//; $i = length($line); } elsif ($trcomment && substr($line,$i,1) !~ /\s|\(|\)|_/) { $trcomment = ""; } } else { if (substr($line,$i,1) eq "\\") { $char = substr($line,$i+1,1); if ($char ne "\"" && $char ne "\\") { $str = $str . "\\"; } $i++; } $str = $str . substr($line,$i,1); } $i++; } } } sub msg_write { my @msgids; if (%count) { @msgids = sort { $count{$a} <=> $count{$b} } keys %count; } else { @msgids = sort keys %messages; } for my $message (@msgids) { my $offsetlines = 1; $offsetlines++ if $message =~ /%/; if (defined ($comments{$message})) { while ($comments{$message} =~ m/\n/g) { $offsetlines++; } } print OUT "# ".($loc{$message} - $offsetlines). " \"$FILE\"\n" if defined $loc{$message}; print OUT "/* ".$comments{$message}." */\n" if defined $comments{$message}; print OUT "/* xgettext:no-c-format */\n" if $message =~ /%/; my @lines = split (/\n/, $message, -1); for (my $n = 0; $n < @lines; $n++) { if ($n == 0) { print OUT "char *s = N_(\""; } else { print OUT " \""; } print OUT escape($lines[$n]); if ($n < @lines - 1) { print OUT "\\n\"\n"; } else { print OUT "\");\n"; } } } } regexxer-0.9/intltool-merge.in0000644000175000017500000010462310566140564013442 00000000000000#!@INTLTOOL_PERL@ -w # -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*- # # The Intltool Message Merger # # Copyright (C) 2000, 2003 Free Software Foundation. # Copyright (C) 2000, 2001 Eazel, Inc # # Intltool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # version 2 published by the Free Software Foundation. # # Intltool 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 this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # # Authors: Maciej Stachowiak # Kenneth Christiansen # Darin Adler # # Proper XML UTF-8'ification written by Cyrille Chepelov # ## Release information my $PROGRAM = "intltool-merge"; my $PACKAGE = "intltool"; my $VERSION = "0.35.0"; ## Loaded modules use strict; use Getopt::Long; use Text::Wrap; use File::Basename; my $must_end_tag = -1; my $last_depth = -1; my $translation_depth = -1; my @tag_stack = (); my @entered_tag = (); my @translation_strings = (); my $leading_space = ""; ## Scalars used by the option stuff my $HELP_ARG = 0; my $VERSION_ARG = 0; my $BA_STYLE_ARG = 0; my $XML_STYLE_ARG = 0; my $KEYS_STYLE_ARG = 0; my $DESKTOP_STYLE_ARG = 0; my $SCHEMAS_STYLE_ARG = 0; my $RFC822DEB_STYLE_ARG = 0; my $QUIET_ARG = 0; my $PASS_THROUGH_ARG = 0; my $UTF8_ARG = 0; my $MULTIPLE_OUTPUT = 0; my $cache_file; ## Handle options GetOptions ( "help" => \$HELP_ARG, "version" => \$VERSION_ARG, "quiet|q" => \$QUIET_ARG, "oaf-style|o" => \$BA_STYLE_ARG, ## for compatibility "ba-style|b" => \$BA_STYLE_ARG, "xml-style|x" => \$XML_STYLE_ARG, "keys-style|k" => \$KEYS_STYLE_ARG, "desktop-style|d" => \$DESKTOP_STYLE_ARG, "schemas-style|s" => \$SCHEMAS_STYLE_ARG, "rfc822deb-style|r" => \$RFC822DEB_STYLE_ARG, "pass-through|p" => \$PASS_THROUGH_ARG, "utf8|u" => \$UTF8_ARG, "multiple-output|m" => \$MULTIPLE_OUTPUT, "cache|c=s" => \$cache_file ) or &error; my $PO_DIR; my $FILE; my $OUTFILE; my %po_files_by_lang = (); my %translations = (); my $iconv = $ENV{"ICONV"} || $ENV{"INTLTOOL_ICONV"} || "@INTLTOOL_ICONV@"; my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null'); # Use this instead of \w for XML files to handle more possible characters. my $w = "[-A-Za-z0-9._:]"; # XML quoted string contents my $q = "[^\\\"]*"; ## Check for options. if ($VERSION_ARG) { &print_version; } elsif ($HELP_ARG) { &print_help; } elsif ($BA_STYLE_ARG && @ARGV > 2) { &utf8_sanity_check; &preparation; &print_message; &ba_merge_translations; &finalize; } elsif ($XML_STYLE_ARG && @ARGV > 2) { &utf8_sanity_check; &preparation; &print_message; &xml_merge_output; &finalize; } elsif ($KEYS_STYLE_ARG && @ARGV > 2) { &utf8_sanity_check; &preparation; &print_message; &keys_merge_translations; &finalize; } elsif ($DESKTOP_STYLE_ARG && @ARGV > 2) { &utf8_sanity_check; &preparation; &print_message; &desktop_merge_translations; &finalize; } elsif ($SCHEMAS_STYLE_ARG && @ARGV > 2) { &utf8_sanity_check; &preparation; &print_message; &schemas_merge_translations; &finalize; } elsif ($RFC822DEB_STYLE_ARG && @ARGV > 2) { &preparation; &print_message; &rfc822deb_merge_translations; &finalize; } else { &print_help; } exit; ## Sub for printing release information sub print_version { print <<_EOF_; ${PROGRAM} (${PACKAGE}) ${VERSION} Written by Maciej Stachowiak, Darin Adler and Kenneth Christiansen. Copyright (C) 2000-2003 Free Software Foundation, Inc. Copyright (C) 2000-2001 Eazel, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. _EOF_ exit; } ## Sub for printing usage information sub print_help { print <<_EOF_; Usage: ${PROGRAM} [OPTION]... PO_DIRECTORY FILENAME OUTPUT_FILE Generates an output file that includes some localized attributes from an untranslated source file. Mandatory options: (exactly one must be specified) -b, --ba-style includes translations in the bonobo-activation style -d, --desktop-style includes translations in the desktop style -k, --keys-style includes translations in the keys style -s, --schemas-style includes translations in the schemas style -r, --rfc822deb-style includes translations in the RFC822 style -x, --xml-style includes translations in the standard xml style Other options: -u, --utf8 convert all strings to UTF-8 before merging (default for everything except RFC822 style) -p, --pass-through deprecated, does nothing and issues a warning -m, --multiple-output output one localized file per locale, instead of a single file containing all localized elements -c, --cache=FILE specify cache file name (usually \$top_builddir/po/.intltool-merge-cache) -q, --quiet suppress most messages --help display this help and exit --version output version information and exit Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE") or send email to . _EOF_ exit; } ## Sub for printing error messages sub print_error { print STDERR "Try `${PROGRAM} --help' for more information.\n"; exit; } sub print_message { print "Merging translations into $OUTFILE.\n" unless $QUIET_ARG; } sub preparation { $PO_DIR = $ARGV[0]; $FILE = $ARGV[1]; $OUTFILE = $ARGV[2]; &gather_po_files; &get_translation_database; } # General-purpose code for looking up translations in .po files sub po_file2lang { my ($tmp) = @_; $tmp =~ s/^.*\/(.*)\.po$/$1/; return $tmp; } sub gather_po_files { for my $po_file (glob "$PO_DIR/*.po") { $po_files_by_lang{po_file2lang($po_file)} = $po_file; } } sub get_local_charset { my ($encoding) = @_; my $alias_file = $ENV{"G_CHARSET_ALIAS"} || "@INTLTOOL_LIBDIR@/charset.alias"; # seek character encoding aliases in charset.alias (glib) if (open CHARSET_ALIAS, $alias_file) { while () { next if /^\#/; return $1 if (/^\s*([-._a-zA-Z0-9]+)\s+$encoding\b/i) } close CHARSET_ALIAS; } # if not found, return input string return $encoding; } sub get_po_encoding { my ($in_po_file) = @_; my $encoding = ""; open IN_PO_FILE, $in_po_file or die; while () { ## example: "Content-Type: text/plain; charset=ISO-8859-1\n" if (/Content-Type\:.*charset=([-a-zA-Z0-9]+)\\n/) { $encoding = $1; last; } } close IN_PO_FILE; if (!$encoding) { print STDERR "Warning: no encoding found in $in_po_file. Assuming ISO-8859-1\n" unless $QUIET_ARG; $encoding = "ISO-8859-1"; } system ("$iconv -f $encoding -t UTF-8 <$devnull 2>$devnull"); if ($?) { $encoding = get_local_charset($encoding); } return $encoding } sub utf8_sanity_check { print STDERR "Warning: option --pass-through has been removed.\n" if $PASS_THROUGH_ARG; $UTF8_ARG = 1; } sub get_translation_database { if ($cache_file) { &get_cached_translation_database; } else { &create_translation_database; } } sub get_newest_po_age { my $newest_age; foreach my $file (values %po_files_by_lang) { my $file_age = -M $file; $newest_age = $file_age if !$newest_age || $file_age < $newest_age; } $newest_age = 0 if !$newest_age; return $newest_age; } sub create_cache { print "Generating and caching the translation database\n" unless $QUIET_ARG; &create_translation_database; open CACHE, ">$cache_file" || die; print CACHE join "\x01", %translations; close CACHE; } sub load_cache { print "Found cached translation database\n" unless $QUIET_ARG; my $contents; open CACHE, "<$cache_file" || die; { local $/; $contents = ; } close CACHE; %translations = split "\x01", $contents; } sub get_cached_translation_database { my $cache_file_age = -M $cache_file; if (defined $cache_file_age) { if ($cache_file_age <= &get_newest_po_age) { &load_cache; return; } print "Found too-old cached translation database\n" unless $QUIET_ARG; } &create_cache; } sub create_translation_database { for my $lang (keys %po_files_by_lang) { my $po_file = $po_files_by_lang{$lang}; if ($UTF8_ARG) { my $encoding = get_po_encoding ($po_file); if (lc $encoding eq "utf-8") { open PO_FILE, "<$po_file"; } else { print "NOTICE: $po_file is not in UTF-8 but $encoding, converting...\n" unless $QUIET_ARG;; open PO_FILE, "$iconv -f $encoding -t UTF-8 $po_file|"; } } else { open PO_FILE, "<$po_file"; } my $nextfuzzy = 0; my $inmsgid = 0; my $inmsgstr = 0; my $msgid = ""; my $msgstr = ""; while () { $nextfuzzy = 1 if /^#, fuzzy/; if (/^msgid "((\\.|[^\\])*)"/ ) { $translations{$lang, $msgid} = $msgstr if $inmsgstr && $msgid && $msgstr; $msgid = ""; $msgstr = ""; if ($nextfuzzy) { $inmsgid = 0; } else { $msgid = unescape_po_string($1); $inmsgid = 1; } $inmsgstr = 0; $nextfuzzy = 0; } if (/^msgstr "((\\.|[^\\])*)"/) { $msgstr = unescape_po_string($1); $inmsgstr = 1; $inmsgid = 0; } if (/^"((\\.|[^\\])*)"/) { $msgid .= unescape_po_string($1) if $inmsgid; $msgstr .= unescape_po_string($1) if $inmsgstr; } } $translations{$lang, $msgid} = $msgstr if $inmsgstr && $msgid && $msgstr; } } sub finalize { } sub unescape_one_sequence { my ($sequence) = @_; return "\\" if $sequence eq "\\\\"; return "\"" if $sequence eq "\\\""; return "\n" if $sequence eq "\\n"; return "\r" if $sequence eq "\\r"; return "\t" if $sequence eq "\\t"; return "\b" if $sequence eq "\\b"; return "\f" if $sequence eq "\\f"; return "\a" if $sequence eq "\\a"; return chr(11) if $sequence eq "\\v"; # vertical tab, see ascii(7) return chr(hex($1)) if ($sequence =~ /\\x([0-9a-fA-F]{2})/); return chr(oct($1)) if ($sequence =~ /\\([0-7]{3})/); # FIXME: Is \0 supported as well? Kenneth and Rodney don't want it, see bug #48489 return $sequence; } sub unescape_po_string { my ($string) = @_; $string =~ s/(\\x[0-9a-fA-F]{2}|\\[0-7]{3}|\\.)/unescape_one_sequence($1)/eg; return $string; } ## NOTE: deal with < - < but not > - > because it seems its ok to have ## > in the entity. For further info please look at #84738. sub entity_decode { local ($_) = @_; s/'/'/g; # ' s/"/"/g; # " s/&/&/g; s/</; close INPUT; } open OUTPUT, ">$OUTFILE" or die "can't open $OUTFILE: $!"; # Binmode so that selftest works ok if using a native Win32 Perl... binmode (OUTPUT) if $^O eq 'MSWin32'; while ($source =~ s|^(.*?)([ \t]*<\s*$w+\s+($w+\s*=\s*"$q"\s*)+/?>)([ \t]*\n)?||s) { print OUTPUT $1; my $node = $2 . "\n"; my @strings = (); $_ = $node; while (s/(\s)_($w+\s*=\s*"($q)")/$1$2/s) { push @strings, entity_decode($3); } print OUTPUT; my %langs; for my $string (@strings) { for my $lang (keys %po_files_by_lang) { $langs{$lang} = 1 if $translations{$lang, $string}; } } for my $lang (sort keys %langs) { $_ = $node; s/(\sname\s*=\s*)"($q)"/$1"$2-$lang"/s; s/(\s)_($w+\s*=\s*")($q)"/$1 . $2 . entity_encoded_translation($lang, $3) . '"'/seg; print OUTPUT; } } print OUTPUT $source; close OUTPUT; } ## XML (non-bonobo-activation) merge code # Process tag attributes # Only parameter is a HASH containing attributes -> values mapping sub getAttributeString { my $sub = shift; my $do_translate = shift || 0; my $language = shift || ""; my $result = ""; my $translate = shift; foreach my $e (reverse(sort(keys %{ $sub }))) { my $key = $e; my $string = $sub->{$e}; my $quote = '"'; $string =~ s/^[\s]+//; $string =~ s/[\s]+$//; if ($string =~ /^'.*'$/) { $quote = "'"; } $string =~ s/^['"]//g; $string =~ s/['"]$//g; if ($do_translate && $key =~ /^_/) { $key =~ s|^_||g; if ($language) { # Handle translation my $decode_string = entity_decode($string); my $translation = $translations{$language, $decode_string}; if ($translation) { $translation = entity_encode($translation); $string = $translation; } $$translate = 2; } else { $$translate = 2 if ($translate && (!$$translate)); # watch not to "overwrite" $translate } } $result .= " $key=$quote$string$quote"; } return $result; } # Returns a translatable string from XML node, it works on contents of every node in XML::Parser tree sub getXMLstring { my $ref = shift; my $spacepreserve = shift || 0; my @list = @{ $ref }; my $result = ""; my $count = scalar(@list); my $attrs = $list[0]; my $index = 1; $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); while ($index < $count) { my $type = $list[$index]; my $content = $list[$index+1]; if (! $type ) { # We've got CDATA if ($content) { # lets strip the whitespace here, and *ONLY* here $content =~ s/\s+/ /gs if (!$spacepreserve); $result .= $content; } } elsif ( "$type" ne "1" ) { # We've got another element $result .= "<$type"; $result .= getAttributeString(@{$content}[0], 0); # no nested translatable elements if ($content) { my $subresult = getXMLstring($content, $spacepreserve); if ($subresult) { $result .= ">".$subresult . ""; } else { $result .= "/>"; } } else { $result .= "/>"; } } $index += 2; } return $result; } # Translate list of nodes if necessary sub translate_subnodes { my $fh = shift; my $content = shift; my $language = shift || ""; my $singlelang = shift || 0; my $spacepreserve = shift || 0; my @nodes = @{ $content }; my $count = scalar(@nodes); my $index = 0; while ($index < $count) { my $type = $nodes[$index]; my $rest = $nodes[$index+1]; if ($singlelang) { my $oldMO = $MULTIPLE_OUTPUT; $MULTIPLE_OUTPUT = 1; traverse($fh, $type, $rest, $language, $spacepreserve); $MULTIPLE_OUTPUT = $oldMO; } else { traverse($fh, $type, $rest, $language, $spacepreserve); } $index += 2; } } sub isWellFormedXmlFragment { my $ret = eval 'require XML::Parser'; if(!$ret) { die "You must have XML::Parser installed to run $0\n\n"; } my $fragment = shift; return 0 if (!$fragment); $fragment = "$fragment"; my $xp = new XML::Parser(Style => 'Tree'); my $tree = 0; eval { $tree = $xp->parse($fragment); }; return $tree; } sub traverse { my $fh = shift; my $nodename = shift; my $content = shift; my $language = shift || ""; my $spacepreserve = shift || 0; if (!$nodename) { if ($content =~ /^[\s]*$/) { $leading_space .= $content; } print $fh $content; } else { # element my @all = @{ $content }; my $attrs = shift @all; my $translate = 0; my $outattr = getAttributeString($attrs, 1, $language, \$translate); if ($nodename =~ /^_/) { $translate = 1; $nodename =~ s/^_//; } my $lookup = ''; $spacepreserve = 0 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?default["']?$/)); $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); print $fh "<$nodename", $outattr; if ($translate) { $lookup = getXMLstring($content, $spacepreserve); if (!$spacepreserve) { $lookup =~ s/^\s+//s; $lookup =~ s/\s+$//s; } if ($lookup || $translate == 2) { my $translation = $translations{$language, $lookup} if isWellFormedXmlFragment($translations{$language, $lookup}); if ($MULTIPLE_OUTPUT && ($translation || $translate == 2)) { $translation = $lookup if (!$translation); print $fh " xml:lang=\"", $language, "\"" if $language; print $fh ">"; if ($translate == 2) { translate_subnodes($fh, \@all, $language, 1, $spacepreserve); } else { print $fh $translation; } print $fh ""; return; # this means there will be no same translation with xml:lang="$language"... # if we want them both, just remove this "return" } else { print $fh ">"; if ($translate == 2) { translate_subnodes($fh, \@all, $language, 1, $spacepreserve); } else { print $fh $lookup; } print $fh ""; } } else { print $fh "/>"; } for my $lang (sort keys %po_files_by_lang) { if ($MULTIPLE_OUTPUT && $lang ne "$language") { next; } if ($lang) { # Handle translation # my $translate = 0; my $localattrs = getAttributeString($attrs, 1, $lang, \$translate); my $translation = $translations{$lang, $lookup} if isWellFormedXmlFragment($translations{$lang, $lookup}); if ($translate && !$translation) { $translation = $lookup; } if ($translation || $translate) { print $fh "\n"; $leading_space =~ s/.*\n//g; print $fh $leading_space; print $fh "<", $nodename, " xml:lang=\"", $lang, "\"", $localattrs, ">"; if ($translate == 2) { translate_subnodes($fh, \@all, $lang, 1, $spacepreserve); } else { print $fh $translation; } print $fh ""; } } } } else { my $count = scalar(@all); if ($count > 0) { print $fh ">"; my $index = 0; while ($index < $count) { my $type = $all[$index]; my $rest = $all[$index+1]; traverse($fh, $type, $rest, $language, $spacepreserve); $index += 2; } print $fh ""; } else { print $fh "/>"; } } } } sub intltool_tree_comment { my $expat = shift; my $data = shift; my $clist = $expat->{Curlist}; my $pos = $#$clist; push @$clist, 1 => $data; } sub intltool_tree_cdatastart { my $expat = shift; my $clist = $expat->{Curlist}; my $pos = $#$clist; push @$clist, 0 => $expat->original_string(); } sub intltool_tree_cdataend { my $expat = shift; my $clist = $expat->{Curlist}; my $pos = $#$clist; $clist->[$pos] .= $expat->original_string(); } sub intltool_tree_char { my $expat = shift; my $text = shift; my $clist = $expat->{Curlist}; my $pos = $#$clist; # Use original_string so that we retain escaped entities # in CDATA sections. # if ($pos > 0 and $clist->[$pos - 1] eq '0') { $clist->[$pos] .= $expat->original_string(); } else { push @$clist, 0 => $expat->original_string(); } } sub intltool_tree_start { my $expat = shift; my $tag = shift; my @origlist = (); # Use original_string so that we retain escaped entities # in attribute values. We must convert the string to an # @origlist array to conform to the structure of the Tree # Style. # my @original_array = split /\x/, $expat->original_string(); my $source = $expat->original_string(); # Remove leading tag. # $source =~ s|^\s*<\s*(\S+)||s; # Grab attribute key/value pairs and push onto @origlist array. # while ($source) { if ($source =~ /^\s*([\w:-]+)\s*[=]\s*["]/) { $source =~ s|^\s*([\w:-]+)\s*[=]\s*["]([^"]*)["]||s; push @origlist, $1; push @origlist, '"' . $2 . '"'; } elsif ($source =~ /^\s*([\w:-]+)\s*[=]\s*[']/) { $source =~ s|^\s*([\w:-]+)\s*[=]\s*[']([^']*)[']||s; push @origlist, $1; push @origlist, "'" . $2 . "'"; } else { last; } } my $ol = [ { @origlist } ]; push @{ $expat->{Lists} }, $expat->{Curlist}; push @{ $expat->{Curlist} }, $tag => $ol; $expat->{Curlist} = $ol; } sub readXml { my $filename = shift || return; if(!-f $filename) { die "ERROR Cannot find filename: $filename\n"; } my $ret = eval 'require XML::Parser'; if(!$ret) { die "You must have XML::Parser installed to run $0\n\n"; } my $xp = new XML::Parser(Style => 'Tree'); $xp->setHandlers(Char => \&intltool_tree_char); $xp->setHandlers(Start => \&intltool_tree_start); $xp->setHandlers(CdataStart => \&intltool_tree_cdatastart); $xp->setHandlers(CdataEnd => \&intltool_tree_cdataend); my $tree = $xp->parsefile($filename); # Hello thereHowdydo # would be: # [foo, [{}, head, [{id => "a"}, 0, "Hello ", em, [{}, 0, "there"]], bar, [{}, # 0, "Howdy", ref, [{}]], 0, "do" ] ] return $tree; } sub print_header { my $infile = shift; my $fh = shift; my $source; if(!-f $infile) { die "ERROR Cannot find filename: $infile\n"; } print $fh qq{\n}; { local $/; open DOCINPUT, "<${FILE}" or die; $source = ; close DOCINPUT; } if ($source =~ /()/s) { print $fh "$1\n"; } elsif ($source =~ /(]*>)/s) { print $fh "$1\n"; } } sub parseTree { my $fh = shift; my $ref = shift; my $language = shift || ""; my $name = shift @{ $ref }; my $cont = shift @{ $ref }; while (!$name || "$name" eq "1") { $name = shift @{ $ref }; $cont = shift @{ $ref }; } my $spacepreserve = 0; my $attrs = @{$cont}[0]; $spacepreserve = 1 if ((exists $attrs->{"xml:space"}) && ($attrs->{"xml:space"} =~ /^["']?preserve["']?$/)); traverse($fh, $name, $cont, $language, $spacepreserve); } sub xml_merge_output { my $source; if ($MULTIPLE_OUTPUT) { for my $lang (sort keys %po_files_by_lang) { if ( ! -e $lang ) { mkdir $lang or die "Cannot create subdirectory $lang: $!\n"; } open OUTPUT, ">$lang/$OUTFILE" or die "Cannot open $lang/$OUTFILE: $!\n"; binmode (OUTPUT) if $^O eq 'MSWin32'; my $tree = readXml($FILE); print_header($FILE, \*OUTPUT); parseTree(\*OUTPUT, $tree, $lang); close OUTPUT; print "CREATED $lang/$OUTFILE\n" unless $QUIET_ARG; } } open OUTPUT, ">$OUTFILE" or die "Cannot open $OUTFILE: $!\n"; binmode (OUTPUT) if $^O eq 'MSWin32'; my $tree = readXml($FILE); print_header($FILE, \*OUTPUT); parseTree(\*OUTPUT, $tree); close OUTPUT; print "CREATED $OUTFILE\n" unless $QUIET_ARG; } sub keys_merge_translations { open INPUT, "<${FILE}" or die; open OUTPUT, ">${OUTFILE}" or die; binmode (OUTPUT) if $^O eq 'MSWin32'; while () { if (s/^(\s*)_(\w+=(.*))/$1$2/) { my $string = $3; print OUTPUT; my $non_translated_line = $_; for my $lang (sort keys %po_files_by_lang) { my $translation = $translations{$lang, $string}; next if !$translation; $_ = $non_translated_line; s/(\w+)=.*/[$lang]$1=$translation/; print OUTPUT; } } else { print OUTPUT; } } close OUTPUT; close INPUT; } sub desktop_merge_translations { open INPUT, "<${FILE}" or die; open OUTPUT, ">${OUTFILE}" or die; binmode (OUTPUT) if $^O eq 'MSWin32'; while () { if (s/^(\s*)_(\w+=(.*))/$1$2/) { my $string = $3; print OUTPUT; my $non_translated_line = $_; for my $lang (sort keys %po_files_by_lang) { my $translation = $translations{$lang, $string}; next if !$translation; $_ = $non_translated_line; s/(\w+)=.*/${1}[$lang]=$translation/; print OUTPUT; } } else { print OUTPUT; } } close OUTPUT; close INPUT; } sub schemas_merge_translations { my $source; { local $/; # slurp mode open INPUT, "<$FILE" or die "can't open $FILE: $!"; $source = ; close INPUT; } open OUTPUT, ">$OUTFILE" or die; binmode (OUTPUT) if $^O eq 'MSWin32'; # FIXME: support attribute translations # Empty nodes never need translation, so unmark all of them. # For example, <_foo/> is just replaced by . $source =~ s|<\s*_($w+)\s*/>|<$1/>|g; while ($source =~ s/ (.*?) (\s+)((\s*) (\s*(?:\s*)?(.*?)\s*<\/default>)?(\s*) (\s*(?:\s*)?(.*?)\s*<\/short>)?(\s*) (\s*(?:\s*)?(.*?)\s*<\/long>)?(\s*) <\/locale>) //sx) { print OUTPUT $1; my $locale_start_spaces = $2 ? $2 : ''; my $default_spaces = $4 ? $4 : ''; my $short_spaces = $7 ? $7 : ''; my $long_spaces = $10 ? $10 : ''; my $locale_end_spaces = $13 ? $13 : ''; my $c_default_block = $3 ? $3 : ''; my $default_string = $6 ? $6 : ''; my $short_string = $9 ? $9 : ''; my $long_string = $12 ? $12 : ''; print OUTPUT "$locale_start_spaces$c_default_block"; $default_string =~ s/\s+/ /g; $default_string = entity_decode($default_string); $short_string =~ s/\s+/ /g; $short_string = entity_decode($short_string); $long_string =~ s/\s+/ /g; $long_string = entity_decode($long_string); for my $lang (sort keys %po_files_by_lang) { my $default_translation = $translations{$lang, $default_string}; my $short_translation = $translations{$lang, $short_string}; my $long_translation = $translations{$lang, $long_string}; next if (!$default_translation && !$short_translation && !$long_translation); print OUTPUT "\n$locale_start_spaces"; print OUTPUT "$default_spaces"; if ($default_translation) { $default_translation = entity_encode($default_translation); print OUTPUT "$default_translation"; } print OUTPUT "$short_spaces"; if ($short_translation) { $short_translation = entity_encode($short_translation); print OUTPUT "$short_translation"; } print OUTPUT "$long_spaces"; if ($long_translation) { $long_translation = entity_encode($long_translation); print OUTPUT "$long_translation"; } print OUTPUT "$locale_end_spaces"; } } print OUTPUT $source; close OUTPUT; } sub rfc822deb_merge_translations { my %encodings = (); for my $lang (keys %po_files_by_lang) { $encodings{$lang} = ($UTF8_ARG ? 'UTF-8' : get_po_encoding($po_files_by_lang{$lang})); } my $source; $Text::Wrap::huge = 'overflow'; $Text::Wrap::break = qr/\n|\s(?=\S)/; { local $/; # slurp mode open INPUT, "<$FILE" or die "can't open $FILE: $!"; $source = ; close INPUT; } open OUTPUT, ">${OUTFILE}" or die; binmode (OUTPUT) if $^O eq 'MSWin32'; while ($source =~ /(^|\n+)(_*)([^:\s]+)(:[ \t]*)(.*?)(?=\n[\S\n]|$)/sg) { my $sep = $1; my $non_translated_line = $3.$4; my $string = $5; my $underscore = length($2); next if $underscore eq 0 && $non_translated_line =~ /^#/; # Remove [] dummy strings my $stripped = $string; $stripped =~ s/\[\s[^\[\]]*\],/,/g if $underscore eq 2; $stripped =~ s/\[\s[^\[\]]*\]$//; $non_translated_line .= $stripped; print OUTPUT $sep.$non_translated_line; if ($underscore) { my @str_list = rfc822deb_split($underscore, $string); for my $lang (sort keys %po_files_by_lang) { my $is_translated = 1; my $str_translated = ''; my $first = 1; for my $str (@str_list) { my $translation = $translations{$lang, $str}; if (!$translation) { $is_translated = 0; last; } # $translation may also contain [] dummy # strings, mostly to indicate an empty string $translation =~ s/\[\s[^\[\]]*\]$//; if ($first) { if ($underscore eq 2) { $str_translated .= $translation; } else { $str_translated .= Text::Tabs::expand($translation) . "\n"; } } else { if ($underscore eq 2) { $str_translated .= ', ' . $translation; } else { $str_translated .= Text::Tabs::expand( Text::Wrap::wrap(' ', ' ', $translation)) . "\n .\n"; } } $first = 0; # To fix some problems with Text::Wrap::wrap $str_translated =~ s/(\n )+\n/\n .\n/g; } next unless $is_translated; $str_translated =~ s/\n \.\n$//; $str_translated =~ s/\s+$//; $_ = $non_translated_line; s/^(\w+):\s*.*/$sep${1}-$lang.$encodings{$lang}: $str_translated/s; print OUTPUT; } } } print OUTPUT "\n"; close OUTPUT; close INPUT; } sub rfc822deb_split { # Debian defines a special way to deal with rfc822-style files: # when a value contain newlines, it consists of # 1. a short form (first line) # 2. a long description, all lines begin with a space, # and paragraphs are separated by a single dot on a line # This routine returns an array of all paragraphs, and reformat # them. # When first argument is 2, the string is a comma separated list of # values. my $type = shift; my $text = shift; $text =~ s/^[ \t]//mg; return (split(/, */, $text, 0)) if $type ne 1; return ($text) if $text !~ /\n/; $text =~ s/([^\n]*)\n//; my @list = ($1); my $str = ''; for my $line (split (/\n/, $text)) { chomp $line; if ($line =~ /^\.\s*$/) { # New paragraph $str =~ s/\s*$//; push(@list, $str); $str = ''; } elsif ($line =~ /^\s/) { # Line which must not be reformatted $str .= "\n" if length ($str) && $str !~ /\n$/; $line =~ s/\s+$//; $str .= $line."\n"; } else { # Continuation line, remove newline $str .= " " if length ($str) && $str !~ /\n$/; $str .= $line; } } $str =~ s/\s*$//; push(@list, $str) if length ($str); return @list; } regexxer-0.9/intltool-update.in0000644000175000017500000006663510566140564013637 00000000000000#!@INTLTOOL_PERL@ -w # -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 4 -*- # # The Intltool Message Updater # # Copyright (C) 2000-2003 Free Software Foundation. # # Intltool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # version 2 published by the Free Software Foundation. # # Intltool 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 this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # # Authors: Kenneth Christiansen # Maciej Stachowiak # Darin Adler ## Release information my $PROGRAM = "intltool-update"; my $VERSION = "0.35.0"; my $PACKAGE = "intltool"; ## Loaded modules use strict; use Getopt::Long; use Cwd; use File::Copy; use File::Find; ## Scalars used by the option stuff my $HELP_ARG = 0; my $VERSION_ARG = 0; my $DIST_ARG = 0; my $POT_ARG = 0; my $HEADERS_ARG = 0; my $MAINTAIN_ARG = 0; my $REPORT_ARG = 0; my $VERBOSE = 0; my $GETTEXT_PACKAGE = ""; my $OUTPUT_FILE = ""; my @languages; my %varhash = (); my %po_files_by_lang = (); # Regular expressions to categorize file types. # FIXME: Please check if the following is correct my $xml_support = "xml(?:\\.in)*|". # http://www.w3.org/XML/ (Note: .in is not required) "ui|". # Bonobo specific - User Interface desc. files "lang|". # ? "glade2?(?:\\.in)*|". # Glade specific - User Interface desc. files (Note: .in is not required) "scm(?:\\.in)*|". # ? (Note: .in is not required) "oaf(?:\\.in)+|". # DEPRECATED: Replaces by Bonobo .server files "etspec|". # ? "server(?:\\.in)+|". # Bonobo specific "sheet(?:\\.in)+|". # ? "schemas(?:\\.in)+|". # GConf specific "pong(?:\\.in)+|". # DEPRECATED: PONG is not used [by GNOME] any longer. "kbd(?:\\.in)+"; # GOK specific. my $ini_support = "icon(?:\\.in)+|". # http://www.freedesktop.org/Standards/icon-theme-spec "desktop(?:\\.in)+|". # http://www.freedesktop.org/Standards/menu-spec "caves(?:\\.in)+|". # GNOME Games specific "directory(?:\\.in)+|". # http://www.freedesktop.org/Standards/menu-spec "soundlist(?:\\.in)+|". # GNOME specific "keys(?:\\.in)+|". # GNOME Mime database specific "theme(?:\\.in)+|". # http://www.freedesktop.org/Standards/icon-theme-spec "service(?:\\.in)+"; # DBus specific my $buildin_gettext_support = "c|y|cs|cc|cpp|c\\+\\+|h|hh|gob|py"; ## Always flush buffer when printing $| = 1; ## Sometimes the source tree will be rooted somewhere else. my $SRCDIR = "."; my $POTFILES_in; $SRCDIR = $ENV{"srcdir"} if $ENV{"srcdir"}; $POTFILES_in = "<$SRCDIR/POTFILES.in"; my $devnull = ($^O eq 'MSWin32' ? 'NUL:' : '/dev/null'); ## Handle options GetOptions ( "help" => \$HELP_ARG, "version" => \$VERSION_ARG, "dist|d" => \$DIST_ARG, "pot|p" => \$POT_ARG, "headers|s" => \$HEADERS_ARG, "maintain|m" => \$MAINTAIN_ARG, "report|r" => \$REPORT_ARG, "verbose|x" => \$VERBOSE, "gettext-package|g=s" => \$GETTEXT_PACKAGE, "output-file|o=s" => \$OUTPUT_FILE, ) or &Console_WriteError_InvalidOption; &Console_Write_IntltoolHelp if $HELP_ARG; &Console_Write_IntltoolVersion if $VERSION_ARG; my $arg_count = ($DIST_ARG > 0) + ($POT_ARG > 0) + ($HEADERS_ARG > 0) + ($MAINTAIN_ARG > 0) + ($REPORT_ARG > 0); &Console_Write_IntltoolHelp if $arg_count > 1; # --version and --help don't require a module name my $MODULE = $GETTEXT_PACKAGE || &FindPackageName || "unknown"; if ($POT_ARG) { &GenerateHeaders; &GeneratePOTemplate; } elsif ($HEADERS_ARG) { &GenerateHeaders; } elsif ($MAINTAIN_ARG) { &FindLeftoutFiles; } elsif ($REPORT_ARG) { &GenerateHeaders; &GeneratePOTemplate; &Console_Write_CoverageReport; } elsif ((defined $ARGV[0]) && $ARGV[0] =~ /^[a-z]/) { my $lang = $ARGV[0]; ## Report error if the language file supplied ## to the command line is non-existent &Console_WriteError_NotExisting("$SRCDIR/$lang.po") if ! -s "$SRCDIR/$lang.po"; if (!$DIST_ARG) { print "Working, please wait..." if $VERBOSE; &GenerateHeaders; &GeneratePOTemplate; } &POFile_Update ($lang, $OUTPUT_FILE); &Console_Write_TranslationStatus ($lang, $OUTPUT_FILE); } else { &Console_Write_IntltoolHelp; } exit; ######### sub Console_Write_IntltoolVersion { print <<_EOF_; ${PROGRAM} (${PACKAGE}) $VERSION Written by Kenneth Christiansen, Maciej Stachowiak, and Darin Adler. Copyright (C) 2000-2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. _EOF_ exit; } sub Console_Write_IntltoolHelp { print <<_EOF_; Usage: ${PROGRAM} [OPTION]... LANGCODE Updates PO template files and merge them with the translations. Mode of operation (only one is allowed): -p, --pot generate the PO template only -s, --headers generate the header files in POTFILES.in -m, --maintain search for left out files from POTFILES.in -r, --report display a status report for the module -d, --dist merge LANGCODE.po with existing PO template Extra options: -g, --gettext-package=NAME override PO template name, useful with --pot -o, --output-file=FILE write merged translation to FILE -x, --verbose display lots of feedback --help display this help and exit --version output version information and exit Examples of use: ${PROGRAM} --pot just create a new PO template ${PROGRAM} xy create new PO template and merge xy.po with it Report bugs to http://bugzilla.gnome.org/ (product name "$PACKAGE") or send email to . _EOF_ exit; } sub echo_n { my $str = shift; my $ret = `echo "$str"`; $ret =~ s/\n$//; # do we need the "s" flag? return $ret; } sub POFile_DetermineType ($) { my $type = $_; my $gettext_type; my $xml_regex = "(?:" . $xml_support . ")"; my $ini_regex = "(?:" . $ini_support . ")"; my $buildin_regex = "(?:" . $buildin_gettext_support . ")"; if ($type =~ /\[type: gettext\/([^\]].*)]/) { $gettext_type=$1; } elsif ($type =~ /schemas(\.in)+$/) { $gettext_type="schemas"; } elsif ($type =~ /glade2?(\.in)*$/) { $gettext_type="glade"; } elsif ($type =~ /scm(\.in)*$/) { $gettext_type="scheme"; } elsif ($type =~ /keys(\.in)+$/) { $gettext_type="keys"; } # bucket types elsif ($type =~ /$xml_regex$/) { $gettext_type="xml"; } elsif ($type =~ /$ini_regex$/) { $gettext_type="ini"; } elsif ($type =~ /$buildin_regex$/) { $gettext_type="buildin"; } else { $gettext_type="unknown"; } return "gettext\/$gettext_type"; } sub TextFile_DetermineEncoding ($) { my $gettext_code="ASCII"; # All files are ASCII by default my $filetype=`file $_ | cut -d ' ' -f 2`; if ($? eq "0") { if ($filetype =~ /^(ISO|UTF)/) { chomp ($gettext_code = $filetype); } elsif ($filetype =~ /^XML/) { $gettext_code="UTF-8"; # We asume that .glade and other .xml files are UTF-8 } } return $gettext_code; } sub isNotValidMissing { my ($file) = @_; return if $file =~ /^\{arch\}\/.*$/; return if $file =~ /^$varhash{"PACKAGE"}-$varhash{"VERSION"}\/.*$/; } sub FindLeftoutFiles { my (@buf_i18n_plain, @buf_i18n_xml, @buf_i18n_xml_unmarked, @buf_i18n_ini, @buf_potfiles, @buf_potfiles_ignore, @buf_allfiles, @buf_allfiles_sorted, @buf_potfiles_sorted ); ## Search and find all translatable files find sub { push @buf_i18n_plain, "$File::Find::name" if /\.($buildin_gettext_support)$/; push @buf_i18n_xml, "$File::Find::name" if /\.($xml_support)$/; push @buf_i18n_ini, "$File::Find::name" if /\.($ini_support)$/; push @buf_i18n_xml_unmarked, "$File::Find::name" if /\.(schemas(\.in)+)$/; }, ".."; open POTFILES, $POTFILES_in or die "$PROGRAM: there's no POTFILES.in!\n"; @buf_potfiles = grep !/^(#|\s*$)/, ; close POTFILES; foreach (@buf_potfiles) { s/^\[.*]\s*//; } print "Searching for missing translatable files...\n" if $VERBOSE; ## Check if we should ignore some found files, when ## comparing with POTFILES.in foreach my $ignore ("POTFILES.skip", "POTFILES.ignore") { (-s $ignore) or next; if ("$ignore" eq "POTFILES.ignore") { print "The usage of POTFILES.ignore is deprecated. Please consider moving the\n". "content of this file to POTFILES.skip.\n"; } print "Found $ignore: Ignoring files...\n" if $VERBOSE; open FILE, "<$ignore" or die "ERROR: Failed to open $ignore!\n"; while () { push @buf_potfiles_ignore, $_ unless /^(#|\s*$)/; } close FILE; @buf_potfiles = (@buf_potfiles_ignore, @buf_potfiles); } foreach my $file (@buf_i18n_plain) { my $in_comment = 0; my $in_macro = 0; open FILE, "<$file"; while () { # Handle continued multi-line comment. if ($in_comment) { next unless s-.*\*/--; $in_comment = 0; } # Handle continued macro. if ($in_macro) { $in_macro = 0 unless /\\$/; next; } # Handle start of macro (or any preprocessor directive). if (/^\s*\#/) { $in_macro = 1 if /^([^\\]|\\.)*\\$/; next; } # Handle comments and quoted text. while (m-(/\*|//|\'|\")-) # \' and \" keep emacs perl mode happy { my $match = $1; if ($match eq "/*") { if (!s-/\*.*?\*/--) { s-/\*.*--; $in_comment = 1; } } elsif ($match eq "//") { s-//.*--; } else # ' or " { if (!s-$match([^\\]|\\.)*?$match-QUOTEDTEXT-) { warn "mismatched quotes at line $. in $file\n"; s-$match.*--; } } } if (/\.GetString ?\(QUOTEDTEXT/) { if (defined isNotValidMissing (unpack("x3 A*", $file))) { ## Remove the first 3 chars and add newline push @buf_allfiles, unpack("x3 A*", $file) . "\n"; } last; } if (/_\(QUOTEDTEXT/) { if (defined isNotValidMissing (unpack("x3 A*", $file))) { ## Remove the first 3 chars and add newline push @buf_allfiles, unpack("x3 A*", $file) . "\n"; } last; } } close FILE; } foreach my $file (@buf_i18n_xml) { open FILE, "<$file"; while () { # FIXME: share the pattern matching code with intltool-extract if (/\s_[-A-Za-z0-9._:]+\s*=\s*\"([^"]+)\"/ || /<_[^>]+>/ || /translatable=\"yes\"/) { if (defined isNotValidMissing (unpack("x3 A*", $file))) { push @buf_allfiles, unpack("x3 A*", $file) . "\n"; } last; } } close FILE; } foreach my $file (@buf_i18n_ini) { open FILE, "<$file"; while () { if (/_(.*)=/) { if (defined isNotValidMissing (unpack("x3 A*", $file))) { push @buf_allfiles, unpack("x3 A*", $file) . "\n"; } last; } } close FILE; } foreach my $file (@buf_i18n_xml_unmarked) { if (defined isNotValidMissing (unpack("x3 A*", $file))) { push @buf_allfiles, unpack("x3 A*", $file) . "\n"; } } @buf_allfiles_sorted = sort (@buf_allfiles); @buf_potfiles_sorted = sort (@buf_potfiles); my %in2; foreach (@buf_potfiles_sorted) { $in2{$_} = 1; } my @result; foreach (@buf_allfiles_sorted) { if (!exists($in2{$_})) { push @result, $_ } } my @buf_potfiles_notexist; foreach (@buf_potfiles_sorted) { chomp (my $dummy = $_); if ("$dummy" ne "" and ! -f "../$dummy") { push @buf_potfiles_notexist, $_; } } ## Save file with information about the files missing ## if any, and give information about this procedure. if (@result + @buf_potfiles_notexist > 0) { if (@result) { print "\n" if $VERBOSE; unlink "missing"; open OUT, ">missing"; print OUT @result; close OUT; warn "\e[1mThe following files contain translations and are currently not in use. Please\e[0m\n". "\e[1mconsider adding these to the POTFILES.in file, located in the po/ directory.\e[0m\n\n"; print STDERR @result, "\n"; warn "If some of these files are left out on purpose then please add them to\n". "POTFILES.skip instead of POTFILES.in. A file \e[1m'missing'\e[0m containing this list\n". "of left out files has been written in the current directory.\n"; } if (@buf_potfiles_notexist) { unlink "notexist"; open OUT, ">notexist"; print OUT @buf_potfiles_notexist; close OUT; warn "\n" if ($VERBOSE or @result); warn "\e[1mThe following files do not exist anymore:\e[0m\n\n"; warn @buf_potfiles_notexist, "\n"; warn "Please remove them from POTFILES.in or POTFILES.skip. A file \e[1m'notexist'\e[0m\n". "containing this list of absent files has been written in the current directory.\n"; } } ## If there is nothing to complain about, notify the user else { print "\nAll files containing translations are present in POTFILES.in.\n" if $VERBOSE; } } sub Console_WriteError_InvalidOption { ## Handle invalid arguments print STDERR "Try `${PROGRAM} --help' for more information.\n"; exit 1; } sub GenerateHeaders { my $EXTRACT = "@INTLTOOL_EXTRACT@"; chomp $EXTRACT; $EXTRACT = $ENV{"INTLTOOL_EXTRACT"} if $ENV{"INTLTOOL_EXTRACT"}; ## Generate the .h header files, so we can allow glade and ## xml translation support if (! -x "$EXTRACT") { print STDERR "\n *** The intltool-extract script wasn't found!" ."\n *** Without it, intltool-update can not generate files.\n"; exit; } else { open (FILE, $POTFILES_in) or die "$PROGRAM: POTFILES.in not found.\n"; while () { chomp; next if /^\[\s*encoding/; ## Find xml files in POTFILES.in and generate the ## files with help from the extract script my $gettext_type= &POFile_DetermineType ($1); if (/\.($xml_support|$ini_support)$/ || /^\[/) { s/^\[[^\[].*]\s*//; my $filename = "../$_"; if ($VERBOSE) { system ($EXTRACT, "--update", "--srcdir=$SRCDIR", "--type=$gettext_type", $filename); } else { system ($EXTRACT, "--update", "--type=$gettext_type", "--srcdir=$SRCDIR", "--quiet", $filename); } } } close FILE; } } # # Generate .pot file from POTFILES.in # sub GeneratePOTemplate { my $XGETTEXT = $ENV{"XGETTEXT"} || "@INTLTOOL_XGETTEXT@"; my $XGETTEXT_ARGS = $ENV{"XGETTEXT_ARGS"} || ''; chomp $XGETTEXT; if (! -x $XGETTEXT) { print STDERR " *** xgettext is not found on this system!\n". " *** Without it, intltool-update can not extract strings.\n"; exit; } print "Building $MODULE.pot...\n" if $VERBOSE; open INFILE, $POTFILES_in; unlink "POTFILES.in.temp"; open OUTFILE, ">POTFILES.in.temp" or die("Cannot open POTFILES.in.temp for writing"); my $gettext_support_nonascii = 0; # checks for GNU gettext >= 0.12 my $dummy = `$XGETTEXT --version --from-code=UTF-8 >$devnull 2>$devnull`; if ($? == 0) { $gettext_support_nonascii = 1; } else { # urge everybody to upgrade gettext print STDERR "WARNING: This version of gettext does not support extracting non-ASCII\n". " strings. That means you should install a version of gettext\n". " that supports non-ASCII strings (such as GNU gettext >= 0.12),\n". " or have to let non-ASCII strings untranslated. (If there is any)\n"; } my $encoding = "ASCII"; my $forced_gettext_code; my @temp_headers; my $encoding_problem_is_reported = 0; while () { next if (/^#/ or /^\s*$/); chomp; my $gettext_code; if (/^\[\s*encoding:\s*(.*)\s*\]/) { $forced_gettext_code=$1; } elsif (/\.($xml_support|$ini_support)$/ || /^\[/) { s/^\[.*]\s*//; print OUTFILE "../$_.h\n"; push @temp_headers, "../$_.h"; $gettext_code = &TextFile_DetermineEncoding ("../$_.h") if ($gettext_support_nonascii and not defined $forced_gettext_code); } else { if ($SRCDIR eq ".") { print OUTFILE "../$_\n"; } else { print OUTFILE "$SRCDIR/../$_\n"; } $gettext_code = &TextFile_DetermineEncoding ("../$_") if ($gettext_support_nonascii and not defined $forced_gettext_code); } next if (! $gettext_support_nonascii); if (defined $forced_gettext_code) { $encoding=$forced_gettext_code; } elsif (defined $gettext_code and "$encoding" ne "$gettext_code") { if ($encoding eq "ASCII") { $encoding=$gettext_code; } elsif ($gettext_code ne "ASCII") { # Only report once because the message is quite long if (! $encoding_problem_is_reported) { print STDERR "WARNING: You should use the same file encoding for all your project files,\n". " but $PROGRAM thinks that most of the source files are in\n". " $encoding encoding, while \"$_\" is (likely) in\n". " $gettext_code encoding. If you are sure that all translatable strings\n". " are in same encoding (say UTF-8), please \e[1m*prepend*\e[0m the following\n". " line to POTFILES.in:\n\n". " [encoding: UTF-8]\n\n". " and make sure that configure.in/ac checks for $PACKAGE >= 0.27 .\n". "(such warning message will only be reported once.)\n"; $encoding_problem_is_reported = 1; } } } } close OUTFILE; close INFILE; unlink "$MODULE.pot"; my @xgettext_argument=("$XGETTEXT", "--add-comments", "--directory\=\.", "--output\=$MODULE\.pot", "--files-from\=\.\/POTFILES\.in\.temp"); my $XGETTEXT_KEYWORDS = &FindPOTKeywords; push @xgettext_argument, $XGETTEXT_KEYWORDS; my $MSGID_BUGS_ADDRESS = &FindMakevarsBugAddress; push @xgettext_argument, "--msgid-bugs-address\=$MSGID_BUGS_ADDRESS" if $MSGID_BUGS_ADDRESS; push @xgettext_argument, "--from-code\=$encoding" if ($gettext_support_nonascii); push @xgettext_argument, $XGETTEXT_ARGS if $XGETTEXT_ARGS; my $xgettext_command = join ' ', @xgettext_argument; # intercept xgettext error message print "Running $xgettext_command\n" if $VERBOSE; my $xgettext_error_msg = `$xgettext_command 2>\&1`; my $command_failed = $?; unlink "POTFILES.in.temp"; print "Removing generated header (.h) files..." if $VERBOSE; unlink foreach (@temp_headers); print "done.\n" if $VERBOSE; if (! $command_failed) { if (! -e "$MODULE.pot") { print "None of the files in POTFILES.in contain strings marked for translation.\n" if $VERBOSE; } else { print "Wrote $MODULE.pot\n" if $VERBOSE; } } else { if ($xgettext_error_msg =~ /--from-code/) { # replace non-ASCII error message with a more useful one. print STDERR "ERROR: xgettext failed to generate PO template file because there is non-ASCII\n". " string marked for translation. Please make sure that all strings marked\n". " for translation are in uniform encoding (say UTF-8), then \e[1m*prepend*\e[0m the\n". " following line to POTFILES.in and rerun $PROGRAM:\n\n". " [encoding: UTF-8]\n\n"; } else { print STDERR "$xgettext_error_msg"; if (-e "$MODULE.pot") { # is this possible? print STDERR "ERROR: xgettext failed but still managed to generate PO template file.\n". " Please consult error message above if there is any.\n"; } else { print STDERR "ERROR: xgettext failed to generate PO template file. Please consult\n". " error message above if there is any.\n"; } } exit (1); } } sub POFile_Update { -f "$MODULE.pot" or die "$PROGRAM: $MODULE.pot does not exist.\n"; my $MSGMERGE = $ENV{"MSGMERGE"} || "@INTLTOOL_MSGMERGE@"; my ($lang, $outfile) = @_; print "Merging $SRCDIR/$lang.po with $MODULE.pot..." if $VERBOSE; my $infile = "$SRCDIR/$lang.po"; $outfile = "$SRCDIR/$lang.po" if ($outfile eq ""); # I think msgmerge won't overwrite old file if merge is not successful system ("$MSGMERGE", "-o", $outfile, $infile, "$MODULE.pot"); } sub Console_WriteError_NotExisting { my ($file) = @_; ## Report error if supplied language file is non-existing print STDERR "$PROGRAM: $file does not exist!\n"; print STDERR "Try '$PROGRAM --help' for more information.\n"; exit; } sub GatherPOFiles { my @po_files = glob ("./*.po"); @languages = map (&POFile_GetLanguage, @po_files); foreach my $lang (@languages) { $po_files_by_lang{$lang} = shift (@po_files); } } sub POFile_GetLanguage ($) { s/^(.*\/)?(.+)\.po$/$2/; return $_; } sub Console_Write_TranslationStatus { my ($lang, $output_file) = @_; my $MSGFMT = $ENV{"MSGFMT"} || "@INTLTOOL_MSGFMT@"; $output_file = "$SRCDIR/$lang.po" if ($output_file eq ""); system ("$MSGFMT", "-o", "$devnull", "--verbose", $output_file); } sub Console_Write_CoverageReport { my $MSGFMT = $ENV{"MSGFMT"} || "@INTLTOOL_MSGFMT@"; &GatherPOFiles; foreach my $lang (@languages) { print "$lang: "; &POFile_Update ($lang, ""); } print "\n\n * Current translation support in $MODULE \n\n"; foreach my $lang (@languages) { print "$lang: "; system ("$MSGFMT", "-o", "$devnull", "--verbose", "$SRCDIR/$lang.po"); } } sub SubstituteVariable { my ($str) = @_; # always need to rewind file whenever it has been accessed seek (CONF, 0, 0); # cache each variable. varhash is global to we can add # variables elsewhere. while () { if (/^(\w+)=(.*)$/) { ($varhash{$1} = $2) =~ s/^["'](.*)["']$/$1/; } } if ($str =~ /^(.*)\${?([A-Z_]+)}?(.*)$/) { my $rest = $3; my $untouched = $1; my $sub = ""; # Ignore recursive definitions of variables $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\${?$2}?/; return SubstituteVariable ("$untouched$sub$rest"); } # We're using Perl backticks ` and "echo -n" here in order to # expand any shell escapes (such as backticks themselves) in every variable return echo_n ($str); } sub CONF_Handle_Open { my $base_dirname = getcwd(); $base_dirname =~ s@.*/@@; my ($conf_in, $src_dir); if ($base_dirname =~ /^po(-.+)?$/) { if (-f "Makevars") { my $makefile_source; local (*IN); open (IN, ") { if (/^top_builddir[ \t]*=/) { $src_dir = $_; $src_dir =~ s/^top_builddir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/; chomp $src_dir; if (-f "$src_dir" . "/configure.ac") { $conf_in = "$src_dir" . "/configure.ac" . "\n"; } else { $conf_in = "$src_dir" . "/configure.in" . "\n"; } last; } } close IN; $conf_in || die "Cannot find top_builddir in Makevars."; } elsif (-f "../configure.ac") { $conf_in = "../configure.ac"; } elsif (-f "../configure.in") { $conf_in = "../configure.in"; } else { my $makefile_source; local (*IN); open (IN, ") { if (/^top_srcdir[ \t]*=/) { $src_dir = $_; $src_dir =~ s/^top_srcdir[ \t]*=[ \t]*([^ \t\n\r]*)/$1/; chomp $src_dir; $conf_in = "$src_dir" . "/configure.in" . "\n"; last; } } close IN; $conf_in || die "Cannot find top_srcdir in Makefile."; } open (CONF, "<$conf_in"); } else { print STDERR "$PROGRAM: Unable to proceed.\n" . "Make sure to run this script inside the po directory.\n"; exit; } } sub FindPackageName { my $version; my $domain = &FindMakevarsDomain; my $name = $domain || "untitled"; &CONF_Handle_Open; my $conf_source; { local (*IN); open (IN, "<&CONF") || return $name; seek (IN, 0, 0); local $/; # slurp mode $conf_source = ; close IN; } # priority for getting package name: # 1. GETTEXT_PACKAGE # 2. first argument of AC_INIT (with >= 2 arguments) # 3. first argument of AM_INIT_AUTOMAKE (with >= 2 argument) # /^AM_INIT_AUTOMAKE\([\s\[]*([^,\)\s\]]+)/m # the \s makes this not work, why? if ($conf_source =~ /^AM_INIT_AUTOMAKE\(([^,\)]+),([^,\)]+)/m) { ($name, $version) = ($1, $2); $name =~ s/[\[\]\s]//g; $version =~ s/[\[\]\s]//g; $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/); $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/); $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/); $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/); } if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)/m) { ($name, $version) = ($1, $2); $name =~ s/[\[\]\s]//g; $version =~ s/[\[\]\s]//g; $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/); $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/); $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/); $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/); } # \s makes this not work, why? $name = $1 if $conf_source =~ /^GETTEXT_PACKAGE=\[?([^\n\]]+)/m; # m4 macros AC_PACKAGE_NAME, AC_PACKAGE_VERSION etc. have same value # as corresponding $PACKAGE_NAME, $PACKAGE_VERSION etc. shell variables. $name =~ s/\bAC_PACKAGE_/\$PACKAGE_/g; $name = $domain if $domain; $name = SubstituteVariable ($name); $name =~ s/^["'](.*)["']$/$1/; return $name if $name; } sub FindPOTKeywords { my $keywords = "--keyword\=\_ --keyword\=N\_ --keyword\=U\_ --keyword\=Q\_"; my $varname = "XGETTEXT_OPTIONS"; my $make_source; { local (*IN); open (IN, "; close IN; } $keywords = $1 if $make_source =~ /^$varname[ ]*=\[?([^\n\]]+)/m; return $keywords; } sub FindMakevarsDomain { my $domain = ""; my $makevars_source; { local (*IN); open (IN, "; close IN; } $domain = $1 if $makevars_source =~ /^DOMAIN[ ]*=\[?([^\n\]\$]+)/m; $domain =~ s/^\s+//; $domain =~ s/\s+$//; return $domain; } sub FindMakevarsBugAddress { my $address = ""; my $makevars_source; { local (*IN); open (IN, "; close IN; } $address = $1 if $makevars_source =~ /^MSGID_BUGS_ADDRESS[ ]*=\[?([^\n\]\$]+)/m; $address =~ s/^\s+//; $address =~ s/\s+$//; return $address; } regexxer-0.9/autogen.sh0000755000175000017500000000451310550543761012146 00000000000000#! /bin/sh # Copyright (c) 2004-2007 Daniel Elstner # # This file is part of regexxer. # # regexxer 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. # # regexxer 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 regexxer; if not, write to the Free Software Foundation, Inc., # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA test -n "$srcdir" || srcdir=`dirname "$0"` test -n "$srcdir" || srcdir=. if test "$#$NOCONFIGURE" = 0 then echo "I am going to run $srcdir/configure with no arguments -- if you" echo "wish to pass any to it, please specify them on the $0 command line." fi # Let the user override the default choice of tools. if test -z "$ACLOCAL" || test -z "$AUTOMAKE" then # Prefer explicitely versioned executables. for version in 1.10 1.9 1.8 do if { "aclocal-$version" --version && "automake-$version" --version; } /dev/null 2>&1 then ACLOCAL=aclocal-$version AUTOMAKE=automake-$version break fi done fi ( # Enter a subshell to temporarily change the working directory. cd "$srcdir" || exit 1 # Explicitely delete some old cruft, which seems to be # more reliable than --force options and the like. rm -f ABOUT-NLS acconfig.h config.cache config.guess config.rpath config.sub \ depcomp install-sh intltool-extract.in intltool-merge.in intltool-update.in \ missing mkinstalldirs po/Makefile.in.in rm -rf autom4te.cache #WARNINGS=all; export WARNINGS # Trace commands and exit if a command fails. set -ex glib-gettextize --copy --force intltoolize --automake --copy --force ${ACLOCAL-aclocal} -I m4 $ACLOCAL_FLAGS ${AUTOCONF-autoconf} ${AUTOHEADER-autoheader} ${AUTOMAKE-automake} --add-missing --copy $AUTOMAKE_FLAGS ) || exit 1 if test -z "$NOCONFIGURE" then echo "+ $srcdir/configure $*" "$srcdir/configure" "$@" || exit 1 echo echo 'Now type "make" to compile regexxer.' fi exit 0 regexxer-0.9/Makefile.am0000644000175000017500000001237110561753521012201 00000000000000## Copyright (c) 2004-2007 Daniel Elstner ## ## This file is part of regexxer. ## ## regexxer 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. ## ## regexxer 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 regexxer; if not, write to the Free Software Foundation, Inc., ## 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ## This project does not use recursive make, but a single toplevel Makefile ## to build the entire tree (excluding the po subdirectory as gettext comes ## with its own build system). Read Peter Miller's excellent paper to learn ## why recursive make invocations are both slow and error-prone: ## http://members.pcug.org.au/~millerp/rmch/recu-make-cons-harm.html AUTOMAKE_OPTIONS = subdir-objects ACLOCAL_AMFLAGS = -I m4 $(ACLOCAL_FLAGS) DISTCHECK_CONFIGURE_FLAGS = --disable-schemas-install --enable-warnings=fatal SUBDIRS = po bin_PROGRAMS = src/regexxer src_regexxer_SOURCES = \ src/controller.cc \ src/controller.h \ src/filebuffer.cc \ src/filebuffer.h \ src/filebufferundo.cc \ src/filebufferundo.h \ src/fileio.cc \ src/fileio.h \ src/fileshared.cc \ src/fileshared.h \ src/filetree.cc \ src/filetree.h \ src/filetreeprivate.cc \ src/filetreeprivate.h \ src/globalstrings.h \ src/main.cc \ src/mainwindow.cc \ src/mainwindow.h \ src/miscutils.h \ src/pcreshell.cc \ src/pcreshell.h \ src/prefdialog.cc \ src/prefdialog.h \ src/sharedptr.h \ src/signalutils.cc \ src/signalutils.h \ src/statusline.cc \ src/statusline.h \ src/stringutils.cc \ src/stringutils.h \ src/translation.cc \ src/translation.h \ src/undostack.cc \ src/undostack.h nodist_src_regexxer_SOURCES = \ ui/stockimages.h # The location of the gettext catalogs as defined by intltool. rxlocaledir = $(prefix)/$(DATADIRNAME)/locale global_defs = -DREGEXXER_LOCALEDIR=\""$(rxlocaledir)"\" -DREGEXXER_PKGDATADIR=\""$(pkgdatadir)"\" AM_CPPFLAGS = $(global_defs) -I$(top_builddir) $(REGEXXER_MODULES_CFLAGS) $(REGEXXER_WARNING_FLAGS) src_regexxer_DEPENDENCIES = src/exported-symbols src_regexxer_LDFLAGS = $(REGEXXER_VERSION_SCRIPT) src_regexxer_LDADD = $(REGEXXER_MODULES_LIBS) $(INTLLIBS) dist_pkgdata_DATA = ui/mainwindow.glade ui/prefdialog.glade iconthemedir = $(datadir)/icons/hicolor appicondir = $(iconthemedir)/48x48/apps dist_appicon_DATA = ui/regexxer.png schemas_in_files = ui/regexxer.schemas.in schemasdir = $(GCONF_SCHEMA_FILE_DIR) schemas_DATA = ui/regexxer.schemas desktop_in_files = ui/regexxer.desktop.in desktopdir = $(datadir)/applications desktop_DATA = ui/regexxer.desktop dist_intltool = intltool-extract.in intltool-merge.in intltool-update.in stockimages = ui/stock_save_all_16.png ui/stock_save_all_24.png dist_noinst_DATA = src/exported-symbols $(stockimages) $(dist_intltool) \ $(desktop_in_files) $(schemas_in_files) dist_noinst_SCRIPTS = autogen.sh BUILT_SOURCES = $(nodist_src_regexxer_SOURCES) CLEANFILES = $(nodist_src_regexxer_SOURCES) $(desktop_DATA) $(schemas_DATA) DISTCLEANFILES = intltool-extract intltool-merge intltool-update pixbuf_csource = $(GDK_PIXBUF_CSOURCE) --raw update_icon_cache = $(GTK_UPDATE_ICON_CACHE) --ignore-theme-index --force gconftool = GCONF_CONFIG_SOURCE='$(GCONF_SCHEMA_CONFIG_SOURCE)' $(GCONFTOOL) @INTLTOOL_SCHEMAS_RULE@ @INTLTOOL_DESKTOP_RULE@ if GCONF_SCHEMAS_INSTALL install-data-hook: install-schemas install-update-icon-cache uninstall-hook: uninstall-schemas uninstall-update-icon-cache else install-data-hook: install-update-icon-cache uninstall-hook: uninstall-update-icon-cache endif # Note that this rule creates the ui/ build directory as a side effect. # This works just fine because the target is in BUILT_SOURCES and thus # built before everything else. Otherwise a special ui/.dirstamp rule # would be necessary. ui/stockimages.h: $(stockimages) @mkdir ui >/dev/null 2>&1 || test -d ui @build_list='--build-list'; \ list='$(stockimages)'; for file in $$list; do \ name=`expr "X/$$file" : '.*[\\/]\([^.]*\)' | sed 'y/-/_/'`; \ dir=; test -f "$$file" || dir='$(srcdir)/'; \ build_list="$$build_list $$name $$dir$$file"; \ done; \ echo " $(pixbuf_csource) $$build_list >$@"; \ $(pixbuf_csource) $$build_list >$@ install-schemas: $(schemas_DATA) @$(POST_INSTALL) test -n "$(DESTDIR)" || $(gconftool) --makefile-install-rule $(schemas_DATA) uninstall-schemas: $(schemas_DATA) @$(POST_UNINSTALL) test -n "$(DESTDIR)" || $(gconftool) --makefile-uninstall-rule $(schemas_DATA) install-update-icon-cache: @$(POST_INSTALL) test -n "$(DESTDIR)" || $(update_icon_cache) "$(iconthemedir)" uninstall-update-icon-cache: @$(POST_UNINSTALL) test -n "$(DESTDIR)" || $(update_icon_cache) "$(iconthemedir)" .PHONY: install-schemas uninstall-schemas install-update-icon-cache uninstall-update-icon-cache regexxer-0.9/Makefile.in0000644000175000017500000010672510566140570012220 00000000000000# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : bin_PROGRAMS = src/regexxer$(EXEEXT) subdir = . DIST_COMMON = README $(am__configure_deps) $(dist_appicon_DATA) \ $(dist_noinst_DATA) $(dist_noinst_SCRIPTS) \ $(dist_pkgdata_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ depcomp install-sh missing mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/dk-export.m4 \ $(top_srcdir)/m4/dk-feature.m4 $(top_srcdir)/m4/dk-pkgprog.m4 \ $(top_srcdir)/m4/dk-warn.m4 $(top_srcdir)/m4/intltool.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(desktopdir)" \ "$(DESTDIR)$(appicondir)" "$(DESTDIR)$(pkgdatadir)" \ "$(DESTDIR)$(schemasdir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am__dirstamp = $(am__leading_dot)dirstamp am_src_regexxer_OBJECTS = src/controller.$(OBJEXT) \ src/filebuffer.$(OBJEXT) src/filebufferundo.$(OBJEXT) \ src/fileio.$(OBJEXT) src/fileshared.$(OBJEXT) \ src/filetree.$(OBJEXT) src/filetreeprivate.$(OBJEXT) \ src/main.$(OBJEXT) src/mainwindow.$(OBJEXT) \ src/pcreshell.$(OBJEXT) src/prefdialog.$(OBJEXT) \ src/signalutils.$(OBJEXT) src/statusline.$(OBJEXT) \ src/stringutils.$(OBJEXT) src/translation.$(OBJEXT) \ src/undostack.$(OBJEXT) nodist_src_regexxer_OBJECTS = src_regexxer_OBJECTS = $(am_src_regexxer_OBJECTS) \ $(nodist_src_regexxer_OBJECTS) am__DEPENDENCIES_1 = SCRIPTS = $(dist_noinst_SCRIPTS) DEFAULT_INCLUDES = depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(src_regexxer_SOURCES) $(nodist_src_regexxer_SOURCES) DIST_SOURCES = $(src_regexxer_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; desktopDATA_INSTALL = $(INSTALL_DATA) dist_appiconDATA_INSTALL = $(INSTALL_DATA) dist_pkgdataDATA_INSTALL = $(INSTALL_DATA) schemasDATA_INSTALL = $(INSTALL_DATA) DATA = $(desktop_DATA) $(dist_appicon_DATA) $(dist_noinst_DATA) \ $(dist_pkgdata_DATA) $(schemas_DATA) ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ACLOCAL_FLAGS = @ACLOCAL_FLAGS@ ALL_LINGUAS = @ALL_LINGUAS@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CATALOGS = @CATALOGS@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DATADIRNAME = @DATADIRNAME@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GCONFTOOL = @GCONFTOOL@ GCONF_SCHEMAS_INSTALL_FALSE = @GCONF_SCHEMAS_INSTALL_FALSE@ GCONF_SCHEMAS_INSTALL_TRUE = @GCONF_SCHEMAS_INSTALL_TRUE@ GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@ GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@ GDK_PIXBUF_CSOURCE = @GDK_PIXBUF_CSOURCE@ GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ GMOFILES = @GMOFILES@ GMSGFMT = @GMSGFMT@ GREP = @GREP@ GTK_UPDATE_ICON_CACHE = @GTK_UPDATE_ICON_CACHE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLLIBS = @INTLLIBS@ INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@ INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@ INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@ INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ INTLTOOL_ICONV = @INTLTOOL_ICONV@ INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@ INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@ INTLTOOL_MERGE = @INTLTOOL_MERGE@ INTLTOOL_MSGFMT = @INTLTOOL_MSGFMT@ INTLTOOL_MSGMERGE = @INTLTOOL_MSGMERGE@ INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@ INTLTOOL_PERL = @INTLTOOL_PERL@ INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@ INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@ INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@ INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@ INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@ INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@ INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@ INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@ INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@ INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@ INTLTOOL_XGETTEXT = @INTLTOOL_XGETTEXT@ INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@ INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ POFILES = @POFILES@ POSUB = @POSUB@ PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@ PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@ REGEXXER_MODULES_CFLAGS = @REGEXXER_MODULES_CFLAGS@ REGEXXER_MODULES_LIBS = @REGEXXER_MODULES_LIBS@ REGEXXER_VERSION_SCRIPT = @REGEXXER_VERSION_SCRIPT@ REGEXXER_WARNING_FLAGS = @REGEXXER_WARNING_FLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ AUTOMAKE_OPTIONS = subdir-objects ACLOCAL_AMFLAGS = -I m4 $(ACLOCAL_FLAGS) DISTCHECK_CONFIGURE_FLAGS = --disable-schemas-install --enable-warnings=fatal SUBDIRS = po src_regexxer_SOURCES = \ src/controller.cc \ src/controller.h \ src/filebuffer.cc \ src/filebuffer.h \ src/filebufferundo.cc \ src/filebufferundo.h \ src/fileio.cc \ src/fileio.h \ src/fileshared.cc \ src/fileshared.h \ src/filetree.cc \ src/filetree.h \ src/filetreeprivate.cc \ src/filetreeprivate.h \ src/globalstrings.h \ src/main.cc \ src/mainwindow.cc \ src/mainwindow.h \ src/miscutils.h \ src/pcreshell.cc \ src/pcreshell.h \ src/prefdialog.cc \ src/prefdialog.h \ src/sharedptr.h \ src/signalutils.cc \ src/signalutils.h \ src/statusline.cc \ src/statusline.h \ src/stringutils.cc \ src/stringutils.h \ src/translation.cc \ src/translation.h \ src/undostack.cc \ src/undostack.h nodist_src_regexxer_SOURCES = \ ui/stockimages.h # The location of the gettext catalogs as defined by intltool. rxlocaledir = $(prefix)/$(DATADIRNAME)/locale global_defs = -DREGEXXER_LOCALEDIR=\""$(rxlocaledir)"\" -DREGEXXER_PKGDATADIR=\""$(pkgdatadir)"\" AM_CPPFLAGS = $(global_defs) -I$(top_builddir) $(REGEXXER_MODULES_CFLAGS) $(REGEXXER_WARNING_FLAGS) src_regexxer_DEPENDENCIES = src/exported-symbols src_regexxer_LDFLAGS = $(REGEXXER_VERSION_SCRIPT) src_regexxer_LDADD = $(REGEXXER_MODULES_LIBS) $(INTLLIBS) dist_pkgdata_DATA = ui/mainwindow.glade ui/prefdialog.glade iconthemedir = $(datadir)/icons/hicolor appicondir = $(iconthemedir)/48x48/apps dist_appicon_DATA = ui/regexxer.png schemas_in_files = ui/regexxer.schemas.in schemasdir = $(GCONF_SCHEMA_FILE_DIR) schemas_DATA = ui/regexxer.schemas desktop_in_files = ui/regexxer.desktop.in desktopdir = $(datadir)/applications desktop_DATA = ui/regexxer.desktop dist_intltool = intltool-extract.in intltool-merge.in intltool-update.in stockimages = ui/stock_save_all_16.png ui/stock_save_all_24.png dist_noinst_DATA = src/exported-symbols $(stockimages) $(dist_intltool) \ $(desktop_in_files) $(schemas_in_files) dist_noinst_SCRIPTS = autogen.sh BUILT_SOURCES = $(nodist_src_regexxer_SOURCES) CLEANFILES = $(nodist_src_regexxer_SOURCES) $(desktop_DATA) $(schemas_DATA) DISTCLEANFILES = intltool-extract intltool-merge intltool-update pixbuf_csource = $(GDK_PIXBUF_CSOURCE) --raw update_icon_cache = $(GTK_UPDATE_ICON_CACHE) --ignore-theme-index --force gconftool = GCONF_CONFIG_SOURCE='$(GCONF_SCHEMA_CONFIG_SOURCE)' $(GCONFTOOL) all: $(BUILT_SOURCES) config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .cc .o .obj am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ cd $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) cd $(top_srcdir) && $(AUTOHEADER) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) src/$(am__dirstamp): @$(mkdir_p) src @: > src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp): @$(mkdir_p) src/$(DEPDIR) @: > src/$(DEPDIR)/$(am__dirstamp) src/controller.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/filebuffer.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/filebufferundo.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/fileio.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/fileshared.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/filetree.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/filetreeprivate.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/main.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp) src/mainwindow.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/pcreshell.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/prefdialog.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/signalutils.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/statusline.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/stringutils.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/translation.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/undostack.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) src/regexxer$(EXEEXT): $(src_regexxer_OBJECTS) $(src_regexxer_DEPENDENCIES) src/$(am__dirstamp) @rm -f src/regexxer$(EXEEXT) $(CXXLINK) $(src_regexxer_LDFLAGS) $(src_regexxer_OBJECTS) $(src_regexxer_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f src/controller.$(OBJEXT) -rm -f src/filebuffer.$(OBJEXT) -rm -f src/filebufferundo.$(OBJEXT) -rm -f src/fileio.$(OBJEXT) -rm -f src/fileshared.$(OBJEXT) -rm -f src/filetree.$(OBJEXT) -rm -f src/filetreeprivate.$(OBJEXT) -rm -f src/main.$(OBJEXT) -rm -f src/mainwindow.$(OBJEXT) -rm -f src/pcreshell.$(OBJEXT) -rm -f src/prefdialog.$(OBJEXT) -rm -f src/signalutils.$(OBJEXT) -rm -f src/statusline.$(OBJEXT) -rm -f src/stringutils.$(OBJEXT) -rm -f src/translation.$(OBJEXT) -rm -f src/undostack.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/controller.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/filebuffer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/filebufferundo.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/fileio.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/fileshared.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/filetree.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/filetreeprivate.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/main.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/mainwindow.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/pcreshell.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/prefdialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/signalutils.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/statusline.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/stringutils.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/translation.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/undostack.Po@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`; \ @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \ @am__fastdepCXX_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`; \ @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCXX_TRUE@ then mv -f "$$depbase.Tpo" "$$depbase.Po"; else rm -f "$$depbase.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` uninstall-info-am: install-desktopDATA: $(desktop_DATA) @$(NORMAL_INSTALL) test -z "$(desktopdir)" || $(mkdir_p) "$(DESTDIR)$(desktopdir)" @list='$(desktop_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(desktopDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(desktopdir)/$$f'"; \ $(desktopDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(desktopdir)/$$f"; \ done uninstall-desktopDATA: @$(NORMAL_UNINSTALL) @list='$(desktop_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(desktopdir)/$$f'"; \ rm -f "$(DESTDIR)$(desktopdir)/$$f"; \ done install-dist_appiconDATA: $(dist_appicon_DATA) @$(NORMAL_INSTALL) test -z "$(appicondir)" || $(mkdir_p) "$(DESTDIR)$(appicondir)" @list='$(dist_appicon_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(dist_appiconDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(appicondir)/$$f'"; \ $(dist_appiconDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(appicondir)/$$f"; \ done uninstall-dist_appiconDATA: @$(NORMAL_UNINSTALL) @list='$(dist_appicon_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(appicondir)/$$f'"; \ rm -f "$(DESTDIR)$(appicondir)/$$f"; \ done install-dist_pkgdataDATA: $(dist_pkgdata_DATA) @$(NORMAL_INSTALL) test -z "$(pkgdatadir)" || $(mkdir_p) "$(DESTDIR)$(pkgdatadir)" @list='$(dist_pkgdata_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(dist_pkgdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdatadir)/$$f'"; \ $(dist_pkgdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \ done uninstall-dist_pkgdataDATA: @$(NORMAL_UNINSTALL) @list='$(dist_pkgdata_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \ done install-schemasDATA: $(schemas_DATA) @$(NORMAL_INSTALL) test -z "$(schemasdir)" || $(mkdir_p) "$(DESTDIR)$(schemasdir)" @list='$(schemas_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(schemasDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(schemasdir)/$$f'"; \ $(schemasDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(schemasdir)/$$f"; \ done uninstall-schemasDATA: @$(NORMAL_UNINSTALL) @list='$(schemas_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(schemasdir)/$$f'"; \ rm -f "$(DESTDIR)$(schemasdir)/$$f"; \ done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @case `sed 15q $(srcdir)/NEWS` in \ *"$(VERSION)"*) : ;; \ *) \ echo "NEWS not updated; not releasing" 1>&2; \ exit 1;; \ esac $(am__remove_distdir) mkdir $(distdir) $(mkdir_p) $(distdir)/m4 $(distdir)/po $(distdir)/src $(distdir)/ui @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(appicondir)" "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(schemasdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -rm -f src/$(DEPDIR)/$(am__dirstamp) -rm -f src/$(am__dirstamp) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf src/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-desktopDATA install-dist_appiconDATA \ install-dist_pkgdataDATA install-schemasDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-exec-am: install-binPROGRAMS install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -rf src/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-desktopDATA \ uninstall-dist_appiconDATA uninstall-dist_pkgdataDATA \ uninstall-info-am uninstall-schemasDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ check-am clean clean-binPROGRAMS clean-generic clean-recursive \ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \ dist-shar dist-tarZ dist-zip distcheck distclean \ distclean-compile distclean-generic distclean-hdr \ distclean-recursive distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-binPROGRAMS install-data \ install-data-am install-data-hook install-desktopDATA \ install-dist_appiconDATA install-dist_pkgdataDATA install-exec \ install-exec-am install-info install-info-am install-man \ install-schemasDATA install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-desktopDATA uninstall-dist_appiconDATA \ uninstall-dist_pkgdataDATA uninstall-hook uninstall-info-am \ uninstall-schemasDATA @INTLTOOL_SCHEMAS_RULE@ @INTLTOOL_DESKTOP_RULE@ @GCONF_SCHEMAS_INSTALL_TRUE@install-data-hook: install-schemas install-update-icon-cache @GCONF_SCHEMAS_INSTALL_TRUE@uninstall-hook: uninstall-schemas uninstall-update-icon-cache @GCONF_SCHEMAS_INSTALL_FALSE@install-data-hook: install-update-icon-cache @GCONF_SCHEMAS_INSTALL_FALSE@uninstall-hook: uninstall-update-icon-cache # Note that this rule creates the ui/ build directory as a side effect. # This works just fine because the target is in BUILT_SOURCES and thus # built before everything else. Otherwise a special ui/.dirstamp rule # would be necessary. ui/stockimages.h: $(stockimages) @mkdir ui >/dev/null 2>&1 || test -d ui @build_list='--build-list'; \ list='$(stockimages)'; for file in $$list; do \ name=`expr "X/$$file" : '.*[\\/]\([^.]*\)' | sed 'y/-/_/'`; \ dir=; test -f "$$file" || dir='$(srcdir)/'; \ build_list="$$build_list $$name $$dir$$file"; \ done; \ echo " $(pixbuf_csource) $$build_list >$@"; \ $(pixbuf_csource) $$build_list >$@ install-schemas: $(schemas_DATA) @$(POST_INSTALL) test -n "$(DESTDIR)" || $(gconftool) --makefile-install-rule $(schemas_DATA) uninstall-schemas: $(schemas_DATA) @$(POST_UNINSTALL) test -n "$(DESTDIR)" || $(gconftool) --makefile-uninstall-rule $(schemas_DATA) install-update-icon-cache: @$(POST_INSTALL) test -n "$(DESTDIR)" || $(update_icon_cache) "$(iconthemedir)" uninstall-update-icon-cache: @$(POST_UNINSTALL) test -n "$(DESTDIR)" || $(update_icon_cache) "$(iconthemedir)" .PHONY: install-schemas uninstall-schemas install-update-icon-cache uninstall-update-icon-cache # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: regexxer-0.9/config.h.in0000644000175000017500000000341510566140600012160 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* always defined to indicate that i18n is enabled */ #undef ENABLE_NLS /* Define to 1 if you have the `bind_textdomain_codeset' function. */ #undef HAVE_BIND_TEXTDOMAIN_CODESET /* Define to 1 if you have the `dcgettext' function. */ #undef HAVE_DCGETTEXT /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES /* Define to 1 if you have the header file. */ #undef HAVE_LOCALE_H /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS regexxer-0.9/configure0000755000175000017500000077763410566140567012105 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.60 for regexxer 0.9. # # Report bugs to . # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /usr/bin/posix$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell autoconf@gnu.org about your system, echo including any error possibly output before this echo message } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # Find out whether ``test -x'' works. Don't use a zero-byte file, as # systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then as_executable_p="test -x" else as_executable_p=: fi rm -f conf$$.file # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='regexxer' PACKAGE_TARNAME='regexxer' PACKAGE_VERSION='0.9' PACKAGE_STRING='regexxer 0.9' PACKAGE_BUGREPORT='http://regexxer.sourceforge.net/bugs' ac_unique_file="ui/regexxer.desktop.in" # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #endif #if HAVE_STDINT_H # include #endif #if HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir localstatedir includedir oldincludedir docdir infodir htmldir dvidir pdfdir psdir libdir localedir mandir DEFS ECHO_C ECHO_N ECHO_T LIBS build_alias host_alias target_alias INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar ACLOCAL_FLAGS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE INTLTOOL_DESKTOP_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_KEYS_RULE INTLTOOL_PROP_RULE INTLTOOL_OAF_RULE INTLTOOL_PONG_RULE INTLTOOL_SERVER_RULE INTLTOOL_SHEET_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_UI_RULE INTLTOOL_XAM_RULE INTLTOOL_KBD_RULE INTLTOOL_XML_RULE INTLTOOL_XML_NOMERGE_RULE INTLTOOL_CAVES_RULE INTLTOOL_SCHEMAS_RULE INTLTOOL_THEME_RULE INTLTOOL_SERVICE_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE INTLTOOL_PERL INTLTOOL_ICONV INTLTOOL_MSGFMT INTLTOOL_MSGMERGE INTLTOOL_XGETTEXT ALL_LINGUAS GETTEXT_PACKAGE CPP GREP EGREP USE_NLS MSGFMT GMSGFMT XGETTEXT CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLLIBS PO_IN_DATADIR_TRUE PO_IN_DATADIR_FALSE POFILES POSUB MKINSTALLDIRS PKG_CONFIG REGEXXER_MODULES_CFLAGS REGEXXER_MODULES_LIBS GDK_PIXBUF_CSOURCE GTK_UPDATE_ICON_CACHE GCONFTOOL GCONF_SCHEMA_CONFIG_SOURCE GCONF_SCHEMA_FILE_DIR GCONF_SCHEMAS_INSTALL_TRUE GCONF_SCHEMAS_INSTALL_FALSE REGEXXER_VERSION_SCRIPT REGEXXER_WARNING_FLAGS LIBOBJS LTLIBOBJS' ac_subst_files='' ac_precious_vars='build_alias host_alias target_alias ACLOCAL_FLAGS CC CFLAGS LDFLAGS CPPFLAGS CXX CXXFLAGS CCC CPP PKG_CONFIG REGEXXER_MODULES_CFLAGS REGEXXER_MODULES_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval enable_$ac_feature=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval enable_$ac_feature=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` eval with_$ac_package=\$ac_optarg ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval with_$ac_package=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute directory names. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { echo "$as_me: error: Working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$0" || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures regexxer 0.9 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/regexxer] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of regexxer 0.9:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --disable-schemas-install Disable the schemas installation --enable-warnings=[min|max|fatal|no] control compiler pickyness [min] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-gconf-source=sourceaddress Config database for installing schema files. --with-gconf-schema-file-dir=dir Directory for installing schema files. Some influential environment variables: ACLOCAL_FLAGS aclocal flags, e.g. -I CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CXX C++ compiler command CXXFLAGS C++ compiler flags CPP C preprocessor PKG_CONFIG path to pkg-config utility REGEXXER_MODULES_CFLAGS C compiler flags for REGEXXER_MODULES, overriding pkg-config REGEXXER_MODULES_LIBS linker flags for REGEXXER_MODULES, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF regexxer configure 0.9 generated by GNU Autoconf 2.60 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by regexxer $as_me 0.9, which was generated by GNU Autoconf 2.60. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then set x "$CONFIG_SITE" elif test "x$prefix" != xNONE; then set x "$prefix/share/config.site" "$prefix/etc/config.site" else set x "$ac_default_prefix/share/config.site" \ "$ac_default_prefix/etc/config.site" fi shift for ac_site_file do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu case m4 in [\\/]* | ?:[\\/]* ) ac_macro_dir=m4 ;; *) ac_macro_dir=$srcdir/m4 ;; esac test -d "$ac_macro_dir" || { { echo "$as_me:$LINENO: error: cannot find macro directory \`m4'" >&5 echo "$as_me: error: cannot find macro directory \`m4'" >&2;} { (exit 1); exit 1; }; } ac_config_headers="$ac_config_headers config.h" am__api_version="1.9" ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm -f conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$AWK" && break done { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='regexxer' VERSION='0.9' # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # # List of possible output files, starting from the most likely. # The algorithm is not robust to junk in `.', hence go to wildcards (a.*) # only as a last resort. b.out is created by i960 compilers. ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' # # The IRIX 6 linker writes into existing files which may not be # executable, retaining their permissions. Remove them first so a # subsequent execution test works. ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6; } # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6; } { echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi { echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; } GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CXXFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi case "$am__api_version" in 1.01234) { { echo "$as_me:$LINENO: error: Automake 1.5 or newer is required to use intltool" >&5 echo "$as_me: error: Automake 1.5 or newer is required to use intltool" >&2;} { (exit 1); exit 1; }; } ;; *) ;; esac if test -n "0.35"; then { echo "$as_me:$LINENO: checking for intltool >= 0.35" >&5 echo $ECHO_N "checking for intltool >= 0.35... $ECHO_C" >&6; } INTLTOOL_REQUIRED_VERSION_AS_INT=`echo 0.35 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`awk -F\" '/\\$VERSION / { print $ 2; }' ${ac_aux_dir}/intltool-update.in` INTLTOOL_APPLIED_VERSION_AS_INT=`awk -F\" '/\\$VERSION / { split($ 2, VERSION, "."); print VERSION[1] * 1000 + VERSION[2] * 100 + VERSION[3];}' ${ac_aux_dir}/intltool-update.in` { echo "$as_me:$LINENO: result: $INTLTOOL_APPLIED_VERSION found" >&5 echo "${ECHO_T}$INTLTOOL_APPLIED_VERSION found" >&6; } test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" || { { echo "$as_me:$LINENO: error: Your intltool is too old. You need intltool 0.35 or later." >&5 echo "$as_me: error: Your intltool is too old. You need intltool 0.35 or later." >&2;} { (exit 1); exit 1; }; } fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< $@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< $@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@' # Use the tools built into the package, not the ones that are installed. INTLTOOL_EXTRACT='$(top_builddir)/intltool-extract' INTLTOOL_MERGE='$(top_builddir)/intltool-merge' INTLTOOL_UPDATE='$(top_builddir)/intltool-update' # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_INTLTOOL_PERL+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $INTLTOOL_PERL in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_PERL="$INTLTOOL_PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_PERL="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi INTLTOOL_PERL=$ac_cv_path_INTLTOOL_PERL if test -n "$INTLTOOL_PERL"; then { echo "$as_me:$LINENO: result: $INTLTOOL_PERL" >&5 echo "${ECHO_T}$INTLTOOL_PERL" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test -z "$INTLTOOL_PERL"; then { { echo "$as_me:$LINENO: error: perl not found; required for intltool" >&5 echo "$as_me: error: perl not found; required for intltool" >&2;} { (exit 1); exit 1; }; } fi if test -z "`$INTLTOOL_PERL -v | fgrep '5.' 2> /dev/null`"; then { { echo "$as_me:$LINENO: error: perl 5.x required for intltool" >&5 echo "$as_me: error: perl 5.x required for intltool" >&2;} { (exit 1); exit 1; }; } fi if test "x" != "xno-xml"; then { echo "$as_me:$LINENO: checking for XML::Parser" >&5 echo $ECHO_N "checking for XML::Parser... $ECHO_C" >&6; } if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then { echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6; } else { { echo "$as_me:$LINENO: error: XML::Parser perl module is required for intltool" >&5 echo "$as_me: error: XML::Parser perl module is required for intltool" >&2;} { (exit 1); exit 1; }; } fi fi # Extract the first word of "iconv", so it can be a program name with args. set dummy iconv; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_INTLTOOL_ICONV+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $INTLTOOL_ICONV in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_ICONV="$INTLTOOL_ICONV" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_ICONV="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_INTLTOOL_ICONV" && ac_cv_path_INTLTOOL_ICONV="iconv" ;; esac fi INTLTOOL_ICONV=$ac_cv_path_INTLTOOL_ICONV if test -n "$INTLTOOL_ICONV"; then { echo "$as_me:$LINENO: result: $INTLTOOL_ICONV" >&5 echo "${ECHO_T}$INTLTOOL_ICONV" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_INTLTOOL_MSGFMT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $INTLTOOL_MSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MSGFMT="$INTLTOOL_MSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_MSGFMT="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_INTLTOOL_MSGFMT" && ac_cv_path_INTLTOOL_MSGFMT="msgfmt" ;; esac fi INTLTOOL_MSGFMT=$ac_cv_path_INTLTOOL_MSGFMT if test -n "$INTLTOOL_MSGFMT"; then { echo "$as_me:$LINENO: result: $INTLTOOL_MSGFMT" >&5 echo "${ECHO_T}$INTLTOOL_MSGFMT" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_INTLTOOL_MSGMERGE+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $INTLTOOL_MSGMERGE in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_MSGMERGE="$INTLTOOL_MSGMERGE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_INTLTOOL_MSGMERGE" && ac_cv_path_INTLTOOL_MSGMERGE="msgmerge" ;; esac fi INTLTOOL_MSGMERGE=$ac_cv_path_INTLTOOL_MSGMERGE if test -n "$INTLTOOL_MSGMERGE"; then { echo "$as_me:$LINENO: result: $INTLTOOL_MSGMERGE" >&5 echo "${ECHO_T}$INTLTOOL_MSGMERGE" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_INTLTOOL_XGETTEXT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $INTLTOOL_XGETTEXT in [\\/]* | ?:[\\/]*) ac_cv_path_INTLTOOL_XGETTEXT="$INTLTOOL_XGETTEXT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_INTLTOOL_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_INTLTOOL_XGETTEXT" && ac_cv_path_INTLTOOL_XGETTEXT="xgettext" ;; esac fi INTLTOOL_XGETTEXT=$ac_cv_path_INTLTOOL_XGETTEXT if test -n "$INTLTOOL_XGETTEXT"; then { echo "$as_me:$LINENO: result: $INTLTOOL_XGETTEXT" >&5 echo "${ECHO_T}$INTLTOOL_XGETTEXT" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi # Substitute ALL_LINGUAS so we can use it in po/Makefile ac_config_commands="$ac_config_commands intltool" GETTEXT_PACKAGE=regexxer ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Extract the first word of "grep ggrep" to use in msg output if test -z "$GREP"; then set dummy grep ggrep; ac_prog_name=$2 if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_executable_p "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS fi GREP="$ac_cv_path_GREP" if test -z "$GREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 echo "${ECHO_T}$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else # Extract the first word of "egrep" to use in msg output if test -z "$EGREP"; then set dummy egrep; ac_prog_name=$2 if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_executable_p "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS fi EGREP="$ac_cv_path_EGREP" if test -z "$EGREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in locale.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## --------------------------------------------------- ## ## Report this to http://regexxer.sourceforge.net/bugs ## ## --------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test $ac_cv_header_locale_h = yes; then { echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5 echo $ECHO_N "checking for LC_MESSAGES... $ECHO_C" >&6; } if test "${am_cv_val_LC_MESSAGES+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then am_cv_val_LC_MESSAGES=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 am_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5 echo "${ECHO_T}$am_cv_val_LC_MESSAGES" >&6; } if test $am_cv_val_LC_MESSAGES = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_LC_MESSAGES 1 _ACEOF fi fi USE_NLS=yes gt_cv_have_gettext=no CATOBJEXT=NONE XGETTEXT=: INTLLIBS= if test "${ac_cv_header_libintl_h+set}" = set; then { echo "$as_me:$LINENO: checking for libintl.h" >&5 echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6; } if test "${ac_cv_header_libintl_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5 echo "${ECHO_T}$ac_cv_header_libintl_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking libintl.h usability" >&5 echo $ECHO_N "checking libintl.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking libintl.h presence" >&5 echo $ECHO_N "checking libintl.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: libintl.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: libintl.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: libintl.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: libintl.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: libintl.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: libintl.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: libintl.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: libintl.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: libintl.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: libintl.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: libintl.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: libintl.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: libintl.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## --------------------------------------------------- ## ## Report this to http://regexxer.sourceforge.net/bugs ## ## --------------------------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for libintl.h" >&5 echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6; } if test "${ac_cv_header_libintl_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_libintl_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5 echo "${ECHO_T}$ac_cv_header_libintl_h" >&6; } fi if test $ac_cv_header_libintl_h = yes; then gt_cv_func_dgettext_libintl="no" libintl_extra_libs="" # # First check in libc # { echo "$as_me:$LINENO: checking for ngettext in libc" >&5 echo $ECHO_N "checking for ngettext in libc... $ECHO_C" >&6; } if test "${gt_cv_func_ngettext_libc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { return !ngettext ("","", 1) ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gt_cv_func_ngettext_libc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_func_ngettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $gt_cv_func_ngettext_libc" >&5 echo "${ECHO_T}$gt_cv_func_ngettext_libc" >&6; } if test "$gt_cv_func_ngettext_libc" = "yes" ; then { echo "$as_me:$LINENO: checking for dgettext in libc" >&5 echo $ECHO_N "checking for dgettext in libc... $ECHO_C" >&6; } if test "${gt_cv_func_dgettext_libc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { return !dgettext ("","") ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gt_cv_func_dgettext_libc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_func_dgettext_libc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5 echo "${ECHO_T}$gt_cv_func_dgettext_libc" >&6; } fi if test "$gt_cv_func_ngettext_libc" = "yes" ; then for ac_func in bind_textdomain_codeset do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done fi # # If we don't have everything we want, check in libintl # if test "$gt_cv_func_dgettext_libc" != "yes" \ || test "$gt_cv_func_ngettext_libc" != "yes" \ || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then { echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5 echo $ECHO_N "checking for bindtextdomain in -lintl... $ECHO_C" >&6; } if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char bindtextdomain (); int main () { return bindtextdomain (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_intl_bindtextdomain=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_bindtextdomain=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5 echo "${ECHO_T}$ac_cv_lib_intl_bindtextdomain" >&6; } if test $ac_cv_lib_intl_bindtextdomain = yes; then { echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5 echo $ECHO_N "checking for ngettext in -lintl... $ECHO_C" >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_intl_ngettext=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5 echo "${ECHO_T}$ac_cv_lib_intl_ngettext" >&6; } if test $ac_cv_lib_intl_ngettext = yes; then { echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5 echo $ECHO_N "checking for dgettext in -lintl... $ECHO_C" >&6; } if test "${ac_cv_lib_intl_dgettext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dgettext (); int main () { return dgettext (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_intl_dgettext=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_dgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5 echo "${ECHO_T}$ac_cv_lib_intl_dgettext" >&6; } if test $ac_cv_lib_intl_dgettext = yes; then gt_cv_func_dgettext_libintl=yes fi fi fi if test "$gt_cv_func_dgettext_libintl" != "yes" ; then { echo "$as_me:$LINENO: checking if -liconv is needed to use gettext" >&5 echo $ECHO_N "checking if -liconv is needed to use gettext... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: " >&5 echo "${ECHO_T}" >&6; } { echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5 echo $ECHO_N "checking for ngettext in -lintl... $ECHO_C" >&6; } if test "${ac_cv_lib_intl_ngettext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ngettext (); int main () { return ngettext (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_intl_ngettext=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_ngettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5 echo "${ECHO_T}$ac_cv_lib_intl_ngettext" >&6; } if test $ac_cv_lib_intl_ngettext = yes; then { echo "$as_me:$LINENO: checking for dcgettext in -lintl" >&5 echo $ECHO_N "checking for dcgettext in -lintl... $ECHO_C" >&6; } if test "${ac_cv_lib_intl_dcgettext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl -liconv $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dcgettext (); int main () { return dcgettext (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_intl_dcgettext=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_dcgettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dcgettext" >&5 echo "${ECHO_T}$ac_cv_lib_intl_dcgettext" >&6; } if test $ac_cv_lib_intl_dcgettext = yes; then gt_cv_func_dgettext_libintl=yes libintl_extra_libs=-liconv else : fi else : fi fi # # If we found libintl, then check in it for bind_textdomain_codeset(); # we'll prefer libc if neither have bind_textdomain_codeset(), # and both have dgettext and ngettext # if test "$gt_cv_func_dgettext_libintl" = "yes" ; then glib_save_LIBS="$LIBS" LIBS="$LIBS -lintl $libintl_extra_libs" unset ac_cv_func_bind_textdomain_codeset for ac_func in bind_textdomain_codeset do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done LIBS="$glib_save_LIBS" if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then gt_cv_func_dgettext_libc=no else if test "$gt_cv_func_dgettext_libc" = "yes" \ && test "$gt_cv_func_ngettext_libc" = "yes"; then gt_cv_func_dgettext_libintl=no fi fi fi fi if test "$gt_cv_func_dgettext_libc" = "yes" \ || test "$gt_cv_func_dgettext_libintl" = "yes"; then gt_cv_have_gettext=yes fi if test "$gt_cv_func_dgettext_libintl" = "yes"; then INTLLIBS="-lintl $libintl_extra_libs" fi if test "$gt_cv_have_gettext" = "yes"; then cat >>confdefs.h <<\_ACEOF #define HAVE_GETTEXT 1 _ACEOF # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then ac_cv_path_MSGFMT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != "no"; then { echo "$as_me:$LINENO: result: $MSGFMT" >&5 echo "${ECHO_T}$MSGFMT" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "$MSGFMT" != "no"; then glib_save_LIBS="$LIBS" LIBS="$LIBS $INTLLIBS" for ac_func in dcgettext do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { echo "$as_me:$LINENO: result: $GMSGFMT" >&5 echo "${ECHO_T}$GMSGFMT" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then ac_cv_path_XGETTEXT="$ac_dir/$ac_word" break fi fi done IFS="$ac_save_ifs" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { echo "$as_me:$LINENO: result: $XGETTEXT" >&5 echo "${ECHO_T}$XGETTEXT" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then CATOBJEXT=.gmo DATADIRNAME=share else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 case $host in *-*-solaris*) { echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5 echo $ECHO_N "checking for bind_textdomain_codeset... $ECHO_C" >&6; } if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define bind_textdomain_codeset to an innocuous variant, in case declares bind_textdomain_codeset. For example, HP-UX 11i declares gettimeofday. */ #define bind_textdomain_codeset innocuous_bind_textdomain_codeset /* System header to define __stub macros and hopefully few prototypes, which can conflict with char bind_textdomain_codeset (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef bind_textdomain_codeset /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char bind_textdomain_codeset (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_bind_textdomain_codeset || defined __stub___bind_textdomain_codeset choke me #endif int main () { return bind_textdomain_codeset (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_bind_textdomain_codeset=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_bind_textdomain_codeset=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5 echo "${ECHO_T}$ac_cv_func_bind_textdomain_codeset" >&6; } if test $ac_cv_func_bind_textdomain_codeset = yes; then CATOBJEXT=.gmo DATADIRNAME=share else CATOBJEXT=.mo DATADIRNAME=lib fi ;; *) CATOBJEXT=.mo DATADIRNAME=lib ;; esac fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$glib_save_LIBS" INSTOBJEXT=.mo else gt_cv_have_gettext=no fi fi fi if test "$gt_cv_have_gettext" = "yes" ; then cat >>confdefs.h <<\_ACEOF #define ENABLE_NLS 1 _ACEOF fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header /dev/null 2> /dev/null; then : ; else { echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi fi # We need to process the po/ directory. POSUB=po ac_config_commands="$ac_config_commands default-1" for lang in $ALL_LINGUAS; do GMOFILES="$GMOFILES $lang.gmo" POFILES="$POFILES $lang.po" done if test "$gt_cv_have_gettext" = "yes"; then if test "x$ALL_LINGUAS" = "x"; then LINGUAS= else { echo "$as_me:$LINENO: checking for catalogs to be installed" >&5 echo $ECHO_N "checking for catalogs to be installed... $ECHO_C" >&6; } NEW_LINGUAS= for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then NEW_LINGUAS="$NEW_LINGUAS $presentlang" fi done LINGUAS=$NEW_LINGUAS { echo "$as_me:$LINENO: result: $LINGUAS" >&5 echo "${ECHO_T}$LINGUAS" >&6; } fi if test -n "$LINGUAS"; then for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done fi fi MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi test -d po || mkdir po if test "x$srcdir" != "x."; then if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then posrcprefix="$srcdir/" else posrcprefix="../$srcdir/" fi else posrcprefix="../" fi rm -f po/POTFILES sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ < $srcdir/po/POTFILES.in > po/POTFILES # gmodule-export-2.0 adds -Wl,--export-dynamic to the linker flags # so that libglade can get at the custom widget creation functions. if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 echo "${ECHO_T}$PKG_CONFIG" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } PKG_CONFIG="" fi fi pkg_failed=no { echo "$as_me:$LINENO: checking for REGEXXER_MODULES" >&5 echo $ECHO_N "checking for REGEXXER_MODULES... $ECHO_C" >&6; } if test -n "$PKG_CONFIG"; then if test -n "$REGEXXER_MODULES_CFLAGS"; then pkg_cv_REGEXXER_MODULES_CFLAGS="$REGEXXER_MODULES_CFLAGS" else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gmodule-export-2.0 >= 2.6.1 gtkmm-2.4 >= 2.6.0 libglademm-2.4 >= 2.4.0 gconfmm-2.6 >= 2.6.1 libpcre >= 5.0\"") >&5 ($PKG_CONFIG --exists --print-errors "gmodule-export-2.0 >= 2.6.1 gtkmm-2.4 >= 2.6.0 libglademm-2.4 >= 2.4.0 gconfmm-2.6 >= 2.6.1 libpcre >= 5.0") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_REGEXXER_MODULES_CFLAGS=`$PKG_CONFIG --cflags "gmodule-export-2.0 >= 2.6.1 gtkmm-2.4 >= 2.6.0 libglademm-2.4 >= 2.4.0 gconfmm-2.6 >= 2.6.1 libpcre >= 5.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$REGEXXER_MODULES_LIBS"; then pkg_cv_REGEXXER_MODULES_LIBS="$REGEXXER_MODULES_LIBS" else if test -n "$PKG_CONFIG" && \ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gmodule-export-2.0 >= 2.6.1 gtkmm-2.4 >= 2.6.0 libglademm-2.4 >= 2.4.0 gconfmm-2.6 >= 2.6.1 libpcre >= 5.0\"") >&5 ($PKG_CONFIG --exists --print-errors "gmodule-export-2.0 >= 2.6.1 gtkmm-2.4 >= 2.6.0 libglademm-2.4 >= 2.4.0 gconfmm-2.6 >= 2.6.1 libpcre >= 5.0") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then pkg_cv_REGEXXER_MODULES_LIBS=`$PKG_CONFIG --libs "gmodule-export-2.0 >= 2.6.1 gtkmm-2.4 >= 2.6.0 libglademm-2.4 >= 2.4.0 gconfmm-2.6 >= 2.6.1 libpcre >= 5.0" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then REGEXXER_MODULES_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gmodule-export-2.0 >= 2.6.1 gtkmm-2.4 >= 2.6.0 libglademm-2.4 >= 2.4.0 gconfmm-2.6 >= 2.6.1 libpcre >= 5.0"` else REGEXXER_MODULES_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gmodule-export-2.0 >= 2.6.1 gtkmm-2.4 >= 2.6.0 libglademm-2.4 >= 2.4.0 gconfmm-2.6 >= 2.6.1 libpcre >= 5.0"` fi # Put the nasty error message in config.log where it belongs echo "$REGEXXER_MODULES_PKG_ERRORS" >&5 { { echo "$as_me:$LINENO: error: Package requirements (gmodule-export-2.0 >= 2.6.1 gtkmm-2.4 >= 2.6.0 libglademm-2.4 >= 2.4.0 gconfmm-2.6 >= 2.6.1 libpcre >= 5.0) were not met: $REGEXXER_MODULES_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables REGEXXER_MODULES_CFLAGS and REGEXXER_MODULES_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&5 echo "$as_me: error: Package requirements (gmodule-export-2.0 >= 2.6.1 gtkmm-2.4 >= 2.6.0 libglademm-2.4 >= 2.4.0 gconfmm-2.6 >= 2.6.1 libpcre >= 5.0) were not met: $REGEXXER_MODULES_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables REGEXXER_MODULES_CFLAGS and REGEXXER_MODULES_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. " >&2;} { (exit 1); exit 1; }; } elif test $pkg_failed = untried; then { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables REGEXXER_MODULES_CFLAGS and REGEXXER_MODULES_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details." >&5 echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. Alternatively, you may set the environment variables REGEXXER_MODULES_CFLAGS and REGEXXER_MODULES_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } else REGEXXER_MODULES_CFLAGS=$pkg_cv_REGEXXER_MODULES_CFLAGS REGEXXER_MODULES_LIBS=$pkg_cv_REGEXXER_MODULES_LIBS { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } : fi dk_pkg_prefix=`$PKG_CONFIG --variable=exec_prefix "gdk-pixbuf-2.0" 2>&5` if test "x$dk_pkg_prefix" = x; then dk_pkg_path=$PATH else dk_pkg_path=$dk_pkg_prefix/bin$PATH_SEPARATOR$PATH fi # Extract the first word of "gdk-pixbuf-csource", so it can be a program name with args. set dummy gdk-pixbuf-csource; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_GDK_PIXBUF_CSOURCE+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $GDK_PIXBUF_CSOURCE in [\\/]* | ?:[\\/]*) ac_cv_path_GDK_PIXBUF_CSOURCE="$GDK_PIXBUF_CSOURCE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $dk_pkg_path do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GDK_PIXBUF_CSOURCE="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GDK_PIXBUF_CSOURCE=$ac_cv_path_GDK_PIXBUF_CSOURCE if test -n "$GDK_PIXBUF_CSOURCE"; then { echo "$as_me:$LINENO: result: $GDK_PIXBUF_CSOURCE" >&5 echo "${ECHO_T}$GDK_PIXBUF_CSOURCE" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$GDK_PIXBUF_CSOURCE" = x; then { { echo "$as_me:$LINENO: error: Oops, could not find \"gdk-pixbuf-csource\". This program is normally included with the gdk-pixbuf-2.0 package. Please make sure that your installation of gdk-pixbuf-2.0 is set up correctly. " >&5 echo "$as_me: error: Oops, could not find \"gdk-pixbuf-csource\". This program is normally included with the gdk-pixbuf-2.0 package. Please make sure that your installation of gdk-pixbuf-2.0 is set up correctly. " >&2;} { (exit 1); exit 1; }; } fi dk_pkg_prefix=`$PKG_CONFIG --variable=exec_prefix "gtk+-2.0" 2>&5` if test "x$dk_pkg_prefix" = x; then dk_pkg_path=$PATH else dk_pkg_path=$dk_pkg_prefix/bin$PATH_SEPARATOR$PATH fi # Extract the first word of "gtk-update-icon-cache", so it can be a program name with args. set dummy gtk-update-icon-cache; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_GTK_UPDATE_ICON_CACHE+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $GTK_UPDATE_ICON_CACHE in [\\/]* | ?:[\\/]*) ac_cv_path_GTK_UPDATE_ICON_CACHE="$GTK_UPDATE_ICON_CACHE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $dk_pkg_path do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GTK_UPDATE_ICON_CACHE="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GTK_UPDATE_ICON_CACHE=$ac_cv_path_GTK_UPDATE_ICON_CACHE if test -n "$GTK_UPDATE_ICON_CACHE"; then { echo "$as_me:$LINENO: result: $GTK_UPDATE_ICON_CACHE" >&5 echo "${ECHO_T}$GTK_UPDATE_ICON_CACHE" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$GTK_UPDATE_ICON_CACHE" = x; then { { echo "$as_me:$LINENO: error: Oops, could not find \"gtk-update-icon-cache\". This program is normally included with the gtk+-2.0 package. Please make sure that your installation of gtk+-2.0 is set up correctly. " >&5 echo "$as_me: error: Oops, could not find \"gtk-update-icon-cache\". This program is normally included with the gtk+-2.0 package. Please make sure that your installation of gtk+-2.0 is set up correctly. " >&2;} { (exit 1); exit 1; }; } fi dk_pkg_prefix=`$PKG_CONFIG --variable=exec_prefix "gconf-2.0" 2>&5` if test "x$dk_pkg_prefix" = x; then dk_pkg_path=$PATH else dk_pkg_path=$dk_pkg_prefix/bin$PATH_SEPARATOR$PATH fi # Extract the first word of "gconftool-2", so it can be a program name with args. set dummy gconftool-2; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_GCONFTOOL+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $GCONFTOOL in [\\/]* | ?:[\\/]*) ac_cv_path_GCONFTOOL="$GCONFTOOL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $dk_pkg_path do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GCONFTOOL="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GCONFTOOL=$ac_cv_path_GCONFTOOL if test -n "$GCONFTOOL"; then { echo "$as_me:$LINENO: result: $GCONFTOOL" >&5 echo "${ECHO_T}$GCONFTOOL" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$GCONFTOOL" = x; then { { echo "$as_me:$LINENO: error: Oops, could not find \"gconftool-2\". This program is normally included with the gconf-2.0 package. Please make sure that your installation of gconf-2.0 is set up correctly. " >&5 echo "$as_me: error: Oops, could not find \"gconftool-2\". This program is normally included with the gconf-2.0 package. Please make sure that your installation of gconf-2.0 is set up correctly. " >&2;} { (exit 1); exit 1; }; } fi if test "x$GCONF_SCHEMA_INSTALL_SOURCE" = "x"; then GCONF_SCHEMA_CONFIG_SOURCE=`gconftool-2 --get-default-source` else GCONF_SCHEMA_CONFIG_SOURCE=$GCONF_SCHEMA_INSTALL_SOURCE fi # Check whether --with-gconf-source was given. if test "${with_gconf_source+set}" = set; then withval=$with_gconf_source; GCONF_SCHEMA_CONFIG_SOURCE="$withval" fi { echo "$as_me:$LINENO: result: Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&5 echo "${ECHO_T}Using config source $GCONF_SCHEMA_CONFIG_SOURCE for schema installation" >&6; } if test "x$GCONF_SCHEMA_FILE_DIR" = "x"; then GCONF_SCHEMA_FILE_DIR='$(sysconfdir)/gconf/schemas' fi # Check whether --with-gconf-schema-file-dir was given. if test "${with_gconf_schema_file_dir+set}" = set; then withval=$with_gconf_schema_file_dir; GCONF_SCHEMA_FILE_DIR="$withval" fi { echo "$as_me:$LINENO: result: Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&5 echo "${ECHO_T}Using $GCONF_SCHEMA_FILE_DIR as install directory for schema files" >&6; } # Check whether --enable-schemas-install was given. if test "${enable_schemas_install+set}" = set; then enableval=$enable_schemas_install; case ${enableval} in yes|no) ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-schemas-install" >&5 echo "$as_me: error: bad value ${enableval} for --enable-schemas-install" >&2;} { (exit 1); exit 1; }; } ;; esac fi if test "$enable_schemas_install" != no; then GCONF_SCHEMAS_INSTALL_TRUE= GCONF_SCHEMAS_INSTALL_FALSE='#' else GCONF_SCHEMAS_INSTALL_TRUE='#' GCONF_SCHEMAS_INSTALL_FALSE= fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu # If the linker supports it, use a version script to limit the effect # of --export-dynamic to the functions which need to be exported. { echo "$as_me:$LINENO: checking whether the linker accepts --version-script" >&5 echo $ECHO_N "checking whether the linker accepts --version-script... $ECHO_C" >&6; } if test "${dk_cv_link_version_script+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else dk_save_sh_var_LDFLAGS_1=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,--version-script=$srcdir/src/exported-symbols" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then dk_cv_link_version_script=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 dk_cv_link_version_script=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$dk_save_sh_var_LDFLAGS_1 fi { echo "$as_me:$LINENO: result: $dk_cv_link_version_script" >&5 echo "${ECHO_T}$dk_cv_link_version_script" >&6; } if test "x$dk_cv_link_version_script" = xyes; then REGEXXER_VERSION_SCRIPT='-Wl,--version-script=$(top_srcdir)/'"src/exported-symbols" else REGEXXER_VERSION_SCRIPT= fi # Disabling -Wnon-virtual-dtor is nasty, but unfortunately required due to # a bug in gconfmm that triggers this warning. Not disabling this warning # would make --enable-warnings=fatal unusable. # Check whether --enable-warnings was given. if test "${enable_warnings+set}" = set; then enableval=$enable_warnings; dk_enable_warnings=$enableval else dk_enable_warnings=min fi dk_lang= case $ac_compile in *'$CXXFLAGS '*) dk_lang='C++' dk_cc=$CXX dk_conftest=conftest.${ac_ext-cc} ;; *'$CFLAGS '*) dk_lang=C dk_cc=$CC dk_conftest=conftest.${ac_ext-c} ;; esac if test "x$dk_lang" != x; then { echo "$as_me:$LINENO: checking which $dk_lang compiler warning flags to use" >&5 echo $ECHO_N "checking which $dk_lang compiler warning flags to use... $ECHO_C" >&6; } case $dk_enable_warnings in no) dk_warning_flags=;; max) dk_warning_flags="-pedantic -Wall -Wextra -w1 -Wno-non-virtual-dtor";; fatal) dk_warning_flags="-pedantic -Wall -Wextra -w1 -Wno-non-virtual-dtor -Werror";; *) dk_warning_flags="-Wall -w1 -Wno-non-virtual-dtor";; esac dk_deprecation_flags= if test "x$dk_enable_warnings" = xfatal; then dk_deprecation_prefixes="GLIBMM GTKMM" for dk_prefix in $dk_deprecation_prefixes do dk_deprecation_flags="${dk_deprecation_flags}-D${dk_prefix}_DISABLE_DEPRECATED " done fi dk_tested_flags= if test "x$dk_warning_flags" != x; then # Keep in mind that the dummy source must be devoid of any # problems that might cause diagnostics. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main(int argc, char** argv) { return (argv != 0) ? argc : 0; } _ACEOF for dk_flag in $dk_warning_flags do # Test whether the compiler accepts the flag. GCC doesn't bail # out when given an unsupported flag but prints a warning, so # check the compiler output instead. dk_cc_out=`$dk_cc $dk_tested_flags $dk_flag -c "$dk_conftest" 2>&1 || echo failed` rm -f "conftest.${OBJEXT-o}" if test "x$dk_cc_out" = x; then if test "x$dk_tested_flags" = x; then dk_tested_flags=$dk_flag else dk_tested_flags="$dk_tested_flags $dk_flag" fi else echo "$dk_cc_out" >&5 fi done rm -f "$dk_conftest" fi dk_all_flags=$dk_deprecation_flags$dk_tested_flags REGEXXER_WARNING_FLAGS=$dk_all_flags test "x$dk_all_flags" != x || dk_all_flags=none { echo "$as_me:$LINENO: result: $dk_all_flags" >&5 echo "${ECHO_T}$dk_all_flags" >&6; } fi ac_config_files="$ac_config_files Makefile po/Makefile.in" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi ac_config_commands="$ac_config_commands po/stamp-it" if test -z "${GCONF_SCHEMAS_INSTALL_TRUE}" && test -z "${GCONF_SCHEMAS_INSTALL_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"GCONF_SCHEMAS_INSTALL\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"GCONF_SCHEMAS_INSTALL\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir fi echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # Find out whether ``test -x'' works. Don't use a zero-byte file, as # systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then as_executable_p="test -x" else as_executable_p=: fi rm -f conf$$.file # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by regexxer $as_me 0.9, which was generated by GNU Autoconf 2.60. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ regexxer config.status 0.9 configured by $0, generated by GNU Autoconf 2.60, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" INTLTOOL_PERL='${INTLTOOL_PERL}' ac_aux_dir='${ac_aux_dir}' prefix="$prefix" exec_prefix="$exec_prefix" INTLTOOL_LIBDIR="$libdir" INTLTOOL_EXTRACT='${INTLTOOL_EXTRACT}' INTLTOOL_ICONV='${INTLTOOL_ICONV}' INTLTOOL_MSGFMT='${INTLTOOL_MSGFMT}' INTLTOOL_MSGMERGE='${INTLTOOL_MSGMERGE}' INTLTOOL_XGETTEXT='${INTLTOOL_XGETTEXT}' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "intltool") CONFIG_COMMANDS="$CONFIG_COMMANDS intltool" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "po/stamp-it") CONFIG_COMMANDS="$CONFIG_COMMANDS po/stamp-it" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim CYGPATH_W!$CYGPATH_W$ac_delim PACKAGE!$PACKAGE$ac_delim VERSION!$VERSION$ac_delim ACLOCAL!$ACLOCAL$ac_delim AUTOCONF!$AUTOCONF$ac_delim AUTOMAKE!$AUTOMAKE$ac_delim AUTOHEADER!$AUTOHEADER$ac_delim MAKEINFO!$MAKEINFO$ac_delim install_sh!$install_sh$ac_delim STRIP!$STRIP$ac_delim INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim mkdir_p!$mkdir_p$ac_delim AWK!$AWK$ac_delim SET_MAKE!$SET_MAKE$ac_delim am__leading_dot!$am__leading_dot$ac_delim AMTAR!$AMTAR$ac_delim am__tar!$am__tar$ac_delim am__untar!$am__untar$ac_delim ACLOCAL_FLAGS!$ACLOCAL_FLAGS$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim EXEEXT!$EXEEXT$ac_delim OBJEXT!$OBJEXT$ac_delim DEPDIR!$DEPDIR$ac_delim am__include!$am__include$ac_delim am__quote!$am__quote$ac_delim AMDEP_TRUE!$AMDEP_TRUE$ac_delim AMDEP_FALSE!$AMDEP_FALSE$ac_delim AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim CCDEPMODE!$CCDEPMODE$ac_delim am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim CXX!$CXX$ac_delim CXXFLAGS!$CXXFLAGS$ac_delim ac_ct_CXX!$ac_ct_CXX$ac_delim CXXDEPMODE!$CXXDEPMODE$ac_delim am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim INTLTOOL_DESKTOP_RULE!$INTLTOOL_DESKTOP_RULE$ac_delim INTLTOOL_DIRECTORY_RULE!$INTLTOOL_DIRECTORY_RULE$ac_delim INTLTOOL_KEYS_RULE!$INTLTOOL_KEYS_RULE$ac_delim INTLTOOL_PROP_RULE!$INTLTOOL_PROP_RULE$ac_delim INTLTOOL_OAF_RULE!$INTLTOOL_OAF_RULE$ac_delim INTLTOOL_PONG_RULE!$INTLTOOL_PONG_RULE$ac_delim INTLTOOL_SERVER_RULE!$INTLTOOL_SERVER_RULE$ac_delim INTLTOOL_SHEET_RULE!$INTLTOOL_SHEET_RULE$ac_delim INTLTOOL_SOUNDLIST_RULE!$INTLTOOL_SOUNDLIST_RULE$ac_delim INTLTOOL_UI_RULE!$INTLTOOL_UI_RULE$ac_delim INTLTOOL_XAM_RULE!$INTLTOOL_XAM_RULE$ac_delim INTLTOOL_KBD_RULE!$INTLTOOL_KBD_RULE$ac_delim INTLTOOL_XML_RULE!$INTLTOOL_XML_RULE$ac_delim INTLTOOL_XML_NOMERGE_RULE!$INTLTOOL_XML_NOMERGE_RULE$ac_delim INTLTOOL_CAVES_RULE!$INTLTOOL_CAVES_RULE$ac_delim INTLTOOL_SCHEMAS_RULE!$INTLTOOL_SCHEMAS_RULE$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF CEOF$ac_eof _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF INTLTOOL_THEME_RULE!$INTLTOOL_THEME_RULE$ac_delim INTLTOOL_SERVICE_RULE!$INTLTOOL_SERVICE_RULE$ac_delim INTLTOOL_EXTRACT!$INTLTOOL_EXTRACT$ac_delim INTLTOOL_MERGE!$INTLTOOL_MERGE$ac_delim INTLTOOL_UPDATE!$INTLTOOL_UPDATE$ac_delim INTLTOOL_PERL!$INTLTOOL_PERL$ac_delim INTLTOOL_ICONV!$INTLTOOL_ICONV$ac_delim INTLTOOL_MSGFMT!$INTLTOOL_MSGFMT$ac_delim INTLTOOL_MSGMERGE!$INTLTOOL_MSGMERGE$ac_delim INTLTOOL_XGETTEXT!$INTLTOOL_XGETTEXT$ac_delim ALL_LINGUAS!$ALL_LINGUAS$ac_delim GETTEXT_PACKAGE!$GETTEXT_PACKAGE$ac_delim CPP!$CPP$ac_delim GREP!$GREP$ac_delim EGREP!$EGREP$ac_delim USE_NLS!$USE_NLS$ac_delim MSGFMT!$MSGFMT$ac_delim GMSGFMT!$GMSGFMT$ac_delim XGETTEXT!$XGETTEXT$ac_delim CATALOGS!$CATALOGS$ac_delim CATOBJEXT!$CATOBJEXT$ac_delim DATADIRNAME!$DATADIRNAME$ac_delim GMOFILES!$GMOFILES$ac_delim INSTOBJEXT!$INSTOBJEXT$ac_delim INTLLIBS!$INTLLIBS$ac_delim PO_IN_DATADIR_TRUE!$PO_IN_DATADIR_TRUE$ac_delim PO_IN_DATADIR_FALSE!$PO_IN_DATADIR_FALSE$ac_delim POFILES!$POFILES$ac_delim POSUB!$POSUB$ac_delim MKINSTALLDIRS!$MKINSTALLDIRS$ac_delim PKG_CONFIG!$PKG_CONFIG$ac_delim REGEXXER_MODULES_CFLAGS!$REGEXXER_MODULES_CFLAGS$ac_delim REGEXXER_MODULES_LIBS!$REGEXXER_MODULES_LIBS$ac_delim GDK_PIXBUF_CSOURCE!$GDK_PIXBUF_CSOURCE$ac_delim GTK_UPDATE_ICON_CACHE!$GTK_UPDATE_ICON_CACHE$ac_delim GCONFTOOL!$GCONFTOOL$ac_delim GCONF_SCHEMA_CONFIG_SOURCE!$GCONF_SCHEMA_CONFIG_SOURCE$ac_delim GCONF_SCHEMA_FILE_DIR!$GCONF_SCHEMA_FILE_DIR$ac_delim GCONF_SCHEMAS_INSTALL_TRUE!$GCONF_SCHEMAS_INSTALL_TRUE$ac_delim GCONF_SCHEMAS_INSTALL_FALSE!$GCONF_SCHEMAS_INSTALL_FALSE$ac_delim REGEXXER_VERSION_SCRIPT!$REGEXXER_VERSION_SCRIPT$ac_delim REGEXXER_WARNING_FLAGS!$REGEXXER_WARNING_FLAGS$ac_delim LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 44; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$ac_file_inputs $ac_f" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input="Generated from "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; :H) # # CONFIG_HEADER # _ACEOF # Transform confdefs.h into a sed script `conftest.defines', that # substitutes the proper values into config.h.in to produce config.h. rm -f conftest.defines conftest.tail # First, append a space to every undef/define line, to ease matching. echo 's/$/ /' >conftest.defines # Then, protect against being on the right side of a sed subst, or in # an unquoted here document, in config.status. If some macros were # called several times there might be several #defines for the same # symbol, which is useless. But do not sort them, since the last # AC_DEFINE must be honored. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* # These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where # NAME is the cpp macro being defined, VALUE is the value it is being given. # PARAMS is the parameter list in the macro definition--in most cases, it's # just an empty string. ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' ac_dB='\\)[ (].*,\\1define\\2' ac_dC=' ' ac_dD=' ,' uniq confdefs.h | sed -n ' t rset :rset s/^[ ]*#[ ]*define[ ][ ]*// t ok d :ok s/[\\&,]/\\&/g s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p ' >>conftest.defines # Remove the space that was appended to ease matching. # Then replace #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. # (The regexp can be short, since the line contains either #define or #undef.) echo 's/ $// s,^[ #]*u.*,/* & */,' >>conftest.defines # Break up conftest.defines: ac_max_sed_lines=50 # First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" # Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" # Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" # et cetera. ac_in='$ac_file_inputs' ac_out='"$tmp/out1"' ac_nxt='"$tmp/out2"' while : do # Write a here document: cat >>$CONFIG_STATUS <<_ACEOF # First, check the format of the line: cat >"\$tmp/defines.sed" <<\\CEOF /^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def /^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def b :def _ACEOF sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail grep . conftest.tail >/dev/null || break rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines conftest.tail echo "ac_result=$ac_in" >>$CONFIG_STATUS cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then echo "/* $configure_input */" >"$tmp/config.h" cat "$ac_result" >>"$tmp/config.h" if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else rm -f $ac_file mv "$tmp/config.h" $ac_file fi else echo "/* $configure_input */" cat "$ac_result" fi rm -f "$tmp/out12" # Compute $ac_file's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $ac_file | $ac_file:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $ac_file" >`$as_dirname -- $ac_file || $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X$ac_file : 'X\(//\)[^/]' \| \ X$ac_file : 'X\(//\)$' \| \ X$ac_file : 'X\(/\)' \| . 2>/dev/null || echo X$ac_file | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir=$dirpart/$fdir case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; "intltool":C) for file in intltool-extract intltool-merge intltool-update; do sed -e "s|@INTLTOOL_EXTRACT@|`pwd`/intltool-extract|g" \ -e "s|@INTLTOOL_LIBDIR@|${INTLTOOL_LIBDIR}|g" \ -e "s|@INTLTOOL_ICONV@|${INTLTOOL_ICONV}|g" \ -e "s|@INTLTOOL_MSGFMT@|${INTLTOOL_MSGFMT}|g" \ -e "s|@INTLTOOL_MSGMERGE@|${INTLTOOL_MSGMERGE}|g" \ -e "s|@INTLTOOL_XGETTEXT@|${INTLTOOL_XGETTEXT}|g" \ -e "s|@INTLTOOL_PERL@|${INTLTOOL_PERL}|g" \ < ${ac_aux_dir}/${file}.in > ${file}.out if cmp -s ${file} ${file}.out 2>/dev/null; then rm -f ${file}.out else mv -f ${file}.out ${file} fi chmod ugo+x ${file} chmod u+w ${file} done ;; "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile esac ;; "po/stamp-it":C) rm -f "po/stamp-it" "po/stamp-it.tmp" "po/POTFILES" "po/Makefile.tmp" >"po/stamp-it.tmp" sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/po/POTFILES.in" | sed '$!s/$/ \\/' >"po/POTFILES" if test ! -f "po/Makefile"; then { { echo "$as_me:$LINENO: error: po/Makefile is not ready." >&5 echo "$as_me: error: po/Makefile is not ready." >&2;} { (exit 1); exit 1; }; } fi mv "po/Makefile" "po/Makefile.tmp" sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r po/POTFILES } ' "po/Makefile.tmp" >"po/Makefile" rm -f "po/Makefile.tmp" mv "po/stamp-it.tmp" "po/stamp-it" ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi regexxer-0.9/AUTHORS0000644000175000017500000000017510547006173011212 00000000000000regexxer is a pet project of Daniel Elstner Murray Cumming also helped at lot regexxer-0.9/COPYING0000644000175000017500000004312210547645276011211 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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 of the License, 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 this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. regexxer-0.9/ChangeLog0000644000175000017500000043173010566141757011732 000000000000000.9: 2007-02-18 Daniel Elstner * NEWS: Final update for the release. Yay! 2007-02-18 Daniel Elstner * src/controller.h: Minor code reformatting: Change instances of in template argument lists to . * src/filebuffer.{cc,h}: ditto, * src/fileshared.{cc,h}: ditto, * src/filetree.h: ditto, * src/filetreeprivate.{cc,h}: ditto, * src/pcreshell.{cc,h}: ditto. * src/mainwindow.cc (program_license): Add terminating newline to last paragraph. 2007-02-18 Daniel Elstner * src/stringutils.{cc,h} (Util::wstring_to_utf8): New function to convert an std::wstring to UTF-8. This is a temporary measure to deal with the same locale issues as discussed in the comments to bug #399216. (Util::int_to_string): Use a wide character stream and convert the result to UTF-8 with Util::wstring_to_utf8(). * src/statusline.cc (CounterBox::stringstream_): Change to std::wostringstream, as above. (CounterBox::number_to_string): Use Util::wstring_to_utf8(). 2007-02-06 Daniel Elstner * configure.ac (ACLOCAL_FLAGS): Declare variable as precious using AC_ARG_VAR(), which also makes it a substituted variable. This should prevent inconsistent behavior if the variable changes in the environment after configure has run. (ACLOCAL_AMFLAGS): Remove substitution. * Makefile.am (ACLOCAL_AMFLAGS): Define variable. 2007-01-20 Daniel Elstner * INSTALL: Remove generic installation instructions from the repository, as this file is supplied by automake. 2007-01-17 Daniel Elstner * src/stringutils.{cc,h} (Util::filename_short_display_name): Rename from Util::shorten_pathname(). Return the display name of the shortened filename encoded in UTF-8. (Util::expand_pathname): Remove as this function is no longer being used anywhere. * src/mainwindow.cc (MainWindow::set_title_filename): Use Util::filename_short_display_name(). 2007-01-17 Daniel Elstner * Makefile.am (rxlocaledir): New variable that defines the locale directory the same way intltool does. (global_defs): Use $(rxlocaledir) instead of $(localedir). In addition to being different from intltool's definition, standard $(localedir) also requires at least Autoconf 2.59c. 2007-01-16 Daniel Elstner * src/statusline.cc (CounterBox::CounterBox): Change the shadow type to Gtk::SHADOW_ETCHED_IN. Still looks somewhat ugly though; I need to think of something better. Also enable the single line mode property of the numeric labels, in order to avoid resizing if the digits in the font have different height. (StatusLine::StatusLine): Increase HBox spacing to 3 pixels. 2007-01-16 Daniel Elstner * src/filetree.cc (regexxer_create_file_tree): Prefix function signature with G_MODULE_EXPORT, as this will probably be required on Windows to enable dynamic loading. * src/statusline.cc (regexxer_create_status_line): Ditto. 2007-01-16 Daniel Elstner * m4/dk-warn.m4 (DK_ARG_ENABLE_WARNINGS): Accept a fourth argument which can be used to generate -DMODULE_DISABLE_DEPRECATED defines by specifying a list of module prefixes. These flags are produced only in --enable-warnings=fatal mode, in order to avoid breaking the default build if new deprecations appear in some module. * configure.ac (REGEXXER_WARNING_FLAGS): List the module prefixes GLIBMM and GTKMM in the fourth argument to DK_ARG_ENABLE_WARNINGS. * Makefile.am (global_defs): Remove -D*_DISABLE_DEPRECATED flags, since they are now included in $(REGEXXER_WARNING_FLAGS). 2007-01-16 Daniel Elstner * Makefile.am (ui/stockimages.h): Accept backslash '\' as directory separator in filenames, in addition to the forward slash '/'. You can never know. 2007-01-15 Daniel Elstner * MAINTAINERS: Add my real name. 2007-01-14 Daniel Elstner * src/translation.{cc,h} (Util::compose_argv): New function with the functionality of compose_impl() but using a format string of type const char*. This implementation operates on bytes instead of Unicode code points, and copies the chunks between placeholders in one go instead of each character separately. (Util::compose): Call compose_argv() instead of compose_impl() and change the type of the format argument to const char* because the format string really should be a string literal. Also, inline all of these overloads since they just forward their arguments to compose_argv() anyway, so that inlining actually reduces code size. 2007-01-14 Daniel Elstner * src/fileshared.h: Replace occurrences of "lhs" and "rhs" with "a" and "b", respectively. (BoundState): Remove BOUND_MASK value from enumeration as it is nowhere being used. 2007-01-14 Daniel Elstner * src/filetree.{cc,h}: Clean up the code a bit. In particular, change occurrences of Gtk::TreePath to Gtk::TreeModel::Path. * src/filetreeprivate.{cc,h}: Likewise. * src/sharedptr.h (Util::SharedPtr::SharedPtr): Inline. (Util::SharedPtr::~SharedPtr): Remove assertion and inline. * src/sharedptr.cc: Remove now empty file. * Makefile.am (src_regexxer_SOURCES): Remove src/sharedptr.cc. 2007-01-14 Daniel Elstner * src/filetree.cc (regexxer_create_file_tree): Move function to the global namespace. Putting it inside an anonymous namespace just obfuscated the code, as this function is exported for the world to see. * src/statusline.cc (regexxer_create_status_line): Likewise. 2007-01-13 Daniel Elstner * MAINTAINERS: Add file for the benefit of sysadmin tools. 2007-01-13 Daniel Elstner * src/globalstrings.h (conf_dir_application): New string constant defining the directory of regexxer in the GConf database. This string literal replaces the REGEXXER_GCONF_DIRECTORY macro which used to be defined in the Makefile. This global macro definition was inherently pointless as it was not configurable anyway. * src/main.cc (initialize_configuration): Use conf_dir_application instead of REGEXXER_GCONF_DIRECTORY. * src/prefdialog.cc (PrefDialog::initialize_configuration): ditto. * configure.ac (REGEXXER_GCONF_DIRECTORY): Remove substitution. (PKG_CHECK_MODULES): Add gmodule-export-2.0 to the module list to get the -Wl,--export-dynamic flag automatically. (DK_LINK_EXPORT_DYNAMIC): Remove macro invocation as it no longer necessary. Also, add comments elaborating about the whole linker stuff. * Makefile.am (global_defs): Remove -DREGEXXER_GCONF_DIRECTORY. (src_regexxer_LDFLAGS): Get rid of $(REGEXXER_EXPORT_DYNAMIC). * m4/dk-export.m4 (DK_LINK_EXPORT_DYNAMIC): Remove macro. 2007-01-13 Daniel Elstner * src/filetree.cc (FileTree::find_recursively): Replace uses of Glib::filename_display_name() by Glib::filename_display_basename() to enable translation of well-known locations in future. Store the full path in the directory stack. (FileTree::find_fill_dirstack): Convert the full path from the stack to a displayable name with Glib::filename_display_basename(). (FileTree::save_file_at_iter): Determine the basename for use in the error message with Glib::filename_display_basename(). * src/mainwindow.cc (MainWindow::set_title_filename): Call Glib::filename_display_basename() to get the filename to be displayed in the window title. * src/filetreeprivate.{cc,h}: Some early spring cleaning. 2007-01-12 Daniel Elstner * src/fileio.cc: Prefix function and data definitions within anonymous namespaces with the "static" keyword. Although this usage of "static" is deprecated in C++, GCC still exports symbols defined in anonymous namespaces. For more information, see: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18267 * src/fileshared.cc: ditto, * src/main.cc: ditto, * src/mainwindow.cc: ditto, * src/pcreshell.cc: ditto, * src/prefdialog.cc: ditto, * src/stringutils.cc: ditto, * src/translation.cc: ditto. 2007-01-11 Daniel Elstner * src/mainwindow.cc (MainWindow::initialize): Really minor tweaks. 2007-01-11 Daniel Elstner * src/main.cc (RegexxerOptions): Make init_state_ a value member of the class instead creating it dynamically. This simplification is now possible since the RegexxerOptions object will be allocated dynamically anyway. (RegexxerOptions::init_state): Rename from take_init_state(), and make it return a const reference. (main): Use new init_state() method when initializing the window. * src/mainwindow.{cc,h} (MainWindow::initialize): Change init parameter type to a const reference. 2007-01-11 Daniel Elstner * Makefile.am (global_defs): Define REGEXXER_LOCALEDIR to the "$(locale)" directory path. Remove define for REGEXXER_DATADIR since it was used only as part of the locale directory. * src/main.cc (main): Use REGEXXER_LOCALEDIR. (locale_directory): Remove string literal. 2007-01-11 Daniel Elstner * ui/prefdialog.glade (label_toolbar_style): Assign mnemonic widget combo_toolbar_style as GTK+ messes up the automatic assignment. 2007-01-11 Daniel Elstner * src/filebuffer.cc (FileBuffer::create_with_error_message): Use UTF-8 encoded typographically correct apostrophe in the title string. * src/filetree.cc (FileTree::find_recursively): Replace call to Util::filename_to_utf8_fallback() by Glib::filename_display_name(). (FileTree::find_fill_dirstack): Likewise. (FileTree::save_file_at_iter): Use UTF-8 encoded typographically correct quote characters in the error message string. (FileTree::load_file_with_fallback): Likewise. * src/pcreshell.cc (throw_regex_error): New function to throw a Pcre::Error exception with a properly formatted error message. (Pcre::Pattern::Pattern): Use throw_regex_error(). * src/prefdialog.cc (PrefDialog::on_entry_fallback_activate): Use proper Unicode quotes in error message string. * src/mainwindow.cc (MainWindow::initialize): Run the search automatically only if also a filename pattern has been specified on the command line. (MainWindow::confirm_quit_request): Use proper Unicode apostrophe in the error message. (MainWindow::on_find_files): Likewise. Also remove the code to format an error message for regex exceptions, as Pcre::Error now already carries a user-friendly message. (MainWindow::set_title_filename): Replace calls to Util::filename_to_utf8_fallback() by Glib::filename_display_name(). * src/stringutils.{cc,h} (Util::shell_pattern_to_regex): Minor optimization twiddling. (Util::substitute_references): Likewise. (Util::filename_to_utf8_fallback): Remove function, as we can now simply use Glib::filename_display_name() instead. (Util::convert_to_ascii): Remove; no longer used anywhere. (Util::shorten_pathname): Use G_IS_DIR_SEPARATOR() instead of comparing against G_DIR_SEPARATOR directly. Necessary because on win32 both '/' and '\' are accepted as directory separators. * ui/regexxer.schemas.in: Reformat and use proper Unicode quotes and apostrophes. * ui/prefdialog.glade: Likewise. Also remove some property specifications which assigned default values anyway. * ui/mainwindow.glade: As above, strip pointless property settings. 2007-01-11 Daniel Elstner * src/fileio.cc (save_iochannel): Add comment about assertions and reorganize the code a bit. (Regexxer::save_file): Elaborate on why IOChannel::close() is used explicitely. * src/filetreeprivate.cc (FileTreePrivate::collatekey_sort_func): Fix oversight: Subtracting two unsigned values and converting the result to a signed type relies on implementation-defined behavior. Explicitely cast the operands to a signed type before substraction. * src/main.cc (main): Use g_get_prgname() instead of the string literal PACKAGE_TARNAME in the error message for Glib::OptionError exceptions. 2007-01-10 Daniel Elstner * src/filebuffer.cc (FileBuffer::create_with_error_message): Get rid of the inappropriate plea to translators to replace space with no-break space in the message title. Apart from the fact that it was a bad idea in the first place to make translators put up with this internal issue, the no-break spaces have no point being there at all. A single untranslated no-break space between the error icon and the title text is all that is warranted. 2007-01-09 Daniel Elstner * autogen.sh: Simplify redirection of aclocal and automake output when testing for versioned executables. 2007-01-09 Daniel Elstner * src/mainwindow.cc (program_license): New string literal with the same license information as at the top of the file. (MainWindow::on_about): Show the license information in the about dialog. 2007-01-09 Daniel Elstner * src/mainwindow.cc: Remove leftover includes and , which had only been required for the tooltip hack removed earlier. Also, collapse multiple empty lines into one. 2007-01-08 Daniel Elstner * configure.ac (ACLOCAL_AMFLAGS): Substitute $ACLOCAL_FLAGS from the environment at configure time instead of when make runs. Formerly, the flags could change without reconfiguring, which is probably a bad idea and contrary to Makefile conventions. 2007-01-08 Daniel Elstner * configure.ac (AC_INIT): Replace my email address for bug reports with the URI . This address is redirected to , so that the bug tracker now has a canonical URI that hides the numeric group ID. 2007-01-07 Daniel Elstner * ui/mainwindow.glade: Again remove the tearoff menus and the menubar and toolbar handle boxes. This was just superfluous UI clutter not actually used by anyone. (button_folder): Get rid of the custom button that used to fire up the file chooser dialog, plus the accompanying text entry for display and editing of the folder name. Replace this old cruft with a fresh and crisp GtkFileChooserButton plus a label. Yay! (combo_pattern_entry): Reactivate commented-out markup that sets a tooltip on the internal GtkEntry child of combo_pattern. As this finally supported by libglade it is no longer necessary to hack around the limitation in code. * src/mainwindow.{cc,h} (MainWindow): Adapt the implementation to work with the changed UI layout. Change the folder selection handling as necessary. (MainWindow::load_xml): Remove the tooltip hack for the pattern entry, since libglade now allows for this in the glade file. (MainWindow::get_folder_fullname): Remove now unused method. (MainWindow::on_select_folder): Likewise. 2007-01-07 Daniel Elstner * src/main.cc: #include for std::auto_ptr<> rather than relying on indirect inclusion by some other header file. 2007-01-07 Daniel Elstner * src/main.cc: Remove and includes left over from the old libpopt code. 2007-01-06 Daniel Elstner * src/pcreshell.h ({Compile,Match}Options): Eeek, as it turns out the flag ANCHORED (and probably others too) are valid flags at both compile time and match time. Move ANCHORED from CompileOptions to MatchOptions as I need it there for the following /g matching fix. These enumerations should of course be properly namespaced instead; this is just a quick hack for now. * src/pcreshell.cc: Rename a couple of variables to improve code clarity. * src/filebuffer.cc (FileBuffer::find_matches): Set the ANCHORED flag in addition to the NOT_EMPTY flag if the previous match was empty in /g mode. This matches the algorithm outlined in recent versions of the PCRE documentation to mimic the behavior of Perl. 2007-01-06 Daniel Elstner * src/main.cc (RegexxerOptions): New class that implements the command-line option interface using the option parsing facilities of glibmm instead of libpopt. (parse_command_line): Remove old function that used libpopt to parse command line options. (main): Use the new option parsing code. Also, merge the gettext initialization into a single call again. The special trickery that used to bind the codeset separately after option processing is no longer necessary with the new parser. * src/mainwindow.{cc,h} (Regexxer::InitState): Reorganize the data structure so that default-constructed objects equal the default values of the command-line options. This is a work-around for glibmm bug #393571. (MainWindow::initialize): Adapt to Regexxer::InitState changes. * src/translation.{cc,h} (Util::enable_utf8_gettext): Merge back into Util::initialize_gettext(), as the separation is no longer necessary. (compose_impl): Optimize a bit by reserving the memory for the result string in advance. Also, replace a couple of `...' quotes with "..." in a warning message. * Makefile.am (src_regexxer_LDADD): Remove $(POPTLIBS). * configure.ac (DK_LIB_POPT): Remove check for libpopt. * m4/dk-popt.m4: Remove now obsolete file. 2007-01-06 Daniel Elstner * configure.ac (AC_CONFIG_SRCDIR): Name a file that will be truly unique to regexxer. 2007-01-06 Daniel Elstner * m4/dk-{export,feature,pkgprog,popt,warn}.m4: Prefix M4 macro filenames with "dk-", to avoid clashes with other applications installing their M4 files here. 2007-01-06 Daniel Elstner * NEWS: Update. 2007-01-06 Daniel Elstner * src/exported-symbols: Add comment about the purpose of this file. 2007-01-06 Daniel Elstner * src/filebuffer.cc (FileBuffer::on_erase): Copy tagtable->match into a local variable and use it. This fixes a compilation error with the Intel C++ compiler caused by the creation of a temporary inside the statement expression of g_return_if_fail(). 2007-01-06 Daniel Elstner * src/globalstrings.h (glade_aboutdialog_filename): Remove leftover string constant. 2007-01-06 Daniel Elstner * COPYING: Update to latest version shipped with Automake. * INSTALL: Likewise. 2007-01-06 Daniel Elstner * src/mainwindow.{cc,h} (MainWindow::on_about): Replace custom about dialog with stock GTK+ one. (on_about_dialog_response): Rename from on_about_dialog_hide(). Add unused function parameter for the response ID. * src/aboutdialog.{cc,h}: Remove now superfluous files. * ui/aboutdialog.glade: Likewise. * Makefile.am (src_regexxer_SOURCES): Remove src/aboutdialog.{cc,h} from the list of source files. (dist_pkgdata_DATA): Remove ui/aboutdialog.glade from list. * configure.ac (REGEXXER_MODULES): Require gtkmm 2.6, in which the stock about dialog first appeared. 2007-01-06 Daniel Elstner * NEWS: Update. * README: Minor reformatting. 2007-01-06 Daniel Elstner * src/miscutils.cc: Remove file, as it was essentially empty except for including miscutils.h. * Makefile.am (src_regexxer_SOURCES): Remove src/miscutils.cc. 2007-01-06 Daniel Elstner * src/*.{cc,h}: Update copyright notice: The postal address of the Free Software Foundation changed, and my email address too. Also, remove the statement I had inserted which explicitely disallowed using a later version of the license. I think I do not have to ask for permission from contributors, since the copyright notice only mentions me as the copyright holder, so technically everyone automatically transferred her copyright to me. Anyway, the change is utterly minor and the notice now matches what everyone else is using. Also use the opportunity to get rid of the version control substitutions and the trailing empty line in every file. * ui/aboutdialog.glade: Update my email address. 2007-01-06 Daniel Elstner * Makefile.am (src_regexxer_LDADD): Replace $(LIBINTL) substitution with $(INTLLIBS). Apparently AM_GLIB_GNU_GETTEXT(), unlike plain AM_GNU_GETTEXT(), assigns INTLLIBS instead of LIBINTL for whatever reason. This difference is nowhere documented. Funny noone has noticed this yet, since as far as I can tell it is empty only with GNU libc. 2007-01-06 Daniel Elstner * autogen.sh: Reduce the list of cruft to delete; it was a bit over the top and too long to maintain anyway. Also, remove colons from substitutions again, as the script no longer assigns the empty string anywhere to the variables in question. 2007-01-06 Daniel Elstner * autogen.sh: Comment "set -ex" and remove pointless ":;". 2007-01-06 Daniel Elstner * autogen.sh: Further simplify the script by making use of set -e and colons in substitutions, like ${foo:-bar}. Although some truly ancient shells do not provide these features, this does not matter much for scripts intended for maintainer use. 2007-01-06 Daniel Elstner * autogen.sh: Reduce number of rm -f invocations by means of line continuation. 2007-01-05 Daniel Elstner * regexxer.{desktop,schemas}.in: Move to ui/ directory to reduce clutter in the toplevel directory. * Makefile.am ({desktop,schemas}_in_files): Update accordingly. ({desktop,schemas}_DATA): Likewise. (ui/stockimages.h): Do not rely on $(mkdir_p) because it is already obsolete but AC_PROG_MKDIR_P() is too recent to require. Just use plain mkdir and test for the existence of the directory on failure. Also, add a comment explaining the implicit directory creation. 2007-01-05 Daniel Elstner * configure.ac (AC_PREREQ): Require Autoconf 2.58. (AC_CONFIG_MACRO_DIR): Specify m4 macro directory. (IT_PROG_INTLTOOL): Replace obsolete AC_PROG_INTLTOOL(). Require at least intltool 0.35 for full po/LINGUAS and po/Makevars support. (ALL_LINGUAS): No longer set this environment variable, but rely on po/LINGUAS support. Get rid of the CONFIG_STATUS_DEPENDENCIES substitution hack. (GETTEXT_PACKAGE): Move the variable assignment to AC_SUBST(). * po/Makevars: Reintroduce this file, as it is finally properly supported by intltool. Set XGETTEXT_OPTIONS to the list of keywords xgettext should recognize. * autogen.sh: Get rid of the hack that appends XGETTEXT_KEYWORDS to po/Makefile.in.in. Also change the invocation order of the various setup tools according to the recommendation found in the gettext manual. Delete some more cruft from the m4/ directory. * ABOUT-NLS: Get rid of this both large and largely useless file. Probably a left-over from the time before glib-gettextize. 2007-01-05 Daniel Elstner * m4/export.m4: New file. Defines generalized replacements in the DK_ namespace for the cxx.m4 macros REGEXXER_LINK_EXPORT_DYNAMIC() and REGEXXER_LINK_VERSION_SCRIPT(). * m4/feature.m4: New file. Defines a couple of generic helper macros for feature testing. * m4/pkgproc.m4: New file. Defines the macro DK_PKG_PATH_PROG() which replaces REGEXXER_PKG_PATH_PROG() from misc.m4. * m4/popt.m4: New file. Defines DK_LIB_POPT(), a generalized replacement for REGEXXER_LIB_POPT() from misc.m4. * m4/warn.m4: New file. Defines the macro DK_ARG_ENABLE_WARNINGS() which is a generalized and also somewhat improved replacement for REGEXXER_ARG_ENABLE_WARNINGS() from cxx.m4. Note that the argument values of --enable-warnings= have changed; see ./configure --help. * m4/{cxx,misc}.m4: Remove files. * configure.ac: Use the new macros in the DK_ namespace. (DK_ARG_ENABLE_WARNINGS): Pass "-Wno-non-virtual-dtor" to the compiler if accepted. Nasty, but due to the gconfmm bug the only way to recover the functionality of --enable-warnings=fatal. Assign the warning flags to the variable REGEXXER_WARNING_FLAGS. * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Again raise the value passed to --enable-warnings= from "maximum" to "fatal", now that we work around the gconfmm bug. (AM_CPPFLAGS): Add $(REGEXXER_WARNING_FLAGS). (src_regexxer_LDADD): Reorder the library substitutions so that the ones more likely to depend on others in the list come first. 2007-01-05 Daniel Elstner * pixmaps/*.png: Move images to ui/ directory. This makes for a more streamlined directory structure, and besides "pixmaps" was a horrible name anyway. * pixmaps: Remove directory. * Makefile.am: Accomodate for the change from "pixmaps" to "ui". As a side effect, the .dirstamp hack for ui/ is also no longer necessary, as the ui/stockimages.h rule already covers this. * src/main.cc: Change stockimages.h #include accordingly. 2007-01-05 Daniel Elstner * macros: Rename directory to m4. I love Subversion. * autogen.sh: Change "-I macros" to "-I m4" in aclocal invocation. * configure.ac (ACLOCAL_AMFLAGS): Likewise for this substitution. 2007-01-05 Daniel Elstner * Makefile.am (AM_CPPFLAGS): Remove leftover $(PCRE_CFLAGS). (src_regexxer_LDADD): Likewise for $(PCRE_LIBS). 2007-01-05 Daniel Elstner * configure.ac (PCRE_CHECK_VERSION): Remove invocation of hand- crafted macro and just add "libpcre >= 5.0" to PKG_CHECK_MODULES() instead. PCRE supports pkg-config since version 5.0, released September 2004. I think it is safe to make that a requirement. (PCRE_CHECK_UTF8): Ditch the UTF-8 check, which was problematic anyway since it involved executing a runtime test. Just rely on regexxer to report an error at runtime if libpcre is found not to support UTF-8. This is acceptable since updating to a libpcre with UTF-8 support does not require rebuilding regexxer. * macros/pcre.m4: Get rid of it. 2007-01-04 Daniel Elstner * Makefile.am: Switch to a non-recursing build system. The entire source tree except for the po/ subdirectory is now built from the toplevel Makefile. For the rationale of this change, see Peter Miller's excellent paper "Recursive Make Considered Harmful": http://members.pcug.org.au/~millerp/rmch/recu-make-cons-harm.html The new system makes use of Automake's subdir-objects feature to put compilation results into the src/ subdirectory. The Automake variables and rules from the subdirectories have been merged into the toplevel Makefile.am and adapted as necessary. (DISTCHECK_CONFIGURE_FLAGS): Lower --enable-warnings argument from "hardcore" to "maximum", in order to get distcheck to work despite the non-virtual base class warning triggered by gconfmm. * {pixmaps,src,ui}/Makefile.am: Remove from repository. * configure.ac (AC_INIT): Bump version number to 0.9. Also change my mail address. (AC_PREREQ): Raise version requirement to autoconf 2.55. (AM_INIT_AUTOMAKE): Require Automake 1.8 and add -Wall option. (PKG_CHECK_MODULES): Replace output variable prefix REGEXXER with REGEXXER_MODULES for clarity. Remove the AC_SUBST() invocations as the macro seems to do that on its own now. (AC_CONFIG_FILES): Remove {pixmaps,src,ui}/Makefile from the list. * NEWS: Add entry on regexxer 0.9. Not complete yet. * autogen.sh: Rip out the overzealous version checking fancyness. This stuff was just a wee bit over the top. Overall, reduce the the script to a sensible minimum. Honor $NOCONFIGURE instead of $AUTOGEN_SUBDIR_MODE to match autogen.sh from gnome-common. * mkinstalldirs: Remove, as glib-gettextize now properly adds this file to the source tree if it is missing. * config.rpath: Remove, as it does not seem to be actually used anywhere. 2006-12-22 Daniel Elstner * configure.ac: Use REGEXXER_PKG_PATH_PROG() to locate the gtk-update-icon-cache command. * pixmaps/Makefile.am (update-icon-cache): Add new target, which is invoked as prerequisite of install-data-hook in order to update the GTK+ icon theme cache after installation. 2006-12-10 Daniel Elstner * src/main.cc (main): Use gtk_window_set_default_icon_name() to have the default window icon looked up in the icon theme, rather than explicitely specifying an image filename. For some reason this method has not been wrapped yet. (set_default_window_icon): Remove now unused function. * src/aboutdialog.cc (AboutDialog::create): For the same reason as above, use Gtk::Image::set_from_icon_name() instead of an explicit filename to load the application icon. * src/globalstrings.h (application_icon_filename): Remove now unused string. 2006-12-09 Daniel Elstner * regexxer.desktop.in: Remove a couple of keys and change some values to match the latest freedesktop.org desktop-entry-spec. * pixmaps/Makefile.am: Install the regexxer application icon to $(datadir)/icons/hicolor/48x48/apps as the freedesktop.org icon-theme-spec says. 2006-11-21 Daniel Elstner * ui/mainwindow.glade (menuitem_about): Replace the stock item reference "regexxer-about" with "gtk-about", now that the latter has been added to GTK+. * src/main.cc (stock_icon_about): Remove. (regexxer_stock_items): Remove "regexxer-about" stock item. * pixmaps/Makefile.am (stockimages): Remove stock_menu_about.png from list. * pixmaps/stock_menu_about.png: Remove file. 2006-11-21 Daniel Elstner * src/filetree.cc (FileTree::on_style_changed): Use the proper stock images "file" and "directory" instead of abusing "new" and "open", respectively. These new items have been available since GTK+ 2.6. 2006-11-13 Daniel Elstner * src/stringutils.cc (parse_control_char, Util::convert_to_ascii): Avoid bitwise operations with possibly signed char values. Make use of explicit casts and unsigned integer literals instead. 2006-11-13 Daniel Elstner * AUTHORS: Change my mail address. 2006-11-13 Daniel Elstner * macros/cxx.m4 (REGEXXER_LINK_EXPORT_DYNAMIC): New macro to check for support of the --export-dynamic linker flag. * configure.ac: Use the new REGEXXER_LINK_EXPORT_DYNAMIC macro to fill in the substituted variable REGEXXER_EXPORT_DYNAMIC. * src/Makefile.am (regexxer_LDFLAGS): Substitute the value of $(REGEXXER_EXPORT_DYNAMIC) since libglade no longer passes the linker flag -Wl,--export-dynamic by default. 2006-10-05 Sven Herzberg * autogen.sh: use --copy on intltoolize, so modifying po/Makefile.in.in doesn't fail for the missing permissions 2005-12-13 Murray Cumming * autogen.sh: Use --force on intltoolize, because it was complaining about an old Makefile.in.in. * configure.ac: * src/Makefile.am: Change PKG_CFLAGS/LIBS to REGEXXER_CFLAGS/LIBS because the latest autoconf (or something) complains that PKG_CFLAGS may be undefined. Not sure why, but this fixes it. 2004-07-16 Daniel Elstner * macros/cxx.m4 (REGEXXER_LINK_VERSION_SCRIPT): Rename from REGEXXER_CXXLINK_VERSION_SCRIPT() and make the macro language- acnostic. Also, take the name of the output variable to set as first parameter instead of hardcoding it. (REGEXXER_ARG_ENABLE_WARNINGS): Don't change the current language but use AC_LANG_ASSERT() instead to make sure it's C++. The user is required to select the approriate language by himself then, as recommended in the autoconf manual. * macros/misc.m4 (REGEXXER_LIB_POPT): Make language-acnostic. * macros/pcre.m4 (PCRE_CHECK_UTF8): ditto. * configure.ac: Reorder a couple of macro invocations and insert a call to AC_LANG([C++]). 2004-07-14 Daniel Elstner * src/main.cc (parse_command_line): Fix the help string of the --ignore-case option to match the tool tip of the corresponding checkbutton. 2004-07-14 Daniel Elstner * src/main.cc (parse_command_line): Replace `...' with \"...\" in message strings, for consistency with the rest of the application. 2004-07-14 Daniel Elstner * src/filebuffer.{cc,h} (FileBuffer::find_matches): Add a feedback slot parameter and invoke it for every matching line. The current line number and the subject string are passed as arguments to the feedback slot. * src/filetree.{cc,h} (FileTree::signal_feedback): New signal. (FileTree::find_matches_at_path_iter): Pass a feedback slot to FileBuffer::find_matches() that forwards to signal_feedback() with the fileinfo object bound as third argument. * src/mainwindow.{cc,h} (print_location): New handler for the feedback signal which prints the location of the match to standard output, in the same format as used by 'grep -n'. (InitState::feedback): New bool member. (MainWindow::initialize): Connect the filetree's signal_feedback to print_location if the init state's feedback flag is true. * src/main.cc (parse_command_line): Add the --line-number command line argument, intended to work just like the grep equivalent. 2004-07-13 Daniel Elstner * src/mainwindow.{cc,h} (MainWindow::autorun_idle): New method which first invokes the file search and the regex search after that, unless the user hit the Stop button in between. (MainWindow::initialize): Connect Glib::signal_idle() to the new autorun_idle() method instead of controller_.find_files.slot(). (MainWindow::busy_action_leave): Don't reset busy_action_cancel_ so that autorun_idle() can test this flag to determine whether the busy action was cancelled by the user. 2004-07-13 Daniel Elstner * macros/pcre.m4 (PCRE_CHECK_UTF8): Make sure the preprocessor directives in the test program start in the first column, just in case we do hit on some ancient compiler that requires it. * macros/misc.m4 (REGEXXER_LIB_POPT): New macro that checks whether libpopt and popt.h are available and usable. * configure.ac: Use REGEXXER_LIB_POPT(). * src/Makefile.am (regexxer_LDADD): Add $(POPT_LIBS). * src/mainwindow.{cc,h} (InitState): New struct that defines the initial state of main window's entry boxes and check buttons. (MainWindow::initialize): New method to initialize the UI elements with the values defined by a InitState object. * src/translation.{cc,h} (initialize_gettext): Remove the call to bind_textdomain_codeset(). (enable_utf8_gettext): New function that calls bind_textdomain_codeset() if available. The separation became necessary in order to allow for the command line help message to be printed to the console in locale encoding. * src/main.cc (parse_command_line): New function which parses the command line arguments and returns an InitState object. (main): Invoke parse_command_line(), enable_utf8_gettext() and MainWindow::initialize() as appropriate. 2004-07-12 Daniel Elstner * src/stringutils.cc (shell_pattern_to_regex): Handle ']' and '!' inside character classes more correctly. 2004-07-10 Daniel Elstner * configure.ac (REGEXXER_CXX_HAS_STD_LOCALE): Remove. libsigc++ 2 depends on a proper compiler like g++ 3 anyway, so it make sense to require support of std::locale from now on. * macros/cxx.m4 (REGEXXER_CXX_HAS_STD_LOCALE): Delete the macro. * src/statusline.cc: Get rid of the preprocessor conditionals around code that makes use of std::locale. * src/stringutils.cc: ditto. 2004-07-09 Daniel Elstner * configure.ac: Swap invocations of REGEXXER_ARG_ENABLE_WARNINGS() and REGEXXER_CXXLINK_VERSION_SCRIPT(), just in case the additional warning flags break the test program used by the latter macro. 0.8: 2004-07-08 Daniel Elstner * NEWS: Update. 2004-07-08 Daniel Elstner * ui/mainwindow.glade (hbox_file): Increase "spacing" to 9. 2004-07-06 Daniel Elstner * src/exported-symbols: New file; an ld version script which lists the symbols that should be exported explicitely. Using that makes the stripped regexxer binary more than 100k smaller! * macros/cxx.m4 (REGEXXER_CXXLINK_VERSION_SCRIPT): New macro to test if the linker supports the -Wl,--version-script argument. * configure.ac: Call REGEXXER_CXXLINK_VERSION_SCRIPT(). * src/Makefile.am (dist_noinst_DATA): Distribute exported-symbols. (regexxer_DEPENDENCIES): Depend on exported-symbols. (regexxer_LDFLAGS): Pass $(REGEXXER_VERSION_SCRIPT) to the linker. 2004-07-05 Daniel Elstner * src/aboutdialog.cc (apply_label_what_markup): Rename from apply_label_markup for clarity. 2004-07-05 Daniel Elstner * src/filetree.{cc,h} (FileTree::find_matches_at_path_iter): Use reference arguments instead of pointers. Make use of sigc::ref() to bind a reference argument to a signal handler. (FileTree::replace_matches_at_path_iter): ditto (FileTree::save_file_at_iter): Likewise. Also get rid of the on-demand creation of error_list, because it's unnecessary and not exception-safe. The caller is responsible for instantiating the MessageList now. 2004-06-30 Daniel Elstner * src/stringutils.cc (validate_encoding): Be slightly more picky and demand the first and last characters of the encoding string to be alpha-numeric. 2004-06-30 Daniel Elstner * src/stringutils.cc (validate_encoding): Better don't try to call Glib::convert() with identical input and output encodings. I heard the iconv on Solaris doesn't like that idea at all. 2004-06-30 Daniel Elstner * src/prefdialog.cc (PrefDialog::on_response): Suggest a sync to the GConf client when the dialog is closed. 2004-06-29 Daniel Elstner * ui/mainwindow.glade: Remove empty string properties and all GtkEntry "invisible_char" properties. The latter had no purpose other than to annoy the translators. * ui/prefdialog.glade: ditto. 2004-06-29 Daniel Elstner * src/mainwindow.cc (selection_clipboard): New string constant defining the name of the selection to use for the clipboard. (MainWindow::on_cut): Use the selection_clipboard constant. (MainWindow::on_copy): ditto (MainWindow::on_paste): ditto. 2004-06-29 Daniel Elstner * src/controller.{cc,h} (Controller::edit_actions): Rename from clip_actions. (Controller::erase): Add action. (Controller::load_xml): Fetch cut, copy, paste and delete menu items from the glade file. * src/mainwindow.{cc,h} (MainWindow::on_{cut,copy,paste,erase}): Add and implement new signal handlers. (MainWindow::connect_signals): Connect the cut, copy, paste and erase actions to the new signal handlers. (MainWindow::on_filetree_switch_buffer): Enable or disable the edit actions based on the editability of the file buffer. 2004-06-25 Daniel Elstner * src/controller.{cc,h} (Controller): Add an Edit menu, as well as a Cut, Copy and Paste menu items. * ui/mainwindow.glade: As above, and move Undo and Preferences into the Edit menu. 2004-06-21 Daniel Elstner * po/Makevars (XGETTEXT_OPTIONS): Recent intltool now parses the Makevars file, thus set this variable to the options we want. 2004-06-20 Daniel Elstner * src/Makefile.am (global_defines): Get rid of the redundant -DREGEXXER_LOCALEDIR=\""$(datadir)/locale"\" definition. * src/main.cc (locale_directory): New string constant. (main): Replace REGEXXER_LOCALEDIR with locale_directory. 2004-06-19 Daniel Elstner * src/Makefile.am (global_defines): Add -DGTKMM_DISABLE_DEPRECATED. * src/filetree.cc (FileTree::FileTree): Replace the deprecated set_sort_column_id() by set_sort_column(). * src/filetreeprivate.cc (FileTree::ScopedBlockSorting::ScopedBlockSorting): ditto (FileTree::ScopedBlockSorting::~ScopedBlockSorting): ditto. * src/mainwindow.cc (MainWindow::on_go_next): Use scroll_to() in place of the deprecated scroll_to_mark(). 2004-06-19 Daniel Elstner * pixmaps/Makefile.am (stockimages.h): Strip the directory prefix from filenames if present, because of the possibility of automatic rule rewriting as done e.g. by SunOS make. 2004-06-19 Daniel Elstner * Makefile.am (dist_noinst_DATA): Add po/LINGUAS. 2004-06-16 Daniel Elstner * src/aboutdialog.cc (apply_label_markup): Make use of the convenience tag to simplify the markup slightly. 2004-06-16 Daniel Elstner * src/aboutdialog.cc: Include instead of the whole to save a tiny bit of compile time. * src/controller.cc: ditto. * src/filebuffer.cc: Same here, and also replace by . * src/filetree.cc: ditto * src/mainwindow.cc: ditto * src/prefdialog.cc: ditto. 2004-06-14 Daniel Elstner * src/translation.cc (initialize_gettext): Only call bind_textdomain_codeset() if it is available. I do hope there aren't any gettext implementations around that perform encoding conversion but don't have bind_textdomain_codeset()... 2004-06-14 Daniel Elstner * src/sharedptr.h (SharedPtr): Add dummy template specializations for SharedObject and const SharedObject. This makes it impossible to instantiate a generic SharedPtr, which would be fatal because SharedObject doesn't have a virtual destructor. 2004-06-14 Daniel Elstner * src/sharedptr.h (SharedObject::refcount_): Change type to long, so that a full word will be used on 64 bit machines. (SharedPtr): Add a paragraph about operator const void*() to the class description. 2004-06-09 Daniel Elstner * autogen.sh: Append an XGETTEXT_KEYWORDS = ... line to the generated po/Makefile.in.in file. These flags are picked up by intltool-update and passed to xgettext. Use this feature to make xgettext recognize Util::compose() format strings. 2004-06-09 Daniel Elstner * configure.ac (GETTEXT_PACKAGE): Use a plain shell assignment plus a separate AC_SUBST([GETTEXT_PACKAGE]) in order to please the fucked up intltool-update script. 2004-06-09 Daniel Elstner * src/translation.h (translate): Add G_GNUC_FORMAT(1) attribute. 2004-06-09 Daniel Elstner * src/filetree.cc (FileTree::find_add_file): Create the FileInfo object in advance before inserting the new row in order to improve exception safety. (FileTree::find_fill_dirstack): Same here for the DirInfo object. 2004-06-09 Daniel Elstner * src/filetreeprivate.{cc,h} (FileTreePrivate::next_match_file): Move code from FileTree::next_match_file() here. (FileTreePrivate::prev_match_file): Move code from FileTree::prev_match_file() here. * src/filetree.{cc,h} (FileTree::next_match_file): Remove. (FileTree::prev_match_file): Remove. 2004-06-09 Daniel Elstner * src/filetree.{cc,h} (FileTree::next_match_file): Replace the collapse_stack parameter by a single Gtk::TreeModel::Path pointer, because we really don't have to collapse each expanded child row explicitely. Simplify the implementation accordingly. (FileTree::prev_match_file): ditto. (FileTree::select_next_file): Get rid of the collapse_stack container and use a simple Gtk::TreeModel::Path variable instead. 2004-06-09 Daniel Elstner * src/fileio.cc (save_iochannel): Use Gtk::TextBuffer::get_slice() rather than get_text(). 2004-06-09 Daniel Elstner * src/stringutils.cc (substitute_references): Reduce usage of Glib::ustring::raw() in favor of native ustring accessor methods. 2004-06-09 Daniel Elstner * src/stringutils.{cc,h} (substitute_references): Change return type and parameter types to Glib::ustring. I have no idea as to why the interface used std::string in the first place... * src/filebuffer.cc (FileBuffer::get_line_preview): Adapt to the changed parameter types of Util::substitute_references(). (FileBuffer::replace_match): ditto. 2004-06-08 Daniel Elstner * src/filebuffer.cc (FileBuffer::find_matches): Remove bogus comment. 2004-06-08 Daniel Elstner * src/filebuffer.cc (FileBuffer::undo_remove_match): Avoid decrementing current_match_ since it might point to the start of the range. Also remove the call to remove_tag_current() because it does nothing if match_removed_ is set anyway. 2004-06-08 Daniel Elstner * ui/mainwindow.glade (menuitem_undo): Add accelerator key CTRL-z. 2004-06-08 Daniel Elstner * src/pcreshell.h: Eliminate the include dependency on the pcre.h header. This requires defining the numeric values of the bit flag enums directly, but fortunately these cannot be changed without breaking ABI anyway. * src/pcreshell.cc: Include pcre.h, and use static_cast<> where necessary to allow for Pattern::pcre_ to be declared as void*. 2004-06-08 Daniel Elstner * src/mainwindow.cc (MainWindow::set_title_filename): Concatenate with the string literal PACKAGE_NAME at compile time. 2004-06-08 Daniel Elstner * src/filetree.{cc,h} (FileTree::find_add_file): New method. Move the actual file-adding parts from find_check_file() here. (FileTree::find_recursively): Move the file testing previously done in find_check_file() into this method in order to make the recursion more obvious. Also handle Glib::Dir exceptions right here, so that the caller doesn't have to handle them. (FileTree::find_files): Remove the try/catch block enclosing the call to find_recursively(). We no longer need to do it twice. (FileTree::find_check_file): Remove. 2004-06-03 Daniel Elstner * src/filetree.cc (FileTree::calculate_file_index): Simplify. 2004-06-02 Daniel Elstner * src/filebuffer.cc (FileBuffer::create_with_error_message): Minor code rearrangement. 2004-06-01 Daniel Elstner * src/filetree.cc (FileTree::find_files): Slightly clarify the call to Gtk::TreePath's constructor. 2004-06-01 Daniel Elstner * Makefile.am (ACLOCAL_AMFLAGS): Remove because automake-1.7 complains about the undefined variable ${ACLOCAL_FLAGS} even though it's a shell substitution. * configure.ac: Use AC_SUBST() to set up ACLOCAL_AMFLAGS here instead, so automake-1.7 won't notice. 2004-06-01 Daniel Elstner * src/filetree.cc (FileTree::expand_and_select): Replace the calls to TreeSelection::select() and TreeView::scroll_to_row() by a single TreeView::set_cursor() call. (FileTree::find_files): After the tree has been filled in, the first call to expand_and_select() doesn't always scroll to the selected row (no matter if set_cursor() or scroll_to_row() is used there). Explicitely scroll to the first row after filling the tree to work around this problem. 2004-06-01 Daniel Elstner * regexxer.desktop.in (Categories): Prepend GNOME to the list. 2004-06-01 Daniel Elstner * src/translation.cc (compose_impl): Remove superfluous namespace prefix. 2004-06-01 Daniel Elstner * src/translation.cc (compose): Optimize and reduce executable size by replacing std::vector by a POD array of pointers to the Glib::ustring arguments. 2004-06-01 Daniel Elstner * src/filetree.cc (FileTree::load_file_with_fallback): Get the UTF-8 encoded basename from the filename column of the tree model instead of stripping and converting fileinfo->fullname all over again. 2004-06-01 Daniel Elstner * src/fileio.cc (load_file): Move the assignment of 'false' to fileinfo->load_failed to the very end of the function, because there is a tiny chance that one of the other assignments throws an exception. 2004-06-01 Daniel Elstner * src/filetree.cc (FileTree::find_increment_file_count): There is no need for the reverse_iterator abstraction here -- just use plain iterators and decrement them. 2004-06-01 Daniel Elstner * src/filetree.cc (FileTree::prev_match_file): As it turns out keeping track of the parent iterator does have some merit. While there was nothing wrong with the previous change, I discovered that the parent's children can be indexed in order to obtain an iterator pointing to the previous row. At least for deep trees this is likely to be faster than resolving the whole path via Gtk::TreeModel::get_iter(). 2004-06-01 Daniel Elstner * src/filetree.cc (FileTree::prev_match_file): There is no need to keep track of the parent iterator; just use Gtk::TreePath::size() and TreePath::up(). Also use TreePath::push_back() instead of the deprecated TreePath::append_index(). 2004-06-01 Daniel Elstner * src/filetree.{cc,h} (FileTree::find_matches_at_path_iter): Rename from find_matches_at_iter(): add a path parameter and use it instead of obtaining the path from the iter argument. (FileTree::replace_matches_at_path_iter): Rename from replace_matches_at_iter(): add a path parameter and use it. (FileTree::find_matches): Use TreeModel::foreach() rather than foreach_iter() in order to gain a minor performance improvement by taking advantage of the supplied Gtk::TreePath. (FileTree::replace_all_matches): ditto. 2004-06-01 Daniel Elstner * src/filetree.{cc,h} (FileTree::on_treestore_rows_reordered): New signal handler which updates the match boundaries defined by the [path_match_first_, path_match_last_] range. Previously this has been handled in on_treestore_sort_column_changed(), which is unfortunately called before the actual sorting takes place. (FileTree::on_treestore_sort_column_changed): Remove. (FileTree::FileTree): Connect to signal_rows_reordered() instead of signal_sort_column_changed(). 2004-05-31 Daniel Elstner * src/filetreeprivate.{cc,h} (FileTreeColumns::instance): New static method which replaces the filetree_columns() function, for consistency with RegexxerTags::instance(). (filetree_columns): Remove. * src/filetree.cc: Replace all instances of filetree_columns() with FileTreeColumns::instance(). 2004-05-31 Daniel Elstner * ui/aboutdialog.glade (label_url): Get rid of the prefixed U+202D LEFT-TO-RIGHT OVERRIDE since Pango gets that right on its own now. (label_author_who): ditto * ui/mainwindow.glade (button_multiple): ditto (button_caseless): ditto. 2004-05-31 Daniel Elstner * ui/mainwindow.glade (button_multiple): Set to active by default. 2004-05-31 Daniel Elstner * src/statusline.cc (StatusLine::set_file_encoding): Work around the GTK+ bug with right-aligned labels by calling check_resize(), just as already done in CounterBox::set_index(). Note that the status bar is right-aligned only in RTL locales. 2004-05-31 Daniel Elstner * src/aboutdialog.cc (AboutDialog::create): If no translation is available for the current locale, replace "translator-credits" by some more user-friendly text. 2004-05-30 Daniel Elstner * src/filetree.cc (FileTree::color_modified_): Use "Accent Red" from the basic GNOME 32-color palette instead of rgb.txt "red". (FileTree::text_cell_data_func): Set the text style to "oblique" in addition to painting in red color if the file was modified. 2004-05-30 Daniel Elstner * src/pcreshell.cc (Pattern::get_substring_bounds): Sanity-check for index >= 0 too. 2004-05-30 Daniel Elstner * src/mainwindow.cc (MainWindow::on_conf_value_changed): Remove "using namespace Gtk" directive which became pointless after the last change. 2004-05-30 Daniel Elstner * regexxer.schemas.in (override_direction): Remove configuration option because it doesn't seem to be necessary anymore. That is, the current GTK+ release gets the direction of Latin text in RTL locales right now. * src/globalstrings.h (conf_key_override_direction): Remove. * src/mainwindow.cc (MainWindow::on_conf_value_changed): Remove the code that handles the "override_direction" config option. * src/prefdialog.{cc,h} (PrefDialog): ditto. * ui/prefdialog.glade (button_override_direction): Remove. 2004-05-30 Daniel Elstner * src/filebuffer.cc (FileBuffer::find_matches): Get rid of an unused main_context variable plus initialization code. Whoa, this ancient piece of code must have been lurking here for at least a year without being used. Unfortunately g++ didn't warn about it since the ctor/dtor might have had side effects... 2004-05-30 Daniel Elstner * autogen.sh: In the regex used to extract version numbers, avoid any use of quantifiers other than * for maximum portability. * macros/pcre.m4 (PCRE_CHECK_VERSION): Same here, and also be more forgiving about extra characters possibly following the version number. 2004-05-30 Daniel Elstner * macros/misc.m4 (REGEXXER_PKG_PATH_PROG): Replace AC_MSG_ERROR() by AC_MSG_FAILURE(), and add an autoconf-time check to make sure all necessary arguments are specified. * macros/pcre.m4: Replace AC_MSG_ERROR() by AC_MSG_FAILURE(), and add a few redirections of stderr to the config.log file descriptor where appropriate. 2004-05-30 Daniel Elstner * src/filetreeprivate.h (FileTreePrivate::filetree_columns): Remove the G_GNUC_CONST attribute since in this function's case it doesn't gain us anything anyway. * src/translation.h (translate): Use G_GNUC_PURE rather than G_GNUC_CONST because the function depends on global memory. 2004-05-30 Daniel Elstner * src/pcreshell.cc (Pattern::match): Use the symbolic constant PCRE_ERROR_NOMATCH instead of comparing with -1 directly. 2004-05-29 Daniel Elstner * ui/mainwindow.glade (button_preferences): Remove tool button. I'm not yet convinced that the "Quit" button should be removed too, because I like it large and easy to hit on :) * src/controller.cc (Controller::load_xml): No longer load "button_preferences" from the glade file. 2004-05-28 Daniel Elstner * macros/misc.m4 (REGEXXER_PKG_PATH_PROG): There is no need to pass the [not found] argument to AC_PATH_PROG, since the default action is just right. * macros/pcre.m4 (PCRE_CHECK_VERSION): ditto. 2004-05-28 Daniel Elstner * Makefile.am (ACLOCAL_AMFLAGS): Add ${ACLOCAL_FLAGS} as recommended by James Henstridge. 2004-05-28 Daniel Elstner * Makefile.am (install-schemas): Don't use $^ since it probably isn't portable. (uninstall-schemas): ditto. 2004-05-28 Daniel Elstner * configure.ac (PCRE_CHECK_VERSION): Bump version requirement to libpcre 4.0. Apparently the code required this version for quite some time now, but without configure checking for it. 2004-05-28 Daniel Elstner * src/pcreshell.cc (Pattern::Pattern): Let's be paranoid and use g_new0() rather than plain g_new() to allocate ovector_. (Pattern::get_substring_bounds): More paranoia: assert that the index argument is within the allowed range. (Pattern::get_substring): Call get_substring_bounds() to get the boundary offsets in order to take advantage of the error checking. 2004-05-28 Daniel Elstner * src/stringutils.cc (convert_to_ascii): Replace non-ASCII characters by octal escapes rather than just a question mark. 2004-05-28 Daniel Elstner * src/filebuffer.cc (RegexxerTags::instance): Remove G_GNUC_CONST because it causes problems on PPC, and doesn't have any effect in this particular case anyway. 2004-05-28 Daniel Elstner * src/mainwindow.{cc,h} (MainWindow::get_folder_fullname): New method that expands the entered folder name and converts it to filename encoding. An error message is displayed to the user if the conversion fails. (MainWindow::on_select_folder): Use get_folder_fullname(). (MainWindow::on_find_files): ditto. 2004-05-28 Daniel Elstner * src/stringutils.{cc,h} (expand_pathname): Operate directly in filename encoding since all callers need to convert one way or the other anyway. Change type of parameter and return value to std::string accordingly. (shorten_pathname): ditto. * src/mainwindow.cc (MainWindow::MainWindow): Reverse order of the calls to filename_to_utf8_fallback() and shorten_pathname(). (MainWindow::on_select_folder): ditto (MainWindow::on_find_files): ditto. * src/mainwindow.{cc,h} (MainWindow::set_title_filename): Change parameter type to std::string and call filename_to_utf8_fallback(). Also remove the default argument from the declaration, and get rid of the logic that handles the empty string. (MainWindow::MainWindow): Call window_->set_title() directly in order to set the default title, instead of passing an empty string to set_title_filename(). (MainWindow::on_filetree_switch_buffer): ditto. 2004-05-27 Daniel Elstner * src/stringutils.cc (filename_to_utf8_fallback): On failure, don't fall back to the locale encoding anymore but straight to plain ASCII. Thus from now on, this function will never throw for errors of type ConvertError::ILLEGAL_SEQUENCE. Also cover the new G_FILENAME_ENCODING variable in the warning message. * src/filetree.cc (FileTree::find_files): Remove the explicit handling of Glib::ConvertError. 2004-05-26 Daniel Elstner * regexxer.schemas.in: Use colors from the basic GNOME 32-color palette for the match_color and current_match_color default values. 2004-05-26 Daniel Elstner * src/stringutils.cc (apply_modifiers): Validate the UCS-4 code point returned by Unicode::tolower() or Unicode::totitle() before appending it to the string. This is necessary because for example converting U+00DF to title case is an invalid operation. 2004-05-25 Daniel Elstner * src/translation.cc (compose_impl): Print a warning message to the console if the format string contains an invalid substitution, rather than just silently ignoring the error. This is mainly of importance to translators, as it provides them some feedback if they get it wrong. 2004-05-25 Daniel Elstner * src/filetree.cc (regexxer_create_file_tree): Move to anonymous namespace. Not that it matters much, but I like it this way. * src/statusline.cc (regexxer_create_status_line): ditto. 2004-05-25 Daniel Elstner * src/filetree.cc (FileTree::FileTree): Remove superfluous namespace qualification. 2004-05-25 Daniel Elstner * autogen.sh: Avoid using postfix operators on subexpressions in the regex used to extract version numbers. This makes the expression both simpler and more portable. * macros/pcre.m4 (PCRE_CHECK_VERSION): ditto. 2004-05-25 Daniel Elstner * macros/pcre.m4 (PCRE_CHECK_VERSION): Strip "-L/usr/lib" from PCRE_LIBS if necessary. Strip "-I/usr/include" from PCRE_CFLAGS too -- although not required on Debian, it's better not to rely on this. * autogen.sh: Standard POSIX regexps suck: according to the sed documentation, both "\?" and "\+" are GNU extensions. Replace by "\{0,1\}" and "\{1,\}", respectively. * macros/pcre.m4 (PCRE_CHECK_VERSION): ditto. 2004-05-21 Daniel Elstner * src/mainwindow.cc (MainWindow::on_find_files): Minor coding style modifications. 2004-05-21 Daniel Elstner * src/mainwindow.cc (MainWindow::on_select_folder): Simplify the code: with the new FileChooser we no longer have to handle the case of selecting a file instead of a directory. 2004-05-21 Daniel Elstner * src/fileio.h (ErrorBinaryFile): New exception class. * src/fileio.cc (load_iochannel): Throw ErrorBinaryFile if the input stream contains '\0' bytes, rather than just returning a null pointer. (load_file): Throw ErrorBinaryFile if the file could not be loaded in either of the specified encodings. * src/filetree.cc (FileTree::load_file_with_fallback): Handle the ErrorBinaryFile exception. 2004-05-21 Daniel Elstner * src/filetree.cc (FileTree::replace_all_matches): Substitute Gtk::TreeIter with Gtk::TreeModel::iterator for consistency. 2004-05-21 Daniel Elstner * src/undostack.cc (UndoStack::do_undo): Don't create a temporary copy of the pulse slot since libsigc++2 allows calling const slots. 2004-05-21 Daniel Elstner * src/filetree.cc: Replace a couple of explicit TreePath(iter) conversions by simple assignments. (FileTree::replace_all_matches): Make sure path_match_first_ points to the first file that still has matches after a replace operation was interrupted. (FileTree::replace_matches_at_iter): Remove the assertion that FileBuffer::get_match_count() must return 0 after returning from FileBuffer::replace_all_matches(), because the operation might have been interrupted. 2004-05-20 Daniel Elstner * ui/mainwindow.glade (entry_preview): Set "can_focus" to False. 2004-05-20 Daniel Elstner * src/mainwindow.cc: Break apart a couple of uber-long lines. 2004-05-20 Daniel Elstner * src/aboutdialog.cc (package_title): New string constant which defines the package title string plus surrounding markup. (AboutDialog::create): Use the separated package_title constant. * src/aboutdialog.{cc,h} (AboutDialog::create): Change the return type to std::auto_ptr because copying-destroys-source is just what we want. Calling release() to achieve exactly that was a silly idea to begin with. 2004-05-19 Daniel Elstner * ui/aboutdialog.glade (label_debian_*): Remove. The Debian package of regexxer is not the only one out there, and I cannot list all of them in the about dialog. Sorry Ross :/ (label_translator_{what,who}): Give credit to the translator(s) for the user's locale as listed in the translation of the string "translator-credits". (label_url): Get rid of the custom SelectableLabel widget class. The only feature provided by the custom widget was tab-navigation to labels -- I figured one can simply use C-Tab to do just that. (label_author_who): ditto (label_translator_who): ditto. * src/aboutdialog.cc (SelectableLabel): Remove custom widget. (AboutDialog::create): Acommodate to glade file modifications. 2004-05-19 Daniel Elstner * Makefile.am (ACLOCAL_AMFLAGS): No need to explicitely specify $(top_srcdir)/ in the directory name because the aclocal rule changes to that directory anyway. This also avoids confusing recent releases of gettextize. 2004-05-19 Daniel Elstner * configure.ac (CONFIG_STATUS_DEPENDENCIES): AC_SUBST() this variable with '$(top_srcdir)/po/LINGUAS' for utmost perfection ;-) 2004-05-19 Daniel Elstner * ui/mainwindow.glade (toolbar): Make glade-2 replace its old-style magic "class names" with proper GtkToolItem and derivated elements. Note that you'll need to apply the patch for #142761 in order to make changing the toolbar style at runtime work. (combo_pattern): Replace deprecated GtkCombo with GtkComboBoxEntry. * src/controller.cc (ControlItem::add_widgets): Allow for both Gtk::ToolButton and Gtk::Button widgets, and detect at runtime which type to use. * src/mainwindow.cc (MainWindow::load_xml): Due to #142755, we currently have to use get_child() on combo_pattern to gain access to the entry widget. Also, a hack was necessary to attach the tooltip to the entry without instantiating another Gtk::Tooltips object. * src/mainwindow.h: Remove a couple of unused forward declarations. 2004-05-18 Daniel Elstner * src/prefdialog.cc (PrefDialog::on_response): Invoke Gtk::Widget::activate() instead of directly calling the handler on_entry_fallback_activate(). Dunno why I didn't see this before. 2004-05-18 Daniel Elstner * src/prefdialog.cc (get_toolbar_style_index): Return -1 rather than 0 on failure. 2004-05-18 Daniel Elstner * ui/prefdialog.glade (button_textview_font): Replace custom font selection button with the new GtkFontButton. (button_match_color): Replace custom color selection button with the new GtkColorButton. (button_current_color): ditto. (combo_toolbar_style): Rename from option_toolbar_style. Use the new GtkComboBox widget instead of GtkOptionMenu. * src/prefdialog.{cc,h} (FontSelectionButton): Remove. (ColorSelectionButton): Remove. (PrefDialog): Accomodate to changes in the glade file. (on_textview_font_set): Rename from on_textview_font_selected(). (on_match_color_set): Rename from on_match_color_selected(). (on_current_color_set): Rename from on_current_color_selected(). 2004-05-18 Daniel Elstner * src/mainwindow.cc (MainWindow::load_xml): Make the folder button grab focus because otherwise the Preferences tool button will be focused after startup. I blame libglade -- its whole tool button handling seems to be somewhat shaky. 2004-05-18 Daniel Elstner * configure.ac (ALL_LINGUAS): Use `cat "$srcdir/po/LINGUAS"` to assign this variable, so that there is only one file to edit when adding a new language. 2004-05-17 Duarte Loreto * configure.ac: Added Portuguese (pt) to ALL_LINGUAS. 2004-05-17 Christian Rose * configure.ac: Added "sv" to ALL_LINGUAS. 2004-05-17 Daniel Elstner * Makefile.am (dist_noinst_SCRIPTS): Remove config.rpath because automake distributes this file automatically. List intltool-*.in files in the separate variable dist_intltool. (dist_noinst_DATA): List all *.m4 files in the separate variable dist_macros. Move $(dist_intltool) from dist_noinst_SCRIPTS here because the .in files aren't scripts. 2004-05-17 Daniel Elstner * regexxer.desktop (Name): Use _Name to make it translatable, and change the string to "regexxer Search Tool". Idea from Dag Wieers. 2004-05-17 Daniel Elstner * src/filebuffer.cc: Mark all const_cast<> work-arounds for the Gtk::TextIter API bug with // XXX comments. (FileBuffer::get_match_index): Get rid of libstdc++-v2 work-around. * src/filebuffer.h (FileBuffer): Get rid of the friend declarations that were added to work around a GCC 2.95 deficiency. * src/filetree.h (FileTree): ditto * src/mainwindow.h (MainWindow): ditto. 2004-05-17 Daniel Elstner * Makefile.am (install-schemas): Simplify. Since regexxer.schemas is now a generated file it is always placed in the build directory. (uninstall-schemas): Likewise. Also add $(schemas_DATA) to the prerequisites so that the rule will work with a clean tree. Having make uninstall generate files is a little awkward, but I cannot see a way around that :/ 2004-05-17 Daniel Elstner * Makefile.am (CLEANFILES): List build-time generated files $(desktop_DATA) and $(schemas_DATA). (DISTCLEANFILES): List configure-time generated files intltool-extract, intltool-merge and intltool-update. 2004-05-17 Daniel Elstner * autogen.sh: Execute glib-gettextize and intltoolize. * configure.ac: Call AC_PROG_INTLTOOL(). Assign ALL_LINGUAS and GETTEXT_PACKAGE, and do an AC_SUBST() of the latter. (AM_GNU_GETTEXT): Use AM_GLIB_GNU_GETTEXT() instead. * Makefile.am (dist_desktop_DATA): Remove the dist_ prefix, introduce desktop_in_files, and add the @INTLTOOL_DESKTOP_RULE@ substitution in order to make regexxer intltool-aware. (dist_schema_DATA): Likewise for the GConf schemas file. (dist_noinst_SCRIPTS): Add intltool-extract.in, intltool-merge.in and intltool-update.in. * regexxer.desktop: Rename to regexxer.desktop.in, use _Comment instead of Comment, and remove the manually inserted de and dk translations. * regexxer.schemas: Rename to regexxer.schemas.in. 2004-05-17 Daniel Elstner * src/filetreeprivate.cc (collatekey_sort_func): Use libstdc++-v3 method std::string::compare() instead of memcmp() for sub-string comparison, since libsigc++2 depends on gcc >= 3 anyway. 2004-05-17 Daniel Elstner * src/filetree.cc (FileTree::FileTree): Make the file column take up available space with set_expand(true). 2004-05-17 Daniel Elstner * configure.ac (AC_INIT): Bump version to 0.8. (PKG_CHECK_MODULES): Require gconfmm-2.6 >= 2.6.1. (REGEXXER_GCONFMM_VALUE_HACK): Remove. * src/miscutils.{cc,h} (check_for_broken_gconfmm_value_changed): Remove. (has_broken_gconfmm_value_changed): Remove. * src/main.cc (main): Remove call to gconfmm bug runtime test. * src/filebuffer.cc (on_conf_value_changed): Remove hack. * src/filetree.cc (on_conf_value_changed): ditto * src/mainwindow.cc (on_conf_value_changed): ditto. * src/prefdialog.{cc,h} (on_conf_value_changed_hack): Remove. 2004-05-16 Daniel Elstner * src/mainwindow.cc (on_select_folder): Use Gtk::FileChooserDialog instead of the old Gtk::FileSelection. 2004-05-16 Daniel Elstner * ui/prefdialog.glade: Removes the line that was inserted by buggy glade-2. 2004-05-14 Daniel Elstner * src/filetree.cc: Replace instances of `...' in message strings with "...". Since the translator is supposed to use double-quotes it would be confusing to use single quotes in the original string. * src/mainwindow.cc: ditto * src/prefdialog.cc: ditto. 2004-05-14 Daniel Elstner * ui/mainwindow.glade (button_find_files): Use a custom image and label instead of a stock item as button content, so that it can be more clearly distinguished from button_find_matches. 2004-05-13 Daniel Elstner * ui/mainwindow.glade: Reintroduce tearoff menu items by manually inserting the necessary XML elements. 2004-05-12 Daniel Elstner * src/fileio.cc: Remove the libgnome-vfsmm code already enclosed by #if 0 ... #endif. It's all in the CVS history anyway. * src/filetree.cc: ditto. 2004-05-12 Daniel Elstner * src/imagebutton.{cc,h}: Remove files as they're no longer used. * src/Makefile.am (regexxer_SOURCES): Remove imagebutton.{cc,h}. 2004-05-10 Daniel Elstner * src/globalstrings.h (glade_mainwindow_filename): New string. * src/mainwindow.{cc,h}: Use libglademm to load the UI at runtime, and make the actual Gtk::Window a member of class MainWindow. Remove the old UI creation code. * src/controller.{cc,h} (Controller::load_xml): The menu bar, toolbar and action area is now contained in mainwindow.glade, and thus this new method wholly replaces the old code which generated those widgets. (ControlItem::add_widgets): New helper method intented to help reducing the code size. * src/filetree.cc (regexxer_create_file_tree): New function. * src/statusline.cc (regexxer_create_status_line): New function. * src/main.cc (main): Access the Gtk::Window by using the new accessor method Regexxer::MainWindow::get_window(). 2004-05-10 Daniel Elstner * ui/mainwindow.glade: New file defining the main window's UI. * ui/Makefile.am (dist_glade_DATA): Add mainwindow.glade. 2004-05-10 Daniel Elstner * src/globalstrings.h (glade_aboutdialog_filename): New string. * src/aboutdialog.{cc,h}: Use libglademm to load the dialog UI at runtime, and replace class AboutDialog by a single create() function in namespace Regexxer::AboutDialog. Remove the old UI creation code. * src/mainwindow.{cc,h} (MainWindow::about_dialog_): Change type to std::auto_ptr since AboutDialog no longer exists. Replace all references to AboutDialog in the implementation too. (MainWindow::on_about): Make use of the new AboutDialog::create(). 2004-05-10 Daniel Elstner * ui/aboutdialog.glade: New file defining the UI of the about dialog. * ui/Makefile.am (dist_glade_DATA): Add aboutdialog.glade. 2004-05-10 Daniel Elstner * src/prefdialog.cc (PrefDialog::load_xml): Remove superfluous sub-block. 2004-05-10 Daniel Elstner * src/prefdialog.cc (regexxer_create_font_selection_button): Add missing parameters to the function signature. (regexxer_create_color_selection_button): ditto. 2004-05-10 Daniel Elstner * src/Makefile.am (global_defines): Define REGEXXER_PKGDATADIR. * src/globalstrings.h (glade_prefdialog_filename): New string. * src/prefdialog.{cc,h}: Use libglademm to load the dialog UI at runtime, and make the actual dialog widget a data member of class PrefDialog. Remove the old UI creation code. * src/mainwindow.cc (MainWindow::on_preferences): Use the new PrefDialog::get_dialog() accessor to get the actual widget. 2004-05-10 Daniel Elstner * ui: New directory for glade XML files. * ui/.cvsignore: New file. * ui/Makefile.am: New file. * ui/prefdialog.glade: New file defining the UI of the preferences dialog. * configure.ac (PKG_CHECK_MODULES): Check for libglademm-2.0. (AC_CONFIG_FILES): Add ui/Makefile. * Makefile.am (SUBDIRS): Add ui. 0.7: 2004-05-08 Daniel Elstner * AUTHORS: Add Murray Cumming. * NEWS: Update. 2004-05-08 Daniel Elstner * src/translation.{cc,h} (sgettext): Ditch the sgettext() approach, because it's not likely to be supported by libglade when regexxer starts using that at some point. Until now there are no ambiguous messages in regexxer, and we can switch back when the need arises. * src/controller.cc: Remove the disambiguing "...|" prefix from all translatable messages. * src/filebuffer.cc: ditto * src/filetree.cc: ditto * src/mainwindow.cc: ditto * src/prefdialog.cc: ditto * src/statusline.cc: ditto. 2004-05-07 Daniel Elstner * src/main.cc (stock_icon_info): Rename to 'stock_icon_about', as it should have been called in the first place. Apparently I misinterpreted a change in the German GNOME translation as project-wide switch to a new name for "About". Now I realize why Murray changed that string a while ago... * src/controller.{cc,h} (Controller::info): Rename to 'about'. * src/mainwindow.{cc,h} (MainWindow::on_info): Rename to 'on_about'. 2004-05-06 Daniel Elstner * src/translation.cc (compose_impl): Simplify the loop in order to avoid the need for look-ahead via Util::next(). 2004-05-05 Daniel Elstner * src/translation.cc (compose_impl): Apparently there's no need to use Glib::Unicode::isdigit() since digit_value() is defined to return -1 for non-digits anyway. 2004-05-05 Daniel Elstner * src/translation.{cc,h} (compose): Add a set of overloaded utility functions to be used to compose a text message from a format string and up to three string arguments. This allows the translator to arrange the arguments as required by the language. * src/filetree.cc (FileTree::save_file_at_iter): Make use of Util::compose() instead of separately piecing strings together. Also, translate the format string via gettext(). (load_file_with_fallback): ditto * src/mainwindow.cc (MainWindow::on_exec_search): ditto * src/prefdialog.cc (PrefDialog::on_entry_fallback_activate): ditto. 2004-05-05 Daniel Elstner * src/miscutils.cc: Compile the runtime check for that gconfmm bug only if REGEXXER_ENABLE_GCONFMM_VALUE_HACK is defined, as it currently always is. * src/main.cc (main): Test for REGEXXER_ENABLE_GCONFMM_VALUE_HACK around the call to Util::check_for_broken_gconfmm_value_changed(). 2004-05-05 Daniel Elstner * src/translation.{cc,h} (initialize_gettext): New utility function to take care of setting up the text domain. * src/main.cc (main): Use initialize_gettext(). 2004-05-05 Daniel Elstner * ABOUT-NLS: Add missing file to fix the build. * src/aboutdialog.cc: Translate all user-visible strings except for those instances where positional parameter substitution is required for proper results. I'll deal with those ones later. * src/controller.cc: ditto * src/filebuffer.cc: ditto * src/filetree.cc: ditto * src/main.cc: ditto * src/mainwindow.cc: ditto * src/pcreshell.cc: ditto * src/prefdialog.cc: ditto * src/statusline.cc: ditto. * src/translation.h (N_): #define to gettext_noop(s) rather than simply (s). This doesn't actually make a difference but I think the intent is clearer that way. 2004-05-05 Daniel Elstner Add support for message translation via gettext. * po: New directory, containing all the gettext stuff. * config.rpath: New file added by gettextize. * mkinstalldirs: ditto. * Makefile.am (dist_noinst_SCRIPTS): Add config.rpath. * autogen.sh: Don't remove mkinstalldirs because it's not installed by automake --add-missing, and gettext uses it. (WARNINGS): Comment-out in order to reduce the flood of warnings triggered by all the old m4 code in system macros. * configure.ac: Invoke AM_GNU_GETTEXT(). (AC_CONFIG_FILES): Add po/Makefile.in. * NEWS: Update. * src/translation.{cc,h}: New files implementing gettext() support. * src/statusline.cc: Translate the label of the "Stop" button. * src/main.cc (main): Add code to initialize the text domain. * src/Makefile.am (regexxer_SOURCES): Add translation.{cc,h}. 2004-05-05 Daniel Elstner * src/miscutils.{cc,h} (check_for_broken_gconfmm_value_changed): Implement a truly evil run-time check for that gconfmm bug. Although this one is already fixed in CVS, there's no release out yet and for now I wouldn't like regexxer to depend on it anyway. (has_broken_gconfmm_value_changed): Provide an accessor function to the global flag indicating whether gconfmm is broken. * src/main.cc (main): Call check_for_broken_gconfmm_value_changed(). * configure.ac (REGEXXER_GCONFMM_VALUE_HACK): Make this macro call has_broken_gconfmm_value_changed() to determine whether the work-around has to be applied. 2004-05-05 Daniel Elstner * src/filebuffer.cc (FileBuffer::replace_match): Invoke on_insert() directly in case of empty-by-empty replace in order to avoid this nasty special-case where a FileBufferActionRemoveMatch object in the stack is not followed by either an insert or an erase action. This finally fixes the last one of undo system bugs known to me. 2004-05-05 Daniel Elstner * configure.ac (AC_INIT): Bump version number to 0.7. 2004-05-05 Daniel Elstner * src/*.{cc,h}: Apply a minor change of my coding style. From now on, I put a space between a keyword and the following opening parenthesis. That is, after for, while, if, switch and catch, with sizeof being the only (I think rather intuitive) exception. * src/globalstrings.h: New file containing (you guess it) global string definitions. Currently these are mostly fully qualified GConf key names. * src/configdata.{cc,h}: Delete, as we're now using GConf. * src/Makefile.am (regexxer_SOURCES): Modify accordingly. * src/aboutdialog.cc: Prefix URL and mail strings with U+202D LEFT-TO-RIGHT OVERRIDE in order to avoid the current mess in RTL environments. (ContributorBox::ContributorBox): Escape the 'what' string by passing it to Glib::Markup::escape_text(), just in case. * src/controller.cc (add_widget_button): Reverse parameters for consistency with the other helper functions. (Controller::create_action_area): Make the implementation reflect this change. * src/filebuffer.{cc,h} (RegexxerTags::on_conf_value_changed): New signal handler listening to GConf value changes. (RegexxerTags::instance): Return the RefPtr<> by value rather than by reference, because as it turns out the extra indirection largely offsets the advantage gained by avoiding one additional ref/unref cycle. (FileBuffer::set_match_color): Remove; this setter is no longer necessary since we're now listing to GConf changes and apply them immediately. (set_current_color): ditto (get_match_color): ditto (get_current_color): ditto. (FileBuffer::weak_undo_stack_): Introduce a new data member used to record all UndoAction objects that reference MatchData instances. This is unfortunately necessary in order to be able to remove UndoActions without actually doing the undo operation, for instance when running find_matches() again. (notify_weak_undos): New function dealing with the weak references. (undo_add_weak): ditto (undo_remove_weak): ditto. (signal_match_count_changed): Remove the count argument as this information can easily be obtained by using the appropriate getter. (create_with_error_message): Invoke Unicode::ispunct() instead of testing for '.' explicitely. (is_freeable): Return true only if there are no UndoAction objects around referencing this FileBuffer. (find_matches): Call notify_weak_undos() to get rid of any references by UndoAction objects to this FileBuffer. (get_line_preview): Make this method strongly exception-safe. (on_apply_tag): New virtual method implementation, needed in order to filter tag apply operations caused by inserting from clipboard. This avoids confusion caused by highlighting text as match which is not recorded as such internally. * src/undostack.{cc,h}: Provide a way to interrupt a running undo operation (i.e. by clicking the 'Stop' button in the GUI). (do_undo): Add a slot parameter for this purpose. (undo): ditto. * src/filebufferundo.{cc,h} (do_undo): Make use of the new slot parameter in order to allow for interuption of the undo process. (FileBufferActionRemoveMatch): Make use of the weak notification mechanism now provided by FileBuffer. * src/fileshared.h (MatchData::get_match_length): Remove this pointless accessor function. * src/fileshared.cc (MatchData::~MatchData): Be extra careful and remove the quark pointing to the MatchData instance from the mark object. * src/filetree.{cc,h} (FileTree::on_conf_value_changed): New signal handler listening to GConf value changes. (set_fallback_encoding): Remove this now pointless accessor. (get_fallback_encoding): ditto. (expand_and_select): Get rid of compatibility code for GTK+ < 2.2. (on_buffer_match_count_changed): Adapt to the changes made to FileBuffer::signal_match_count_changed. * src/filetreeprivate.cc (collatekey_sort_func): Use std::memcmp() instead of std::strcmp() as the former allows for inlining of the string operation by gcc. (FileTree::BufferActionShell::do_undo): Make use of the new slot parameter in order to allow for interuption of the undo process. * src/main.cc (set_default_window_icon): New name, formerly regexxer_set_window_icon(). Replace the pixbuf list stuff with a simple call to Gtk::Window::set_default_icon_from_file(). (trap_gconf_exceptions): New global exception handler callback, invoked whenever an exception escapes from a C++ handler of a GObject signal. Our particular handler is used to filter any Gnome::Conf::Error exceptions, thus in essence ignoring them. This way we don't need to deal with exceptions in each handler of the GConf "value_changed" signal. (initialize_configuration): New function to be invoked by main() in order to load the initial configuration values. By emitting an artificial "value_changed" signal for each entry in regexxer's GConf directory, the need for separate initialization code for each key is neatly avoided. (main): Accomodate the changes listed above. * src/mainwindow.{cc,h} (MainWindow::on_conf_value_changed): New signal handler listening to GConf value changes. (on_preferences): Remove all the code dealing with individual configuration values, since we're now using a decentralized change notification approach instead. (load_configuration): Ditch this. (save_configuration): ditto. (confirm_quit_request): Honor the fact that the new GTK+ file selector doesn't append '/' to directories anymore. This bug is quite annoying and should have been fixed months ago :/ Also widen the dialog's default size to 400 pixels. (on_buffer_match_count_changed): Remove, there's no need to listen for this on the FileBuffer because the FileTree is reflecting these changes anyway. (on_buffer_bound_state_changed): ditto. (on_bound_state_changed): Because there's only one now, rename from on_filetree_bound_state_changed(). (on_filetree_match_count_changed): Take care of the FileBuffer match count as well. (on_go_next): Replace the 0.2 delta passed to scroll_to_mark() with 0.125, as the latter looks nicer to my eyes and also happens to be a 'round' number in base 2. (on_undo): Accomodate the changes made to the UndoAction classes in order to allow for interruption of the running undo process. Also instantiate a BusyAction object for this purpose. (undo_stack_clear): New method. (set_title_filename): Replace the plain '-' by U+2013 EN DASH. * src/miscutils.{cc,h} (gtk_version_at_least): Remove since it's no longer used. * src/pcreshell.{cc,h}: To my astonisment I found out that the source of my constant trouble with libpcre and UTF-8 text was caused by pcre_study() alone! The great thing is of course that simply not using that silly function is all that's needed to get rid of this constant source of mayhem. (escape_non_ascii): Remove, since no longer needed. (translate_to_char_offset): Get rid of this one too. (byte_to_char_offset): New little helper function. (check_for_single_byte_escape): The "\C" escape sequence seems to be only thing we still have to take care of manually. This particular sequence matches a single byte even of a multi-byte character, and thus is likely to cause hell to break loose. (Pattern::pcre_extra_): Remove. (Pattern::Pattern): Get rid of the pcre_study() call, and make use of the new check_for_single_byte_escape() function. (Pattern::~Pattern): No need to free pcre_extra_ anymore. (Pattern::match): Throw an exception if the regular expression exceeds the recursion and backtracking limit of libpcre. (CompileOptions): Implement the remaining bit manipulation operators for completeness. (MatchOptions): ditto. * src/prefdialog.{cc,h} (get_toolbar_style_index): New helper function. (FontSelectionButton::set_selected_font): Take the font name rather than a Pango::FontDescription object as parameter. (get_selected_font): Likewise for the return type. (PrefDialog::button_direction_): New Gtk::CheckButton member, allowing users of RTL environments to override the direction of regexxer's file editor alone. (on_conf_value_changed): New signal handler listening to GConf value changes. (initialize_configuration): New function to load the initial settings immediately after creation of the preference dialog. Works just like the identically named function in main.cc, except that it invokes on_conf_value_changed() directly instead of triggering the global "value_changed" signal. (on_textview_font_selected): Set the appropriate GConf key instead of using the old internal signal feedback mechanism. (on_match_color_selected): ditto (on_current_color_selected): ditto (on_option_toolbar_style_changed): ditto (on_entry_fallback_activate): ditto. (on_button_direction_toggled): New method. (signal_pref_textview_font_changed): Remove. (signal_pref_match_color_changed): Remove. (signal_pref_current_color_changed): Remove. (signal_pref_toolbar_style_changed): Remove. (signal_pref_fallback_encoding_changed): Remove. (on_entry_fallback_changed): Record that entry content was changed by setting the boolean entry_fallback_changed_ flag. This is just to avoid superfluous commits to the GConf database every time the preference dialog is closed. (on_response): Evaluate entry_fallback_changed_ (see above), and make sure no Gnome::Conf::Error exceptions escape from on_entry_fallback_activate(). (create_page_look): Move the signal handler setup to the ctor. (create_page_file): ditto. * src/statusline.cc (CounterBox::CounterBox): Catch possible exceptions when applying the locale to the stream object, in order to avoid crashing if the user's locale is invalid. * src/stringutils.cc (apply_modifiers): Modify the code a bit to reduce the number of string copies made. (parse_control_char): Add a 'dest' output parameter to avoid returning a string by value. (parse_hex_unichar): ditto (parse_oct_unichar): ditto. (parse_capture_index): New helper function to deal with both "$1" and "${1}"-style references in the substitution string. (validate_encoding): Simplify. Also, don't accept any error codes but NO_CONVERSION. (encodings_equal): No longer use std::find_if() since it really doesn't make the code any simpler in this particular case. (trim_whitespace): Remove; no longer used. (shell_pattern_to_regex): Various performance improvements. Also take care of a possible trailing backslash to avoid escaping the "\z" appended by regexxer itself. (substitute_references): Restructure the loop a bit, and accomodate the changes made to the parse_*_char() functions mentioned above. Also, avoid the need for ascii_isodigit() in the default branch by simply adding all 8 octal digits as case labels. (int_to_string): Catch any exceptions that might occur when applying the locale to the stream. This could happen if the user's default locale is invalid. (transform_pathname): Replace this silly 2-in-1 function by separate shorten_pathname() and expand_pathname() implementations. There really is no need to cache the home directory in a static variable. (shorten_pathname): Implement separately rather than forwarding to transform_pathname(). (expand_pathname): ditto. (enum_from_nick): New utility function to convert the 'nick' of a particular enumeration value to the actual integer value. This of course requires the the enumeration type to be registered via the GObject type system. (enum_to_nick): Likewise, but the other way around. (enum_from_nick_impl): Non-template implementation part. (enum_to_nick_impl): ditto. 2004-05-04 Daniel Elstner * macros/cxx.m4: Make use of the new AS_IF() macro, and also improve the portability of the shell code a bit. * macros/pcre.m4: Ditto. * macros/misc.m4: New file, introducing a REGEXXER_PKG_PATH_PROG macro which can be used to look for executables that might live in subdirectories indicated by pkg-config output. * autogen.sh: Some minor shell coding-style improvements. * configure.ac: Invoke the new REGEXXER_PKG_PATH_PROG macro in order to look for gdk-pixbuf-csource. Use the new macro to look for gconftool-2 as well. (AC_CHECK_HEADERS): Remove the tests for sys/types.h, sys/stat.h, umask() and mode_t since they're no longer necessary. (PKG_CHECK_MODULES): Substitute the GTKMM prefix by PKG (I don't like MM_DEPS as introduced by Murray in HEAD.) Also, get rid of the libgnomevfsmm dependency. (REGEXXER_ENABLE_GCONFMM_VALUE_HACK): New preprocessor macro to be inserted into config.h. This isn't actually used yet, I'll get to that later. * regexxer.schemas: New file. * Makefile.am: Add rules taking care of the installation of the GConf schema file. (dist_schema_DATA): Add regexxer.schemas to the distribution. (dist_noinst_DATA): Ditto for macros/misc.m4. (DISTCHECK_CONFIGURE_FLAGS): Include --disable-schemas-install. * src/Makefile.am: Reflect the substitution of GTKMM by PKG made in configure.ac. (AM_CPPFLAGS): Use this variable in place of regexxer_CPPFLAGS, because executable-specific CFLAGS is not something regexxer ever intended to use. * src/main.cc: Get rid of the libgnomevfsmm dependency. For one thing, the code using it didn't actually work with remote URIs. For another, as of now there's no stable release of this library in sight, no to mention a widely distributed release. * src/fileio.cc (load_try_encoding): Comment-out the gnomevfs code and replace it with the original Glib::IOChannel code instead. (save_file): ditto. * src/filetree.cc (find_recursively): Comment-out and replace with the previous non-gnomevfs code. 2004-04-10 Murray Cumming * regexxer/Makefile.am: Put the mm libs and cflags before the pcre ones, because the mm ones are more likely to be in more than one prefix, to avoid undefined symbols when a -L command means we link to an older GTK+. This is a bit hacky, but I don't know a better solution - at least it will work on distros where everything is in the same prefix. * scripts/cxx.m4: Replace deprecated AC_HELP_STRING with AS_HELP_STRING. 2004-04-04 Murray Cumming * Ported to gtkmm 2.4 - mostly just use of libsigc++ 2 syntax, and not using the old Toolbar STL-style API. 0.6.0: 2003-12-07 Murray Cumming * src/configdata.cc: set_fallback_encoding_from_string(): Ignore empty value from GConf, so that the default fallback encoding is used. That is ISO-8859-15, also known as Latin 9, which seems to be commonly-used on Windows. * src/fileio.[h|cc]: Use gnome-vfsmm instead of Glib::IOChannel to read and write file contents, so we can use any URI. * src/filetree.[h|cc]: Likewise, use gnome-vfsmm instead of Glib::Dir to list the files. * configure.ac: Added pkg-config check for gnome-vfsmm. 2003-11-29 Murray Cumming * configure.ac: regexxer now depends on gconfmm. Removed the check for 2.2-specific features. * Removed all gtkmm 2.2-specific #ifdefs because 2.2 is everywhere now.. * src/configdata.[h|cc]: Changed the implemention to use GConfmm instead of the text file. 0.5.0: 2003-10-31 Murray Cumming * src/mainwindow.cc: Used larger HIG-like borders and spacings to make it look just a little more GNOME HIG compliant. 2003-10-29 Murray Cumming * I'm taking over maintainership until Daniel reappears. I hope that he does. * src/Makefile.am: Removed *DEPRECATED* defines so that it builds with GTK+ 2.3/2.4. These should only be active during maintainer mode if they are added back. 2003-02-06 Daniel Elstner * regexxer.desktop: Add Danish translation contributed by Morten Brix Petersen . Thanks! 2003-01-11 Daniel Elstner * configure.ac: Check for gtkmm >= 2.2.0 rather than 2.1.1. Note that gtkmm 2.2 is still optional, but this is likely to change after the regexxer 0.5 release. 2003-01-11 Daniel Elstner * src/filetree.cc (propagate_modified_change): Simplify. 2003-01-11 Daniel Elstner * src/signalutils.{cc,h} (AutoConnection): New utility class that breaks the previous connection on assignment, and also remembers the blocked state of the connection permanently. (ScopedBlock): Use Util::AutoConnection instead of SigC::Connection. * src/filetree.{cc,h}: Use AutoConnection to manage the connection handles of the currently selected buffer. (on_selection_changed): Thanks to AutoConnection, we can now extinguish a fair bit of error-prone code. 2003-01-01 Daniel Elstner * autogen.sh: Require automake >= 1.7. * configure.ac: ditto. 2003-01-01 Daniel Elstner * src/sharedptr.h (SharedPtr<>::swap): Implement. 2003-01-01 Daniel Elstner * src/mainwindow.cc (on_hide): For safety, transfer ownership of the preferences and about dialogs into local variables, rather than invoking hide() to delete them. That way delete won't be called before hide() actually returned. (on_about_dialog_hide): Don't use std::auto_ptr<>::reset() but transfer ownership into local variables. I had a look at the libstdc++-v3 headers and it gave me the creeps -- reset() deletes _before_ assigning the new pointer. (on_pref_dialog_hide): ditto. 2003-01-01 Daniel Elstner * src/filetree.{cc,h} (error_pixbuf_): Get rid of this silly cache, since it became useless a while ago. 2003-01-01 Daniel Elstner * src/aboutdialog.cc (SelectableLabel): Add accessibility hints. (ContributorBox): Likewise, and also improve the widget arrangement if the dialog gets resized. 2002-12-30 Daniel Elstner * src/mainwindow.{cc,h}: Get rid of the menubar_handle_ and toolbar_handle_ data members. We don't need to keep them around anymore since the config option to hide one or the other is gone. 2002-12-30 Daniel Elstner * src/aboutdialog.cc (SelectableLabel): New fancy experiment to make labels both selectable _and_ focusable, so that they end up in the Tab chain. * src/aboutdialog.cc src/imagebutton.cc src/prefdialog.cc: Don't show all children of custom "composite" widgets in the constructor. It doesn't make much sense since we call show_all() later on anyway. And making these "composite" widgets really independent components would require overriding both show_all_vfunc() and hide_all_vfunc(), which is currently not worth the effort. 2002-12-28 Daniel Elstner * pixmaps/regexxer.png: Replace with a much nicer icon stolen from http://jimmac.musichall.cz/ikony.php3 -- looks sweet! 2002-12-28 Daniel Elstner * configure.ac (PCRE_CHECK_VERSION): Require libpcre >= 3.9. It finally arrived in Debian unstable a while ago and there's at least one UTF-8 related bug in prior releases that could cause crashes. 2002-12-28 Daniel Elstner * src/pcreshell.cc (translate_to_char_offset): New function that translates the error offset returned by pcre_compile() to a character offset into the original regex. This became necessary since due to the recent introduction of escape_non_ascii(), and is more robust anyway. * src/mainwindow.cc (on_exec_search): Deal with character offsets instead of byte offsets. Also, set the regex entry's selection on the character where the error occurred. 2002-12-27 Daniel Elstner * src/statusline.{cc,h}: Use Gtk::RC::parse_string() and the appropriate RC style settings to reduce the height of the Stop button, instead of the insane set_size_request() hack. This way the label text gets properly aligned now. 2002-12-27 Daniel Elstner * src/stringutils.cc (scale_to_8bit): Don't try to round to the nearest value. This fixes a fun bug that caused the orange color of the current match to become slightly brighter on each config load/save cycle. 2002-12-27 Daniel Elstner * pixmaps/Makefile.am (stockimages.h): Beautify by printing the actual command line that is executed, rather than the shell code to build it. This is also what autoconf does in its rules. 2002-12-26 Daniel Elstner * regexxer.desktop: Add Comment[de] translation, and remove GNOME from Categories. Recent GNOME applications don't seem to specify this category anymore. 2002-12-26 Daniel Elstner * src/pcreshell.cc (escape_non_ascii): New function to work around a crash in libpcre when using literal UTF-8 in character classes. This still won't make it work, but prevents the crash and forces an error message if characters in classes are outside the Latin1 range. 2002-12-26 Daniel Elstner * configure.ac: Check for gtkmm >= 2.1.1 instead of the compile test based on Glib::set_application_name(). (Don't worry, gtkmm 2.1.x is not yet a requirement.) 2002-12-26 Daniel Elstner * src/prefdialog.cc: Don't #include GTK+ headers if gtkmm 2.2 API is available. (ColorLabel::on_expose_event): When building with gtkmm 2.2, use Gtk::Widget::get_style_property() instead of the ugly varargs function gtk_widget_style_get(). 2002-12-26 Daniel Elstner * src/prefdialog.cc (ColorSelectionButton::on_clicked): Convert the dialog window title to title case. 2002-12-25 Daniel Elstner * src/prefdialog.cc (ColorLabel::ColorLabel): Modify the whole Gtk::RcStyle in one go rather than setting the bg pixmap thrice. 2002-12-25 Daniel Elstner * src/configdata.{cc,h}: Remove config option "menutool_mode" because it's crack now that we have undo et al. Add config options "textview_font", "match_color" and "current_match_color". * src/filebuffer.{cc,h} (pango_context_changed): Assign default font to the error_message tag. ([gs]et_match_color): New accessors to tag colors. ([gs]et_current_color): ditto. * src/mainwindow.{cc,h} ([gs]et_menutool_mode): Get rid of these. (on_filetree_switch_buffer): No longer modify the TextView font globally since we set the tag now. (on_preferences): Handle the added config settings. (load_configuration): ditto (save_configuration): ditto. * src/prefdialog.{cc,h} (FontSelectionButton): New utility widget. (ColorSelectionButton): Another new utility widget. (PrefDialog): Revamp the preferences dialog. That is, add GUI for the new config settings and remove the old one. Also replace the radio buttons for selecting the toolbar style with an option menu. 2002-12-25 Daniel Elstner * src/stringutils.{cc,h} (contains_null): Remove. (color_to_string): Implement. (shell_pattern_to_regex): Handle alternative syntax '^' for negation of character classes properly. 2002-12-25 Daniel Elstner * src/miscutils.h (ScopedArray<>): New little utility template to manage a dynamically allocated array. * src/fileio.cc (load_iochannel): Ditch Glib::ScopedPtr<> (glibmm internal :) in favor of Util::ScopedArray<>. 2002-12-20 Daniel Elstner * src/fileio.cc (load_iochannel): Use std::memchr() rather than the silly Util::contains_null() utility function. 2002-12-20 Daniel Elstner * configure.ac: Put -I flags into CPPFLAGS instead of CXXFLAGS. * macros/pcre.m4 (PCRE_CHECK_UTF8): Likewise for CFLAGS. 2002-12-16 Daniel Elstner * macros/pcre.m4 (PCRE_CHECK_VERSION): Use the sed magic from autogen.sh to implement a proper version check. 2002-12-16 Daniel Elstner * autogen.sh: Implement some fancy sed magic to compare automake version numbers, in order to choose the one that suits us best. 2002-12-16 Daniel Elstner * src/mainwindow.cc (create_left_pane): Set the accessible name of the folder entry. (create_right_pane): Set the accessible name of the preview entry, but replace the accessible description with a tool tip. 2002-12-15 Daniel Elstner * src/filetree.cc (expand_and_select): Make use of Gtk::TreeView::expand_to_path() if available. 2002-12-15 Daniel Elstner * src/miscutils.{cc,h}: New files. Move Util::prior() and next() hitherto, and add Util::gtk_version_at_least() to do a runtime version check. * src/Makefile.am: Add miscutils.{cc,h}. * src/stringutils.h: Move prior() and next() into miscutils.h. * src/filebuffer.cc: #include "miscutils.h". * src/filetree.cc (expand_and_select): Use the lazy scrolling feature if GTK+ >= 2.1.4 is available at runtime. 2002-12-15 Daniel Elstner * src/filetree.cc (expand_and_select): Don't pass row_align to Gtk::TreeView::scroll_to_row() if compiling for gtkmm 2.2 since lazy scrolling has now been implemented. 2002-12-15 Daniel Elstner * autogen.sh: Enable Bourne shell posix mode if possible, and export WARNINGS=all in order to get auto* diagnostic messages. * src/Makefile.am: Replace deprecated variables INCLUDES and LIBS with regexxer_CPPFLAGS and regexxer_LDADD. 2002-12-15 Daniel Elstner * macros/cxx.m4: Get rid of all deprecated autoconf constructs. * macros/pcre.m4: ditto. 2002-12-15 Daniel Elstner * configure.ac: Replace the check for gtkmm >= 2.1.0 with a test for Glib::set_application_name(). This should be much safer. 2002-12-15 Daniel Elstner * src/main.cc (main): Use Glib::set_application_name() if building for gtkmm 2.1. 2002-12-14 Daniel Elstner * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): On make distcheck, pass --enable-warnings=hardcore to ./configure. 2002-12-14 Daniel Elstner * configure.ac (AM_INIT_AUTOMAKE): Require automake >= 1.6 and make use of the "check-news" option. * Makefile.am (EXTRA_DIST): Get rid of EXTRA_DIST and properly put the files into dist_noinst_SCRIPTS and dist_noinst_DATA. 2002-12-14 Daniel Elstner * autogen.sh: Delete all scripts and symbolic links that will be recreated by automake --add-missing. 2002-12-14 Daniel Elstner * regexxer.desktop: Set StartupNotify=true in order to take advantage of the startup notification feature in GNOME 2.1. 2002-12-14 Daniel Elstner * autogen.sh: Incorporate bits of the standard GNOME autogen.sh, and make use of aclocal-1.7 and automake-1.7 if available. * configure.ac: AC_PREREQ([2.53]) to make sure the Debian magic chooses the right autoconf version. (AM_CONFIG_HEADER): Replace with AC_CONFIG_HEADERS(). This could create a dependency on automake-1.7, don't know for sure. 2002-12-08 Daniel Elstner * src/imagebutton.{cc,h} (ImageButton): Add a 'name' argument to the ctor which is used to set the accessibility object's name. * src/controller.cc (create_action_area): Set accessibility names for all image-only buttons. 2002-12-08 Daniel Elstner * configure.ac: Check for gtkmm >= 2.1.0 and #define REGEXXER_HAVE_GTKMM_22 if available. * src/controller.cc: * src/mainwindow.cc: * src/statusline.cc: If building for gtkmm >= 2.1.0, make use of atkmm to set names and descriptions of several GUI elements. 2002-12-08 Daniel Elstner * pixmaps/Makefile.am (stockimages.h): Perfectionize so that it handles a case that actually never happens, but who knows who's going to copy'n'paste this stuff :P 2002-12-02 Daniel Elstner * pixmaps/Makefile.am: Use shell magic to generate the build list for gdk-pixbuf-csource. It's way cooler than doing it manually :) 2002-12-02 Daniel Elstner * src/mainwindow.cc (create_left_pane): Use 'd' instead of 'F' as mnemonic key for the folder button, because 'F' is already occupied by the file menu. 2002-12-01 Murray Cumming [ SF patch 646526, slightly modified ] * src/mainwindow.cc: Change the file pattern entry to a combo, with some commonly-used file extensions. 2002-12-02 Daniel Elstner * src/controller.cc (create_action_area): * src/mainwindow.cc (create_left_pane): Add preliminary support for accessibility using ATK. Unfortunately atkmm is badly broken in a way that prevents it from being used at all. And due to a missing reference in Gtk::Widget::get_accessible_vfunc() I can't even resort to the C interface for custom derived classes. Thus most of the code is enclosed in #if 0 / #endif at the moment. 2002-11-29 Daniel Elstner * src/filetree.cc (on_selection_changed): Ooops, forgot to disconnect() conn_undo_stack_push_. That means the mysterious one of the assertions is now fixed -- the remaining ones are expected :) 2002-11-29 Daniel Elstner * configure.ac (AC_INIT): Version 0.5. 2002-11-29 Daniel Elstner OK folks, this is the new undo system. It works, but don't rely too much on undo yet since there are still some issues to work out. Try stress testing the system a bit and you'll be able to trigger assertions, misbehaviour and all other kind of evil stuff. However, the framework is basically working and the remaining problems are going to be sorted out very soon. Happy testing! * src/undostack.{cc,h}: New files, implementing the core of the new undo system. Basically it's a simple undo stack using virtual methods for the implementation of undo actions. But the undo stack is itself an undo action, which allows for nested stacks. This functionality is necessary since the undo works globally on all files. * src/filebufferundo.{cc,h}: New files, defining the implementation of the FileBuffer undo actions. * src/fileshared.{cc,h}: Move parts of filebuffer.{cc,h} into these new files, in order to avoid circular dependencies and to reduce the length of single source files. * src/filetreeprivate.{cc,h}: Move the anonymous namespace parts and the nested classes of the FileTree implementation into separate files. filetreeprivate.h is included by filetree.cc only. * src/Makefile.am (regexxer_SOURCES): Add new source files. * src/filebuffer.{cc,h}: Heavily modify and enhance the code in order to support the new undo framework. * src/filetree.{cc,h}: ditto. * src/controller.{cc,h}: Add undo ControlItem and show menu/toolbar items for it. * src/mainwindow.{cc,h}: Add code to maintain the undo stack and connect the GUI bits. 2002-11-25 Daniel Elstner * src/signalutils.h (ScopedBlock): Move from filetree.cc hitherto. (ScopedConnection): ditto. * src/filetree.cc: Use the new signal stuff from namespace Util. 2002-11-25 Daniel Elstner * src/filebuffer.{cc,h} (signal_preview_line_changed): Use the new Util::QueuedSignal rather than queuing manually. 2002-11-25 Daniel Elstner * src/signalutils.{cc,h}: New files containing various sigc++ related utilities. For now, there's only Util::QueuedSignal, which implements a SigC::Signal0 that is emitted when the main loop is idle. * src/Makefile.am (regexxer_SOURCES): Add signalutils.{cc,h}. 2002-11-25 Daniel Elstner * src/filebuffer.{cc,h} (trigger_preview_line_changed): Rename to queue_preview_line_changed() because that's what it does. 2002-11-25 Daniel Elstner * src/filebuffer.cc (pango_context_changed): Ooops, I accidentally reversed the arguments to Gtk::IconSize::lookup(). Fixed. 2002-11-23 Daniel Elstner * src/filetree.{cc,h} (FileTree::ScopedBlockSorting): Introduce new utility class used to temporarily disable the column headers and to switch to the default sort column if the current one is the match count column. This is necessary because Gtk::TreeModel::foreach() doesn't like it at all if model rows are reordered underneath its feet. regexxer didn't handle that correctly until now, and the only reason this bug hasn't been observed before is #96647 :) 2002-11-23 Daniel Elstner * src/filetree.{cc,h} (FileTree::ErrorList): Rename to MessageList since it's not specifically intended for errors. Use MI to combine Util::SharedObject and std::list<> instead of making the std::list a data member. IS-A really makes sense here and this kind of class enhancement is what MI exists for, after all. 2002-11-22 Daniel Elstner * src/Makefile.am (DEFS): Don't use backslash quoting inside the double-quoted string. Rather, quote the outer pair of double- quotes with backslashes. I reckon it's more portable not to use backslash quoting inside double-quoted strings since most other packages seem to avoid it too. 2002-11-20 Daniel Elstner * configure.ac (AC_TYPE_MODE_T): Eeek, this macro makes use of a deprecated autoconf macro. Replace with AC_CHECK_TYPES([mode_t]). * src/configdata.cc: Do "typedef int mode_t" if necessary. 2002-11-20 Daniel Elstner * configure.ac: Check for mode_t too since we need it for umask(). You can never know. 2002-11-20 Daniel Elstner * configure.ac (AM_INIT_AUTOMAKE): Remove 'dist-bzip2' option since we don't distribute bzipped tarballs right now. 2002-11-20 Daniel Elstner * configure.ac: Get rid of AC_CANONICAL_{BUILD,HOST,TARGET}. These don't seem to be necessary anymore. 2002-11-20 Daniel Elstner * macros/cxx.m4: Use quadrigraphs to output characters like [ ]. * macros/pcre.m4: Add error checking at the autoconf level. 2002-11-19 Daniel Elstner * src/aboutdialog.cc: Set the default response. * src/prefdialog.cc: ditto. 2002-11-19 Daniel Elstner * src/main.cc (stock_icon_info): It's Gtk::ICON_SIZE_MENU, not Gtk::ICON_SIZE_SMALL_TOOLBAR. This glitch fortunately didn't have any real consequences since the icon size was wildcarded anyway. regexxer 0.4: 2002-11-18 Daniel Elstner * NEWS: Update. 2002-11-18 Daniel Elstner * src/configdata.{cc,h}: Generalize the enumeration handling in two new functions, enum_to_string() and enum_from_string(). 2002-11-18 Daniel Elstner * src/aboutdialog.cc: Refine the design a bit, and mention Ross Burton (Debian packager) as major contributor. 2002-11-18 Daniel Elstner * src/controller.cc (create_menubar): Don't use "f" as accelerator for "Move forward" because it's already occupied by the tree view search facility. 2002-11-18 Daniel Elstner * src/mainwindow.{cc,h}: Move the GUI stuff from the ctor into an auxilary method create_main_vbox(). Manually call accelerate() on the menu bar because otherwise the menu accelerators wouldn't be enabled if the menu bar is never shown due to user preference. 2002-11-18 Daniel Elstner * configure.ac (AC_INIT): Bump version to 0.4. 2002-11-18 Daniel Elstner * src/mainwindow.{cc,h}: Implement necessary bits to allow hiding menu bar or toolbar, and honor the menutool_mode config setting. Popup the new stand-alone about dialog on menubar/Help/Info. 2002-11-18 Daniel Elstner * src/prefdialog.{cc,h}: Remove "regexxer info" page. Split up configuration into "Look'n'feel" and "File access" pages. Add UI and class interface for the new menutool_mode config option. 2002-11-18 Daniel Elstner * src/aboutdialog.{cc,h}: New files, implementing stand-alone about dialog for regexxer. * src/Makefile.am: Add new files. 2002-11-18 Daniel Elstner * src/configdata.{cc,h}: Add support for menutool_mode config option, specifying whether to show menu bar, toolbar or both. 2002-11-18 Daniel Elstner * src/main.cc (regexxer_register_stock_items): Always set the intended icon size, but disable wildcarding for all but the last pixbuf in an icon set. 2002-11-17 Daniel Elstner * pixmaps/stock_save_all_16.png: New menu icon. * pixmaps/Makefile.am: Add new icon. * src/main.cc: Register new icon. 2002-11-17 Daniel Elstner * src/controller.cc (ControlItem::add_widget): Honor group_enabled_. 2002-11-17 Daniel Elstner * src/mainwindow.cc: Change default size of the window to 600x450 because the new menu bar takes up quite some space. 2002-11-17 Daniel Elstner * src/controller.cc (ControlItem::activate): Don't ignore the group_enabled_ flag. 2002-11-17 Daniel Elstner * src/controller.{cc,h} (create_menubar): Implement. * src/mainwindow.cc: Show the menu bar, and make both toolbar and menu bar detachable. 2002-11-17 Daniel Elstner * src/controller.{cc,h}: New files, implementing class Controller and class ControlItem. ControlItem maintains an arbitrary number of activation sources, and controls the sensitivity state of an arbitrary number of widgets too. Controller centralizes all of the ControlItems and provides create() functions for all pure control widgets in regexxer. Also, there's ControlGroup which can be used to set the sensitivity of several widgets at once. All this stuff became necessary due to the proposed addition of menus. Getting the sensitivity of all widgets right was already quite complex. After the integration of menus the old code would have reached a critical mass. * src/imagebutton.{cc,h}: New files, containing ImageButton and ImageLabelButton that were previously in mainwindow.cc. We need them in controller.cc now too. * src/Makefile.am (regexxer_SOURCES): Add new files. * src/mainwindow.{cc,h}: Integrate the new Controller concept and get rid of the obsolete cruft. We're now below 1000 lines again. 2002-11-16 Daniel Elstner * src/mainwindow.cc: Show tool tips for both find buttons too. 2002-11-16 Daniel Elstner * src/mainwindow.cc: Use sentence case for all tool tips, as suggested by Ross Burton. 2002-11-15 Daniel Elstner * src/sharedptr.cc: Remove already unused debug code. The reference counting is rock solid thanks to SharedPtr<>. 2002-11-15 Daniel Elstner * src/sharedptr.h (SharedObject): Remove the namespace prefix from the friend declaration. This will hopefully fix a compilation problem with GCC 2.95.x -- once again. 2002-11-14 Daniel Elstner * src/mainwindow.cc (on_busy_action_pulse): Simplify by reducing the amount of if-branches. 2002-11-13 Daniel Elstner * src/sharedptr.h: Reimplement the static member templates cast_static<>(), cast_dynamic<>() and cast_dynamic_throw<>() as free functions, and use the boost naming convention. * src/filetree.cc: Use the new boost-like cast functions. 2002-11-11 Daniel Elstner * regexxer.desktop: New desktop file, provided by Ross Burton. Thanks Ross! * Makefile.am: Distribute and install regexxer.desktop. 2002-11-11 Daniel Elstner * src/filetree.{cc,h} (find_files): Use std::string instead of Glib::ustring for 'dirname' and get rid of the call to Glib::filename_from_utf8(). This doesn't really belong here. * src/mainwindow.cc (on_find_files): Convert the directory name to filename encoding, and use the current directory as fallback if it's empty. 2002-11-11 Daniel Elstner * src/mainwindow.{cc,h} (button_find_matches_): Set this button insensitive unless there is at least one file to search in. Suggested by Murray Cumming . (button_find_files_): Likewise set this button insensitive if entry_pattern_ is empty. 2002-11-11 Daniel Elstner * src/filetree.cc (on_buffer_modified_changed): Work around a nasty gtkmm bug: Glib::SignalProxy seems to ignore the 'blocked' flag of the SigC::Connection object. I'll fix this later in gtkmm itself. 2002-11-11 Daniel Elstner * macros/pcre.m4 (PCRE_CHECK_UTF8): Mention libpcre's --enable-utf8 option in the error message. 2002-11-11 Daniel Elstner * src/filetree.{cc,h} (on_treestore_sort_column_changed): New signal handler, used to recalculate path_match_first_ and path_match_last_. This fixes a serious bug -- the code relies on the validity of this cached range. regexxer 0.3: 2002-11-10 Daniel Elstner * configure.ac (AC_INIT): Bump version to 0.3. 2002-11-10 Daniel Elstner * src/stringutils.cc (transform_pathname): Use byte-wise comparison because filenames should match exactly. The Glib::ustring collation methods depend on the user's locale and might even ignore case. 2002-11-10 Daniel Elstner * src/mainwindow.cc (on_preferences): Make this strongly exception safe, just to demonstrate how to use std::auto_ptr<> properly :) 2002-11-09 Daniel Elstner * src/mainwindow.cc (on_preferences): If the preferences dialog is already open, call present() instead of raise(). The former does a much better job of putting the window where the user can see it. 2002-11-09 Daniel Elstner * src/filetree.{cc,h} (find_recursively): Call increment_file_count() from here instead of letting the caller do it. (find_check_file): Simplify by using Gtk::TreeModel::Row directly. 2002-11-09 Daniel Elstner * src/filetree.cc (collatekey_sort_func): Use std::strcmp() instead of std::string::compare(), because libstdc++-v2 (which comes with GCC 2.95.x) is badly broken and doesn't support this particular overload of compare(). Darn. regexxer 0.2: 2002-11-08 Daniel Elstner * AUTHORS: Add myself ;) * NEWS: List major changes in 0.2. * README: Fix typos. 2002-11-08 Daniel Elstner * src/filetree.cc (load_file_with_fallback): Emit row_changed() whenever the value of fileinfo->load_failed changed, rather than only if the file seems to be binary. 2002-11-07 Daniel Elstner * src/mainwindow.{cc,h}: If there are any unsaved files on quit or when reloading the file tree, pop up a dialog asking for confirmation. 2002-11-07 Daniel Elstner * src/filetree.{cc,h}: Get rid of the code that expanded/collapsed directory nodes on row clicks and the activated signal. The GTK+ people persuaded me that the inconsistency is worse than the little annoyance of having to hit the expander arrow. 2002-11-07 Daniel Elstner * src/filetree.{cc,h} (on_row_activated): Override, in order to expand/collapse a directory node when the spacebar was pressed. 2002-11-07 Daniel Elstner * src/filetree.{cc,h} (on_button_release_event): Override, in order to expand a directory node when the user clicked anywhere inside the row. This might improve usability a bit. 2002-11-07 Daniel Elstner * src/filetree.cc: Make the column headers trigger sorting when clicked. Again use a default sort function in order to get three modes of sorting. That is, the default is ascending sort with directories first, but when clicking a column header no difference is made between files and directories. 2002-11-07 Daniel Elstner * src/filetree.{cc,h} (load_file_with_fallback): Ooops, I forgot that buffers are now freed whenever possible, thus we shouldn't just return even if fileinfo->load_failed has already been set. 2002-11-07 Daniel Elstner * src/filetree.{cc,h} (text_cell_data_func): Simplify. (load_file_with_fallback): Improve robustness of the code, and trigger row_changed() if load_failed has been set. For some reason it worked without this explicit emission, but it's better not to rely on that. 2002-11-06 Daniel Elstner * src/filetree.{cc,h}: Show an icon indicating whether the item is a file or directory in front of the filename. Check it out, this eye candy looks really nice. 2002-11-06 Daniel Elstner * src/fileio.cc (save_file): Get rid of the #96373 work-around. 2002-11-06 Daniel Elstner * configure.ac (PKG_CHECK_MODULES): Require gtk+-2.0 >= 2.0.6 in order to match the web page. (AC_INIT): Bump version to 0.2. Yay! 2002-11-06 Daniel Elstner * configure.ac (PKG_CHECK_MODULES): Require glib-2.0 >= 2.0.7. This is necessary due to GLib bug #91222 -- I don't want people thinking regexxer segfaulted randomly all the time because it were badly coded. 2002-11-06 Daniel Elstner * src/filetree.{cc,h} (collatekey_sort_func): Make this the sort function for mixed directory/file view. (collatekey_sort_func_dirs_first): Move the content of the former collatekey_sort_func() into here. (collatekey_sort_func_dirs_first_descending): Extra sort function which correctly reverses the meaning of the first byte in the key. This is for use with Gtk::SORT_DESCENDING. 2002-11-06 Daniel Elstner * src/filetree.{cc,h}: Speed up and simplify sorting by merging the directory/file information into the collate key (directories get a leading '0', files get a leading '1'). This is amazingly easy and not hackish in any way -- after all, this kind of pre- processing the strings is exactly what collate keys are for. 2002-11-05 Daniel Elstner * src/filebuffer.{cc,h} (is_freeable): New method that checks whether it's safe to unreference the buffer. This can be used to reduce the memory footprint. * src/filetree.{cc,h}: Unreference the text buffer whenever possible. For instance, we really don't need to keep a buffer in memory that has match_count == 0 and wasn't modified. Also fix propagation of signal_match_count_changed(). 2002-11-05 Daniel Elstner * src/filetree.cc (select_next_file): Re-add a missing "return true;" that got lost in a previous change. 2002-11-05 Daniel Elstner * src/fileio.{cc,h} (FileInfo): Split this data structure into DirInfo and FileInfo, with a common base class FileInfoBase. This should be cleaner than having data members that can be invalid. * src/filetree.{cc,h}: Use the new DirInfo and FileInfo structs. Propagate changes of a buffer's modified change to all parent nodes, and color them red too. Fix potential race conditions due to reassigment of blocked connections. 2002-11-05 Daniel Elstner * src/sharedptr.h (SharedPtr::cast_static): implement (cast_dynamic): implement (cast_dynamic_throw): implement. 2002-11-05 Daniel Elstner * src/filetree.{cc,h}: New files replacing filelist.{cc,h}. The files are now displayed in a directory tree which is much cooler. As a side effect, it's now way faster when searching thousands of files. * src/Makefile.am: s/filelist/filetree/ * configure.ac: Use src/pcreshell.cc as unique source file. * src/fileio.{cc,h} (FileInfo): Introduce a file_count member variable that became necessary to support subdirectories. * src/mainwindow.{cc,h}: Use the new FileTree widget. 2002-11-05 Daniel Elstner * src/mainwindow.cc: In on_find_files() and on_exec_search(), make sure the corresponding button is sensitive before starting the busy action. This is necessary since these callbacks are invoked from the entries' signal_activate() too. 2002-11-04 Daniel Elstner * src/pcreshell.{cc,h}: Minor code cleanup. Add a few assertions and a couple of comments. regexxer 0.1: 2002-11-03 Daniel Elstner * pixmaps/Makefile.am: s/noinst_DATA/dist_noinst_DATA/ so that the pixmap files are included in the distribution. 2002-11-03 Daniel Elstner * src/fileio.cc: Close and reopen the I/O channel when switching the encoding. Changing encodings on the fly doesn't seem to work with older GLib releases. 2002-11-03 Daniel Elstner * src/mainwindow.cc src/stringutils.cc: Be more tolerant about fucked up filenames. Still show a (hopefully) annoying warning message, though. 2002-11-03 Daniel Elstner * src/mainwindow.cc: Invoke file search respectively regex search on the entry widgets' signal_activate(). 2002-11-03 Daniel Elstner * src/stringutils.cc (apply_modifiers): Handle modifier sequences like "\u\L$2" correctly. Since it's not an recursive function the code got pretty messy. Needs to be refactored at some point. 2002-11-03 Daniel Elstner * src/configdata.cc: Use g_warning() instead of g_message(). These errors don't occur on a normal setup and should really go to stderr. 2002-11-03 Daniel Elstner * src/configdata.cc: Generalize the enum nick/value mapping code, and improve the error message strings. 2002-11-03 Daniel Elstner * src/mainwindow.cc (on_hide): hide() the preferences dialog instead of deleting it, so that on_pref_dialog_hide() is executed to save the configuration data. 2002-11-03 Daniel Elstner * src/configdata.{cc,h}: New files, implementing load/save of configuration data to a file. * src/Makefile.am: Add new files. * configure.ac: Check for umask() and its header files. * src/mainwindow.{cc,h}: Make use of the new code to load and save the configuration data. * src/stringutils.{cc,h} (trim_whitespace): New utility function. * src/prefdialog.cc (validate_encoding): Move to stringutils.{cc,h}. 2002-11-02 Daniel Elstner * src/prefdialog.{cc,h}: Prevent double emission of signal_pref_toolbar_style_changed(). 2002-10-31 Daniel Elstner * src/filelist.{cc,h} (find_files): Replace the pattern string argument with Pcre::Pattern& for consistency with find_matches(). * src/mainwindow.cc (on_find_files): Construct the Pcre::Pattern for use with find_files(). 2002-10-30 Daniel Elstner * src/filelist.{cc,h} (FileList::FindError): Store a list of strings instead of Glib::Error objects. We don't need the extra information from Glib::Error, and plain strings gives us more flexibility with regards to message strings. * src/filelist.cc (save_current_file): Report errors to the caller using FileList::FileError exceptions. * src/filelist.cc (save_all_files): ditto. * src/mainwindow.{cc,h}: Generalize FindErrorDialog into FileErrorDialog and use it to report file saving errors too. 2002-10-29 Daniel Elstner * src/filelist.{cc,h} (FileList::FindError): Explicitly implement copy ctor and assignment operator. * src/filelist.cc (on_buffer_match_count_changed): Clutter the code with assertions, just to be sure. 2002-10-28 Daniel Elstner * src/statusline.cc (CounterBox): Improve size calculation of the counter labels -- it no longer depends on '9' being the widest digit. * src/statusline.{cc,h} src/mainwindow.cc: Show the encoding of the currently displayed file in the statusbar. 2002-10-28 Daniel Elstner * src/filelist.{cc,h}: Collect file access errors during execution of find_files() and, when finished, return the list of errors via an exception to the caller. * src/mainwindow.cc (on_find_files): Show an error message dialog if the search pattern is invalid or if errors occurred during file search. 2002-10-28 Daniel Elstner * src/mainwindow.cc (on_exec_search): I changed my mind, there is absolutely no need to show off Util::next() here :) 2002-10-28 Daniel Elstner * src/stringutils.h: Introduce next() and prev() templates, shamelessly stolen from boost. * src/mainwindow.cc (on_exec_search): Use Util::next(). 2002-10-28 Daniel Elstner * src/mainwindow.cc (on_exec_search): If there was an error in the regex, move the Gtk::Entry cursor to the character reported by Pcre::Error::offset(). 2002-10-27 Daniel Elstner * src/stringutils.{cc,h} (int_to_string): New function. * src/mainwindow.cc (on_exec_search): Show an error dialog if there is an error in the regex. 2002-10-27 Daniel Elstner * src/mainwindow.cc (on_select_folder): Hide the file selection pane in the Gtk::FileSelection dialog, since we only need the directory part. 2002-10-27 Daniel Elstner * src/stringutils.{cc,h} src/prefdialog.cc: Get rid of ascii_toupper() and AsciiToupper because I just added the formerly missing Glib::Ascii::toupper() to glibmm :-P 2002-10-27 Daniel Elstner * src/stringutils.h (AsciiToupper): New unary predicate that forwards to ascii_toupper(). * src/prefdialog.cc (on_entry_fallback_activate): Use the AsciiToupper predicate so that the call can be inlined. 2002-10-27 Daniel Elstner * src/stringutils.{cc,h} (ascii_toupper): Make this utility function publically available. * src/prefdialog.cc (on_entry_fallback_activate): Convert the encoding name to upper case. 2002-10-27 Daniel Elstner * src/mainwindow.{cc,h}: Explicitely delete the preferences dialog on exit. Although this isn't really necessary, it does look neater if we have a lot of cleanup to do on exit. 2002-10-27 Daniel Elstner * src/filebuffer.cc (find_matches): Correctly forward one character rather than one byte after matching the empty string twice. Also, improve cancellation response by moving the signal_pulse() emission into the inner loop (shouldn't harm performance since we emit only once for 128 iterations anyway). 2002-10-26 Daniel Elstner * src/fileio.{cc,h} src/filelist.{cc,h}: Make the fallback encoding configureable, so that it can be changed from the preferences dialog. * src/prefdialog.{cc,h} src/mainwindow.cc: Honor the preference setting of the fallback encoding. 2002-10-26 Daniel Elstner * pixmaps/stock_menu_about.png: New image stolen from Gnome2. * pixmaps/Makefile.am src/main.cc: Register the new stock image. * src/prefdialog.{cc,h}: New files, implemening the preferences dialog. The about box is integrated as second notebook page, because I couldn't think of a better place to put it. * src/mainwindow.{cc,h}: Make the preferences tool button work. 2002-10-26 Daniel Elstner * src/main.cc: Set a global window icon list. * src/mainwindow.cc: Consider both the movement buttons and the replace buttons as part of the "action area". This fixes wrong sensitivity of the movement buttons during busy actions. 2002-10-26 Daniel Elstner * src/statusline.{cc,h}: Install an accelerator key (Escape) for the cancel button. 2002-10-26 Daniel Elstner * src/filelist.{cc,h} src/mainwindow.{cc,h}: Major cleanup of the busy action cancelation code. The new code is now centralized in class MainWindow, and has been merged with the progressbar pulse notification and busy GUI updating. * src/filebuffer.{cc,h}: Implement support for cancelation of busy actions such as find_matches(), using the new scheme described above. * src/statusline.{cc,h}: Add cancel button to the GUI. 2002-10-26 Daniel Elstner * src/filebuffer.cc (create_with_error_message): Improve message title: s/Load failed/Can't read file/ 2002-10-26 Daniel Elstner * src/filelist.cc src/mainwindow.cc: Make use of the progress bar pulse feature while globally replacing matches, too. 2002-10-26 Daniel Elstner * src/filebuffer.cc (create_with_error_message): Don't forget set_modified(false) after filling the buffer. 2002-10-26 Daniel Elstner * src/statusline.cc: Correctly handle signal_style_changed() from the labels rather than the container. * src/filebuffer.{cc,h} src/fileio.{cc,h} src/filelist.{cc,h}: Instead of printing error messages to the console, write the message to a text buffer. Use a dialog error stock image so that it looks good. * src/filebuffer.{cc,h} src/filelist.{cc,h} src/mainwindow.{cc,h}: In the match counter, display the number of matches per file rather than the overall match count. Also, remember this original match count and don't decrease it when removing matches. Make the match index counter work. 2002-10-25 Daniel Elstner * src/statusline.{cc,h} (CounterBox): New class encapsulating a single "index/count"-style counter, for use by class StatusLine. Further improve calculation of the label lengths. * src/filelist.{cc,h} src/mainwindow.{cc,h}: Add a file_index parameter to FileList::signal_switch_buffer() and display it in the status line. 2002-10-25 Daniel Elstner * src/filebuffer.{cc,h}: Implement support for matching empty strings, while emulating the behaviour of Perl's /g modifier. 2002-10-24 Daniel Elstner * src/statusline.{cc,h}: New files, implementing the status box at the bottom of the main window. * src/mainwindow.{cc,h} src/filelist.{cc,h}: Implement file and match counter using the new StatusLine object. * src/filelist.{cc,h}: Speed up sorting by defining a custom sort function that makes use of collate keys. 2002-10-24 Daniel Elstner * macros/cxx.m4: New file, implementing custom autoconf macros related to checking the C++ compiler/environment. (REGEXXER_CXX_HAS_STD_LOCALE): New m4 macro. (REGEXXER_ARG_ENABLE_WARNINGS): New m4 macro. * configure.ac: Make use of the new autoconf macros. * Makefile.am (EXTRA_DIST): Add macros/cxx.m4. 2002-10-21 Daniel Elstner * configure.ac: Require gtkmm-2.0 >= 2.0.0. 2002-10-21 Daniel Elstner * src/fileio.cc: Dump std::[io]fstream in favor of Glib::IOChannel. It's less code now and the error reporting should be better too. 2002-10-21 Daniel Elstner * src/fileio.{cc,h}: New files. * src/filelist.{cc,h}: Separate the load/save functionality into fileio.{cc,h} to improve modularity of the code. 2002-10-21 Daniel Elstner * src/filelist.{cc,h} (FileList::find_recursively): Move the file_test() code into a separate method find_check_file(), and improve the error handling. 2002-10-21 Daniel Elstner * src/filelist.{cc,h}: Cache the Gdk::Color object used for files which failed to load. * src/mainwindow.cc: Replace some unnecessary run-time checked casts with static ones. 2002-10-20 Daniel Elstner * src/mainwindow.cc (MainWindow::on_filelist_bound_state_changed): Don't forget to update the prev/next match buttons' sensitivity. 2002-10-20 Daniel Elstner * src/filelist.cc (FileList::find_files): Catch exceptions from Glib::Dir and Glib::file_test(). 2002-10-20 Daniel Elstner * src/stringutils.{cc,h} (Util::convert_to_ascii): New function which replaces all non-ASCII characters with '?'. This should be used for error messages when everything else failed. * src/filelist.cc: Use filename_to_utf8_fallback() in a few more places. Also, if the filename conversion fails ultimately show a warning and skip the file. 2002-10-20 Daniel Elstner * src/stringutils.{cc,h} (Util::filename_to_utf8_fallback): New wrapper function for Glib::filename_to_utf8() that works even if the user hasn't set G_BROKEN_FILENAMES correctly. In that case it shows a hopefully annoying g_warning(). * src/filelist.cc: Use Util::filename_to_utf8_fallback() where appropriate. * src/mainwindow.cc: ditto. 2002-10-20 Daniel Elstner * src/filelist.cc: Speed up find_files() by updating the GUI every 16 iterations rather than all the time. 2002-10-20 Daniel Elstner * src/mainwindow.{cc,h} src/filelist.{cc,h}: Implement "Save" and "Save all" functionality. Also, separate the file list boundary notification from signal_switch_buffer() -- should be a lot more robust now. 2002-10-20 Daniel Elstner * src/mainwindow.{cc,h} src/filelist.{cc,h}: Add "Save all" tool button and implement sensitivity setting for "Save" and "Save all". 2002-10-19 Daniel Elstner * pixmaps/stock_save_all_24.png: New file. * pixmaps/Makefile.am: Use gdk-pixbuf-csource to generate inline stock pixbufs. * configure.ac: Check for gdk-pixbuf-csource. * src/main.cc: Register new stock items for regexxer. 2002-10-18 Daniel Elstner * src/filelist.{cc,h}: Paint rows of modified files in red. 2002-10-18 Daniel Elstner * src/mainwindow.cc: Make the TextView non-editable if no file is loaded. 2002-10-18 Daniel Elstner * configure.ac: Require sigc++ >= 1.2.1 and gtkmm >= 1.3.27. 2002-10-16 Daniel Elstner * src/filebuffer.{cc,h} src/filelist.{cc,h} src/mainwindow.{cc,h}: Implement match substitution for the current file and all files, and get notification on match count changes working correctly. 2002-10-16 Daniel Elstner * src/Makefile.am (DEFS): Define all the *_DISABLE_DEPRECATED macros just to prove regexxer is legacy-free ;) 2002-10-16 Daniel Elstner * src/filebuffer.h (BoundState): Define operator|=() and friends. * src/filebuffer.cc: Use the new operator. 2002-10-16 Daniel Elstner Woohoo, first ChangeLog entry for regexxer! * virtually all files: Insert copyright notice and CVS Id tags. regexxer-0.9/INSTALL0000644000175000017500000002243210554401166011172 00000000000000Installation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. (Caching is disabled by default to prevent problems with accidental use of stale cache files.) If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You only need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not support the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Here is a another example: /bin/bash ./configure CONFIG_SHELL=/bin/bash Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent configuration-related scripts to be executed by `/bin/bash'. `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. regexxer-0.9/NEWS0000644000175000017500000000417010566137725010651 00000000000000regexxer 0.9 (2007-02-18) * Command line option support * Icon theme support * Now builds a working executable on systems with newer libglade * New GTK+ file chooser button * Replaced about dialog with stock GTK+ one * Completely revamped build system * Lots of new translations: bg ca dz es eu fi fr hu ne pa pl sl sr sr@Latn uk vi zh_CN zh_HK zh_TW * Other minor cleanups and fixes regexxer 0.8 (2004-07-09) * port to new API of sigc++ 2, gtkmm 2.4 and gconfmm 2.6 * now using libglademm to load the UI at runtime from glade XML files * polished UI: new GTK+ file chooser, Edit menu, and more * bugfixes, bugfixes, bugfixes * more translations: cs en_CA en_GB it ja nl pt pt_BR sv regexxer 0.7 (2004-05-08) * gnome-vfs dependency dropped * support for translation * several undo feature bugfixes * live synchronization with GConf * other minor fixes regexxer 0.6 (2003-12-07) * Use GConf for preferences, instead of a text file. * Use gnome-vfs to allow search/replace of files at any URI, not just on local file system. (Murray Cumming) regexxer 0.5 (2003-10-31) * Undo feature (Daniel Elstner) * Drop-down list of common file extensions. (Murray Cumming) * Allow configuration of colors via color buttons (Daniel Elstner) * Accessibility improvements (tab sequences and widget names) (Daniel Elstner) * Very slight HIGification (Murray Cumming) * new application icon (jimmac, Daniel Elstner) * Danish Translation of regexxer.desktop (Morten Brix Petersen) regexxer 0.4 (2002-11-18) * menu bar added (can be disabled) * install regexxer.desktop file provided by Ross Burton * new rock-solid user input handling (internal) * fixed a nasty bug that occured when changing the sort order * fixed an annoying bug in the unsaved files counter * minor UI cleanups and refinements * other minor bugfixes regexxer 0.3 (2002-11-10) * fix build with GCC 2.95.x (libstdc++-v2 is broken) regexxer 0.2 (2002-11-08) * file list replaced with file tree * more eye candy * confirmation dialog on exit if some files haven't been saved * less huge memory footprint (still room for improvement though) * various bug fixes regexxer-0.9/depcomp0000755000175000017500000003710010566140570011516 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2005-07-09.11 # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. # 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 this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: regexxer-0.9/install-sh0000755000175000017500000002202110566140570012141 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2005-05-14.22 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # 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 # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # 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 # 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. # # 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- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # 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 # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= no_target_directory= usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: -c (ignored) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit $?;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit $?;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` shift IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $cpprog "$src" "$dsttmp" && # 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 # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ || { # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit 1 } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit 1; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit 0 } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: regexxer-0.9/missing0000755000175000017500000002540610566140570011546 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # 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 this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # 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 # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ 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 command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: regexxer-0.9/mkinstalldirs0000755000175000017500000000370410566140564012755 00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain errstatus=0 dirmode="" usage="\ Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" 1>&2 exit 0 ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac case $dirmode in '') if mkdir -p -- . 2>/dev/null; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" fi ;; *) if mkdir -m "$dirmode" -p -- . 2>/dev/null; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" fi ;; esac for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr="" chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp="$pathcomp/" done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # End: # mkinstalldirs ends here